diff options
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | sh/shrc.d/e.sh | 4 | ||||
-rw-r--r-- | sh/shrc.d/v.sh | 4 | ||||
-rw-r--r-- | vim/after/ftplugin/help.vim | 11 | ||||
-rw-r--r-- | vim/after/ftplugin/html.vim | 2 | ||||
-rw-r--r-- | vim/after/ftplugin/vim.vim | 5 | ||||
-rw-r--r-- | vim/after/plugin/surround.vim | 3 | ||||
-rw-r--r-- | vim/filetype.vim | 4 | ||||
-rw-r--r-- | vim/vimrc | 18 |
9 files changed, 45 insertions, 9 deletions
@@ -202,6 +202,9 @@ in `sh/shrc.d` to be loaded by any POSIX interactive shell. Those include: * `ud()` changes into an indexed ancestor of a directory. * `vr()` tries to change to the root directory of a source control repository. +* Two editor wrapper functions: + * `e()` invokes `$EDITOR`, or `ed(1)` if not set. + * `v()` invokes `$VISUAL`, or `vi(1)` if not set. * `bc()` silences startup messages from GNU `bc(1)`. * `ed()` tries to get verbose error messages, a prompt, and a Readline environment for `ed(1)`. diff --git a/sh/shrc.d/e.sh b/sh/shrc.d/e.sh new file mode 100644 index 00000000..776b242c --- /dev/null +++ b/sh/shrc.d/e.sh @@ -0,0 +1,4 @@ +# Invoke $EDITOR +e() { + "${EDITOR:-ed}" "$@" +} diff --git a/sh/shrc.d/v.sh b/sh/shrc.d/v.sh new file mode 100644 index 00000000..a5fa147c --- /dev/null +++ b/sh/shrc.d/v.sh @@ -0,0 +1,4 @@ +# Invoke $VISUAL +v() { + "${VISUAL:-vi}" "$@" +} diff --git a/vim/after/ftplugin/help.vim b/vim/after/ftplugin/help.vim index e21a5259..db621315 100644 --- a/vim/after/ftplugin/help.vim +++ b/vim/after/ftplugin/help.vim @@ -9,3 +9,14 @@ if has('conceal') && &modifiable && !&readonly setlocal conceallevel=0 let b:undo_ftplugin .= '|setlocal conceallevel<' endif + +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_help_maps') + finish +endif + +" Make K jump to the help topic; NeoVim does this, and it's a damned good idea +if !has('nvim') + nnoremap <buffer> K <C-]> + let b:undo_ftplugin .= '|nunmap <buffer> K' +endif diff --git a/vim/after/ftplugin/html.vim b/vim/after/ftplugin/html.vim index 2faea4f5..dc429221 100644 --- a/vim/after/ftplugin/html.vim +++ b/vim/after/ftplugin/html.vim @@ -23,7 +23,7 @@ if exists('g:no_plugin_maps') || exists('g:no_html_maps') finish endif -" Set mappings +" Transform URLs to HTML anchors nnoremap <buffer> <LocalLeader>r \ :<C-U>call html#UrlLink()<CR> let b:undo_ftplugin .= '|nunmap <buffer> <LocalLeader>r' diff --git a/vim/after/ftplugin/vim.vim b/vim/after/ftplugin/vim.vim index ca6b01b0..bfac623a 100644 --- a/vim/after/ftplugin/vim.vim +++ b/vim/after/ftplugin/vim.vim @@ -13,6 +13,11 @@ if exists('g:no_plugin_maps') || exists('g:no_vim_maps') finish endif +" ,K runs :helpgrep on the word under the cursor +nnoremap <buffer> <LocalLeader>K + \ :<C-U>helpgrep <cword><CR> +let b:undo_ftplugin .= '|nunmap <buffer> <LocalLeader>K' + " Get rid of the core ftplugin's square-bracket maps on unload let b:undo_ftplugin .= '|nunmap <buffer> [[' \ . '|vunmap <buffer> [[' diff --git a/vim/after/plugin/surround.vim b/vim/after/plugin/surround.vim index b1face5f..800bc38d 100644 --- a/vim/after/plugin/surround.vim +++ b/vim/after/plugin/surround.vim @@ -1,4 +1,7 @@ " Remove surround.vim's insert mode maps +if !exists('g:loaded_surround') + finish +endif iunmap <Plug>ISurround iunmap <Plug>Isurround iunmap <C-G>S diff --git a/vim/filetype.vim b/vim/filetype.vim index 0ff4cf76..192a7283 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -72,6 +72,10 @@ augroup filetypedetect \ .htaccess \,*/apache*/?*.conf \ setfiletype apache + " Assembly language files + autocmd BufNewFile,BufRead + \ ?*.s + \ setfiletype asm " AWK files autocmd BufNewFile,BufRead \ ?*.awk @@ -62,8 +62,10 @@ set comments= set confirm " Only turn on 'cursorline' if my colorscheme loaded -if exists('g:colors_name') && g:colors_name ==# 'sahara' - set cursorline +if exists('+cursorline') + if exists('g:colors_name') && g:colors_name ==# 'sahara' + set cursorline + endif endif " Try to keep swapfiles in one system-appropriate dir @@ -113,11 +115,11 @@ set lazyredraw set linebreak " Define extra 'list' display characters -set listchars^=extends:> " Unwrapped text to screen right -set listchars^=precedes:< " Unwrapped text to screen left -set listchars^=tab:>- " Tab characters, preserve width -set listchars^=trail:_ " Trailing spaces -silent! set listchars^=nbsp:+ " Non-breaking spaces +set listchars+=extends:> " Unwrapped text to screen right +set listchars+=precedes:< " Unwrapped text to screen left +set listchars+=tab:>- " Tab characters, preserve width +set listchars+=trail:_ " Trailing spaces +silent! set listchars+=nbsp:+ " Non-breaking spaces " Don't allow setting options via buffer content set nomodeline @@ -127,7 +129,7 @@ set nrformats-=octal " Options for file search with gf/:find set path-=/usr/include " Let the C/C++ filetypes set that -set path^=** " Search current directory's whole tree +set path+=** " Search current directory's whole tree " Don't show startup splash screen (I donated) set shortmess+=I |