diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2018-07-02 11:07:56 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2018-07-02 11:07:56 +1200 |
commit | b6cfedbbf4e02e71fbd0e44a70a33227ce03c0ed (patch) | |
tree | 45fca8d773e13b2129529ba188f7c39034fd8fbd /vim/vimrc | |
parent | Merge branch 'release/v1.14.0' (diff) | |
parent | Bump VERSION (diff) | |
download | dotfiles-1.15.0.tar.gz (sig) dotfiles-1.15.0.zip |
Merge branch 'release/v1.15.0'v1.15.0
* release/v1.15.0: (37 commits)
Bump VERSION
Reimplement fallback for fixed_join.vim
Add insert_cancel.vim plugin and configuration
Clear away stock vim ftplugin's buffer maps
Correct \V mapping
Include install-vim-plugin in install-vim target
Break up \o and \O mapping comment
Move plugin-specific settings into ~/.vim/plugin
Remove custom digraphs
Remove unnecessary value report from \u \z maps
Add \m, \M, \v, and \V mappings
Allow range for \d and \D bindings
Swap \c and \C bindings
Rearrange mappings a little more
Remove unused mappings
Simplify Ctrl-L Vim map
Reorder mappings
Remove conditional around \d,\D maps
Remove range strip from :& rebind
Prefer "remap" to "rebind"
...
Diffstat (limited to 'vim/vimrc')
-rw-r--r-- | vim/vimrc | 153 |
1 files changed, 53 insertions, 100 deletions
@@ -36,7 +36,7 @@ set shiftwidth=4 " Indent with four spaces " Spaces to insert on Tab key insert if v:version > 703 || v:version == 703 && has('patch693') - set softtabstop=-1 " Refer to 'shifwidth' if supported + set softtabstop=-1 " Refer to 'shiftwidth' if supported else set softtabstop=4 " Otherwise just four spaces endif @@ -111,11 +111,6 @@ set shortmess+=m " [Modified] -> [+] set shortmess+=r " [readonly] -> [RO] set shortmess+=w " written -> [w], appended -> [a] -" Show my current position in the status bar -if has('cmdline_info') - set ruler -endif - " Clear default 'comments' value, let the filetype handle it if has('comments') set comments= @@ -142,12 +137,9 @@ endif if has('linebreak') set linebreak " Break lines at word boundaries set showbreak=... " Prefix wrapped rows with three dots - - " Indent wrapped lines, if supported if exists('+breakindent') - set breakindent + set breakindent " Indent wrapped lines, if supported endif - endif " Let me move beyond buffer text in visual block mode @@ -159,12 +151,9 @@ endif if has('wildmenu') set wildmenu " Use wildmenu set wildmode=list:longest " Tab press completes and lists - - " Complete files without case sensitivity, if supported if exists('+wildignorecase') - set wildignorecase + set wildignorecase " Case insensitive, if supported endif - endif " New windows go below or to the right of a split @@ -175,27 +164,31 @@ if has('windows') endif endif -" Rebind normal, visual <Space> to scroll down a page +" Stack normal/visual/select Ctrl-L to clear search highlight +noremap <silent> <C-L> :<C-U>nohlsearch<CR><C-L> + +" Stack insert Ctrl-C to undo the escaped insert operation +" Default to not-quite-correct vim-tiny-compatible map if no plugin +inoremap <Plug>InsertCancel <C-C>u +imap <C-C> <Plug>InsertCancel + +" Remap normal J to stay in place while joining lines +" Default to not-quite-correct vim-tiny-compatible map if no plugin +nnoremap <Plug>FixedJoin mzJ`z +nmap J <Plug>FixedJoin + +" Remap normal/visual <Space> to scroll down a page nnoremap <Space> <C-F> if v:version >= 700 xnoremap <Space> <C-F> endif -" Rebind normal, visual & to preserve substitution flags -nnoremap <silent> & :<C-U>&&<CR> +" Remap normal/visual & to preserve substitution flags +nnoremap <silent> & :&&<CR> if v:version >= 700 xnoremap <silent> & :&&<CR> endif -" Stack insert Ctrl-C to undo the escaped insert operation -inoremap <C-C> <C-C>u - -" Stack normal, visual Ctrl-L to clear search highlight before redraw -nnoremap <silent> <C-L> :<C-U>nohlsearch<CR><C-L> -if v:version >= 700 - xnoremap <silent> <C-L> :<C-U>nohlsearch<CR>gv<C-L> -endif - " Cycle through argument list nnoremap [a :<C-U>previous<CR> nnoremap ]a :<C-U>next<CR> @@ -216,103 +209,63 @@ nnoremap ]t :<C-U>tabnext<CR> nmap [<Space> <Plug>PutBlankLinesAbove nmap ]<Space> <Plug>PutBlankLinesBelow -" Remap normal J to stay in place while joining lines -if &loadplugins - nmap J <Plug>FixedJoin -endif - -" Remap normal Y to yank to end of line (consistent with C, D) -nnoremap Y y$ - -" ZA unconditionally writes all buffers -nnoremap ZA :<C-U>wall!<CR> -" ZW unconditionally writes current buffer -nnoremap ZW :<C-U>write!<CR> - -" Normal mode leader mappings below; use a literal backslash rather than -" <Leader> on the non-plugin maps so that they work on vim-tiny +" Normal mode leader mappings below; use <Bslash> rather than <Leader> on the +" non-plugin maps so that they work on vim-tiny " \a toggles 'formatoptions' 'a' flag using a plugin nnoremap <Leader>a :<C-U>ToggleOptionFlagLocal formatoptions a<CR> " \b toggles copy-pasteable linebreak settings nmap <Leader>b <Plug>CopyLinebreakToggle -" \c toggles 'cursorcolumn', \C toggles 'cursorline' -nnoremap \c :<C-U>set cursorcolumn! cursorcolumn?<CR> -nnoremap \C :<C-U>set cursorline! cursorline?<CR> -" Current date and time insertion commands, requiring POSIX date(1) -if has('unix') - " \d inserts the local date - nnoremap \d :<C-U>read !date<CR> - " \D inserts the UTC date - nnoremap \D :<C-U>read !date -u<CR> -endif +" \c toggles 'cursorline' +nnoremap <Bslash>c :<C-U>set cursorline! cursorline?<CR> +" \C toggles 'cursorcolumn' +nnoremap <Bslash>C :<C-U>set cursorcolumn! cursorcolumn?<CR> +" \d inserts the local date (POSIX date) +nnoremap <Bslash>d :read !date<CR> +" \D inserts the UTC date (POSIX date) +nnoremap <Bslash>D :read !date -u<CR> " \f shows the current 'formatoptions' at a glance -nnoremap \f :<C-U>set formatoptions?<CR> +nnoremap <Bslash>f :<C-U>set formatoptions?<CR> " \g changes directory to the current file's location -nnoremap \g :<C-U>cd %:h<CR>:pwd<CR> +nnoremap <Bslash>g :<C-U>cd %:h<CR>:pwd<CR> " \h toggles highlighting search results -nnoremap \h :<C-U>set hlsearch! hlsearch?<CR> +nnoremap <Bslash>h :<C-U>set hlsearch! hlsearch?<CR> " \i toggles showing matches as I enter my pattern -nnoremap \i :<C-U>set incsearch! incsearch?<CR> +nnoremap <Bslash>i :<C-U>set incsearch! incsearch?<CR> " \j jumps to buffers (jetpack) -nnoremap \j :<C-U>buffers<CR>:buffer<Space> +nnoremap <Bslash>j :<C-U>buffers<CR>:buffer<Space> " \l toggles showing tab, end-of-line, and trailing whitespace -nnoremap \l :<C-U>set list! list?<CR> +nnoremap <Bslash>l :<C-U>set list! list?<CR> +" \m shows all maps +nnoremap <Bslash>m :<C-U>map<CR> +" \M shows buffer-local maps +nnoremap <Bslash>M :<C-U>map <buffer><CR> " \n toggles line numbers -nnoremap \n :<C-U>set number! number?<CR> -" \o and \O open 'pasted insert' lines +nnoremap <Bslash>n :<C-U>set number! number?<CR> +" \o opens a line below in paste mode nmap <Leader>o <Plug>PasteOpenBelow +" \o opens a line above in paste mode nmap <Leader>O <Plug>PasteOpenAbove " \p toggles paste mode -nnoremap \p :<C-U>set paste! paste?<CR> +nnoremap <Bslash>p :<C-U>set paste! paste?<CR> " \r reloads .vimrc -nnoremap \r :<C-U>source $MYVIMRC<CR> +nnoremap <Bslash>r :<C-U>source $MYVIMRC<CR> " \s toggles spell checking -nnoremap \s :<C-U>setlocal spell! spell?<CR> +nnoremap <Bslash>s :<C-U>setlocal spell! spell?<CR> " \t shows current filetype -nnoremap \t :<C-U>set filetype?<CR> +nnoremap <Bslash>t :<C-U>set filetype?<CR> " \u sets US English spelling (compare \z) -nnoremap \u :<C-U>setlocal spelllang=en_us spelllang?<CR> +nnoremap <Bslash>u :<C-U>setlocal spelllang=en_us<CR> +" \v shows all global variables +nnoremap <Bslash>v :<C-U>let g: v:<CR> +" \V shows all local variables +nnoremap <Bslash>V :<C-U>let b: t: w:<CR> " \w toggles wrapping -nnoremap \w :<C-U>set wrap! wrap?<CR> +nnoremap <Bslash>w :<C-U>set wrap! wrap?<CR> " \x strips trailing whitespace via a custom plugin nmap <Leader>x <Plug>StripTrailingWhitespace " \z sets NZ English spelling (compare \u) -nnoremap \z :<C-U>setlocal spelllang=en_nz spelllang?<CR> - -" Custom digraphs -if has('digraphs') - digraph ./ 8230 " HORIZONTAL ELLIPSIS U+2026 - digraph %% 8984 " PLACE OF INTEREST SIGN U+2318 (Mac command key) - digraph 8: 9731 " SNOWMAN U+2603 -endif - -" Settings for plugins -if &loadplugins - - " Add packaged matchit.vim, if supported - if has('packages') && !has('nvim') - packadd! matchit - endif - - " Skip loading some plugins: - " I manage plugins myself with Git and a Makefile - let g:loaded_getscriptPlugin = 1 - let g:loaded_vimballPlugin = 1 - " Vim is the wrong tool for reading archives or compressed text - let g:loaded_gzip = 1 - let g:loaded_tarPlugin = 1 - let g:loaded_zipPlugin = 1 - " I prefer filtering text with Unix tools - let g:loaded_logiPat = 1 - " The shell, tab completion, and 'wildmenu' are good enough - let g:loaded_netrwPlugin = 1 - " I don't use Vim servers - let g:loaded_rrhelper = 1 - " I don't need extra spelling files - let g:loaded_spellfile_plugin = 1 - -endif +nnoremap <Bslash>z :<C-U>setlocal spelllang=en_nz<CR> " Source any .vim files from ~/.vim/config runtime! config/*.vim |