From 14717e30050f06a58402d26f302c2b4d53a77ada Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 12:49:43 +1200 Subject: Remove Unix 'backupskip' parts if not running Unix --- vim/vimrc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'vim') diff --git a/vim/vimrc b/vim/vimrc index 68f18c8a..f4cb5171 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -55,6 +55,10 @@ endif " Add some paths not to back up set backupskip^=/dev/shm/* " Shared memory RAM disk set backupskip^=/var/tmp/* " Debian's $TMPDIR for sudoedit(8) +if !has('unix') + set backupskip-=/dev/shm/* + set backupskip-=/var/tmp/* +endif " Indent wrapped lines silent! set breakindent -- cgit v1.2.3 From bc97c06effedd53ec5e18920bdc8dd6a06c74d92 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 12:50:15 +1200 Subject: Reorder .vimrc a bit --- vim/vimrc | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'vim') diff --git a/vim/vimrc b/vim/vimrc index f4cb5171..e28aa00c 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -66,6 +66,12 @@ silent! set breakindent " Clear default 'comments' value, let the filetype handle it set comments= +" Add completion options +if exists('+completeopt') + set completeopt+=longest " Insert longest common substring + set completeopt+=menuone " Show the menu even if only one match +endif + " Give me a prompt instead of just rejecting risky :write, :saveas set confirm @@ -91,6 +97,12 @@ endif " Don't wait for a key after Escape in insert mode silent! set noesckeys +" Fold based on indent, but only when I ask +if has('folding') + set foldlevelstart=99 + set foldmethod=indent +endif + " Delete comment leaders when joining lines, if supported silent! set formatoptions+=j @@ -99,6 +111,11 @@ if system('grep --version') =~# '^grep (GNU grep)' set grepprg=grep\ -HnRs\ --exclude='.git*' endif +" Don't load GUI menus; set here before GUI starts +if has('gui_running') + set guioptions+=M +endif + " Allow buffers to have changes without being displayed set hidden @@ -143,6 +160,12 @@ set nrformats-=octal set path-=/usr/include " Let the C/C++ filetypes set that set path+=** " Search current directory's whole tree +" Make sessions usable +if exists('+sessionoptions') + set sessionoptions-=localoptions " No buffer options or mappings + set sessionoptions-=options " No global options or mappings +endif + " Don't show startup splash screen (I donated) set shortmess+=I @@ -159,28 +182,6 @@ set timeoutlen=3000 " No terminal mouse, even if we could silent! set ttymouse= -" Wildmenu settings; see also plugin/wildignore.vim -set wildmenu " Use wildmenu -set wildmode=list:longest " Tab press completes and lists -silent! set wildignorecase " Case insensitive, if supported - -" Add completion options -if exists('+completeopt') - set completeopt+=longest " Insert longest common substring - set completeopt+=menuone " Show the menu even if only one match -endif - -" Fold based on indent, but only when I ask -if has('folding') - set foldlevelstart=99 - set foldmethod=indent -endif - -" Don't load GUI menus; set here before GUI starts -if has('gui_running') - set guioptions+=M -endif - " Keep undo files, hopefully in a dedicated directory if has('persistent_undo') set undofile @@ -191,11 +192,10 @@ if has('persistent_undo') endif endif -" Make sessions usable -if exists('+sessionoptions') - set sessionoptions-=localoptions " No buffer options or mappings - set sessionoptions-=options " No global options or mappings -endif +" Wildmenu settings; see also plugin/wildignore.vim +set wildmenu " Use wildmenu +set wildmode=list:longest " Tab press completes and lists +silent! set wildignorecase " Case insensitive, if supported " Let me move beyond buffer text in visual block mode if exists('+virtualedit') -- cgit v1.2.3 From 5f1bc241f94b65f65357638fefb8e5ba8922b53f Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 12:50:21 +1200 Subject: Use rather than in mapping Rather clearer --- vim/vimrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'vim') diff --git a/vim/vimrc b/vim/vimrc index e28aa00c..c59e118e 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -215,7 +215,7 @@ endif imap (DigraphSearch) " Remap normal space to scroll down a page -nnoremap +nnoremap " If we have plugins, do a :next after hitting the last line if &loadplugins nmap (ScrollNext) -- cgit v1.2.3 From 6c3c57854452272df1c514dd3e3653511efd6710 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 14:12:37 +1200 Subject: Spin out scroll_next.vim into its own dist --- vim/bundle/scroll_next | 1 + vim/plugin/scroll_next.vim | 32 -------------------------------- 2 files changed, 1 insertion(+), 32 deletions(-) create mode 160000 vim/bundle/scroll_next delete mode 100644 vim/plugin/scroll_next.vim (limited to 'vim') diff --git a/vim/bundle/scroll_next b/vim/bundle/scroll_next new file mode 160000 index 00000000..56166b68 --- /dev/null +++ b/vim/bundle/scroll_next @@ -0,0 +1 @@ +Subproject commit 56166b68079f1573de93c4f134996854b4e6e75a diff --git a/vim/plugin/scroll_next.vim b/vim/plugin/scroll_next.vim deleted file mode 100644 index a02a4e4f..00000000 --- a/vim/plugin/scroll_next.vim +++ /dev/null @@ -1,32 +0,0 @@ -" -" scroll_next.vim: Mapping to scroll a page forward with CTRL-F until the last -" line is visible in the buffer (if supported) or the cursor is on the last -" line, and to run :next instead if so to move to the next buffer in the -" argument list. -" -" Author: Tom Ryder -" License: Same as Vim itself -" -if exists('g:loaded_scroll_next') || &compatible - finish -endif -if v:version < 600 - finish -endif -let g:loaded_scroll_next = 1 - -" Check visibility of last line (Vim >=7.0) or cursor presence on last line -" and flick to :next if appropriate, or just page forward with CTRL-F -function! s:ScrollNext() abort - if line('.') == line('$') - \ || line('w$') == line('$') - silent! next - else - execute "normal! \" - endif -endfunction - -" Mapping setup -nnoremap - \ (ScrollNext) - \ :call ScrollNext() -- cgit v1.2.3 From ff8e79e57fbe4058c829a16363860277bfa395fa Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 15:06:53 +1200 Subject: Add a comment --- vim/after/ftplugin/sh.vim | 1 + 1 file changed, 1 insertion(+) (limited to 'vim') diff --git a/vim/after/ftplugin/sh.vim b/vim/after/ftplugin/sh.vim index 475527b9..766994b7 100644 --- a/vim/after/ftplugin/sh.vim +++ b/vim/after/ftplugin/sh.vim @@ -27,6 +27,7 @@ let b:undo_ftplugin .= '|unlet b:current_compiler b:sh_check_compiler' \ . '|setlocal errorformat< makeprg<' " Resort to g:is_posix for correct syntax on older runtime files +" 8.1.257 updated the runtime files to include a fix for this if exists('b:is_posix') \ && (v:version < 800 || v:version == 800 && !has('patch257')) let g:is_posix = 1 -- cgit v1.2.3 From 3e4458b70c8670d5a8c98ef245edd3611bd39354 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 15:06:59 +1200 Subject: Qualify unmap with version number guard --- vim/after/ftplugin/vim.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'vim') diff --git a/vim/after/ftplugin/vim.vim b/vim/after/ftplugin/vim.vim index bfac623a..570a9443 100644 --- a/vim/after/ftplugin/vim.vim +++ b/vim/after/ftplugin/vim.vim @@ -19,7 +19,9 @@ nnoremap K let b:undo_ftplugin .= '|nunmap K' " Get rid of the core ftplugin's square-bracket maps on unload -let b:undo_ftplugin .= '|nunmap [[' +" 8.1.273 updated the runtime files to include a fix for this +if v:version < 801 || v:version == 801 && !has('patch273') + let b:undo_ftplugin .= '|nunmap [[' \ . '|vunmap [[' \ . '|nunmap ]]' \ . '|vunmap ]]' @@ -31,3 +33,4 @@ let b:undo_ftplugin .= '|nunmap [[' \ . '|vunmap ]"' \ . '|nunmap ["' \ . '|vunmap ["' +endif -- cgit v1.2.3 From 72973f7e88c53f6d12278f995dcb54071c896afa Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 22:01:59 +1200 Subject: Don't set vint compiler for commandline windows --- vim/after/ftplugin/vim.vim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'vim') diff --git a/vim/after/ftplugin/vim.vim b/vim/after/ftplugin/vim.vim index 570a9443..46182627 100644 --- a/vim/after/ftplugin/vim.vim +++ b/vim/after/ftplugin/vim.vim @@ -4,9 +4,11 @@ if &filetype !=# 'vim' || v:version < 700 || &compatible endif " Use Vint as a syntax checker -compiler vint -let b:undo_ftplugin .= '|unlet b:current_compiler' - \ . '|setlocal errorformat< makeprg<' +if bufname('%') !=# 'command-line' + compiler vint + let b:undo_ftplugin .= '|unlet b:current_compiler' + \ . '|setlocal errorformat< makeprg<' +endif " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_vim_maps') -- cgit v1.2.3 From 61ab140a20917349876581872db4a369c18a0d1f Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 22:15:25 +1200 Subject: Work around buggy old Vim 'help' ftplugin undo --- vim/after/ftplugin/help.vim | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'vim') diff --git a/vim/after/ftplugin/help.vim b/vim/after/ftplugin/help.vim index db621315..71ad3a8d 100644 --- a/vim/after/ftplugin/help.vim +++ b/vim/after/ftplugin/help.vim @@ -3,6 +3,12 @@ if &filetype !=# 'help' || v:version < 700 finish endif +" This variable had the wrong name before Vim 7.1 +if v:version == 700 && exists('b:undo_plugin') + let b:undo_ftplugin = b:undo_plugin + unlet b:undo_plugin +endif + " If the buffer is modifiable and writable, we're writing documentation, not " reading it; don't conceal characters if has('conceal') && &modifiable && !&readonly -- cgit v1.2.3 From 596610205ba22cbf27f3f40c4a7133f859570239 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 22:32:38 +1200 Subject: Spin foldlevelstart_stdin.vim into its own dist --- vim/bundle/foldlevelstart_stdin | 1 + vim/plugin/foldlevelstart_stdin.vim | 28 ---------------------------- 2 files changed, 1 insertion(+), 28 deletions(-) create mode 160000 vim/bundle/foldlevelstart_stdin delete mode 100644 vim/plugin/foldlevelstart_stdin.vim (limited to 'vim') diff --git a/vim/bundle/foldlevelstart_stdin b/vim/bundle/foldlevelstart_stdin new file mode 160000 index 00000000..77d9d2c3 --- /dev/null +++ b/vim/bundle/foldlevelstart_stdin @@ -0,0 +1 @@ +Subproject commit 77d9d2c3ee865f6334ffda5d665ecb6cdf0541cd diff --git a/vim/plugin/foldlevelstart_stdin.vim b/vim/plugin/foldlevelstart_stdin.vim deleted file mode 100644 index f8e4d50e..00000000 --- a/vim/plugin/foldlevelstart_stdin.vim +++ /dev/null @@ -1,28 +0,0 @@ -" -" foldlevelstart_stdin.vim: Set 'foldlevel' to 'foldlevelstart' after reading -" from standard input, which Vim doesn't do by default. -" -" Author: Tom Ryder -" License: Same as Vim itself -" -if exists('g:loaded_foldlevelstart_stdin') || &compatible - finish -endif -if !has('autocmd') || !has('folding') || !exists('##StdinReadPre') - finish -endif -let g:loaded_foldlevelstart_stdin = 1 - -" Check if 'foldlevelstart' is non-negative, and set 'foldlevel' to its value -" if it is -function! s:SetFoldlevel() abort - if &foldlevelstart >= 0 - let &l:foldlevel = &foldlevelstart - endif -endfunction - -" Watch for stdin reads and set fold level accordingly -augroup foldlevelstart_stdin - autocmd! - autocmd StdinReadPre * call s:SetFoldlevel() -augroup END -- cgit v1.2.3 From fe72038470554ec63a1f4b7ab532584bd15a05b9 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 23:09:42 +1200 Subject: Spin equalalways_resized.vim into its own dist --- vim/bundle/equalalways_resized | 1 + vim/plugin/equalalways_resized.vim | 27 --------------------------- 2 files changed, 1 insertion(+), 27 deletions(-) create mode 160000 vim/bundle/equalalways_resized delete mode 100644 vim/plugin/equalalways_resized.vim (limited to 'vim') diff --git a/vim/bundle/equalalways_resized b/vim/bundle/equalalways_resized new file mode 160000 index 00000000..5a2d7c57 --- /dev/null +++ b/vim/bundle/equalalways_resized @@ -0,0 +1 @@ +Subproject commit 5a2d7c57a82a17a763f904d19ea4417696c772bd diff --git a/vim/plugin/equalalways_resized.vim b/vim/plugin/equalalways_resized.vim deleted file mode 100644 index 8865f0af..00000000 --- a/vim/plugin/equalalways_resized.vim +++ /dev/null @@ -1,27 +0,0 @@ -" -" equalalways_resized: If 'equalalways' is set, extend it to VimResized -" events. -" -" Author: Tom Ryder -" License: Same as Vim itself -" -if exists('g:loaded_equalalways_resized') || &compatible - finish -endif -if !has('autocmd') || !has('windows') || !exists('##VimResized') - finish -endif -let g:loaded_equalalways_resized = 1 - -" If 'equalalways' is set, rebalance the windows -function! s:Rebalance() abort - if &equalalways - wincmd = - endif -endfunction - -" Add hook for VimResized event -augroup equalalways_resized - autocmd! - autocmd VimResized * call s:Rebalance() -augroup END -- cgit v1.2.3 From 230c9d6fdb24476592ea18b3fb1d701854105387 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 23:20:50 +1200 Subject: Update new Vim plugins --- vim/bundle/equalalways_resized | 2 +- vim/bundle/foldlevelstart_stdin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'vim') diff --git a/vim/bundle/equalalways_resized b/vim/bundle/equalalways_resized index 5a2d7c57..9fa2a475 160000 --- a/vim/bundle/equalalways_resized +++ b/vim/bundle/equalalways_resized @@ -1 +1 @@ -Subproject commit 5a2d7c57a82a17a763f904d19ea4417696c772bd +Subproject commit 9fa2a475258563d85a75671329451c18b5ca44df diff --git a/vim/bundle/foldlevelstart_stdin b/vim/bundle/foldlevelstart_stdin index 77d9d2c3..5960c5da 160000 --- a/vim/bundle/foldlevelstart_stdin +++ b/vim/bundle/foldlevelstart_stdin @@ -1 +1 @@ -Subproject commit 77d9d2c3ee865f6334ffda5d665ecb6cdf0541cd +Subproject commit 5960c5dad48258aa14c623fc6572f867585d1c14 -- cgit v1.2.3 From ac1ec566a1b29c062374a195ba1adc4cd3d304ec Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 16 Aug 2018 23:23:09 +1200 Subject: Add explanatory README to vim/plugin directory --- vim/plugin/README | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 vim/plugin/README (limited to 'vim') diff --git a/vim/plugin/README b/vim/plugin/README new file mode 100644 index 00000000..5e969de7 --- /dev/null +++ b/vim/plugin/README @@ -0,0 +1,3 @@ +Most of my plugins are in submodules in vim/bundle. This directory, vim/plugin, +is for new plugins as they're being developed and tested, or for stuff specific +to my configuration that isn't worth packaging as its own distribution. -- cgit v1.2.3