vim: cleanup hotkeys & bindings
This commit is contained in:
201
vim/.vimrc
201
vim/.vimrc
@@ -19,9 +19,10 @@ set fileencoding=utf-8
|
|||||||
set history=1000
|
set history=1000
|
||||||
|
|
||||||
" Remap the <leader> to ,
|
" Remap the <leader> to ,
|
||||||
" nnoremap <Space> <Nop>
|
nnoremap <Space> <Nop>
|
||||||
let mapleader=","
|
" let mapleader=','
|
||||||
let maplocalleader = ","
|
" let maplocalleader = ','
|
||||||
|
let mapleader=' '
|
||||||
|
|
||||||
" Includes ftplugin.vim which is responsible for filetype detection
|
" Includes ftplugin.vim which is responsible for filetype detection
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
@@ -485,6 +486,9 @@ set mousehide
|
|||||||
" conceal mostly for markdown
|
" conceal mostly for markdown
|
||||||
set conceallevel=2
|
set conceallevel=2
|
||||||
|
|
||||||
|
" Highlight VCS conflict markers
|
||||||
|
match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$'
|
||||||
|
|
||||||
set statusline=
|
set statusline=
|
||||||
set statusline+=%#PmenuSel#
|
set statusline+=%#PmenuSel#
|
||||||
set statusline+=%{StatuslineGit()}
|
set statusline+=%{StatuslineGit()}
|
||||||
@@ -579,16 +583,12 @@ endif
|
|||||||
|
|
||||||
" Automatically inserts one extra level of indentation in some cases
|
" Automatically inserts one extra level of indentation in some cases
|
||||||
set smartindent
|
set smartindent
|
||||||
|
|
||||||
" Affects how <TAB> key presses are interpreted depending on where the cursor is
|
" Affects how <TAB> key presses are interpreted depending on where the cursor is
|
||||||
set smarttab
|
set smarttab
|
||||||
|
|
||||||
" Tab counts as 2 columns
|
" Tab counts as 2 columns
|
||||||
set tabstop=2
|
set tabstop=2
|
||||||
|
|
||||||
" Numbers of spaces to (auto)indent
|
" Numbers of spaces to (auto)indent
|
||||||
set shiftwidth=2
|
set shiftwidth=2
|
||||||
|
|
||||||
" Spaces
|
" Spaces
|
||||||
set expandtab
|
set expandtab
|
||||||
|
|
||||||
@@ -597,143 +597,77 @@ set expandtab
|
|||||||
" ========================================================
|
" ========================================================
|
||||||
" -> Hotkeys & Bindings
|
" -> Hotkeys & Bindings
|
||||||
" ========================================================
|
" ========================================================
|
||||||
" Remap ; to :
|
|
||||||
nnoremap ; :
|
nnoremap ; :
|
||||||
|
|
||||||
" Close buffer by Q
|
|
||||||
nnoremap <silent> Q :q!<CR>
|
nnoremap <silent> Q :q!<CR>
|
||||||
|
|
||||||
" Move between splits
|
|
||||||
nnoremap <C-h> <C-w>h
|
nnoremap <C-h> <C-w>h
|
||||||
nnoremap <C-j> <C-w>j
|
nnoremap <C-j> <C-w>j
|
||||||
nnoremap <C-k> <C-w>k
|
nnoremap <C-k> <C-w>k
|
||||||
nnoremap <C-l> <C-w>l
|
nnoremap <C-l> <C-w>l
|
||||||
|
|
||||||
" Bash like keys for the vim command line
|
|
||||||
cnoremap <C-A> <Home>
|
cnoremap <C-A> <Home>
|
||||||
cnoremap <C-E> <End>
|
cnoremap <C-E> <End>
|
||||||
|
|
||||||
" ,<space> -> clears search highlight
|
nnoremap ,, <C-^>
|
||||||
nmap <silent><leader><space> :nohlsearch<cr>
|
|
||||||
" ,, -> toggle between last open buffers
|
|
||||||
nmap <leader><leader> <c-^>
|
|
||||||
" CtrlP -> fzf :Files
|
|
||||||
nnoremap <silent> <expr> <space> (expand('%') =~ 'NERD_tree' ? "\<c-w>\<c-w>" : '').":Files\<cr>"
|
|
||||||
" ,w -> strip trailing whitespace
|
|
||||||
nmap <silent><leader>w :call StripTrailingWhitespace()<CR>
|
|
||||||
" ,x rubocop --auto-correct
|
|
||||||
nmap <silent><leader>x :ALEFix<CR>
|
|
||||||
" ,n -> NERDTree
|
|
||||||
nmap <silent><leader>n :NERDTreeToggle<CR>
|
|
||||||
" ,c -> next conflict marker
|
|
||||||
nmap <silent><leader>c <ESC>/\v^[<=>]{7}( .*\|$)<CR>
|
|
||||||
" ,b -> Gblame
|
|
||||||
nmap <leader>b :Gblame<CR>
|
|
||||||
" ,t -> opens new tab
|
|
||||||
nmap <leader>t :tabnew<CR>
|
|
||||||
" ,f -> prompts for search
|
|
||||||
nmap <leader>f :CtrlSF
|
|
||||||
" ,g -> Gitv
|
|
||||||
nmap <leader>g :Gitv <CR>
|
|
||||||
" ,d -> binding fucking pry
|
|
||||||
nmap <leader>d orequire 'pry'; binding.pry<ESC>
|
|
||||||
nmap <leader>D Orequire 'pry'; binding.pry<ESC>
|
|
||||||
" ,p -> current buffer file path
|
|
||||||
nmap <leader>p :echo @%<CR>
|
|
||||||
" ,s -> reload vimrc
|
|
||||||
nmap <silent><leader>s :so ~/.vimrc<CR>
|
|
||||||
" ,rh -> hashrocket to :
|
|
||||||
nmap <leader>rh :%s/\v:(\w+) \=\>/\1:/g<cr>
|
|
||||||
" ,r ->
|
|
||||||
nmap <leader>r :TestFile<CR>
|
|
||||||
" ,j ->
|
|
||||||
nmap <leader>j :%!python -m json.tool<CR>
|
|
||||||
|
|
||||||
" Switching between tabs
|
nnoremap <silent> <expr> <leader>f (expand('%') =~ 'NERD_tree' ? "\<C-w>\<C-w>" : '').":Files\<CR>"
|
||||||
nmap <silent><Tab> :tabnext<CR>
|
nnoremap <silent> <expr> <leader>b (expand('%') =~ 'NERD_tree' ? "\<C-w>\<C-w>" : '').":Buffers\<CR>"
|
||||||
nmap <silent><S-Tab> :tabprevious<CR>
|
nnoremap <silent> <expr> <leader>s (expand('%') =~ 'NERD_tree' ? "\<C-w>\<C-w>" : '').":Snippets\<CR>"
|
||||||
|
|
||||||
" n/N centers screen on the entry
|
nnoremap <silent> <leader>x :ALEFix<CR>
|
||||||
nmap N Nzz
|
nnoremap <silent> <leader>n :NERDTreeToggle<CR>
|
||||||
nmap n nzz
|
nnoremap <silent> <leader>c <ESC>/\v^[<=>]{7}( .*\|$)<CR>
|
||||||
|
nnoremap <silent> <leader>t :tabnew<CR>
|
||||||
|
nnoremap <silent> <leader>d orequire 'pry'; binding.pry<ESC>
|
||||||
|
nnoremap <silent> <leader>D Orequire 'pry'; binding.pry<ESC>
|
||||||
|
nnoremap <silent> <leader>r :TestFile<CR>
|
||||||
|
nnoremap <silent> <leader>j :%!python -m json.tool<CR>
|
||||||
|
nnoremap <silent> <leader>w :w<CR>
|
||||||
|
nnoremap <silent> <leader><space> :nohlsearch<CR>
|
||||||
|
|
||||||
" Move properly when line wrapping is on
|
nnoremap <silent> <leader>ga :Gwrite<CR>
|
||||||
|
nnoremap <silent> <leader>gc :Gcommit<CR>
|
||||||
|
nnoremap <silent> <leader>gp :Gpush<CR>
|
||||||
|
nnoremap <silent> <leader>gup :Gpull<CR>
|
||||||
|
nnoremap <silent> <leader>gs :Gstatus<CR>
|
||||||
|
nnoremap <silent> <leader>gd :Gvdiff<CR>
|
||||||
|
nnoremap <silent> <expr> <leader>gl (expand('%') =~ 'NERD_tree' ? "\<C-w>\<C-w>" : '').":Commits\<CR>"
|
||||||
|
|
||||||
|
nnoremap <leader>p :echo @%<CR>
|
||||||
|
|
||||||
|
nnoremap <silent><Tab> :tabnext<CR>
|
||||||
|
nnoremap <silent><S-Tab> :tabprevious<CR>
|
||||||
|
|
||||||
|
nnoremap yy Y
|
||||||
|
nnoremap Y y$
|
||||||
|
nnoremap N Nzz
|
||||||
|
nnoremap n nzz
|
||||||
nnoremap j gj
|
nnoremap j gj
|
||||||
nnoremap k gk
|
nnoremap k gk
|
||||||
|
nnoremap H ^
|
||||||
|
nnoremap L $
|
||||||
|
nnoremap J mzJ`z
|
||||||
|
nnoremap gQ <Nop>
|
||||||
|
|
||||||
" Visual mode indentations
|
vnoremap . :normal .<CR>
|
||||||
|
vnoremap J :m '>+1<CR>gv=gv
|
||||||
|
vnoremap K :m '<-2<CR>gv=gv
|
||||||
vnoremap < <gv
|
vnoremap < <gv
|
||||||
vnoremap > >gv
|
vnoremap > >gv
|
||||||
|
|
||||||
" Make Y/yy consistent with D/dd and C/cc
|
xmap \ <Plug>Commentary
|
||||||
nnoremap yy Y
|
nmap \ <Plug>Commentary
|
||||||
nnoremap Y y$
|
nmap \\ <Plug>CommentaryLine
|
||||||
|
|
||||||
" vv/ss for splits
|
|
||||||
nnoremap <silent>vv <c-w>v
|
|
||||||
" nnoremap <silent>ss <c-w>s
|
|
||||||
|
|
||||||
" Highlight VCS conflict markers
|
|
||||||
match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$'
|
|
||||||
|
|
||||||
" Start interactive EasyAlign in visual mode
|
|
||||||
vmap <Enter> <Plug>(EasyAlign)
|
|
||||||
|
|
||||||
" Ctrl + e for emmet
|
|
||||||
imap <C-e> <C-y>, <CR>
|
|
||||||
|
|
||||||
" Allow the . to execute once for each line of a visual selection
|
|
||||||
vnoremap . :normal .<CR>
|
|
||||||
|
|
||||||
" Makes more sense
|
|
||||||
nnoremap H ^
|
|
||||||
nnoremap L $
|
|
||||||
|
|
||||||
" Avoid entering Ex mode by pressing gQ
|
|
||||||
nnoremap gQ <nop>
|
|
||||||
|
|
||||||
" Scratchpad
|
|
||||||
nnoremap <BS> :tabnew ~/iCloud/Wiki/index.md<CR>
|
nnoremap <BS> :tabnew ~/iCloud/Wiki/index.md<CR>
|
||||||
|
|
||||||
" I don't use it
|
nnoremap <silent>vv <c-w>v
|
||||||
nnoremap K <nop>
|
" nnoremap <silent>ss <c-w>s TODO:
|
||||||
" K reverse of J
|
|
||||||
" nnoremap K f<space>r<CR>
|
|
||||||
|
|
||||||
" Move visual block
|
nmap <C-f> <Plug>CtrlSFPrompt
|
||||||
vnoremap J :m '>+1<CR>gv=gv
|
nnoremap <silent><C-w> :call StripTrailingWhitespace()<CR>
|
||||||
vnoremap K :m '<-2<CR>gv=gv
|
|
||||||
|
|
||||||
" Keep the cursor in place while joining lines
|
|
||||||
nnoremap J mzJ`z
|
|
||||||
|
|
||||||
" Keep old vim-commentary hotkeys
|
|
||||||
xmap \\ <Plug>Commentary
|
|
||||||
nmap \\ <Plug>Commentary
|
|
||||||
nmap \\\ <Plug>CommentaryLine
|
|
||||||
nmap \\u <Plug>CommentaryUndo
|
|
||||||
|
|
||||||
" git
|
|
||||||
noremap <leader>ga :Gwrite<CR>
|
|
||||||
noremap <leader>gc :Gcommit<CR>
|
|
||||||
noremap <leader>gp :Gpush<CR>
|
|
||||||
noremap <leader>gup :Gpull<CR>
|
|
||||||
noremap <leader>gs :Gstatus<CR>
|
|
||||||
noremap <leader>gd :Gvdiff<CR>
|
|
||||||
|
|
||||||
" Color under cursor
|
|
||||||
map <F10> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR>
|
|
||||||
|
|
||||||
" EXPERIMENTAL:
|
|
||||||
noremap <leader>w :w<CR>
|
|
||||||
|
|
||||||
nmap <silent> <leader>r :TestFile<CR>
|
|
||||||
nmap <silent> t<C-n> :TestNearest<CR>
|
|
||||||
nmap <silent> t<C-n> :TestNearest<CR>
|
|
||||||
nmap <silent> t<C-f> :TestFile<CR>
|
|
||||||
nmap <silent> t<C-s> :TestSuite<CR>
|
|
||||||
nmap <silent> t<C-l> :TestLast<CR>
|
|
||||||
nmap <silent> t<C-g> :TestVisit<CR>
|
|
||||||
|
|
||||||
inoremap <C-e> <END>
|
inoremap <C-e> <END>
|
||||||
vnoremap <C-e> <END>
|
vnoremap <C-e> <END>
|
||||||
@@ -741,3 +675,32 @@ cnoremap <C-e> <END>
|
|||||||
inoremap <C-a> <HOME>
|
inoremap <C-a> <HOME>
|
||||||
vnoremap <C-a> <HOME>
|
vnoremap <C-a> <HOME>
|
||||||
cnoremap <C-a> <HOME>
|
cnoremap <C-a> <HOME>
|
||||||
|
|
||||||
|
" =====================================
|
||||||
|
" TODO: DEAL WITH THIS
|
||||||
|
|
||||||
|
" TODO: this requires double C-b for some reason
|
||||||
|
nnoremap <silent><C-b> :Gblame<CR>
|
||||||
|
|
||||||
|
" ,rh -> hashrocket to : TODO: think about it
|
||||||
|
" nnoremap <leader>rh :%s/\v:(\w+) \=\>/\1:/g<CR>
|
||||||
|
|
||||||
|
" ,s -> reload vimrc TODO: do something useful instead
|
||||||
|
" nnoremap <silent><leader>s :so ~/.vimrc<CR>
|
||||||
|
"
|
||||||
|
" nnoremap <silent><C-g> :Gitv<CR> TODO: No longer have gitv
|
||||||
|
|
||||||
|
" Start interactive EasyAlign in visual mode
|
||||||
|
vmap <Enter> <Plug>(EasyAlign)
|
||||||
|
" Start interactive EasyAlign in visual mode (e.g. vipga)
|
||||||
|
xmap ga <Plug>(EasyAlign)
|
||||||
|
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
|
||||||
|
nmap ga <Plug>(EasyAlign)
|
||||||
|
|
||||||
|
" Ctrl + e for emmet
|
||||||
|
imap <C-e> <C-y>, <CR>
|
||||||
|
|
||||||
|
" I don't use it
|
||||||
|
nnoremap K <nop>
|
||||||
|
" K reverse of J
|
||||||
|
" nnoremap K f<space>r<CR>
|
||||||
|
|||||||
Reference in New Issue
Block a user