aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--sh/shrc.d/e.sh4
-rw-r--r--sh/shrc.d/v.sh4
-rw-r--r--vim/after/ftplugin/help.vim11
-rw-r--r--vim/after/ftplugin/html.vim2
-rw-r--r--vim/after/ftplugin/vim.vim5
-rw-r--r--vim/after/plugin/surround.vim3
-rw-r--r--vim/filetype.vim4
-rw-r--r--vim/vimrc18
9 files changed, 45 insertions, 9 deletions
diff --git a/README.md b/README.md
index 6c88ad44..eb8ccb94 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/vim/vimrc b/vim/vimrc
index e9fbaf3f..be9c63ab 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -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