2279 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			2279 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<?xml version="1.0" encoding="utf-8"?>
 | 
						|
<?xml version="1.0" encoding="utf-8"?>
 | 
						|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 | 
						|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | 
						|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 | 
						|
<head>
 | 
						|
<!-- 2020-04-05 dim. 11:29 -->
 | 
						|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 | 
						|
<meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
						|
<title>Vim Config</title>
 | 
						|
<meta name="generator" content="Org mode" />
 | 
						|
<meta name="author" content="Dehaeze Thomas" />
 | 
						|
<style type="text/css">
 | 
						|
 <!--/*--><![CDATA[/*><!--*/
 | 
						|
  .title  { text-align: center;
 | 
						|
             margin-bottom: .2em; }
 | 
						|
  .subtitle { text-align: center;
 | 
						|
              font-size: medium;
 | 
						|
              font-weight: bold;
 | 
						|
              margin-top:0; }
 | 
						|
  .todo   { font-family: monospace; color: red; }
 | 
						|
  .done   { font-family: monospace; color: green; }
 | 
						|
  .priority { font-family: monospace; color: orange; }
 | 
						|
  .tag    { background-color: #eee; font-family: monospace;
 | 
						|
            padding: 2px; font-size: 80%; font-weight: normal; }
 | 
						|
  .timestamp { color: #bebebe; }
 | 
						|
  .timestamp-kwd { color: #5f9ea0; }
 | 
						|
  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
 | 
						|
  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
 | 
						|
  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
 | 
						|
  .underline { text-decoration: underline; }
 | 
						|
  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
 | 
						|
  p.verse { margin-left: 3%; }
 | 
						|
  pre {
 | 
						|
    border: 1px solid #ccc;
 | 
						|
    box-shadow: 3px 3px 3px #eee;
 | 
						|
    padding: 8pt;
 | 
						|
    font-family: monospace;
 | 
						|
    overflow: auto;
 | 
						|
    margin: 1.2em;
 | 
						|
  }
 | 
						|
  pre.src {
 | 
						|
    position: relative;
 | 
						|
    overflow: visible;
 | 
						|
    padding-top: 1.2em;
 | 
						|
  }
 | 
						|
  pre.src:before {
 | 
						|
    display: none;
 | 
						|
    position: absolute;
 | 
						|
    background-color: white;
 | 
						|
    top: -10px;
 | 
						|
    right: 10px;
 | 
						|
    padding: 3px;
 | 
						|
    border: 1px solid black;
 | 
						|
  }
 | 
						|
  pre.src:hover:before { display: inline;}
 | 
						|
  /* Languages per Org manual */
 | 
						|
  pre.src-asymptote:before { content: 'Asymptote'; }
 | 
						|
  pre.src-awk:before { content: 'Awk'; }
 | 
						|
  pre.src-C:before { content: 'C'; }
 | 
						|
  /* pre.src-C++ doesn't work in CSS */
 | 
						|
  pre.src-clojure:before { content: 'Clojure'; }
 | 
						|
  pre.src-css:before { content: 'CSS'; }
 | 
						|
  pre.src-D:before { content: 'D'; }
 | 
						|
  pre.src-ditaa:before { content: 'ditaa'; }
 | 
						|
  pre.src-dot:before { content: 'Graphviz'; }
 | 
						|
  pre.src-calc:before { content: 'Emacs Calc'; }
 | 
						|
  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
 | 
						|
  pre.src-fortran:before { content: 'Fortran'; }
 | 
						|
  pre.src-gnuplot:before { content: 'gnuplot'; }
 | 
						|
  pre.src-haskell:before { content: 'Haskell'; }
 | 
						|
  pre.src-hledger:before { content: 'hledger'; }
 | 
						|
  pre.src-java:before { content: 'Java'; }
 | 
						|
  pre.src-js:before { content: 'Javascript'; }
 | 
						|
  pre.src-latex:before { content: 'LaTeX'; }
 | 
						|
  pre.src-ledger:before { content: 'Ledger'; }
 | 
						|
  pre.src-lisp:before { content: 'Lisp'; }
 | 
						|
  pre.src-lilypond:before { content: 'Lilypond'; }
 | 
						|
  pre.src-lua:before { content: 'Lua'; }
 | 
						|
  pre.src-matlab:before { content: 'MATLAB'; }
 | 
						|
  pre.src-mscgen:before { content: 'Mscgen'; }
 | 
						|
  pre.src-ocaml:before { content: 'Objective Caml'; }
 | 
						|
  pre.src-octave:before { content: 'Octave'; }
 | 
						|
  pre.src-org:before { content: 'Org mode'; }
 | 
						|
  pre.src-oz:before { content: 'OZ'; }
 | 
						|
  pre.src-plantuml:before { content: 'Plantuml'; }
 | 
						|
  pre.src-processing:before { content: 'Processing.js'; }
 | 
						|
  pre.src-python:before { content: 'Python'; }
 | 
						|
  pre.src-R:before { content: 'R'; }
 | 
						|
  pre.src-ruby:before { content: 'Ruby'; }
 | 
						|
  pre.src-sass:before { content: 'Sass'; }
 | 
						|
  pre.src-scheme:before { content: 'Scheme'; }
 | 
						|
  pre.src-screen:before { content: 'Gnu Screen'; }
 | 
						|
  pre.src-sed:before { content: 'Sed'; }
 | 
						|
  pre.src-sh:before { content: 'shell'; }
 | 
						|
  pre.src-sql:before { content: 'SQL'; }
 | 
						|
  pre.src-sqlite:before { content: 'SQLite'; }
 | 
						|
  /* additional languages in org.el's org-babel-load-languages alist */
 | 
						|
  pre.src-forth:before { content: 'Forth'; }
 | 
						|
  pre.src-io:before { content: 'IO'; }
 | 
						|
  pre.src-J:before { content: 'J'; }
 | 
						|
  pre.src-makefile:before { content: 'Makefile'; }
 | 
						|
  pre.src-maxima:before { content: 'Maxima'; }
 | 
						|
  pre.src-perl:before { content: 'Perl'; }
 | 
						|
  pre.src-picolisp:before { content: 'Pico Lisp'; }
 | 
						|
  pre.src-scala:before { content: 'Scala'; }
 | 
						|
  pre.src-shell:before { content: 'Shell Script'; }
 | 
						|
  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
 | 
						|
  /* additional language identifiers per "defun org-babel-execute"
 | 
						|
       in ob-*.el */
 | 
						|
  pre.src-cpp:before  { content: 'C++'; }
 | 
						|
  pre.src-abc:before  { content: 'ABC'; }
 | 
						|
  pre.src-coq:before  { content: 'Coq'; }
 | 
						|
  pre.src-groovy:before  { content: 'Groovy'; }
 | 
						|
  /* additional language identifiers from org-babel-shell-names in
 | 
						|
     ob-shell.el: ob-shell is the only babel language using a lambda to put
 | 
						|
     the execution function name together. */
 | 
						|
  pre.src-bash:before  { content: 'bash'; }
 | 
						|
  pre.src-csh:before  { content: 'csh'; }
 | 
						|
  pre.src-ash:before  { content: 'ash'; }
 | 
						|
  pre.src-dash:before  { content: 'dash'; }
 | 
						|
  pre.src-ksh:before  { content: 'ksh'; }
 | 
						|
  pre.src-mksh:before  { content: 'mksh'; }
 | 
						|
  pre.src-posh:before  { content: 'posh'; }
 | 
						|
  /* Additional Emacs modes also supported by the LaTeX listings package */
 | 
						|
  pre.src-ada:before { content: 'Ada'; }
 | 
						|
  pre.src-asm:before { content: 'Assembler'; }
 | 
						|
  pre.src-caml:before { content: 'Caml'; }
 | 
						|
  pre.src-delphi:before { content: 'Delphi'; }
 | 
						|
  pre.src-html:before { content: 'HTML'; }
 | 
						|
  pre.src-idl:before { content: 'IDL'; }
 | 
						|
  pre.src-mercury:before { content: 'Mercury'; }
 | 
						|
  pre.src-metapost:before { content: 'MetaPost'; }
 | 
						|
  pre.src-modula-2:before { content: 'Modula-2'; }
 | 
						|
  pre.src-pascal:before { content: 'Pascal'; }
 | 
						|
  pre.src-ps:before { content: 'PostScript'; }
 | 
						|
  pre.src-prolog:before { content: 'Prolog'; }
 | 
						|
  pre.src-simula:before { content: 'Simula'; }
 | 
						|
  pre.src-tcl:before { content: 'tcl'; }
 | 
						|
  pre.src-tex:before { content: 'TeX'; }
 | 
						|
  pre.src-plain-tex:before { content: 'Plain TeX'; }
 | 
						|
  pre.src-verilog:before { content: 'Verilog'; }
 | 
						|
  pre.src-vhdl:before { content: 'VHDL'; }
 | 
						|
  pre.src-xml:before { content: 'XML'; }
 | 
						|
  pre.src-nxml:before { content: 'XML'; }
 | 
						|
  /* add a generic configuration mode; LaTeX export needs an additional
 | 
						|
     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
 | 
						|
  pre.src-conf:before { content: 'Configuration File'; }
 | 
						|
 | 
						|
  table { border-collapse:collapse; }
 | 
						|
  caption.t-above { caption-side: top; }
 | 
						|
  caption.t-bottom { caption-side: bottom; }
 | 
						|
  td, th { vertical-align:top;  }
 | 
						|
  th.org-right  { text-align: center;  }
 | 
						|
  th.org-left   { text-align: center;   }
 | 
						|
  th.org-center { text-align: center; }
 | 
						|
  td.org-right  { text-align: right;  }
 | 
						|
  td.org-left   { text-align: left;   }
 | 
						|
  td.org-center { text-align: center; }
 | 
						|
  dt { font-weight: bold; }
 | 
						|
  .footpara { display: inline; }
 | 
						|
  .footdef  { margin-bottom: 1em; }
 | 
						|
  .figure { padding: 1em; }
 | 
						|
  .figure p { text-align: center; }
 | 
						|
  .equation-container {
 | 
						|
    display: table;
 | 
						|
    text-align: center;
 | 
						|
    width: 100%;
 | 
						|
  }
 | 
						|
  .equation {
 | 
						|
    vertical-align: middle;
 | 
						|
  }
 | 
						|
  .equation-label {
 | 
						|
    display: table-cell;
 | 
						|
    text-align: right;
 | 
						|
    vertical-align: middle;
 | 
						|
  }
 | 
						|
  .inlinetask {
 | 
						|
    padding: 10px;
 | 
						|
    border: 2px solid gray;
 | 
						|
    margin: 10px;
 | 
						|
    background: #ffffcc;
 | 
						|
  }
 | 
						|
  #org-div-home-and-up
 | 
						|
   { text-align: right; font-size: 70%; white-space: nowrap; }
 | 
						|
  textarea { overflow-x: auto; }
 | 
						|
  .linenr { font-size: smaller }
 | 
						|
  .code-highlighted { background-color: #ffff00; }
 | 
						|
  .org-info-js_info-navigation { border-style: none; }
 | 
						|
  #org-info-js_console-label
 | 
						|
    { font-size: 10px; font-weight: bold; white-space: nowrap; }
 | 
						|
  .org-info-js_search-highlight
 | 
						|
    { background-color: #ffff00; color: #000000; font-weight: bold; }
 | 
						|
  .org-svg { width: 90%; }
 | 
						|
  /*]]>*/-->
 | 
						|
</style>
 | 
						|
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
 | 
						|
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
 | 
						|
<script type="text/javascript" src="./js/jquery.min.js"></script>
 | 
						|
<script type="text/javascript" src="./js/bootstrap.min.js"></script>
 | 
						|
<script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
 | 
						|
<script type="text/javascript" src="./js/readtheorg.js"></script>
 | 
						|
<script type="text/javascript">
 | 
						|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
 | 
						|
<!--/*--><![CDATA[/*><!--*/
 | 
						|
     function CodeHighlightOn(elem, id)
 | 
						|
     {
 | 
						|
       var target = document.getElementById(id);
 | 
						|
       if(null != target) {
 | 
						|
         elem.cacheClassElem = elem.className;
 | 
						|
         elem.cacheClassTarget = target.className;
 | 
						|
         target.className = "code-highlighted";
 | 
						|
         elem.className   = "code-highlighted";
 | 
						|
       }
 | 
						|
     }
 | 
						|
     function CodeHighlightOff(elem, id)
 | 
						|
     {
 | 
						|
       var target = document.getElementById(id);
 | 
						|
       if(elem.cacheClassElem)
 | 
						|
         elem.className = elem.cacheClassElem;
 | 
						|
       if(elem.cacheClassTarget)
 | 
						|
         target.className = elem.cacheClassTarget;
 | 
						|
     }
 | 
						|
    /*]]>*///-->
 | 
						|
// @license-end
 | 
						|
</script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
<div id="org-div-home-and-up">
 | 
						|
 <a accesskey="h" href="./index.html"> UP </a>
 | 
						|
 |
 | 
						|
 <a accesskey="H" href="./index.html"> HOME </a>
 | 
						|
</div><div id="content">
 | 
						|
<h1 class="title">Vim Config</h1>
 | 
						|
<div id="table-of-contents">
 | 
						|
<h2>Table of Contents</h2>
 | 
						|
<div id="text-table-of-contents">
 | 
						|
<ul>
 | 
						|
<li><a href="#orged33009">Plugins Install</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#orgbc34ff2">Plug start</a></li>
 | 
						|
<li><a href="#org02fb17d">Manage Files</a></li>
 | 
						|
<li><a href="#org2fcab91">Text Objects</a></li>
 | 
						|
<li><a href="#orge56c718">Git</a></li>
 | 
						|
<li><a href="#org6dcd9df">Motions, Search</a></li>
 | 
						|
<li><a href="#orga9aa13a">Manipulate Things</a></li>
 | 
						|
<li><a href="#org8992d56">Utils</a></li>
 | 
						|
<li><a href="#orgbf6e9a2">Visual</a></li>
 | 
						|
<li><a href="#orge59021e">Themes</a></li>
 | 
						|
<li><a href="#org081ce3e">Language Server Protocol</a></li>
 | 
						|
<li><a href="#org4b93f38">Snippnets and autocompletion</a></li>
 | 
						|
<li><a href="#org1f44829">Syntax Checking and Build Utils</a></li>
 | 
						|
<li><a href="#orgf1ad87a">Auto Completion</a></li>
 | 
						|
<li><a href="#org74ef746">Tmux</a></li>
 | 
						|
<li><a href="#org824d2ab">Syntax</a></li>
 | 
						|
<li><a href="#orgf340ea7">Markdown</a></li>
 | 
						|
<li><a href="#org2855dff">LaTeX</a></li>
 | 
						|
<li><a href="#org26daa75">Matlab</a></li>
 | 
						|
<li><a href="#org97199a9">Org Mode</a></li>
 | 
						|
<li><a href="#orgdc1ffed">Others / To test</a></li>
 | 
						|
<li><a href="#org9dadb1b">Plug End</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#org0b94b51">Basic</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#org256b161">General</a></li>
 | 
						|
<li><a href="#org6bd8cd7">VIM user interface</a></li>
 | 
						|
<li><a href="#orgbb59276">Foldings</a></li>
 | 
						|
<li><a href="#org7bccef3">Colors and Fonts</a></li>
 | 
						|
<li><a href="#orge9016d2">Files, backups and undo</a></li>
 | 
						|
<li><a href="#org4e1de45">Text, tab and indent related</a></li>
 | 
						|
<li><a href="#org63d3296">Moving around, tabs, windows and buffers</a></li>
 | 
						|
<li><a href="#orgf2561b7">Misc</a></li>
 | 
						|
<li><a href="#org0551f06">Helper functions</a></li>
 | 
						|
<li><a href="#orgb04dd31">GUI related</a></li>
 | 
						|
<li><a href="#orgd629d9a">Turn persistent undo on</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#orga2ddc8d">Mappings</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#orgf82145f">Normal mode related</a></li>
 | 
						|
<li><a href="#org944f772">Insert mode related</a></li>
 | 
						|
<li><a href="#org1a540bc">Visual mode related</a></li>
 | 
						|
<li><a href="#org3724a81">Add some delimiters</a></li>
 | 
						|
<li><a href="#org6d1a3c1">Command mode related</a></li>
 | 
						|
<li><a href="#orgea12030">Terminal mode related</a></li>
 | 
						|
<li><a href="#org97c01ca">Correct misspelled works</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#org9efbaf9">Filetypes</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#org17185dd">Vim Which Key</a></li>
 | 
						|
<li><a href="#org3fe94b3">Mails</a></li>
 | 
						|
<li><a href="#org6672ae9">MarkDown</a></li>
 | 
						|
<li><a href="#orgd42161f">LaTeX</a></li>
 | 
						|
<li><a href="#orgdbd486b">Arduino</a></li>
 | 
						|
<li><a href="#orgf0c3730">Python</a></li>
 | 
						|
<li><a href="#orgf35353b">Matlab</a></li>
 | 
						|
<li><a href="#org8951ba1">Sage</a></li>
 | 
						|
<li><a href="#org63ebf9d">Save Which Key Configuration</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#org48e4b16">Plugins Config</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#org4cf6f54">junegunn/fzf</a></li>
 | 
						|
<li><a href="#org32fa6ff">autozimu/LanguageClient-neovim</a></li>
 | 
						|
<li><a href="#org84ce020">JamshedVesuna/vim-markdown-preview</a></li>
 | 
						|
<li><a href="#org10c55a5">mhinz/vim-signify</a></li>
 | 
						|
<li><a href="#org92ae007">Deoplete</a></li>
 | 
						|
<li><a href="#org9049006">SirVer/ultisnips</a></li>
 | 
						|
<li><a href="#org1bc629a">honza/vim-snippets</a></li>
 | 
						|
<li><a href="#org14b3d73">itchyny/lightline.vim</a></li>
 | 
						|
<li><a href="#org09d4b44">Autopairs</a></li>
 | 
						|
<li><a href="#orgf99a421">Yggdroot/indentLine</a></li>
 | 
						|
<li><a href="#orga9a8a6b">ryanoasis/vim-devicons</a></li>
 | 
						|
<li><a href="#org1f543aa">junegunn/goyo.vim</a></li>
 | 
						|
<li><a href="#orgd3afff1">tpope/vim-surround</a></li>
 | 
						|
<li><a href="#org33b7648">Vim-Markdown</a></li>
 | 
						|
<li><a href="#org9d0fb36">Neomake</a></li>
 | 
						|
<li><a href="#org3612d41">lervag/vimtex</a></li>
 | 
						|
<li><a href="#org39c6e0f">jpalardy/vim-slime</a></li>
 | 
						|
<li><a href="#orgc867cde">mhinz/vim-grepper</a></li>
 | 
						|
<li><a href="#orgb9f5f6e">Editor config</a></li>
 | 
						|
<li><a href="#org87fa133">Polyglot</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#org75b0074">Bindings</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#org4c8e0af">Vim Which Key</a></li>
 | 
						|
<li><a href="#orgac7157e">Direct ones</a></li>
 | 
						|
<li><a href="#orgb41f651">Quit</a></li>
 | 
						|
<li><a href="#org9159c40">Files</a></li>
 | 
						|
<li><a href="#org73faea0">Buffers</a></li>
 | 
						|
<li><a href="#orgb222501">Tabs</a></li>
 | 
						|
<li><a href="#org8c7bf07">Terminals</a></li>
 | 
						|
<li><a href="#org04030fd">Splits / Windows</a></li>
 | 
						|
<li><a href="#org512741f">Check Spell</a></li>
 | 
						|
<li><a href="#orga3f84f4">Make</a></li>
 | 
						|
<li><a href="#orgafc2d25">Search</a></li>
 | 
						|
<li><a href="#org090f24d">GIT</a></li>
 | 
						|
<li><a href="#orgfb0a00a">Errors</a></li>
 | 
						|
<li><a href="#org2e47a1e">Text</a></li>
 | 
						|
<li><a href="#org7ee13d9">Config</a></li>
 | 
						|
<li><a href="#org480d260">Insert</a></li>
 | 
						|
<li><a href="#org27ccd54">Save Which Key Configuration</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
</ul>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orged33009" class="outline-2">
 | 
						|
<h2 id="orged33009">Plugins Install</h2>
 | 
						|
<div class="outline-text-2" id="text-orged33009">
 | 
						|
</div>
 | 
						|
<div id="outline-container-orgbc34ff2" class="outline-3">
 | 
						|
<h3 id="orgbc34ff2">Plug start</h3>
 | 
						|
<div class="outline-text-3" id="text-orgbc34ff2">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">call plug#begin('~/.vim/plugged')
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org02fb17d" class="outline-3">
 | 
						|
<h3 id="org02fb17d">Manage Files</h3>
 | 
						|
<div class="outline-text-3" id="text-org02fb17d">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'tpope/vim-vinegar'                                          " Combine with netrw to create a delicious salad dressing
 | 
						|
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' } " A command-line fuzzy finder written in Go
 | 
						|
Plug 'junegunn/fzf.vim'                                           " Fzf for vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org2fcab91" class="outline-3">
 | 
						|
<h3 id="org2fcab91">Text Objects</h3>
 | 
						|
<div class="outline-text-3" id="text-org2fcab91">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'kana/vim-textobj-user'           " Create your own text objects
 | 
						|
Plug 'kana/vim-textobj-line'           " Text objects for the current line
 | 
						|
Plug 'kana/vim-textobj-entire'         " Text objects for entire buffer
 | 
						|
Plug 'michaeljsmith/vim-indent-object' " Defines a new text object representing lines of code at the same indent level
 | 
						|
Plug 'jiangmiao/auto-pairs'            " Vim plugin, insert or delete brackets, parens, quotes in pair
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orge56c718" class="outline-3">
 | 
						|
<h3 id="orge56c718">Git</h3>
 | 
						|
<div class="outline-text-3" id="text-orge56c718">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'jreybert/vimagit'
 | 
						|
Plug 'tpope/vim-fugitive'     " A Git wrapper so awesome, it should be illegal
 | 
						|
Plug 'junegunn/gv.vim'        " A git commit browser
 | 
						|
Plug 'mhinz/vim-signify'      " Show a diff using Vim its sign column
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org6dcd9df" class="outline-3">
 | 
						|
<h3 id="org6dcd9df">Motions, Search</h3>
 | 
						|
<div class="outline-text-3" id="text-org6dcd9df">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'terryma/vim-expand-region' " Vim plugin that allows you to visually select increasingly larger regions of text using the same key combination
 | 
						|
Plug 'justinmk/vim-sneak'        " The missing motion for Vim
 | 
						|
Plug 'haya14busa/is.vim'         " Improved incremental searching for Vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orga9aa13a" class="outline-3">
 | 
						|
<h3 id="orga9aa13a">Manipulate Things</h3>
 | 
						|
<div class="outline-text-3" id="text-orga9aa13a">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'tpope/vim-surround'      " Quoting/parenthesizing made simple
 | 
						|
Plug 'tpope/vim-commentary'    " Comment stuff out
 | 
						|
Plug 'junegunn/vim-easy-align' " A Vim alignment plugin
 | 
						|
Plug 'Olical/vim-enmasse'      " Edit every line in a quickfix list at the same time
 | 
						|
Plug 'mhinz/vim-grepper', { 'on': ['Grepper', '<plug>(GrepperOperator)'] } "
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org8992d56" class="outline-3">
 | 
						|
<h3 id="org8992d56">Utils</h3>
 | 
						|
<div class="outline-text-3" id="text-org8992d56">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'tpope/vim-repeat'         " Enable repeating supported plugin maps with '.'
 | 
						|
Plug 'tpope/vim-obsession'      " Continuously updated session files
 | 
						|
Plug 'tpope/vim-eunuch'         " eunuch.vim: helpers for UNIX
 | 
						|
Plug 'kana/vim-operator-user'   " Define your own operator easily
 | 
						|
Plug 'majutsushi/tagbar'        " Vim plugin that displays tags in a window, ordered by scope
 | 
						|
Plug 'tpope/vim-speeddating'    " use CTRL-A/CTRL-X to increment dates, times, and more
 | 
						|
Plug 'liuchengxu/vim-which-key' " Vim plugin that shows keybindings in popup
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgbf6e9a2" class="outline-3">
 | 
						|
<h3 id="orgbf6e9a2">Visual</h3>
 | 
						|
<div class="outline-text-3" id="text-orgbf6e9a2">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'itchyny/lightline.vim'  " A light and configurable statusline/tabline for Vim
 | 
						|
Plug 'Yggdroot/indentLine'    " A vim plugin to display the indention levels with thin vertical lines
 | 
						|
Plug 'ryanoasis/vim-devicons' " Adds file type glyphs/icons to many popular Vim plugins such as: NERDTree, vim-airline, unite, vim-startify and many more
 | 
						|
Plug 'mhinz/vim-startify'     " The fancy start screen for Vim
 | 
						|
Plug 'junegunn/goyo.vim'      " Distraction-free writing in Vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orge59021e" class="outline-3">
 | 
						|
<h3 id="orge59021e">Themes</h3>
 | 
						|
<div class="outline-text-3" id="text-orge59021e">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'morhetz/gruvbox'         " Retro groove color scheme for Vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org081ce3e" class="outline-3">
 | 
						|
<h3 id="org081ce3e">Language Server Protocol</h3>
 | 
						|
<div class="outline-text-3" id="text-org081ce3e">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'autozimu/LanguageClient-neovim', {
 | 
						|
    \ 'branch': 'next',
 | 
						|
    \ 'do': 'bash install.sh',
 | 
						|
    \ }
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org4b93f38" class="outline-3">
 | 
						|
<h3 id="org4b93f38">Snippnets and autocompletion</h3>
 | 
						|
<div class="outline-text-3" id="text-org4b93f38">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'SirVer/ultisnips'   " The ultimate snippet solution for Vim
 | 
						|
Plug 'honza/vim-snippets' " Vim-snipmate default snippets
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org1f44829" class="outline-3">
 | 
						|
<h3 id="org1f44829">Syntax Checking and Build Utils</h3>
 | 
						|
<div class="outline-text-3" id="text-org1f44829">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'neomake/neomake' " Asynchronous linting and make framework for Neovim/Vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf1ad87a" class="outline-3">
 | 
						|
<h3 id="orgf1ad87a">Auto Completion</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf1ad87a">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">if has('nvim')
 | 
						|
  Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
 | 
						|
  Plug 'Nelyah/deoplete-mu'
 | 
						|
else
 | 
						|
  Plug 'Shougo/deoplete.nvim'
 | 
						|
  Plug 'roxma/nvim-yarp'
 | 
						|
  Plug 'roxma/vim-hug-neovim-rpc'
 | 
						|
  Plug 'Nelyah/deoplete-mu'
 | 
						|
endif
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org74ef746" class="outline-3">
 | 
						|
<h3 id="org74ef746">Tmux</h3>
 | 
						|
<div class="outline-text-3" id="text-org74ef746">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'christoomey/vim-tmux-navigator' " Seamless navigation between tmux panes and vim splits
 | 
						|
Plug 'jpalardy/vim-slime'             " Used to type text into a REPL
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org824d2ab" class="outline-3">
 | 
						|
<h3 id="org824d2ab">Syntax</h3>
 | 
						|
<div class="outline-text-3" id="text-org824d2ab">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'sheerun/vim-polyglot' " A solid language pack for Vim
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf340ea7" class="outline-3">
 | 
						|
<h3 id="orgf340ea7">Markdown</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf340ea7">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'plasticboy/vim-markdown', { 'for': 'markdown' }            " Markdown Vim Mode
 | 
						|
Plug 'mzlogin/vim-markdown-toc', { 'for': 'markdown' }           " A vim plugin to generate table of contents for Markdown files
 | 
						|
Plug 'JamshedVesuna/vim-markdown-preview', { 'for': 'markdown' } " A light Vim plugin for previewing markdown files in a browser
 | 
						|
Plug 'nelstrom/vim-markdown-folding'                             " Fold markdown documents by section
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org2855dff" class="outline-3">
 | 
						|
<h3 id="org2855dff">LaTeX</h3>
 | 
						|
<div class="outline-text-3" id="text-org2855dff">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'lervag/vimtex', { 'for': 'tex' } " A modern vim plugin for editing LaTeX files.
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org26daa75" class="outline-3">
 | 
						|
<h3 id="org26daa75">Matlab</h3>
 | 
						|
<div class="outline-text-3" id="text-org26daa75">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'tdehaeze/matlab-vim', { 'for': 'matlab' }     " Edit Matlab M-files in Vim editor
 | 
						|
Plug 'djoshea/vim-matlab-fold', { 'for': 'matlab' } " Vim code folding for Matlab files
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org97199a9" class="outline-3">
 | 
						|
<h3 id="org97199a9">Org Mode</h3>
 | 
						|
<div class="outline-text-3" id="text-org97199a9">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">Plug 'jceb/vim-orgmode'             " Text outlining and task management for Vim
 | 
						|
Plug 'vim-scripts/SyntaxRange' " Define a different filetype syntax on regions of a buffer
 | 
						|
Plug 'chrisbra/NrrwRgn' " A Narrow Region Plugin for vim
 | 
						|
Plug 'mattn/calendar-vim' " calendar vimscript
 | 
						|
Plug 'vim-scripts/utl.vim' " Univeral Text Linking - Execute URLs, footnotes, open emails, organize ideas
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgdc1ffed" class="outline-3">
 | 
						|
<h3 id="orgdc1ffed">Others / To test</h3>
 | 
						|
<div class="outline-text-3" id="text-orgdc1ffed">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Plug 'francoiscabrol/ranger.vim' " Ranger integration in vim and neovim
 | 
						|
" Plug 'brooth/far.vim'            " Find And Replace Vim plugin
 | 
						|
" Plug 'justinmk/vim-gtfo'         " Go to Terminal or File manager
 | 
						|
" Plug 'sjl/gundo.vim', { 'on':  'GundoToggle' } " Vim plugin to visualize your Vim undo tree
 | 
						|
" Plug 'drzel/vim-line-no-indicator'             " Simple and expressive line number indicator
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org9dadb1b" class="outline-3">
 | 
						|
<h3 id="org9dadb1b">Plug End</h3>
 | 
						|
<div class="outline-text-3" id="text-org9dadb1b">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">call plug#end()
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org0b94b51" class="outline-2">
 | 
						|
<h2 id="org0b94b51">Basic</h2>
 | 
						|
<div class="outline-text-2" id="text-org0b94b51">
 | 
						|
</div>
 | 
						|
<div id="outline-container-org256b161" class="outline-3">
 | 
						|
<h3 id="org256b161">General</h3>
 | 
						|
<div class="outline-text-3" id="text-org256b161">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">set runtimepath+=~/.vim
 | 
						|
 | 
						|
" Sets how many lines of history VIM has to remember
 | 
						|
set history=500
 | 
						|
 | 
						|
" Enable filetype plugins
 | 
						|
filetype plugin on
 | 
						|
filetype indent on
 | 
						|
 | 
						|
" Set to auto read when a file is changed from the outside
 | 
						|
set autoread
 | 
						|
 | 
						|
" writes the content of the file automatically if you call :make
 | 
						|
set autowrite
 | 
						|
 | 
						|
" Share clipboard with system
 | 
						|
set clipboard+=unnamedplus
 | 
						|
 | 
						|
" Define Leader Key as Space key
 | 
						|
let mapleader = "\<Space>"
 | 
						|
let g:mapleader = "\<Space>"
 | 
						|
let maplocalleader = ","
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org6bd8cd7" class="outline-3">
 | 
						|
<h3 id="org6bd8cd7">VIM user interface</h3>
 | 
						|
<div class="outline-text-3" id="text-org6bd8cd7">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Set 7 lines to the cursor - when moving vertically using j/k
 | 
						|
set so=7
 | 
						|
 | 
						|
" Avoid garbled characters in Chinese language windows OS
 | 
						|
let $LANG='en'
 | 
						|
set langmenu=en
 | 
						|
 | 
						|
" Set Timeout config
 | 
						|
set timeout
 | 
						|
set ttimeout
 | 
						|
set timeoutlen=500
 | 
						|
set ttimeoutlen=50
 | 
						|
 | 
						|
" Turn on the wild menu
 | 
						|
set wildmenu
 | 
						|
 | 
						|
" Ignore compiled files
 | 
						|
set wildignore=*.o,*~,*.pyc
 | 
						|
if has("win16") || has("win32")
 | 
						|
    set wildignore+=.git\*,.hg\*,.svn\*
 | 
						|
else
 | 
						|
    set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
 | 
						|
endif
 | 
						|
 | 
						|
set wildmode=full
 | 
						|
 | 
						|
"Always show current position
 | 
						|
set ruler
 | 
						|
 | 
						|
" Height of the command bar
 | 
						|
set cmdheight=1
 | 
						|
 | 
						|
" A buffer becomes hidden when it is abandoned
 | 
						|
set hid
 | 
						|
 | 
						|
" Configure backspace so it acts as it should act
 | 
						|
set backspace=eol,start,indent
 | 
						|
set whichwrap+=<,>,h,l
 | 
						|
 | 
						|
" Ignore case when searching
 | 
						|
set ignorecase
 | 
						|
 | 
						|
" When searching try to be smart about cases
 | 
						|
set smartcase
 | 
						|
 | 
						|
" Option for smarter completions that will be case aware
 | 
						|
set infercase
 | 
						|
 | 
						|
" Highlight search results
 | 
						|
set hlsearch
 | 
						|
 | 
						|
" Makes search act like search in modern browsers
 | 
						|
set incsearch
 | 
						|
 | 
						|
" Don't redraw while executing macros (good performance config)
 | 
						|
set lazyredraw
 | 
						|
 | 
						|
" For regular expressions turn magic on
 | 
						|
set magic
 | 
						|
 | 
						|
" Show matching brackets when text indicator is over them
 | 
						|
set showmatch
 | 
						|
 | 
						|
" Don't show tab line if there is only one tab
 | 
						|
set showtabline=1
 | 
						|
 | 
						|
" How tany tenths of a second to blink when matching brackets
 | 
						|
set mat=2
 | 
						|
 | 
						|
" No annoying sound on errors
 | 
						|
set noerrorbells
 | 
						|
set novisualbell
 | 
						|
set t_vb=
 | 
						|
set tm=500
 | 
						|
 | 
						|
" Add a bit extra margin to the left
 | 
						|
set foldcolumn=0
 | 
						|
 | 
						|
" Improve VIM scrolling
 | 
						|
set ttyfast
 | 
						|
 | 
						|
" Relative Numbers
 | 
						|
set relativenumber
 | 
						|
 | 
						|
" Smarter J and K navigation
 | 
						|
nnoremap <expr> j v:count ? (v:count > 5 ? "m'" . v:count : '') . 'j' : 'gj'
 | 
						|
nnoremap <expr> k v:count ? (v:count > 5 ? "m'" . v:count : '') . 'k' : 'gk'
 | 
						|
 | 
						|
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
 | 
						|
set splitbelow splitright
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgbb59276" class="outline-3">
 | 
						|
<h3 id="orgbb59276">Foldings</h3>
 | 
						|
<div class="outline-text-3" id="text-orgbb59276">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">if has('folding')
 | 
						|
    if has('windows')
 | 
						|
        let &fillchars='vert: '           " less cluttered vertical window separators
 | 
						|
    endif
 | 
						|
    set foldmethod=indent               " not as cool as syntax, but faster
 | 
						|
    set foldlevelstart=99               " start unfolded
 | 
						|
endif
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org7bccef3" class="outline-3">
 | 
						|
<h3 id="org7bccef3">Colors and Fonts</h3>
 | 
						|
<div class="outline-text-3" id="text-org7bccef3">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">syntax enable
 | 
						|
 | 
						|
set background=dark
 | 
						|
 | 
						|
let base16colorspace=256
 | 
						|
 | 
						|
let g:gruvbox_contrast_dark = 'soft'
 | 
						|
 | 
						|
try
 | 
						|
    colorscheme gruvbox
 | 
						|
catch
 | 
						|
endtry
 | 
						|
 | 
						|
" set cursor shapes for insert and replace modes
 | 
						|
set guicursor=n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20
 | 
						|
 | 
						|
" Set utf8 as standard encoding
 | 
						|
set encoding=utf-8
 | 
						|
set fileencoding=utf-8
 | 
						|
 | 
						|
" Use Unix as the standard file type
 | 
						|
set ffs=unix,dos,mac
 | 
						|
 | 
						|
" Do not highlight the cursor line : http://vim.wikia.com/wiki/Highlight_current_line
 | 
						|
set nocursorline
 | 
						|
set nocursorcolumn
 | 
						|
 | 
						|
" Always show the status line
 | 
						|
set laststatus=2
 | 
						|
 | 
						|
" Underline for bad spelled words
 | 
						|
hi clear SpellBad
 | 
						|
hi SpellBad cterm=underline
 | 
						|
" Set style for gVim
 | 
						|
hi SpellBad gui=undercurl
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orge9016d2" class="outline-3">
 | 
						|
<h3 id="orge9016d2">Files, backups and undo</h3>
 | 
						|
<div class="outline-text-3" id="text-orge9016d2">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Turn backup off, since most stuff is in SVN, git et.c anyway...
 | 
						|
set nobackup
 | 
						|
set nowb
 | 
						|
set noswapfile
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org4e1de45" class="outline-3">
 | 
						|
<h3 id="org4e1de45">Text, tab and indent related</h3>
 | 
						|
<div class="outline-text-3" id="text-org4e1de45">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Use spaces instead of tabs
 | 
						|
set expandtab
 | 
						|
 | 
						|
" Be smart when using tabs
 | 
						|
set smarttab
 | 
						|
 | 
						|
" 1 tab == 4 spaces
 | 
						|
set shiftwidth=4
 | 
						|
set tabstop=4
 | 
						|
 | 
						|
" Word wrap without line breaks
 | 
						|
set wrap
 | 
						|
set linebreak
 | 
						|
set nolist  " list disables linebreak
 | 
						|
 | 
						|
set autoindent " Auto Indentation
 | 
						|
set nosmartindent " No Smart Indentation
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org63d3296" class="outline-3">
 | 
						|
<h3 id="org63d3296">Moving around, tabs, windows and buffers</h3>
 | 
						|
<div class="outline-text-3" id="text-org63d3296">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Specify the behavior when switching between buffers
 | 
						|
try
 | 
						|
    set switchbuf=useopen,usetab
 | 
						|
catch
 | 
						|
endtry
 | 
						|
 | 
						|
" Return to last edit position when opening files (You want this!)
 | 
						|
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
 | 
						|
 | 
						|
set splitbelow
 | 
						|
set splitright
 | 
						|
 | 
						|
" This enables mouse in all modes
 | 
						|
set mouse=a
 | 
						|
 | 
						|
" Automatically equalize splits when Vim is resized
 | 
						|
autocmd VimResized * wincmd =
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf2561b7" class="outline-3">
 | 
						|
<h3 id="orgf2561b7">Misc</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf2561b7">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Enable Line Number
 | 
						|
set number
 | 
						|
 | 
						|
" Speed up cursor movments : http://superuser.com/a/625994/587300
 | 
						|
set regexpengine=1 " https://github.com/xolox/vim-easytags/issues/88
 | 
						|
 | 
						|
" Set the maximum column for syntax highlighting
 | 
						|
set synmaxcol=250
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org0551f06" class="outline-3">
 | 
						|
<h3 id="org0551f06">Helper functions</h3>
 | 
						|
<div class="outline-text-3" id="text-org0551f06">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">function! CmdLine(str)
 | 
						|
    exe "menu Foo.Bar :" . a:str
 | 
						|
    emenu Foo.Bar
 | 
						|
    unmenu Foo
 | 
						|
endfunction
 | 
						|
 | 
						|
function! VisualSelection(direction, extra_filter) range
 | 
						|
    let l:saved_reg = @"
 | 
						|
    execute "normal! vgvy"
 | 
						|
 | 
						|
    let l:pattern = escape(@", '\\/.*$^~[]')
 | 
						|
    let l:pattern = substitute(l:pattern, "\n$", "", "")
 | 
						|
 | 
						|
    if a:direction == 'gv'
 | 
						|
        call CmdLine("Ag \"" . l:pattern . "\" " )
 | 
						|
    elseif a:direction == 'replace'
 | 
						|
        call CmdLine("%s" . '/'. l:pattern . '/')
 | 
						|
    endif
 | 
						|
 | 
						|
    let @/ = l:pattern
 | 
						|
    let @" = l:saved_reg
 | 
						|
endfunction
 | 
						|
 | 
						|
" Don't close window, when deleting a buffer
 | 
						|
command! Bclose call <SID>BufcloseCloseIt()
 | 
						|
function! <SID>BufcloseCloseIt()
 | 
						|
    let l:currentBufNum = bufnr("%")
 | 
						|
    let l:alternateBufNum = bufnr("#")
 | 
						|
 | 
						|
    if buflisted(l:alternateBufNum)
 | 
						|
        buffer #
 | 
						|
    else
 | 
						|
        bnext
 | 
						|
    endif
 | 
						|
 | 
						|
    if bufnr("%") == l:currentBufNum
 | 
						|
        new
 | 
						|
    endif
 | 
						|
 | 
						|
    if buflisted(l:currentBufNum)
 | 
						|
        execute("bdelete! ".l:currentBufNum)
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgb04dd31" class="outline-3">
 | 
						|
<h3 id="orgb04dd31">GUI related</h3>
 | 
						|
<div class="outline-text-3" id="text-orgb04dd31">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">set guifont=Hack\ Nerd\ Font\ Mono:h13
 | 
						|
set gfn=Hack\ Nerd\ Font\ Mono:h13
 | 
						|
 | 
						|
" Disable scrollbars
 | 
						|
set guioptions-=r
 | 
						|
set guioptions-=R
 | 
						|
set guioptions-=l
 | 
						|
set guioptions-=L
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgd629d9a" class="outline-3">
 | 
						|
<h3 id="orgd629d9a">Turn persistent undo on</h3>
 | 
						|
<div class="outline-text-3" id="text-orgd629d9a">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">try
 | 
						|
    set undodir=~/.vim_runtime/temp_dirs/undodir
 | 
						|
    set undofile
 | 
						|
catch
 | 
						|
endtry
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orga2ddc8d" class="outline-2">
 | 
						|
<h2 id="orga2ddc8d">Mappings</h2>
 | 
						|
<div class="outline-text-2" id="text-orga2ddc8d">
 | 
						|
</div>
 | 
						|
<div id="outline-container-orgf82145f" class="outline-3">
 | 
						|
<h3 id="orgf82145f">Normal mode related</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf82145f">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Smart way to move between windows
 | 
						|
noremap <C-j> <C-W>j
 | 
						|
noremap <C-k> <C-W>k
 | 
						|
noremap <C-h> <C-W>h
 | 
						|
noremap <C-l> <C-W>l
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org944f772" class="outline-3">
 | 
						|
<h3 id="org944f772">Insert mode related</h3>
 | 
						|
<div class="outline-text-3" id="text-org944f772">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Paste while in insert mode
 | 
						|
inoremap <C-v> <C-r>*
 | 
						|
 | 
						|
" Go to the end of line
 | 
						|
inoremap <C-e> <Esc>A
 | 
						|
 | 
						|
" Go to the beginning of line
 | 
						|
inoremap <C-a> <Esc>I
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org1a540bc" class="outline-3">
 | 
						|
<h3 id="org1a540bc">Visual mode related</h3>
 | 
						|
<div class="outline-text-3" id="text-org1a540bc">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Visual mode pressing / or ? searches for the current selection
 | 
						|
vnoremap <silent> / :<C-u>call VisualSelection('', '')<CR>/<C-R>=@/<CR><CR>
 | 
						|
vnoremap <silent> ? :<C-u>call VisualSelection('', '')<CR>?<C-R>=@/<CR><CR>
 | 
						|
 | 
						|
" Re-select visual block after indenting
 | 
						|
vnoremap < <gv
 | 
						|
vnoremap > >gv
 | 
						|
 | 
						|
" Move visual block
 | 
						|
vnoremap J :m '>+1<CR>gv=gv
 | 
						|
vnoremap K :m '<-2<CR>gv=gv
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org3724a81" class="outline-3">
 | 
						|
<h3 id="org3724a81">Add some delimiters</h3>
 | 
						|
<div class="outline-text-3" id="text-org3724a81">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" use $ as a delimiter
 | 
						|
xnoremap i$ :<C-u>normal! T$vt$<CR>
 | 
						|
xnoremap a$ :<C-u>normal! T$hvt$l<CR>
 | 
						|
onoremap i$ :normal vi$<CR>
 | 
						|
onoremap a$ :normal va$<CR>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org6d1a3c1" class="outline-3">
 | 
						|
<h3 id="org6d1a3c1">Command mode related</h3>
 | 
						|
<div class="outline-text-3" id="text-org6d1a3c1">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Bash like keys for the command line
 | 
						|
cnoremap <C-A> <Home>
 | 
						|
cnoremap <C-E> <End>
 | 
						|
cnoremap <C-K> <C-U>
 | 
						|
 | 
						|
cnoremap <C-P> <Up>
 | 
						|
cnoremap <C-N> <Down>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgea12030" class="outline-3">
 | 
						|
<h3 id="orgea12030">Terminal mode related</h3>
 | 
						|
<div class="outline-text-3" id="text-orgea12030">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" tnoremap <Esc> <C-\><C-n>
 | 
						|
 | 
						|
tnoremap <C-w>h <C-\><C-n><C-w>h
 | 
						|
tnoremap <C-w>j <C-\><C-n><C-w>j
 | 
						|
tnoremap <C-w>k <C-\><C-n><C-w>k
 | 
						|
tnoremap <C-w>l <C-\><C-n><C-w>l
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org97c01ca" class="outline-3">
 | 
						|
<h3 id="org97c01ca">Correct misspelled works</h3>
 | 
						|
<div class="outline-text-3" id="text-org97c01ca">
 | 
						|
<p>
 | 
						|
Taken from: <a href="https://vi.stackexchange.com/questions/68/autocorrect-spelling-mistakes">https://vi.stackexchange.com/questions/68/autocorrect-spelling-mistakes</a>
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Go back to last misspelled word and pick first suggestion.
 | 
						|
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u
 | 
						|
 | 
						|
" Select last misspelled word (typing will edit).
 | 
						|
nnoremap <C-K> <Esc>[sve<C-G>
 | 
						|
inoremap <C-K> <Esc>[sve<C-G>
 | 
						|
snoremap <C-K> <Esc>b[sviw<C-G>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org9efbaf9" class="outline-2">
 | 
						|
<h2 id="org9efbaf9">Filetypes</h2>
 | 
						|
<div class="outline-text-2" id="text-org9efbaf9">
 | 
						|
</div>
 | 
						|
<div id="outline-container-org17185dd" class="outline-3">
 | 
						|
<h3 id="org17185dd">Vim Which Key</h3>
 | 
						|
<div class="outline-text-3" id="text-org17185dd">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">nnoremap <silent> <localleader> :<c-u>WhichKey  ','<CR>
 | 
						|
 | 
						|
let g:which_key_map_local =  {}
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org3fe94b3" class="outline-3">
 | 
						|
<h3 id="org3fe94b3">Mails</h3>
 | 
						|
<div class="outline-text-3" id="text-org3fe94b3">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">autocmd FileType mail set spell spelllang=en_us,fr
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
<div id="outline-container-org6672ae9" class="outline-3">
 | 
						|
<h3 id="org6672ae9">MarkDown</h3>
 | 
						|
<div class="outline-text-3" id="text-org6672ae9">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Automatically turn on spell-checking for Markdown files
 | 
						|
au BufRead,BufNewFile *.md setlocal spell spelllang=fr,en
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgd42161f" class="outline-3">
 | 
						|
<h3 id="orgd42161f">LaTeX</h3>
 | 
						|
<div class="outline-text-3" id="text-orgd42161f">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" TODO : améliorer ça
 | 
						|
au BufRead,BufNewFile *.tikz set filetype=tex
 | 
						|
let tex_no_error=1 " TODO: used to not highlight underscores
 | 
						|
au BufRead,BufNewFile *.tex set filetype=tex
 | 
						|
au BufRead,BufNewFile *.tex let b:AutoPairs={'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`', '$':'$'}
 | 
						|
 | 
						|
au BufRead,BufNewFile *.tex set iskeyword+=-
 | 
						|
 | 
						|
" " clear the current list of matches that cause error-highlighting
 | 
						|
" syn clear texOnlyMath
 | 
						|
" " still mark '^' as an error outside of math mode
 | 
						|
" syn match texOnlyMath /[\^]/
 | 
						|
 | 
						|
" autocmd FileType tex,tikz nnoremap <leader>lt <plug>(vimtex-toc-toggle)
 | 
						|
" autocmd FileType tex,tikz nnoremap <leader>ll <plug>(vimtex-labels-open)
 | 
						|
" autocmd FileType tex,tikz nnoremap <leader>lv <plug>(vimtex-view)
 | 
						|
" autocmd FileType tex,tikz nnoremap <leader>lf <plug>(vimtex-reverse-search)
 | 
						|
 | 
						|
" " Make Tikz
 | 
						|
" nnoremap <leader>mt :Make pdf t=tikz f=%:t:r<cr>
 | 
						|
" nnoremap <leader>mto :make open t=tikz f=%:t:r<cr>
 | 
						|
 | 
						|
" " Make LaTeX
 | 
						|
" nnoremap <leader>ml :Make pdf f=%:t:r<cr>
 | 
						|
" nnoremap <leader>mlo :make open f=%:t:r<cr>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgdbd486b" class="outline-3">
 | 
						|
<h3 id="orgdbd486b">Arduino</h3>
 | 
						|
<div class="outline-text-3" id="text-orgdbd486b">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">au BufRead,BufNewFile *.pde set filetype=arduino
 | 
						|
au BufRead,BufNewFile *.ino set filetype=arduino
 | 
						|
" au FileType arduino map <leader>ac :!platformio run<CR>
 | 
						|
" au FileType arduino map <leader>au :!platformio run -s --target=upload<CR>
 | 
						|
" au FileType arduino map <leader>am :!platformio serialports monitor --port=/dev/cu
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf0c3730" class="outline-3">
 | 
						|
<h3 id="orgf0c3730">Python</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf0c3730">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:slime_python_ipython = 1
 | 
						|
 | 
						|
au FileType python setlocal expandtab
 | 
						|
au FileType python setlocal tabstop=4
 | 
						|
au FileType python setlocal shiftwidth=4
 | 
						|
 | 
						|
" Run Section
 | 
						|
au FileType python nmap <buffer> <localleader><localleader> <Plug>SlimeParagraphSend
 | 
						|
 | 
						|
" Run Selected text
 | 
						|
au FileType python vmap <buffer> <localleader><localleader> <Plug>SlimeRegionSend
 | 
						|
 | 
						|
" CD to directory of current file
 | 
						|
" TODO - Should enter the command. This just output the command without runing
 | 
						|
" it...
 | 
						|
au FileType python nmap <buffer> <localleader>c :SlimeSend0('cd '.expand('%:p:h'))<CR>
 | 
						|
 | 
						|
" let python_highlight_all = 1
 | 
						|
" au FileType python syn keyword pythonDecorator True None False self
 | 
						|
 | 
						|
" au BufNewFile,BufRead *.jinja set syntax=htmljinja
 | 
						|
" au BufNewFile,BufRead *.mako set ft=mako
 | 
						|
 | 
						|
" au FileType python map <buffer> F :set foldmethod=indent<cr>
 | 
						|
 | 
						|
" au FileType python inoremap <buffer> $r return
 | 
						|
" au FileType python inoremap <buffer> $i import
 | 
						|
" au FileType python inoremap <buffer> $p print
 | 
						|
" au FileType python inoremap <buffer> $f #--- <esc>a
 | 
						|
" au FileType python map <buffer> <leader>1 /class
 | 
						|
" au FileType python map <buffer> <leader>2 /def
 | 
						|
" au FileType python map <buffer> <leader>C ?class
 | 
						|
" au FileType python map <buffer> <leader>D ?def
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf35353b" class="outline-3">
 | 
						|
<h3 id="orgf35353b">Matlab</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf35353b">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" TODO Run Section (delimited by %%)
 | 
						|
au FileType matlab nmap <buffer> <localleader>mm <Plug>SlimeParagraphSend
 | 
						|
let g:which_key_map_local.m = { 'name' : '+matlab' }
 | 
						|
 | 
						|
" Run either Selected text
 | 
						|
au FileType matlab vmap <buffer> <localleader>mm <Plug>SlimeRegionSend
 | 
						|
let g:which_key_map_local.mm = 'run-code'
 | 
						|
 | 
						|
func! GetSelectedText()
 | 
						|
  normal gv"xy
 | 
						|
  let result = getreg("x")
 | 
						|
  normal gv
 | 
						|
  return result
 | 
						|
endfunc
 | 
						|
 | 
						|
" Help on the current selection
 | 
						|
au FileType matlab vmap <buffer> <localleader>mh :<C-U>SlimeSend0('help '.expand(GetSelectedText()))<CR>
 | 
						|
let g:which_key_map_local.mh = 'help'
 | 
						|
 | 
						|
" Documentation on the current selection
 | 
						|
au FileType matlab vmap <buffer> <localleader>mH :<C-U>SlimeSend0('doc '.expand(GetSelectedText()))<CR>
 | 
						|
let g:which_key_map_local.mh = 'help'
 | 
						|
 | 
						|
" Open the current file in the Matlab Editor (usefull for debuging)
 | 
						|
au FileType matlab nmap <buffer> <localleader>me :SlimeSend0('edit '.expand('%:p'))<CR>
 | 
						|
let g:which_key_map_local.me = 'edit-gui'
 | 
						|
 | 
						|
" Run all the file
 | 
						|
au FileType matlab nmap <buffer> <localleader>mr :SlimeSend0('run '.expand('%:t'))<CR>
 | 
						|
let g:which_key_map_local.mr = 'run-file'
 | 
						|
 | 
						|
" Send "cd filepath" to matlab
 | 
						|
au FileType matlab nmap <buffer> <localleader>mc :SlimeSend0('cd '.expand('%:p:h'))<CR>
 | 
						|
let g:which_key_map_local.mr = 'cd-file'
 | 
						|
 | 
						|
" Open workspace
 | 
						|
au FileType matlab nmap <buffer> <localleader>mw :SlimeSend0('workspace')<CR>
 | 
						|
let g:which_key_map_local.mr = 'workspace'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org8951ba1" class="outline-3">
 | 
						|
<h3 id="org8951ba1">Sage</h3>
 | 
						|
<div class="outline-text-3" id="text-org8951ba1">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" TODO Run Section
 | 
						|
au FileType sage.python nmap <buffer> <localleader><localleader> <Plug>SlimeParagraphSend
 | 
						|
 | 
						|
" Run Selected text
 | 
						|
au FileType sage.python vmap <buffer> <localleader><localleader> <Plug>SlimeRegionSend
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org63ebf9d" class="outline-3">
 | 
						|
<h3 id="org63ebf9d">Save Which Key Configuration</h3>
 | 
						|
<div class="outline-text-3" id="text-org63ebf9d">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">call which_key#register(',', "g:which_key_map_local")
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org48e4b16" class="outline-2">
 | 
						|
<h2 id="org48e4b16">Plugins Config</h2>
 | 
						|
<div class="outline-text-2" id="text-org48e4b16">
 | 
						|
</div>
 | 
						|
<div id="outline-container-org4cf6f54" class="outline-3">
 | 
						|
<h3 id="org4cf6f54">junegunn/fzf</h3>
 | 
						|
<div class="outline-text-3" id="text-org4cf6f54">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" This is the default extra key bindings
 | 
						|
let g:fzf_action = {
 | 
						|
  \ 'ctrl-t': 'tab split',
 | 
						|
  \ 'ctrl-h': 'split',
 | 
						|
  \ 'ctrl-v': 'vsplit' }
 | 
						|
" [[B]Commits] Customize the options used by 'git log':
 | 
						|
let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr"'
 | 
						|
 | 
						|
let g:fzf_colors =
 | 
						|
\ { 'fg':      ['fg', 'Normal'],
 | 
						|
  \ 'bg':      ['bg', 'Normal'],
 | 
						|
  \ 'hl':      ['fg', 'Comment'],
 | 
						|
  \ 'fg+':     ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
 | 
						|
  \ 'bg+':     ['bg', 'CursorLine', 'CursorColumn'],
 | 
						|
  \ 'hl+':     ['fg', 'Statement'],
 | 
						|
  \ 'info':    ['fg', 'PreProc'],
 | 
						|
  \ 'prompt':  ['fg', 'Conditional'],
 | 
						|
  \ 'pointer': ['fg', 'Exception'],
 | 
						|
  \ 'marker':  ['fg', 'Keyword'],
 | 
						|
  \ 'spinner': ['fg', 'Label'],
 | 
						|
  \ 'header':  ['fg', 'Comment'] }
 | 
						|
 | 
						|
function! s:fzf_statusline()
 | 
						|
  " Override statusline as you like
 | 
						|
  highlight fzf1 ctermfg=161 ctermbg=251
 | 
						|
  highlight fzf2 ctermfg=23 ctermbg=251
 | 
						|
  highlight fzf3 ctermfg=237 ctermbg=251
 | 
						|
  setlocal statusline=%#fzf1#\ >\ %#fzf2#fz%#fzf3#f
 | 
						|
endfunction
 | 
						|
 | 
						|
autocmd! User FzfStatusLine call <SID>fzf_statusline()
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org32fa6ff" class="outline-3">
 | 
						|
<h3 id="org32fa6ff">autozimu/LanguageClient-neovim</h3>
 | 
						|
<div class="outline-text-3" id="text-org32fa6ff">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:LanguageClient_serverCommands = {
 | 
						|
    \ 'matlab': ['java', ' -Djava.library.path=$MATLABROOT/bin/glnxa64 -cp $MATLABROOT/extern/engines/java/jar/engine.jar:$MATLABROOT/java/jar/jmi.jar:/home/thomas/github/matlab-langserver/build/libs/lsp-matlab-0.1.jar org.tokor.lspmatlab.Application'],
 | 
						|
    \ }
 | 
						|
 | 
						|
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
 | 
						|
" Or map each action separately
 | 
						|
nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
 | 
						|
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
 | 
						|
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org84ce020" class="outline-3">
 | 
						|
<h3 id="org84ce020">JamshedVesuna/vim-markdown-preview</h3>
 | 
						|
<div class="outline-text-3" id="text-org84ce020">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let vim_markdown_preview_github=1
 | 
						|
let vim_markdown_preview_browser='Google Chrome'
 | 
						|
let vim_markdown_preview_temp_file=1
 | 
						|
" let vim_markdown_preview_pandoc=1
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org10c55a5" class="outline-3">
 | 
						|
<h3 id="org10c55a5">mhinz/vim-signify</h3>
 | 
						|
<div class="outline-text-3" id="text-org10c55a5">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:signify_vcs_list = ['git']
 | 
						|
 | 
						|
let g:signify_disable_by_default = 1
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org92ae007" class="outline-3">
 | 
						|
<h3 id="org92ae007">Deoplete</h3>
 | 
						|
<div class="outline-text-3" id="text-org92ae007">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:deoplete#enable_at_startup = 1
 | 
						|
 | 
						|
" let g:deoplete#omni#functions = {}
 | 
						|
" set completeopt=longest,menuone,preview
 | 
						|
" let g:deoplete#sources = {}
 | 
						|
" let g:deoplete#enable_smart_case = 1
 | 
						|
" call deoplete#custom#set('ultisnips', 'matchers', ['matcher_fuzzy'])
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org9049006" class="outline-3">
 | 
						|
<h3 id="org9049006">SirVer/ultisnips</h3>
 | 
						|
<div class="outline-text-3" id="text-org9049006">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:UltiSnipsSnippetsDir = '~/.vim/UltiSnip'
 | 
						|
 | 
						|
" inoremap <silent><expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
 | 
						|
let g:UltiSnipsExpandTrigger="<C-j>"
 | 
						|
" let g:UltiSnipsJumpForwardTrigger="<tab>"
 | 
						|
" let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org1bc629a" class="outline-3">
 | 
						|
<h3 id="org1bc629a">honza/vim-snippets</h3>
 | 
						|
<div class="outline-text-3" id="text-org1bc629a">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:snipMate = {}
 | 
						|
let g:snipMate.scope_aliases = {}
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org14b3d73" class="outline-3">
 | 
						|
<h3 id="org14b3d73">itchyny/lightline.vim</h3>
 | 
						|
<div class="outline-text-3" id="text-org14b3d73">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">function! LightlineObsession()
 | 
						|
    return '%{ObsessionStatus("")}'
 | 
						|
endfunction
 | 
						|
 | 
						|
" \ 'colorscheme': 'gruvbox',
 | 
						|
let g:lightline = {
 | 
						|
    \ 'colorscheme': 'solarized',
 | 
						|
    \ 'active': {
 | 
						|
    \   'left': [ [ 'mode', 'paste' ],
 | 
						|
    \             [ 'filename', 'modified', 'fugitive', 'obsession' ] ]
 | 
						|
    \ },
 | 
						|
    \ 'component': {
 | 
						|
        \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}'
 | 
						|
    \ },
 | 
						|
    \ 'component_expand': {
 | 
						|
    \   'obsession': 'LightlineObsession'
 | 
						|
    \ },
 | 
						|
    \ 'component_visible_condition': {
 | 
						|
    \   'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())'
 | 
						|
    \ },
 | 
						|
    \ 'separator': { 'left': '', 'right': '' },
 | 
						|
    \ 'subseparator': { 'left': "|", 'right': "|" }
 | 
						|
\ }
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org09d4b44" class="outline-3">
 | 
						|
<h3 id="org09d4b44">Autopairs</h3>
 | 
						|
<div class="outline-text-3" id="text-org09d4b44">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Incompatibilité entre auto-pairs et clang-complete
 | 
						|
let g:AutoPairsMapCR = 0
 | 
						|
imap <silent><CR> <CR><Plug>AutoPairsReturn
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgf99a421" class="outline-3">
 | 
						|
<h3 id="orgf99a421">Yggdroot/indentLine</h3>
 | 
						|
<div class="outline-text-3" id="text-orgf99a421">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" :IndentLinesToggle toggles lines on and off.
 | 
						|
let g:indentLine_color_term = 239
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orga9a8a6b" class="outline-3">
 | 
						|
<h3 id="orga9a8a6b">ryanoasis/vim-devicons</h3>
 | 
						|
<div class="outline-text-3" id="text-orga9a8a6b">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:webdevicons_enable_ctrlp = 1
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org1f543aa" class="outline-3">
 | 
						|
<h3 id="org1f543aa">junegunn/goyo.vim</h3>
 | 
						|
<div class="outline-text-3" id="text-org1f543aa">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:goyo_width=100
 | 
						|
let g:goyo_margin_top = 2
 | 
						|
let g:goyo_margin_bottom = 2
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
This is for soft line breaks
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">function! s:goyo_enter()
 | 
						|
    set wrap linebreak nolist textwidth=0 wrapmargin=0
 | 
						|
 | 
						|
    let b:quitting = 0
 | 
						|
    let b:quitting_bang = 0
 | 
						|
    autocmd QuitPre <buffer> let b:quitting = 1
 | 
						|
    cabbrev <buffer> q! let b:quitting_bang = 1 <bar> q!
 | 
						|
endfunction
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Quit Vim if this is the only remaining buffer
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">function! s:goyo_leave()
 | 
						|
    if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1
 | 
						|
        if b:quitting_bang
 | 
						|
            qa!
 | 
						|
        else
 | 
						|
            qa
 | 
						|
        endif
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">autocmd! User GoyoEnter call <SID>goyo_enter()
 | 
						|
autocmd! User GoyoLeave call <SID>goyo_leave()
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgd3afff1" class="outline-3">
 | 
						|
<h3 id="orgd3afff1">tpope/vim-surround</h3>
 | 
						|
<div class="outline-text-3" id="text-orgd3afff1">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">vmap Si S(i_<esc>f)
 | 
						|
au FileType mako vmap Si S"i${ _(<esc>2f"a) }<esc>
 | 
						|
" surroung un visual mode : use S, then b to make the text bold in markdown
 | 
						|
let g:surround_{char2nr('b')} = "__\r__"
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org33b7648" class="outline-3">
 | 
						|
<h3 id="org33b7648">Vim-Markdown</h3>
 | 
						|
<div class="outline-text-3" id="text-org33b7648">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:vim_markdown_folding_disabled = 1
 | 
						|
let g:vim_markdown_conceal = 0
 | 
						|
let g:vim_markdown_toc_autofit = 1
 | 
						|
let g:vim_markdown_toml_frontmatter = 1
 | 
						|
 | 
						|
let g:tex_conceal = ""
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org9d0fb36" class="outline-3">
 | 
						|
<h3 id="org9d0fb36">Neomake</h3>
 | 
						|
<div class="outline-text-3" id="text-org9d0fb36">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Latex
 | 
						|
autocmd! BufWritePost *.tex Neomake
 | 
						|
let g:neomake_tex_chktex_maker = {
 | 
						|
\ 'exe': 'chktex',
 | 
						|
\ 'args': ['--inputfiles'],
 | 
						|
\ 'errorformat':
 | 
						|
\ '%EError %n in %f line %l: %m,' .
 | 
						|
\ '%WWarning %n in %f line %l: %m,' .
 | 
						|
\ '%WMessage %n in %f line %l: %m,' .
 | 
						|
\ '%Z%p^,' .
 | 
						|
\ '%-G%.%#'
 | 
						|
\ }
 | 
						|
 | 
						|
let g:neomake_tex_enabled_makers = ['chktex']
 | 
						|
 | 
						|
" Matlab
 | 
						|
autocmd! BufWritePost *.m Neomake
 | 
						|
let g:neomake_matlab_mlint_maker = {
 | 
						|
  \ 'exe': 'mlint',
 | 
						|
  \ 'mapexpr': "neomake_bufname.':'.v:val",
 | 
						|
  \ 'errorformat':
 | 
						|
  \     '%f:L %l (C %c): %m,' .
 | 
						|
  \     '%f:L %l (C %c-%*[0-9]): %m,',
 | 
						|
  \ }
 | 
						|
let g:neomake_matlab_enabled_makers = ['mlint']
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org3612d41" class="outline-3">
 | 
						|
<h3 id="org3612d41">lervag/vimtex</h3>
 | 
						|
<div class="outline-text-3" id="text-org3612d41">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" let g:tex_conceal=""
 | 
						|
" autocmd FileType tex let b:vimtex_main = 'main.tex'
 | 
						|
" let g:vimtex_mappings_enabled=0
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org39c6e0f" class="outline-3">
 | 
						|
<h3 id="org39c6e0f">jpalardy/vim-slime</h3>
 | 
						|
<div class="outline-text-3" id="text-org39c6e0f">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">if exists('$TMUX')
 | 
						|
let g:slime_target = "tmux"
 | 
						|
let g:slime_default_config = {"socket_name": split($TMUX, ",")[0], "target_pane": ":.2"}
 | 
						|
let g:slime_dont_ask_default = 1
 | 
						|
endif
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgc867cde" class="outline-3">
 | 
						|
<h3 id="orgc867cde">mhinz/vim-grepper</h3>
 | 
						|
<div class="outline-text-3" id="text-orgc867cde">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" nnoremap <leader>G :Grepper -tool ag<cr>
 | 
						|
" nmap gs  <plug>(GrepperOperator)
 | 
						|
" xmap gs  <plug>(GrepperOperator)
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgb9f5f6e" class="outline-3">
 | 
						|
<h3 id="orgb9f5f6e">Editor config</h3>
 | 
						|
<div class="outline-text-3" id="text-orgb9f5f6e">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" To ensure that this plugin works well with Tim Pope's fugitive, use the following patterns array:
 | 
						|
let g:EditorConfig_exclude_patterns = ['fugitive://.*']
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org87fa133" class="outline-3">
 | 
						|
<h3 id="org87fa133">Polyglot</h3>
 | 
						|
<div class="outline-text-3" id="text-org87fa133">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:polyglot_disabled = ['latex']
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org75b0074" class="outline-2">
 | 
						|
<h2 id="org75b0074">Bindings</h2>
 | 
						|
<div class="outline-text-2" id="text-org75b0074">
 | 
						|
</div>
 | 
						|
<div id="outline-container-org4c8e0af" class="outline-3">
 | 
						|
<h3 id="org4c8e0af">Vim Which Key</h3>
 | 
						|
<div class="outline-text-3" id="text-org4c8e0af">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">nnoremap <silent> <leader> :WhichKey '<Space>'<cr>
 | 
						|
 | 
						|
let g:which_key_map =  {}
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgac7157e" class="outline-3">
 | 
						|
<h3 id="orgac7157e">Direct ones</h3>
 | 
						|
<div class="outline-text-3" id="text-orgac7157e">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">" Switch with last buffer
 | 
						|
nnoremap <leader><Tab> :e #<cr>
 | 
						|
" let g:which_key_map.<Tab> = 'last-buffer'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgb41f651" class="outline-3">
 | 
						|
<h3 id="orgb41f651">Quit</h3>
 | 
						|
<div class="outline-text-3" id="text-orgb41f651">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.q = { 'name' : '+quit' }
 | 
						|
 | 
						|
" Quit
 | 
						|
nnoremap <leader>qq :qa<cr>
 | 
						|
let g:which_key_map.q.q = 'quit'
 | 
						|
 | 
						|
" Quit - Force
 | 
						|
nnoremap <leader>qQ :qa!<cr>
 | 
						|
let g:which_key_map.q.Q = 'quit-force'
 | 
						|
 | 
						|
" Quit - Save
 | 
						|
nnoremap <leader>qw :wq<cr>
 | 
						|
let g:which_key_map.q.w = 'quit-save'
 | 
						|
 | 
						|
" Quit - Save all
 | 
						|
nnoremap <leader>qW :wqa<cr>
 | 
						|
let g:which_key_map.q.W = 'quit-save-all'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org9159c40" class="outline-3">
 | 
						|
<h3 id="org9159c40">Files</h3>
 | 
						|
<div class="outline-text-3" id="text-org9159c40">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.f = { 'name' : '+files' }
 | 
						|
 | 
						|
" Fast saving
 | 
						|
nnoremap <leader>fs :w!<cr>
 | 
						|
let g:which_key_map.f.s = 'save-file'
 | 
						|
 | 
						|
" Fast saving all
 | 
						|
nnoremap <leader>fS :wa!<cr>
 | 
						|
let g:which_key_map.f.S = 'save-all'
 | 
						|
 | 
						|
" Find Files
 | 
						|
noremap <leader>ff :Files<CR>
 | 
						|
let g:which_key_map.f.f = 'find-file'
 | 
						|
 | 
						|
" Find File corresping to Word
 | 
						|
nnoremap <leader>fw
 | 
						|
  \ :call fzf#vim#files('.', fzf#vim#with_preview({'options': ['--query', expand('<cword>')]}))<cr>
 | 
						|
" TODO - Add visual keymap
 | 
						|
" vnoremap <leader>fw
 | 
						|
  " \ :call fzf#vim#files('.', fzf#vim#with_preview({'options': ['--query', <C-r>0]}))<cr>
 | 
						|
let g:which_key_map.f.w = 'find-file-word'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org73faea0" class="outline-3">
 | 
						|
<h3 id="org73faea0">Buffers</h3>
 | 
						|
<div class="outline-text-3" id="text-org73faea0">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.b = { 'name' : '+buffers' }
 | 
						|
 | 
						|
" Buffer Create
 | 
						|
noremap <leader>bc :enew<cr>
 | 
						|
let g:which_key_map.b.c = 'buffer-create'
 | 
						|
 | 
						|
" Buffer Delete
 | 
						|
noremap <leader>bd :Bclose<cr>
 | 
						|
let g:which_key_map.b.d = 'buffer-delete'
 | 
						|
 | 
						|
" Buffer Delete all others
 | 
						|
noremap <leader>bD :bufdo bd<cr>
 | 
						|
let g:which_key_map.b.D = 'buffer-delete-others'
 | 
						|
 | 
						|
" Buffer Next
 | 
						|
noremap <leader>bn :bnext<cr>
 | 
						|
let g:which_key_map.b.n = 'buffer-next'
 | 
						|
 | 
						|
" Buffer Previous
 | 
						|
noremap <leader>bp :bprevious<cr>
 | 
						|
let g:which_key_map.b.p = 'buffer-previous'
 | 
						|
 | 
						|
" Find Buffers
 | 
						|
noremap <leader>bf :Buffers<CR>
 | 
						|
let g:which_key_map.b.f = 'buffer-find'
 | 
						|
 | 
						|
" Buffer Home (startify)
 | 
						|
noremap <leader>bh :Startify<CR>
 | 
						|
let g:which_key_map.b.h = 'buffer-home'
 | 
						|
 | 
						|
" CD to buffer path
 | 
						|
noremap <leader>bw :cd %:p:h<CR>:pwd<CR>
 | 
						|
let g:which_key_map.b.w = 'buffer-pwd'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgb222501" class="outline-3">
 | 
						|
<h3 id="orgb222501">Tabs</h3>
 | 
						|
<div class="outline-text-3" id="text-orgb222501">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.t = { 'name' : '+tabs' }
 | 
						|
 | 
						|
" Let 'tt' toggle between this and the last accessed tab
 | 
						|
let g:lasttab = 1
 | 
						|
au TabLeave * let g:lasttab = tabpagenr()
 | 
						|
 | 
						|
" Tab New
 | 
						|
nnoremap <leader>tc :tabnew<cr>
 | 
						|
let g:which_key_map.t.c = 'tab-create'
 | 
						|
 | 
						|
" Tab Delete
 | 
						|
nnoremap <leader>td :tabclose<cr>
 | 
						|
let g:which_key_map.t.d = 'tab-delete'
 | 
						|
 | 
						|
" Tab Maximize
 | 
						|
nnoremap <leader>tD :tabonly<cr>
 | 
						|
let g:which_key_map.t.D = 'tab-delete-others'
 | 
						|
 | 
						|
" Tab Left
 | 
						|
nnoremap <leader>th gt<cr>
 | 
						|
let g:which_key_map.t.h = 'tab-left'
 | 
						|
 | 
						|
" Tab Right
 | 
						|
nnoremap <leader>tl gT<cr>
 | 
						|
let g:which_key_map.t.l = 'tab-right'
 | 
						|
 | 
						|
" Tab Move Left
 | 
						|
nnoremap <leader>tH :tabmove -1<cr>
 | 
						|
let g:which_key_map.t.H = 'tab-move-left'
 | 
						|
 | 
						|
" Tab Move Right
 | 
						|
nnoremap <leader>tL :tabmove +1<cr>
 | 
						|
let g:which_key_map.t.L = 'tab-move-right'
 | 
						|
 | 
						|
" Tab Toggle
 | 
						|
nnoremap <Leader>tt :exe "tabn ".g:lasttab<CR>
 | 
						|
let g:which_key_map.t.t = 'tab-toggle'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org8c7bf07" class="outline-3">
 | 
						|
<h3 id="org8c7bf07">Terminals</h3>
 | 
						|
<div class="outline-text-3" id="text-org8c7bf07">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.T = { 'name' : '+terminals' }
 | 
						|
 | 
						|
" Quickly create a new terminal in a new tab
 | 
						|
nnoremap <Leader>Tc :tab new<CR>:term<CR>
 | 
						|
let g:which_key_map.T.c = 'term-create'
 | 
						|
 | 
						|
" Quickly create a new terminal in a vertical split
 | 
						|
nnoremap <Leader>T/ :vsplit<CR>:term<CR>
 | 
						|
" let g:which_key_map.T./ = 'term-vert'
 | 
						|
 | 
						|
" Quickly create a new terminal in a horizontal split
 | 
						|
nnoremap <Leader>T- :split<CR>:term<CR>
 | 
						|
" let g:which_key_map.T.- = 'term-hor'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org04030fd" class="outline-3">
 | 
						|
<h3 id="org04030fd">Splits / Windows</h3>
 | 
						|
<div class="outline-text-3" id="text-org04030fd">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.w = { 'name' : '+windows' }
 | 
						|
 | 
						|
" Split Horizontal
 | 
						|
nnoremap <leader>w- :split<cr>
 | 
						|
" let g:which_key_map.w.- = 'win-hor'
 | 
						|
 | 
						|
" Split Vertical
 | 
						|
nnoremap <leader>w/ :vsplit<cr>
 | 
						|
" let g:which_key_map.w./ = 'win-vert'
 | 
						|
 | 
						|
" Split Maximize
 | 
						|
nnoremap <leader>wD <C-w>o
 | 
						|
let g:which_key_map.w.D = 'win-delete-others'
 | 
						|
 | 
						|
" Split Delete
 | 
						|
nnoremap <leader>wd <C-w>q
 | 
						|
let g:which_key_map.w.d = 'win-delete'
 | 
						|
 | 
						|
" Split Go Left
 | 
						|
nnoremap <leader>wh :wincmd h<CR>
 | 
						|
let g:which_key_map.w.h = 'win-left'
 | 
						|
 | 
						|
" Split Go Down
 | 
						|
nnoremap <leader>wj :wincmd j<CR>
 | 
						|
let g:which_key_map.w.j = 'win-down'
 | 
						|
 | 
						|
" Split Go Up
 | 
						|
nnoremap <leader>wk :wincmd k<CR>
 | 
						|
let g:which_key_map.w.k = 'win-up'
 | 
						|
 | 
						|
" Split Go Right
 | 
						|
nnoremap <leader>wl :wincmd l<CR>
 | 
						|
let g:which_key_map.w.l = 'win-right'
 | 
						|
 | 
						|
" Split to Tab
 | 
						|
nnoremap <leader>wt <C-w>T
 | 
						|
let g:which_key_map.w.t = 'win-make-tab'
 | 
						|
 | 
						|
" Find window
 | 
						|
nnoremap <leader>wf :Windows<CR>
 | 
						|
let g:which_key_map.w.f = 'win-find'
 | 
						|
 | 
						|
" Maximize window
 | 
						|
nnoremap <leader>wm :call MaximizeToggle()<CR>
 | 
						|
let g:which_key_map.w.m = 'win-maximize'
 | 
						|
 | 
						|
function! MaximizeToggle()
 | 
						|
  if exists("s:maximize_session")
 | 
						|
    exec "source " . s:maximize_session
 | 
						|
    call delete(s:maximize_session)
 | 
						|
    unlet s:maximize_session
 | 
						|
    let &hidden=s:maximize_hidden_save
 | 
						|
    unlet s:maximize_hidden_save
 | 
						|
  else
 | 
						|
    let s:maximize_hidden_save = &hidden
 | 
						|
    let s:maximize_session = tempname()
 | 
						|
    set hidden
 | 
						|
    exec "mksession! " . s:maximize_session
 | 
						|
    only
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org512741f" class="outline-3">
 | 
						|
<h3 id="org512741f">Check Spell</h3>
 | 
						|
<div class="outline-text-3" id="text-org512741f">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.S = { 'name' : '+spell-check' }
 | 
						|
 | 
						|
" CheckSpell Toggle
 | 
						|
noremap <leader>St :setlocal spell!<cr>
 | 
						|
let g:which_key_map.S.t = 'spell-toggle'
 | 
						|
 | 
						|
" CheckSpell Correct
 | 
						|
noremap <leader>Sc z=
 | 
						|
let g:which_key_map.S.c = 'spell-correct'
 | 
						|
 | 
						|
" CheckSpell Do first
 | 
						|
noremap <leader>SC 1z=
 | 
						|
let g:which_key_map.S.C = 'spell-correct-first'
 | 
						|
 | 
						|
" CheckSpell Language
 | 
						|
noremap <leader>Sl :set spelllang=
 | 
						|
let g:which_key_map.S.l = 'spell-language'
 | 
						|
 | 
						|
" CheckSpell Next
 | 
						|
noremap <leader>Sn ]s
 | 
						|
let g:which_key_map.S.n = 'spell-next'
 | 
						|
 | 
						|
" CheckSpell Next and correct
 | 
						|
noremap <leader>SN ]s1z=
 | 
						|
let g:which_key_map.S.N = 'spell-next-correct'
 | 
						|
 | 
						|
" CheckSpell Previous
 | 
						|
noremap <leader>Sp [s
 | 
						|
let g:which_key_map.S.p = 'spell-prev'
 | 
						|
 | 
						|
" CheckSpell Previous and correct
 | 
						|
noremap <leader>SP [s1z=
 | 
						|
let g:which_key_map.S.P = 'spell-prev-correct'
 | 
						|
 | 
						|
" CheckSpell Add to dictionnary
 | 
						|
noremap <leader>Sa zg
 | 
						|
let g:which_key_map.S.a = 'spell-add-dict'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orga3f84f4" class="outline-3">
 | 
						|
<h3 id="orga3f84f4">Make</h3>
 | 
						|
<div class="outline-text-3" id="text-orga3f84f4">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.m = { 'name' : '+make' }
 | 
						|
 | 
						|
" Make Make
 | 
						|
nnoremap <leader>mm :Make -B<CR>
 | 
						|
let g:which_key_map.m.m = 'make'
 | 
						|
 | 
						|
" Make Clean
 | 
						|
nnoremap <leader>mc :Make clean<CR>
 | 
						|
let g:which_key_map.m.c = 'make-clean'
 | 
						|
 | 
						|
" Make Force
 | 
						|
nnoremap <leader>mf :Make! -B<CR>
 | 
						|
let g:which_key_map.m.f = 'make-force'
 | 
						|
 | 
						|
" Make Run
 | 
						|
nnoremap <leader>mr :Make! run<cr>
 | 
						|
let g:which_key_map.m.r = 'make-run'
 | 
						|
 | 
						|
" Make Open
 | 
						|
nnoremap <leader>mo :make! open<cr>
 | 
						|
let g:which_key_map.m.o = 'make-open'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgafc2d25" class="outline-3">
 | 
						|
<h3 id="orgafc2d25">Search</h3>
 | 
						|
<div class="outline-text-3" id="text-orgafc2d25">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.s = { 'name' : '+search' }
 | 
						|
 | 
						|
" Search History
 | 
						|
noremap <leader>sh :History<CR>
 | 
						|
let g:which_key_map.s.h = 'search-history'
 | 
						|
 | 
						|
" Search Tags
 | 
						|
noremap <leader>sT :Tags<CR>
 | 
						|
let g:which_key_map.s.T = 'search-tags'
 | 
						|
 | 
						|
" Search All
 | 
						|
noremap <leader>sa :Rg<CR>
 | 
						|
let g:which_key_map.s.g = 'search-all'
 | 
						|
 | 
						|
" Search Word
 | 
						|
noremap <leader>sw :exe ':Rg ' . expand('<cword>')<CR>
 | 
						|
let g:which_key_map.s.w = 'search-word'
 | 
						|
 | 
						|
" Search todo keyboard
 | 
						|
" TODO - should not have to press enter
 | 
						|
nnoremap <leader>st :Grepper -tool rg -query TODO<CR>
 | 
						|
let g:which_key_map.s.t = 'search-todos'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org090f24d" class="outline-3">
 | 
						|
<h3 id="org090f24d">GIT</h3>
 | 
						|
<div class="outline-text-3" id="text-org090f24d">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.g = { 'name' : '+git' }
 | 
						|
 | 
						|
" Git Gutter
 | 
						|
nnoremap <silent><leader>gg :SignifyToggle<cr>
 | 
						|
let g:which_key_map.g.g = 'git-'
 | 
						|
 | 
						|
" Git Gutter Highlight
 | 
						|
nnoremap <silent><leader>gG :SignifyToggleHighlight<cr>
 | 
						|
let g:which_key_map.g.G = 'git-'
 | 
						|
 | 
						|
" Git Commit
 | 
						|
nnoremap <leader>gc :Gcommit<CR>
 | 
						|
let g:which_key_map.g.c = 'git-commit'
 | 
						|
 | 
						|
" Git Status
 | 
						|
nnoremap <leader>gs :Gstatus<CR>
 | 
						|
let g:which_key_map.g.s = 'git-status'
 | 
						|
 | 
						|
" Git Diff
 | 
						|
nnoremap <leader>gd :Gdiff<CR>
 | 
						|
let g:which_key_map.g.d = 'git-diff'
 | 
						|
 | 
						|
" Git Blame
 | 
						|
nnoremap <leader>gb :Gblame<CR>
 | 
						|
let g:which_key_map.g.b = 'git-blame'
 | 
						|
 | 
						|
" Git Visualise
 | 
						|
nnoremap <leader>gv :GV<CR>
 | 
						|
let g:which_key_map.g.v = 'git-visualize'
 | 
						|
 | 
						|
" Git File (visualise)
 | 
						|
nnoremap <leader>gF :GV!<CR>
 | 
						|
let g:which_key_map.g.F = 'git-file'
 | 
						|
 | 
						|
" Git Find Commits
 | 
						|
noremap <leader>gf :Commits<CR>
 | 
						|
let g:which_key_map.g.f = 'git-find-commit'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgfb0a00a" class="outline-3">
 | 
						|
<h3 id="orgfb0a00a">Errors</h3>
 | 
						|
<div class="outline-text-3" id="text-orgfb0a00a">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.e = { 'name' : '+errors' }
 | 
						|
 | 
						|
function! s:GetBufferList()
 | 
						|
    redir =>buflist
 | 
						|
    silent! ls
 | 
						|
    redir END
 | 
						|
    return buflist
 | 
						|
endfunction
 | 
						|
 | 
						|
function! ToggleLocationList()
 | 
						|
    let curbufnr = winbufnr(0)
 | 
						|
    for bufnum in map(filter(split(s:GetBufferList(), '\n'), 'v:val =~ "Location List"'), 'str2nr(matchstr(v:val, "\\d\\+"))')
 | 
						|
        if curbufnr == bufnum
 | 
						|
            lclose
 | 
						|
            return
 | 
						|
        endif
 | 
						|
    endfor
 | 
						|
 | 
						|
    let winnr = winnr()
 | 
						|
    let prevwinnr = winnr("#")
 | 
						|
 | 
						|
    let nextbufnr = winbufnr(winnr + 1)
 | 
						|
    try
 | 
						|
        lopen
 | 
						|
    catch /E776/
 | 
						|
        echohl ErrorMsg
 | 
						|
        echo "Location List is Empty."
 | 
						|
        echohl None
 | 
						|
        return
 | 
						|
    endtry
 | 
						|
    if winbufnr(0) == nextbufnr
 | 
						|
        lclose
 | 
						|
        if prevwinnr > winnr
 | 
						|
            let prevwinnr-=1
 | 
						|
        endif
 | 
						|
    else
 | 
						|
        if prevwinnr > winnr
 | 
						|
            let prevwinnr+=1
 | 
						|
        endif
 | 
						|
    endif
 | 
						|
    " restore previous window
 | 
						|
    exec prevwinnr."wincmd w"
 | 
						|
    exec winnr."wincmd w"
 | 
						|
endfunction
 | 
						|
 | 
						|
" Error Toggle
 | 
						|
nnoremap <silent><leader>ee :call ToggleLocationList()<CR>
 | 
						|
let g:which_key_map.e.e = 'error-toggle'
 | 
						|
 | 
						|
" Error Open
 | 
						|
nnoremap <silent><leader>eo :lopen<CR>
 | 
						|
let g:which_key_map.e.o = 'error-open'
 | 
						|
 | 
						|
" Error Close
 | 
						|
nnoremap <silent><leader>ec :lclose<CR>
 | 
						|
let g:which_key_map.e.c = 'error-close'
 | 
						|
 | 
						|
" Error Next
 | 
						|
nnoremap <silent><leader>en :lnext<CR>
 | 
						|
let g:which_key_map.e.n = 'error-next'
 | 
						|
 | 
						|
" Error Previous
 | 
						|
nnoremap <silent><leader>ep :lprevious<CR>
 | 
						|
let g:which_key_map.e.p = 'error-previous'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org2e47a1e" class="outline-3">
 | 
						|
<h3 id="org2e47a1e">Text</h3>
 | 
						|
<div class="outline-text-3" id="text-org2e47a1e">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.x = { 'name' : '+text' }
 | 
						|
 | 
						|
" Start interactive EasyAlign in visual mode (e.g. vipga) and for a motion
 | 
						|
xmap <leader>xa <Plug>(EasyAlign)
 | 
						|
nmap <leader>xa <Plug>(EasyAlign)
 | 
						|
let g:which_key_map.x.a = 'text-align'
 | 
						|
 | 
						|
" Indent all file
 | 
						|
nnoremap <leader>x= mzgg=G`z
 | 
						|
" let g:which_key_map.x.= = 'text-indent-file'
 | 
						|
 | 
						|
" Custom Multiple Cursor
 | 
						|
" http://www.kevinli.co/posts/2017-01-19-multiple-cursors-in-500-bytes-of-vimscript/
 | 
						|
let g:mc = "y/\\V\<C-r>=escape(@\", '/')\<CR>\<CR>"
 | 
						|
 | 
						|
" Multiple Cursor
 | 
						|
nnoremap <leader>xm *``cgn
 | 
						|
vnoremap <expr> <leader>xm g:mc . "``cgn"
 | 
						|
let g:which_key_map.x.m = 'multiple-cursor'
 | 
						|
 | 
						|
" Multiple Cursor - reserve direction
 | 
						|
nnoremap <leader>xM *``cgN
 | 
						|
vnoremap <expr> <leader>xM g:mc . "``cgN"
 | 
						|
let g:which_key_map.x.M = 'multiple-cursor-reverse'
 | 
						|
 | 
						|
" Delete trainling Whitespaces
 | 
						|
fun! TrimWhitespace()
 | 
						|
    let l:save = winsaveview()
 | 
						|
    keeppatterns %s/\s\+$//e
 | 
						|
    call winrestview(l:save)
 | 
						|
endfun
 | 
						|
nnoremap <leader>xt :call TrimWhitespace()<CR>
 | 
						|
let g:which_key_map.x.t = 'delete-trailing-whitespaces'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org7ee13d9" class="outline-3">
 | 
						|
<h3 id="org7ee13d9">Config</h3>
 | 
						|
<div class="outline-text-3" id="text-org7ee13d9">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.c = { 'name' : '+config' }
 | 
						|
 | 
						|
let s:activatedsh = 0
 | 
						|
function! ToggleSyntaxH()
 | 
						|
    if s:activatedsh == 0
 | 
						|
        let s:activatedsh = 1
 | 
						|
        set synmaxcol=800
 | 
						|
    else
 | 
						|
        let s:activatedsh = 0
 | 
						|
        set synmaxcol=100
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
 | 
						|
" Toggle Syntax column
 | 
						|
nnoremap <leader>cs :call ToggleSyntaxH()<CR>
 | 
						|
let g:which_key_map.c.s = 'toggle-syntax-col'
 | 
						|
 | 
						|
let s:activatedh = 0
 | 
						|
function! ToggleH()
 | 
						|
    if s:activatedh == 0
 | 
						|
        let s:activatedh = 1
 | 
						|
        match Search '\%>80v.\+'
 | 
						|
    else
 | 
						|
        let s:activatedh = 0
 | 
						|
        match none
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
 | 
						|
" Toggle Highlight
 | 
						|
nnoremap <leader>ch :call ToggleH()<CR>
 | 
						|
let g:which_key_map.c.h = 'toggle-highlight'
 | 
						|
 | 
						|
" Reload vim config
 | 
						|
noremap <Leader>cr :source $MYVIMRC<CR>
 | 
						|
let g:which_key_map.c.e = 'reload-config'
 | 
						|
 | 
						|
" Edit vim config
 | 
						|
noremap <Leader>ce :e $MYVIMRC<CR>
 | 
						|
let g:which_key_map.c.e = 'edit-config'
 | 
						|
 | 
						|
" Disable highlight
 | 
						|
noremap <silent> <leader>c<CR> :noh<CR>
 | 
						|
let g:which_key_map.c.enter = 'disable-highlight'
 | 
						|
 | 
						|
" Theme
 | 
						|
noremap <silent> <leader>ct :noh<CR>
 | 
						|
let g:which_key_map.c.t = 'choose-theme'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org480d260" class="outline-3">
 | 
						|
<h3 id="org480d260">Insert</h3>
 | 
						|
<div class="outline-text-3" id="text-org480d260">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">let g:which_key_map.i = { 'name' : '+insert' }
 | 
						|
 | 
						|
" Insert Snippet
 | 
						|
noremap <Leader>is :Snippets<CR>
 | 
						|
let g:which_key_map.i.s = 'insert-snippet'
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org27ccd54" class="outline-3">
 | 
						|
<h3 id="org27ccd54">Save Which Key Configuration</h3>
 | 
						|
<div class="outline-text-3" id="text-org27ccd54">
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-vimrc">call which_key#register('<Space>', "g:which_key_map")
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
<div id="postamble" class="status">
 | 
						|
<p class="author">Author: Dehaeze Thomas</p>
 | 
						|
<p class="date">Created: 2020-04-05 dim. 11:29</p>
 | 
						|
</div>
 | 
						|
</body>
 | 
						|
</html>
 |