From ff8be115ca7dfffc8ac7e3b37cb9729ebafac422 Mon Sep 17 00:00:00 2001 From: Arnim Rupp <46819580+ruppde@users.noreply.github.com> Date: Sat, 25 Feb 2023 10:06:56 +0100 Subject: [PATCH] Update README.md improve formatting --- README.md | 309 +++++++++++++++++++++++++++--------------------------- 1 file changed, 155 insertions(+), 154 deletions(-) diff --git a/README.md b/README.md index 79bd924e..59d99ed2 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ If you have vim aliased as `vi` instead of `vim`, make sure to either alias it: Just do a git rebase! + cd ~/.vim_runtime git reset --hard git clean -d --force @@ -162,185 +163,188 @@ The [leader](http://learnvimscriptthehardway.stevelosh.com/chapters/06.html#lead Fast saving of a buffer (`w`): - nmap w :w! - +```vim +nmap w :w! +``` + Map `` to `/` (search) and `+` to `?` (backwards search): - - map / - map ? - +```vim +map / +map ? +``` Disable highlights when you press ``: - - map :noh +```vim +map :noh +``` Smart way to move between windows (`j` etc.): - - map j - map k - map h - map l - +```vim +map j +map k +map h +map l +``` Closing of the current buffer(s) (`bd` and (`ba`)): - - " Close current buffer - map bd :Bclose - - " Close all buffers - map ba :1,1000 bd! - +```vim +" Close current buffer +map bd :Bclose + +" Close all buffers +map ba :1,1000 bd! +``` Useful mappings for managing tabs: - - map tn :tabnew - map to :tabonly - map tc :tabclose - map tm :tabmove - - " Opens a new tab with the current buffer's path - " Super useful when editing files in the same directory - map te :tabedit =escape(expand("%:p:h"), " ")/ - +```vim +map tn :tabnew +map to :tabonly +map tc :tabclose +map tm :tabmove + +" Opens a new tab with the current buffer's path +" Super useful when editing files in the same directory +map te :tabedit =escape(expand("%:p:h"), " ")/ +``` Switch [CWD](http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file) to the directory of the open buffer: - - map cd :cd %:p:h:pwd - +```vim +map cd :cd %:p:h:pwd +``` Open `ack.vim` for fast search: - - map g :Ack - +```vim +map g :Ack +``` Quickly open a buffer for scripbble: - - map q :e ~/buffer - +```vim +map q :e ~/buffer +``` Toggle paste mode on and off: - - map pp :setlocal paste! - +```vim +map pp :setlocal paste! +``` ### Visual mode mappings Visual mode pressing `*` or `#` searches for the current selection: - - vnoremap * :call VisualSelection('f') - vnoremap # :call VisualSelection('b') - +```vim +vnoremap * :call VisualSelection('f') +vnoremap # :call VisualSelection('b') +``` When you press gv you `Ack.vim` after the selected text: - - vnoremap gv :call VisualSelection('gv', '') - +```vim +vnoremap gv :call VisualSelection('gv', '') +``` When you press `r` you can search and replace the selected text: - - vnoremap r :call VisualSelection('replace') - +```vim +vnoremap r :call VisualSelection('replace') +``` Surround the visual selection in parenthesis/brackets/etc.: - - vnoremap $1 `>a)` - vnoremap $2 `>a]` - vnoremap $3 `>a}` - vnoremap $$ `>a"` - vnoremap $q `>a'` - vnoremap $e `>a`` - +```vim +vnoremap $1 `>a)` +vnoremap $2 `>a]` +vnoremap $3 `>a}` +vnoremap $$ `>a"` +vnoremap $q `>a'` +vnoremap $e `>a`` +``` ### Insert mode mappings Quickly insert parenthesis/brackets/etc.: - - inoremap $1 ()i - inoremap $2 []i - inoremap $3 {}i - inoremap $4 {o}O - inoremap $q ''i - inoremap $e ""i - inoremap $t <>i - +```vim +inoremap $1 ()i +inoremap $2 []i +inoremap $3 {}i +inoremap $4 {o}O +inoremap $q ''i +inoremap $e ""i +inoremap $t <>i +``` Insert the current date and time (useful for timestamps): - - iab xdate =strftime("%d/%m/%y %H:%M:%S") - +```vim +iab xdate =strftime("%d/%m/%y %H:%M:%S") +``` ### Command line mappings $q is super useful when browsing on the command line. It deletes everything until the last slash: - - cno $q eDeleteTillSlash() - +```vim +cno $q eDeleteTillSlash() +``` Bash like keys for the command line: +```vim +cnoremap +cnoremap +cnoremap - cnoremap - cnoremap - cnoremap - - cnoremap - cnoremap +cnoremap +cnoremap +``` Write the file as sudo (works only on Unix). Super useful when you open a file and you don't have permissions to save your changes. [Vim tip](http://vim.wikia.com/wiki/Su-write): :W - ### Plugin related mappings Open [bufexplorer](https://github.com/vim-scripts/bufexplorer.zip) to see and manage the current buffers (`o`): - - map o :BufExplorer - +```vim +map o :BufExplorer +``` Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a file or a buffer (`j` or `f`): +```vim +" Quickly find and open a file in the CWD +let g:ctrlp_map = '' - " Quickly find and open a file in the CWD - let g:ctrlp_map = '' - - " Quickly find and open a recently opened file - map f :MRU - - " Quickly find and open a buffer - map b :CtrlPBuffer +" Quickly find and open a recently opened file +map f :MRU +" Quickly find and open a buffer +map b :CtrlPBuffer +``` [NERD Tree](https://github.com/preservim/nerdtree) mappings: - - map nn :NERDTreeToggle - map nb :NERDTreeFromBookmark - map nf :NERDTreeFind - +```vim +map nn :NERDTreeToggle +map nb :NERDTreeFromBookmark +map nf :NERDTreeFind +``` [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2) lets you only focus on one thing at a time. It removes all the distractions and centers the content. It has a special look when editing Markdown, reStructuredText and textfiles. It only has one mapping. (`z`) - - map z :Goyo - +```vim +map z :Goyo +``` [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors) mappings to manage multiple cursors at once: - - let g:multi_cursor_start_word_key = '' - let g:multi_cursor_select_all_word_key = '' - let g:multi_cursor_start_key = 'g' - let g:multi_cursor_select_all_key = 'g' - let g:multi_cursor_next_key = '' - let g:multi_cursor_prev_key = '' - let g:multi_cursor_skip_key = '' - let g:multi_cursor_quit_key = '' - +```vim +let g:multi_cursor_start_word_key = '' +let g:multi_cursor_select_all_word_key = '' +let g:multi_cursor_start_key = 'g' +let g:multi_cursor_select_all_key = 'g' +let g:multi_cursor_next_key = '' +let g:multi_cursor_prev_key = '' +let g:multi_cursor_skip_key = '' +let g:multi_cursor_quit_key = '' +``` [vim-yankstack](https://github.com/maxbrunsfeld/vim-yankstack) mappings to manage the kill-ring (clipboard): - - nmap yankstack_substitute_older_paste - nmap yankstack_substitute_newer_paste - +```vim +nmap yankstack_substitute_older_paste +nmap yankstack_substitute_newer_paste +``` [ctrl-p](https://github.com/ctrlpvim/ctrlp.vim) mappings to easily find and open a file, buffer, etc.: - - let g:ctrlp_map = '' - map j :CtrlP - map :CtrlPBuffer +```vim +let g:ctrlp_map = '' +map j :CtrlP +map :CtrlPBuffer [vim-snipmate](https://github.com/garbas/vim-snipmate) mappings to autocomplete via snippets: - - ino =snipMate#TriggerSnippet() - snor i=snipMate#TriggerSnippet() - +```vim +ino =snipMate#TriggerSnippet() +snor i=snipMate#TriggerSnippet() +``` [vim-surround](https://github.com/tpope/vim-surround) mappings to easily surround a string with `_()` gettext annotation: - - vmap Si S(i_f) - au FileType mako vmap Si S"i${ _(2f"a) } - +```vim +vmap Si S(i_f) +au FileType mako vmap Si S"i${ _(2f"a) } +``` [ale](https://github.com/dense-analysis/ale) to easily go to the next Ale syntax/lint error: - - nmap a (ale_next_wrap) - +```vim +nmap a (ale_next_wrap) +``` [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) the default mapping to toggle the plugin is (`ig`) You can also use the following commands inside Vim: @@ -349,29 +353,26 @@ Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a fil :IndentGuidesToggle [vim-fugitive](https://github.com/tpope/vim-fugitive) to copy the link to the line of a Git repository to the clipboard: - - nnoremap v :.GBrowse! - xnoremap v :'<'>GBrowse! - +```vim +nnoremap v :.GBrowse! +xnoremap v :'<'>GBrowse! +``` ### Spell checking Pressing `ss` will toggle spell checking: - - map ss :setlocal spell! - +```vim +map ss :setlocal spell! +``` Shortcuts using `` instead of special characters: - - map sn ]s - map sp [s - map sa zg - map s? z= - +```vim +map sn ]s +map sp [s +map sa zg +map s? z= +``` ### Running Code To run code directly from vim, press `F5`. The currently open code will execute without you having to type anything. -Can be used to execute code written in C, C++, Java, Python, Go, Octave, Bash scripts and HTML. To edit how you want your code to be executed, make changes in the file -``` -~/.vim_runtime/vimrcs/extended.vim -``` +Can be used to execute code written in C, C++, Java, Python, Go, Octave, Bash scripts and HTML. To edit how you want your code to be executed, make changes in the file `~/.vim_runtime/vimrcs/extended.vim` ### Cope Query `:help cope` if you are unsure what cope is. It's super useful! @@ -386,12 +387,12 @@ To go to the previous search results do: `p` Cope mappings: - - map cc :botright cope - map co ggVGy:tabnew:set syntax=qfpgg - map n :cn - map p :cp - +```vim +map cc :botright cope +map co ggVGy:tabnew:set syntax=qfpgg +map n :cn +map p :cp +``` ## How to uninstall Just do following: