1
0
Fork 0
mirror of synced 2024-12-24 07:43:20 -05:00

readme markdown linting

This commit is contained in:
Tingfeng 2022-06-22 20:17:11 +08:00
parent 38ef7c8f61
commit 23f3997392

385
README.md
View file

@ -11,22 +11,28 @@ There are two versions:
I would, of course, recommend using the awesome version. I would, of course, recommend using the awesome version.
## How to install the Awesome version? ## How to install the Awesome version?
### Install for your own user only ### Install for your own user only
The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal: The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal:
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime ```sh
sh ~/.vim_runtime/install_awesome_vimrc.sh git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
```
### Install for multiple users ### Install for multiple users
To install for multiple users, the repository needs to be cloned to a location accessible for all the intended users. To install for multiple users, the repository needs to be cloned to a location accessible for all the intended users.
git clone --depth=1 https://github.com/amix/vimrc.git /opt/vim_runtime ```sh
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime user0 user1 user2 git clone --depth=1 https://github.com/amix/vimrc.git /opt/vim_runtime
# to install for all users with home directories sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime user0 user1 user2
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime --all # to install for all users with home directories
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime --all
```
Naturally, `/opt/vim_runtime` can be any directory, as long as all the users specified have read access. Naturally, `/opt/vim_runtime` can be any directory, as long as all the users specified have read access.
## Fonts ## Fonts
@ -44,33 +50,36 @@ The basic version is just one file and no plugins. Just copy [basic.vim](https:/
The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits. The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits.
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime ```sh
sh ~/.vim_runtime/install_basic_vimrc.sh git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh
```
## How to install on Windows? ## How to install on Windows?
Use [gitforwindows](http://gitforwindows.org/) to checkout the repository and run the installation instructions above. No special instructions needed ;-) Use [gitforwindows](http://gitforwindows.org/) to checkout the repository and run the installation instructions above. No special instructions needed ;-)
## How to install on Linux ## How to install on Linux
If you have vim aliased as `vi` instead of `vim`, make sure to either alias it: `alias vi=vim`. Otherwise, `apt-get install vim` If you have vim aliased as `vi` instead of `vim`, make sure to either alias it: `alias vi=vim`. Otherwise, `apt-get install vim`
## How to update to latest version? ## How to update to latest version?
Just do a git rebase! Just do a git rebase!
cd ~/.vim_runtime ```sh
git reset --hard cd ~/.vim_runtime
git clean -d --force git reset --hard
git pull --rebase git clean -d --force
python update_plugins.py # use python3 if python is unavailable git pull --rebase
python update_plugins.py # use python3 if python is unavailable
```
NOTE: If you get `ModuleNotFoundError: No module named 'requests'`, you must first install the `requests` python module using `pip`, `pip3`, or `easy_install`. NOTE: If you get `ModuleNotFoundError: No module named 'requests'`, you must first install the `requests` python module using `pip`, `pip3`, or `easy_install`.
pip install requests ```sh
pip install requests
```
## Some screenshots ## Some screenshots
@ -84,7 +93,6 @@ Colors when editing a Python file:
Distraction free mode using [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2): Distraction free mode using [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
![Screenshot 4](https://dnp4pehkvoo6n.cloudfront.net/f0dcc4c9739148c56cbf8285a910ac41/as/Zen%20mode.png) ![Screenshot 4](https://dnp4pehkvoo6n.cloudfront.net/f0dcc4c9739148c56cbf8285a910ac41/as/Zen%20mode.png)
## Included Plugins ## Included Plugins
I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience! I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience!
@ -92,11 +100,11 @@ I recommend reading the docs of these plugins to understand them better. Each pl
* [ack.vim](https://github.com/mileszs/ack.vim): Vim plugin for `the_silver_searcher` (ag) or ack -- a wicked fast grep * [ack.vim](https://github.com/mileszs/ack.vim): Vim plugin for `the_silver_searcher` (ag) or ack -- a wicked fast grep
* [bufexplorer.zip](https://github.com/vim-scripts/bufexplorer.zip): Quickly and easily switch between buffers. This plugin can be opened with `<leader+o>` * [bufexplorer.zip](https://github.com/vim-scripts/bufexplorer.zip): Quickly and easily switch between buffers. This plugin can be opened with `<leader+o>`
* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. It's mapped to `<Ctrl+F>` * [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. It's mapped to `<Ctrl+F>`
* [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2): * [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
* [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim * [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim
* [NERD Tree](https://github.com/preservim/nerdtree): A tree explorer plugin for vim * [NERD Tree](https://github.com/preservim/nerdtree): A tree explorer plugin for vim
* [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf` * [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf`
* [pathogen.vim](https://github.com/tpope/vim-pathogen): Manage your vim runtimepath * [pathogen.vim](https://github.com/tpope/vim-pathogen): Manage your vim runtimepath
* [snipmate.vim](https://github.com/garbas/vim-snipmate): snipmate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim * [snipmate.vim](https://github.com/garbas/vim-snipmate): snipmate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim
* [ale](https://github.com/dense-analysis/ale): Syntax and lint checking for vim (ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel) * [ale](https://github.com/dense-analysis/ale): Syntax and lint checking for vim (ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel)
* [vim-commentary](https://github.com/tpope/vim-commentary): Comment stuff out. Use `gcc` to comment out a line (takes a count), `gc` to comment out the target of a motion. `gcu` uncomments a set of adjacent commented lines. * [vim-commentary](https://github.com/tpope/vim-commentary): Comment stuff out. Use `gcc` to comment out a line (takes a count), `gc` to comment out the target of a motion. `gcu` uncomments a set of adjacent commented lines.
@ -110,7 +118,6 @@ I recommend reading the docs of these plugins to understand them better. Each pl
* [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) Is a plugin for visually displaying indent levels in Vim * [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) Is a plugin for visually displaying indent levels in Vim
* [editorconfig-vim](https://github.com/editorconfig/editorconfig-vim) EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. * [editorconfig-vim](https://github.com/editorconfig/editorconfig-vim) EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs.
## Included color schemes ## Included color schemes
* [peaksea](https://github.com/vim-scripts/peaksea): The default * [peaksea](https://github.com/vim-scripts/peaksea): The default
@ -120,7 +127,6 @@ I recommend reading the docs of these plugins to understand them better. Each pl
* [mayansmoke](https://github.com/vim-scripts/mayansmoke) * [mayansmoke](https://github.com/vim-scripts/mayansmoke)
* [vim-pyte](https://github.com/therubymug/vim-pyte) * [vim-pyte](https://github.com/therubymug/vim-pyte)
## Included modes ## Included modes
* [vim-coffee-script](https://github.com/kchmck/vim-coffee-script) * [vim-coffee-script](https://github.com/kchmck/vim-coffee-script)
@ -134,251 +140,317 @@ I recommend reading the docs of these plugins to understand them better. Each pl
* [vim-javascript](https://github.com/pangloss/vim-javascript) * [vim-javascript](https://github.com/pangloss/vim-javascript)
* [vim-python-pep8-indent](https://github.com/Vimjas/vim-python-pep8-indent) * [vim-python-pep8-indent](https://github.com/Vimjas/vim-python-pep8-indent)
## How to include your own stuff? ## How to include your own stuff?
After you have installed the setup, you can create **~/.vim_runtime/my_configs.vim** to fill in any configurations that are important for you. For instance, my **my_configs.vim** looks like this: After you have installed the setup, you can create **~/.vim_runtime/my_configs.vim** to fill in any configurations that are important for you. For instance, my **my_configs.vim** looks like this:
~/.vim_runtime (master)> cat my_configs.vim ```sh
map <leader>ct :cd ~/Desktop/Todoist/todoist<cr> ~/.vim_runtime (master)> cat my_configs.vim
map <leader>cw :cd ~/Desktop/Wedoist/wedoist<cr> map <leader>ct :cd ~/Desktop/Todoist/todoist<cr>
map <leader>cw :cd ~/Desktop/Wedoist/wedoist<cr>
```
You can also install your plugins, for instance, via pathogen you can install [vim-rails](https://github.com/tpope/vim-rails): You can also install your plugins, for instance, via pathogen you can install [vim-rails](https://github.com/tpope/vim-rails):
cd ~/.vim_runtime ```sh
git clone git://github.com/tpope/vim-rails.git my_plugins/vim-rails cd ~/.vim_runtime
git clone git://github.com/tpope/vim-rails.git my_plugins/vim-rails
```
You can also install plugins without any plugin manager (vim 8+ required): You can also install plugins without any plugin manager (vim 8+ required):
Add `packloadall` to your .vimrc file Add `packloadall` to your .vimrc file
Create pack plugin directory: Create pack plugin directory:
`mkdir -p ~/.vim/pack/plugins/start` `mkdir -p ~/.vim/pack/plugins/start`
Clone the plugin that you want in that directory, for example: Clone the plugin that you want in that directory, for example:
`git clone --depth=1 git://github.com/maxmellon/vim-jsx-pretty ~/.vim/pack/plugins/vim-jsx-pretty` `git clone --depth=1 git://github.com/maxmellon/vim-jsx-pretty ~/.vim/pack/plugins/vim-jsx-pretty`
## Key Mappings ## Key Mappings
The [leader](http://learnvimscriptthehardway.stevelosh.com/chapters/06.html#leader) is `,`, so whenever you see `<leader>` it means `,`. The [leader](http://learnvimscriptthehardway.stevelosh.com/chapters/06.html#leader) is `,`, so whenever you see `<leader>` it means `,`.
### Normal mode mappings ### Normal mode mappings
Fast saving of a buffer (`<leader>w`): Fast saving of a buffer (`<leader>w`):
nmap <leader>w :w!<cr> ```vim
nmap <leader>w :w!<cr>
```
Map `<Space>` to `/` (search) and `<Ctrl>+<Space>` to `?` (backwards search): Map `<Space>` to `/` (search) and `<Ctrl>+<Space>` to `?` (backwards search):
map <space> / ```vim
map <C-space> ? map <space> /
map <silent> <leader><cr> :noh<cr> map <C-space> ?
map <silent> <leader><cr> :noh<cr>
```
Disable highlights when you press `<leader><cr>`: Disable highlights when you press `<leader><cr>`:
map <silent> <leader><cr> :noh<cr> ```vim
map <silent> <leader><cr> :noh<cr>
```
Smart way to move between windows (`<ctrl>j` etc.): Smart way to move between windows (`<ctrl>j` etc.):
map <C-j> <C-W>j ```vim
map <C-k> <C-W>k map <C-j> <C-W>j
map <C-h> <C-W>h map <C-k> <C-W>k
map <C-l> <C-W>l map <C-h> <C-W>h
map <C-l> <C-W>l
```
Closing of the current buffer(s) (`<leader>bd` and (`<leader>ba`)): Closing of the current buffer(s) (`<leader>bd` and (`<leader>ba`)):
" Close current buffer ```vim
map <leader>bd :Bclose<cr> " Close current buffer
map <leader>bd :Bclose<cr>
" Close all buffers
map <leader>ba :1,1000 bd!<cr> " Close all buffers
map <leader>ba :1,1000 bd!<cr>
```
Useful mappings for managing tabs: Useful mappings for managing tabs:
map <leader>tn :tabnew<cr> ```vim
map <leader>to :tabonly<cr> map <leader>tn :tabnew<cr>
map <leader>tc :tabclose<cr> map <leader>to :tabonly<cr>
map <leader>tm :tabmove map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory " Opens a new tab with the current buffer's path
map <leader>te :tabedit <C-r>=expand("%:p:h")<cr>/ " Super useful when editing files in the same directory
map <leader>te :tabedit <C-r>=expand("%:p:h")<cr>/
```
Switch [CWD](http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file) to the directory of the open buffer: Switch [CWD](http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file) to the directory of the open buffer:
map <leader>cd :cd %:p:h<cr>:pwd<cr> ```vim
map <leader>cd :cd %:p:h<cr>:pwd<cr>
```
Open `ack.vim` for fast search: Open `ack.vim` for fast search:
map <leader>g :Ack ```vim
map <leader>g :Ack
```
Quickly open a buffer for scripbble: Quickly open a buffer for scripbble:
map <leader>q :e ~/buffer<cr> ```vim
map <leader>q :e ~/buffer<cr>
```
Toggle paste mode on and off: Toggle paste mode on and off:
map <leader>pp :setlocal paste!<cr>
```vim
map <leader>pp :setlocal paste!<cr>
```
### Visual mode mappings ### Visual mode mappings
Visual mode pressing `*` or `#` searches for the current selection: Visual mode pressing `*` or `#` searches for the current selection:
vnoremap <silent> * :call VisualSelection('f')<CR> ```vim
vnoremap <silent> # :call VisualSelection('b')<CR> vnoremap <silent> * :call VisualSelection('f')<CR>
vnoremap <silent> # :call VisualSelection('b')<CR>
```
When you press gv you `Ack.vim` after the selected text: When you press gv you `Ack.vim` after the selected text:
vnoremap <silent> gv :call VisualSelection('gv', '')<CR> ```vim
vnoremap <silent> gv :call VisualSelection('gv', '')<CR>
```
When you press `<leader>r` you can search and replace the selected text: When you press `<leader>r` you can search and replace the selected text:
vnoremap <silent> <leader>r :call VisualSelection('replace')<CR> ```vim
vnoremap <silent> <leader>r :call VisualSelection('replace')<CR>
```
Surround the visual selection in parenthesis/brackets/etc.: Surround the visual selection in parenthesis/brackets/etc.:
vnoremap $1 <esc>`>a)<esc>`<i(<esc> ```vim
vnoremap $2 <esc>`>a]<esc>`<i[<esc> vnoremap $1 <esc>`>a)<esc>`<i(<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc> vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $$ <esc>`>a"<esc>`<i"<esc> vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc> vnoremap $$ <esc>`>a"<esc>`<i"<esc>
vnoremap $e <esc>`>a`<esc>`<i`<esc> vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $e <esc>`>a`<esc>`<i`<esc>
```
### Insert mode mappings ### Insert mode mappings
Quickly insert parenthesis/brackets/etc.: Quickly insert parenthesis/brackets/etc.:
inoremap $1 ()<esc>i ```vim
inoremap $2 []<esc>i inoremap $1 ()<esc>i
inoremap $3 {}<esc>i inoremap $2 []<esc>i
inoremap $4 {<esc>o}<esc>O inoremap $3 {}<esc>i
inoremap $q ''<esc>i inoremap $4 {<esc>o}<esc>O
inoremap $e ""<esc>i inoremap $q ''<esc>i
inoremap $t <><esc>i inoremap $e ""<esc>i
inoremap $t <><esc>i
```
Insert the current date and time (useful for timestamps): Insert the current date and time (useful for timestamps):
iab xdate <C-r>=strftime("%d/%m/%y %H:%M:%S")<cr> ```vim
iab xdate <C-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
```
### Command line mappings ### Command line mappings
$q is super useful when browsing on the command line. It deletes everything until the last slash: $q is super useful when browsing on the command line. It deletes everything until the last slash:
cno $q <C-\>eDeleteTillSlash()<cr> ```vim
cno $q <C-\>eDeleteTillSlash()<cr>
```
Bash like keys for the command line: Bash like keys for the command line:
cnoremap <C-A> <Home> ```vim
cnoremap <C-E> <End> cnoremap <C-A> <Home>
cnoremap <C-K> <C-U> cnoremap <C-E> <End>
cnoremap <C-K> <C-U>
cnoremap <C-P> <Up> cnoremap <C-P> <Up>
cnoremap <C-N> <Down> cnoremap <C-N> <Down>
```
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): 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 ```vim
:W
```
### Plugin related mappings ### Plugin related mappings
Open [bufexplorer](https://github.com/vim-scripts/bufexplorer.zip) to see and manage the current buffers (`<leader>o`): Open [bufexplorer](https://github.com/vim-scripts/bufexplorer.zip) to see and manage the current buffers (`<leader>o`):
map <leader>o :BufExplorer<cr> ```vim
map <leader>o :BufExplorer<cr>
```
Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a file or a buffer (`<leader>j` or `<ctrl>f`): Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a file or a buffer (`<leader>j` or `<ctrl>f`):
" Quickly find and open a file in the CWD ```vim
let g:ctrlp_map = '<C-f>' " Quickly find and open a file in the CWD
let g:ctrlp_map = '<C-f>'
" Quickly find and open a recently opened file " Quickly find and open a recently opened file
map <leader>f :MRU<CR> map <leader>f :MRU<CR>
" Quickly find and open a buffer " Quickly find and open a buffer
map <leader>b :CtrlPBuffer<cr> map <leader>b :CtrlPBuffer<cr>
```
[NERD Tree](https://github.com/preservim/nerdtree) mappings: [NERD Tree](https://github.com/preservim/nerdtree) mappings:
map <leader>nn :NERDTreeToggle<cr> ```vim
map <leader>nb :NERDTreeFromBookmark map <leader>nn :NERDTreeToggle<cr>
map <leader>nf :NERDTreeFind<cr> map <leader>nb :NERDTreeFromBookmark
map <leader>nf :NERDTreeFind<cr>
```
[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. (`<leader>z`) [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. (`<leader>z`)
map <leader>z :Goyo<cr> ```vim
map <leader>z :Goyo<cr>
```
[vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors) mappings to manage multiple cursors at once: [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors) mappings to manage multiple cursors at once:
let g:multi_cursor_start_word_key = '<C-s>' ```vim
let g:multi_cursor_select_all_word_key = '<A-s>' let g:multi_cursor_start_word_key = '<C-s>'
let g:multi_cursor_start_key = 'g<C-s>' let g:multi_cursor_select_all_word_key = '<A-s>'
let g:multi_cursor_select_all_key = 'g<A-s>' let g:multi_cursor_start_key = 'g<C-s>'
let g:multi_cursor_next_key = '<C-s>' let g:multi_cursor_select_all_key = 'g<A-s>'
let g:multi_cursor_prev_key = '<C-p>' let g:multi_cursor_next_key = '<C-s>'
let g:multi_cursor_skip_key = '<C-x>' let g:multi_cursor_prev_key = '<C-p>'
let g:multi_cursor_quit_key = '<Esc>' let g:multi_cursor_skip_key = '<C-x>'
let g:multi_cursor_quit_key = '<Esc>'
```
[vim-yankstack](https://github.com/maxbrunsfeld/vim-yankstack) mappings to manage the kill-ring (clipboard): [vim-yankstack](https://github.com/maxbrunsfeld/vim-yankstack) mappings to manage the kill-ring (clipboard):
nmap <C-p> <Plug>yankstack_substitute_older_paste ```vim
nmap <C-n> <Plug>yankstack_substitute_newer_paste nmap <C-p> <Plug>yankstack_substitute_older_paste
nmap <C-n> <Plug>yankstack_substitute_newer_paste
```
[ctrl-p](https://github.com/ctrlpvim/ctrlp.vim) mappings to easily find and open a file, buffer, etc.: [ctrl-p](https://github.com/ctrlpvim/ctrlp.vim) mappings to easily find and open a file, buffer, etc.:
let g:ctrlp_map = '<C-f>' ```vim
map <leader>j :CtrlP<cr> let g:ctrlp_map = '<C-f>'
map <C-b> :CtrlPBuffer<cr> map <leader>j :CtrlP<cr>
map <C-b> :CtrlPBuffer<cr>
```
[vim-snipmate](https://github.com/garbas/vim-snipmate) mappings to autocomplete via snippets: [vim-snipmate](https://github.com/garbas/vim-snipmate) mappings to autocomplete via snippets:
ino <C-j> <C-r>=snipMate#TriggerSnippet()<cr> ```vim
snor <C-j> <esc>i<right><C-r>=snipMate#TriggerSnippet()<cr> ino <C-j> <C-r>=snipMate#TriggerSnippet()<cr>
snor <C-j> <esc>i<right><C-r>=snipMate#TriggerSnippet()<cr>
```
[vim-surround](https://github.com/tpope/vim-surround) mappings to easily surround a string with `_()` gettext annotation: [vim-surround](https://github.com/tpope/vim-surround) mappings to easily surround a string with `_()` gettext annotation:
vmap Si S(i_<esc>f) ```vim
au FileType mako vmap Si S"i${ _(<esc>2f"a) }<esc> vmap Si S(i_<esc>f)
au FileType mako vmap Si S"i${ _(<esc>2f"a) }<esc>
```
[ale](https://github.com/dense-analysis/ale) to easily go to the next Ale syntax/lint error: [ale](https://github.com/dense-analysis/ale) to easily go to the next Ale syntax/lint error:
nmap <silent> <leader>a <Plug>(ale_next_wrap) ```vim
nmap <silent> <leader>a <Plug>(ale_next_wrap)
```
[vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) the default mapping to toggle the plugin is (`<leader>ig`) [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) the default mapping to toggle the plugin is (`<leader>ig`)
You can also use the following commands inside Vim: ```vim
:IndentGuidesEnable " You can also use the following commands inside Vim:
:IndentGuidesDisable :IndentGuidesEnable
:IndentGuidesToggle :IndentGuidesDisable
:IndentGuidesToggle
```
[vim-fugitive](https://github.com/tpope/vim-fugitive) to copy the link to the line of a Git repository to the clipboard: [vim-fugitive](https://github.com/tpope/vim-fugitive) to copy the link to the line of a Git repository to the clipboard:
nnoremap <leader>v :.GBrowse!<CR> ```vim
xnoremap <leader>v :'<'>GBrowse!<CR> nnoremap <leader>v :.GBrowse!<CR>
xnoremap <leader>v :'<'>GBrowse!<CR>
```
### Spell checking ### Spell checking
Pressing `<leader>ss` will toggle spell checking: Pressing `<leader>ss` will toggle spell checking:
map <leader>ss :setlocal spell!<cr> ```vim
map <leader>ss :setlocal spell!<cr>
```
Shortcuts using `<leader>` instead of special characters: Shortcuts using `<leader>` instead of special characters:
map <leader>sn ]s ```vim
map <leader>sp [s map <leader>sn ]s
map <leader>sa zg map <leader>sp [s
map <leader>s? z= map <leader>sa zg
map <leader>s? z=
```
### Running Code ### Running Code
To run code directly from vim, press `F5`. The currently open code will execute without you having to type anything. 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 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
```
```sh
~/.vim_runtime/vimrcs/extended.vim ~/.vim_runtime/vimrcs/extended.vim
``` ```
### Cope ### Cope
Query `:help cope` if you are unsure what cope is. It's super useful! Query `:help cope` if you are unsure what cope is. It's super useful!
When you search with `Ack.vim`, display your results in cope by doing: When you search with `Ack.vim`, display your results in cope by doing:
@ -392,21 +464,22 @@ To go to the previous search results do:
Cope mappings: Cope mappings:
map <leader>cc :botright cope<cr> ```vim
map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg map <leader>cc :botright cope<cr>
map <leader>n :cn<cr> map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg
map <leader>p :cp<cr> map <leader>n :cn<cr>
map <leader>p :cp<cr>
```
## How to uninstall ## How to uninstall
Just do following: Just do following:
* Remove `~/.vim_runtime` * Remove `~/.vim_runtime`
* Remove any lines that reference `.vim_runtime` in your `~/.vimrc` * Remove any lines that reference `.vim_runtime` in your `~/.vimrc`
## Looking for a remote-first job? ## Looking for a remote-first job?
Maintaining this Vim configuration isn't my day job. Daily I am the founder/CEO of [Doist](https://doist.com/). You could come and help us build the workplace of the future while living a balanced life (anywhere in the world 🌍🌎🌏). Maintaining this Vim configuration isn't my day job. Daily I am the founder/CEO of [Doist](https://doist.com/). You could come and help us build the workplace of the future while living a balanced life (anywhere in the world 🌍🌎🌏).
PS: Using Vim isn't a requirement 😄 PS: Using Vim isn't a requirement 😄