diff options
| author | jdhao <jdhao@hotmail.com> | 2020-10-31 01:13:09 +0800 |
|---|---|---|
| committer | jdhao <jdhao@hotmail.com> | 2020-10-31 01:13:09 +0800 |
| commit | d0827ae776a83cddb30a4e7dada8d9f491cde334 (patch) | |
| tree | 9c4c39037c9e1288ceaa87a49c604c3bc7e28e94 /mappings.vim | |
| parent | bbceffe9cf7d806503930b82b0ac987d0fd9c0bd (diff) | |
move custom settings to core/ directory
Diffstat (limited to 'mappings.vim')
| -rw-r--r-- | mappings.vim | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/mappings.vim b/mappings.vim deleted file mode 100644 index 26bb3f3..0000000 --- a/mappings.vim +++ /dev/null @@ -1,213 +0,0 @@ -"{ Custom key mappings -" Save key strokes (now we do not need to press shift to enter command mode). -" Vim-sneak has also mapped `;`, so using the below mapping will break the map -" used by vim-sneak -nnoremap ; : -xnoremap ; : - -" Quicker way to open command window -nnoremap q; q: - -" Quicker <Esc> in insert mode -inoremap jk <Esc> - -" Turn the word under cursor to upper case -inoremap <c-u> <Esc>viwUea - -" Turn the current word into title case -inoremap <c-t> <Esc>b~lea - -" Paste non-linewise text above or below current cursor, -" see https://stackoverflow.com/a/1346777/6064933 -nnoremap <leader>p m`o<ESC>p`` -nnoremap <leader>P m`O<ESC>p`` - -" Shortcut for faster save and quit -nnoremap <silent> <leader>w :<C-U>update<CR> -" Saves the file if modified and quit -nnoremap <silent> <leader>q :<C-U>x<CR> -" Quit all opened buffers -nnoremap <silent> <leader>Q :<C-U>qa<CR> - -" Navigation in the location and quickfix list -nnoremap <silent> [l :<C-U>lprevious<CR>zv -nnoremap <silent> ]l :<C-U>lnext<CR>zv -nnoremap <silent> [L :<C-U>lfirst<CR>zv -nnoremap <silent> ]L :<C-U>llast<CR>zv -nnoremap <silent> [q :<C-U>cprevious<CR>zv -nnoremap <silent> ]q :<C-U>cnext<CR>zv -nnoremap <silent> [Q :<C-U>cfirst<CR>zv -nnoremap <silent> ]Q :<C-U>clast<CR>zv - -" Close location list or quickfix list if they are present, -" see https://superuser.com/q/355325/736190 -nnoremap<silent> \x :<C-U>windo lclose <bar> cclose<CR> - -" Close a buffer and switching to another buffer, do not close the -" window, see https://stackoverflow.com/q/4465095/6064933 -nnoremap <silent> \d :<C-U>bprevious <bar> bdelete #<CR> - -" Insert a blank line below or above current line (do not move the cursor), -" see https://stackoverflow.com/a/16136133/6064933 -nnoremap <expr> oo printf('m`%so<ESC>``', v:count1) -nnoremap <expr> OO printf('m`%sO<ESC>``', v:count1) - -" nnoremap oo @='m`o<c-v><Esc>``'<cr> -" nnoremap OO @='m`O<c-v><Esc>``'<cr> - -" the following two mappings work, but if you change double quote to single, it -" will not work -" nnoremap oo @="m`o\<lt>Esc>``"<cr> -" nnoremap oo @="m`o\e``"<cr> - -" Insert a space after current character -nnoremap <Space><Space> a<Space><ESC>h - -" Yank from current cursor position to the end of the line (make it -" consistent with the behavior of D, C) -nnoremap Y y$ - -" Move the cursor based on physical lines, not the actual lines. -nnoremap <expr> j (v:count == 0 ? 'gj' : 'j') -nnoremap <expr> k (v:count == 0 ? 'gk' : 'k') -nnoremap ^ g^ -nnoremap 0 g0 - -" Do not include white space characters when using $ in visual mode, -" see https://vi.stackexchange.com/q/12607/15292 -xnoremap $ g_ - -" Jump to matching pairs easily in normal mode -nnoremap <Tab> % - -" Go to start or end of line easier -nnoremap H ^ -xnoremap H ^ -nnoremap L g_ -xnoremap L g_ - -" Fast window switching, inspiration from -" https://stackoverflow.com/a/4373470/6064933 -nnoremap <M-left> <C-w>h -nnoremap <M-right> <C-w>l -nnoremap <M-down> <C-w>j -nnoremap <M-up> <C-w>k - -" Continuous visual shifting (does not exit Visual mode), `gv` means -" to reselect previous visual area, see https://superuser.com/q/310417/736190 -xnoremap < <gv -xnoremap > >gv - -" When completion menu is shown, use <cr> to select an item and do not add an -" annoying newline. Otherwise, <enter> is what it is. For more info , see -" https://superuser.com/a/941082/736190 and -" https://unix.stackexchange.com/q/162528/221410 -inoremap <expr> <cr> ((pumvisible())?("\<C-Y>"):("\<cr>")) -" Use <esc> to close auto-completion menu -inoremap <expr> <esc> ((pumvisible())?("\<C-e>"):("\<esc>")) - -" Tab-complete, see https://vi.stackexchange.com/q/19675/15292. -inoremap <expr> <tab> pumvisible() ? "\<c-n>" : "\<tab>" -inoremap <expr> <s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>" - -" Edit and reload init.vim quickly -nnoremap <silent> <leader>ev :<C-U>tabnew $MYVIMRC <bar> tcd %:h<cr> -nnoremap <silent> <leader>sv :<C-U>silent update $MYVIMRC <bar> source $MYVIMRC <bar> - \ echomsg "Nvim config successfully reloaded!"<cr> - -" Reselect the text that has just been pasted, see also https://stackoverflow.com/a/4317090/6064933. -nnoremap <expr> <leader>v printf('`[%s`]', getregtype()[0]) - -" Search in selected region -vnoremap / :<C-U>call feedkeys('/\%>'.(line("'<")-1).'l\%<'.(line("'>")+1)."l")<CR> - -" Find and replace (like Sublime Text 3) -nnoremap <C-H> :%s/ -xnoremap <C-H> :s/ - -" Change current working directory locally and print cwd after that, -" see https://vim.fandom.com/wiki/Set_working_directory_to_the_current_file -nnoremap <silent> <leader>cd :<C-U>lcd %:p:h<CR>:pwd<CR> - -" Use Esc to quit builtin terminal -tnoremap <ESC> <C-\><C-n> - -" Toggle spell checking (autosave does not play well with z=, so we disable it -" when we are doing spell checking) -nnoremap <silent> <F11> :<C-U>set spell! <bar> :AutoSaveToggle<cr> -inoremap <silent> <F11> <C-O>:<C-U>set spell! <bar> :AutoSaveToggle<cr> - -" Decrease indent level in insert mode with shift+tab -inoremap <S-Tab> <ESC><<i - -" Change text without putting it into the vim register, -" see https://stackoverflow.com/q/54255/6064933 -nnoremap c "_c -nnoremap C "_C -nnoremap cc "_cc -xnoremap c "_c - -" Remove trailing whitespace characters -nnoremap <silent> <leader><Space> :<C-U>call utils#StripTrailingWhitespaces()<CR> - -" check the syntax group of current cursor position -nnoremap <silent> <leader>st :<C-U>call utils#SynGroup()<CR> - -" Clear highlighting -if maparg('<C-L>', 'n') ==# '' - nnoremap <silent> <C-L> :<C-U>nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L> -endif - -" Copy entire buffer. -nnoremap <silent> <leader>y :<C-U>%y<CR> - -" Toggle cursor column -nnoremap <silent> <leader>cl :<C-U>call utils#ToggleCursorCol()<CR> - -" Move current line up and down -nnoremap <silent> <A-k> <Cmd>call utils#SwitchLine(line('.'), 'up')<CR> -nnoremap <silent> <A-j> <Cmd>call utils#SwitchLine(line('.'), 'down')<CR> - -" Move current visual-line selection up and down -xnoremap <silent> <A-k> :<C-U>call utils#MoveSelection('up')<CR> -xnoremap <silent> <A-j> :<C-U>call utils#MoveSelection('down')<CR> - -" Replace visual selection with text in register, but not contaminate the -" register, see also https://stackoverflow.com/q/10723700/6064933. -xnoremap p "_c<ESC>p - -nnoremap <silent> gb :<C-U>call <SID>GoToBuffer(v:count, 'forward')<CR> -nnoremap <silent> gB :<C-U>call <SID>GoToBuffer(v:count, 'backward')<CR> - -function! s:GoToBuffer(count, direction) abort - if a:count == 0 - if a:direction ==# 'forward' - bnext - elseif a:direction ==# 'backward' - bprevious - else - echoerr 'Bad argument ' a:direction - endif - return - endif - " Check the validity of buffer number. - if index(s:GetBufNums(), a:count) == -1 - echohl WarningMsg | echomsg 'Invalid bufnr: ' a:count | echohl None - return - endif - - " Do not use {count} for gB (it is less useful) - if a:direction ==# 'forward' - silent execute('buffer' . a:count) - endif -endfunction - -function! s:GetBufNums() abort - return map(copy(getbufinfo({'buflisted':1})), 'v:val.bufnr') -endfunction - -nnoremap <Left> <C-W>h -nnoremap <Right> <C-W>l -nnoremap <Up> <C-W>k -nnoremap <Down> <C-W>j -"} |
