aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--Makefile10
-rw-r--r--VERSION4
-rw-r--r--vim/after/ftplugin/awk.vim5
-rw-r--r--vim/after/ftplugin/c.vim5
-rw-r--r--vim/after/ftplugin/cpp.vim5
-rw-r--r--vim/after/ftplugin/diff.vim5
-rw-r--r--vim/after/ftplugin/gitcommit.vim5
-rw-r--r--vim/after/ftplugin/html.vim17
-rw-r--r--vim/after/ftplugin/mail.vim5
-rw-r--r--vim/after/ftplugin/make.vim5
-rw-r--r--vim/after/ftplugin/markdown.vim5
-rw-r--r--vim/after/ftplugin/perl.vim5
-rw-r--r--vim/after/ftplugin/php.vim5
-rw-r--r--vim/after/ftplugin/sed.vim5
-rw-r--r--vim/after/ftplugin/sh.vim5
-rw-r--r--vim/after/ftplugin/text.vim5
-rw-r--r--vim/after/ftplugin/vim.vim33
-rw-r--r--vim/after/ftplugin/zsh.vim5
-rw-r--r--vim/autoload/html.vim17
m---------vim/bundle/insert_cancel0
m---------vim/bundle/juvenile0
-rw-r--r--vim/plugin/dist.vim16
-rw-r--r--vim/plugin/macros.vim5
-rw-r--r--vim/plugin/matchit.vim6
-rw-r--r--vim/stub.vimrc4
-rw-r--r--vim/vimrc153
27 files changed, 191 insertions, 147 deletions
diff --git a/.gitmodules b/.gitmodules
index 14a95b64..6f4c3e62 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -14,6 +14,9 @@
[submodule "vim/bundle/fixed_join"]
path = vim/bundle/fixed_join
url = https://sanctum.geek.nz/code/vim-fixed-join.git
+[submodule "vim/bundle/insert_cancel"]
+ path = vim/bundle/insert_cancel
+ url = https://sanctum.geek.nz/code/vim-insert-cancel.git
[submodule "vim/bundle/insert_suspend_hlsearch"]
path = vim/bundle/insert_suspend_hlsearch
url = https://sanctum.geek.nz/code/vim-insert-suspend-hlsearch.git
diff --git a/Makefile b/Makefile
index f986416f..86b3942c 100644
--- a/Makefile
+++ b/Makefile
@@ -501,7 +501,8 @@ install-vim: install-vim-after \
install-vim-config \
install-vim-filetype \
install-vim-ftplugin \
- install-vim-indent
+ install-vim-indent \
+ install-vim-plugin
install-vim-after: install-vim-after-ftplugin \
install-vim-after-indent \
@@ -525,7 +526,7 @@ install-vim-after-syntax:
cp -p -- vim/after/syntax/*.vim $(VIMDIR)/after/syntax
install-vim-autoload:
- mkdir -p -- $(VIMDIR)/autoload
+ mkdir -p $(VIMDIR)/autoload
cp -p -- vim/autoload/*.vim $(VIMDIR)/autoload
install-vim-bundle: install-vim-config
@@ -542,8 +543,7 @@ install-vim-compiler:
cp -p -- vim/compiler/*.vim $(VIMDIR)/compiler
install-vim-config:
- cp -p -- vim/vimrc $(VIMDIR)/vimrc
- cp -p -- vim/stub.vimrc $(VIMRC)
+ cp -p -- vim/vimrc $(VIMRC)
install-vim-filetype:
cp -p -- vim/filetype.vim vim/scripts.vim $(VIMDIR)
@@ -556,7 +556,7 @@ install-vim-gui: install-vim \
install-vim-gui-config
install-vim-gui-config:
- cp -p -- vim/gvimrc $(VIMDIR)/gvimrc
+ cp -p -- vim/gvimrc $(HOME)/.gvimrc
install-vim-indent:
mkdir -p -- $(VIMDIR)/indent
diff --git a/VERSION b/VERSION
index efd50e06..949d3df7 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-tejr dotfiles v1.14.0
-Sat Jun 30 09:19:24 UTC 2018
+tejr dotfiles v1.15.0
+Sun Jul 1 23:07:26 UTC 2018
diff --git a/vim/after/ftplugin/awk.vim b/vim/after/ftplugin/awk.vim
index 2051bd21..fae66c3c 100644
--- a/vim/after/ftplugin/awk.vim
+++ b/vim/after/ftplugin/awk.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'awk' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'awk'
diff --git a/vim/after/ftplugin/c.vim b/vim/after/ftplugin/c.vim
index 8ddea387..d98aa130 100644
--- a/vim/after/ftplugin/c.vim
+++ b/vim/after/ftplugin/c.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'c' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'c'
diff --git a/vim/after/ftplugin/cpp.vim b/vim/after/ftplugin/cpp.vim
index 1c834200..acecf3e5 100644
--- a/vim/after/ftplugin/cpp.vim
+++ b/vim/after/ftplugin/cpp.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'cpp' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'cpp'
diff --git a/vim/after/ftplugin/diff.vim b/vim/after/ftplugin/diff.vim
index a6d45afe..6098ce48 100644
--- a/vim/after/ftplugin/diff.vim
+++ b/vim/after/ftplugin/diff.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'diff' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'diff'
diff --git a/vim/after/ftplugin/gitcommit.vim b/vim/after/ftplugin/gitcommit.vim
index b53854be..761ebc81 100644
--- a/vim/after/ftplugin/gitcommit.vim
+++ b/vim/after/ftplugin/gitcommit.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'gitcommit' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'gitcommit'
diff --git a/vim/after/ftplugin/html.vim b/vim/after/ftplugin/html.vim
index a8e9efcc..8a1c22d4 100644
--- a/vim/after/ftplugin/html.vim
+++ b/vim/after/ftplugin/html.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'html' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'html'
@@ -9,6 +12,18 @@ let b:did_ftplugin_after = 1
let b:undo_ftplugin = b:undo_ftplugin
\ . '|unlet b:did_ftplugin_after'
+" Set up hooks for timestamp updating
+augroup html_timestamp
+ autocmd!
+ autocmd BufWritePre *.html
+ \ if exists('b:html_timestamp_check')
+ \| call html#TimestampUpdate()
+ \|endif
+augroup END
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|augroup html_timestamp|autocmd!|augroup END'
+ \ . '|augroup! html_timestamp'
+
" Stop here if the user doesn't want ftplugin mappings
if exists('g:no_plugin_maps') || exists('g:no_html_maps')
finish
diff --git a/vim/after/ftplugin/mail.vim b/vim/after/ftplugin/mail.vim
index a25d55b7..68e9e17a 100644
--- a/vim/after/ftplugin/mail.vim
+++ b/vim/after/ftplugin/mail.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'mail' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'mail'
diff --git a/vim/after/ftplugin/make.vim b/vim/after/ftplugin/make.vim
index ca4e41a6..30db753f 100644
--- a/vim/after/ftplugin/make.vim
+++ b/vim/after/ftplugin/make.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'make' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'make'
diff --git a/vim/after/ftplugin/markdown.vim b/vim/after/ftplugin/markdown.vim
index 454e5c4c..29d13c71 100644
--- a/vim/after/ftplugin/markdown.vim
+++ b/vim/after/ftplugin/markdown.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'markdown' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'markdown'
diff --git a/vim/after/ftplugin/perl.vim b/vim/after/ftplugin/perl.vim
index b007af64..e9747aa3 100644
--- a/vim/after/ftplugin/perl.vim
+++ b/vim/after/ftplugin/perl.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'perl' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'perl'
diff --git a/vim/after/ftplugin/php.vim b/vim/after/ftplugin/php.vim
index 41fab89f..587062e5 100644
--- a/vim/after/ftplugin/php.vim
+++ b/vim/after/ftplugin/php.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'php' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'php'
diff --git a/vim/after/ftplugin/sed.vim b/vim/after/ftplugin/sed.vim
index b3c3abc3..e16ec53d 100644
--- a/vim/after/ftplugin/sed.vim
+++ b/vim/after/ftplugin/sed.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'sed' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'sed'
diff --git a/vim/after/ftplugin/sh.vim b/vim/after/ftplugin/sh.vim
index 5e4d9e99..05c3e293 100644
--- a/vim/after/ftplugin/sh.vim
+++ b/vim/after/ftplugin/sh.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'sh' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'sh'
diff --git a/vim/after/ftplugin/text.vim b/vim/after/ftplugin/text.vim
index 22b1c27b..cd35231e 100644
--- a/vim/after/ftplugin/text.vim
+++ b/vim/after/ftplugin/text.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'text' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'text'
diff --git a/vim/after/ftplugin/vim.vim b/vim/after/ftplugin/vim.vim
index fa65a65a..5726e1e4 100644
--- a/vim/after/ftplugin/vim.vim
+++ b/vim/after/ftplugin/vim.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'vim' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'vim'
@@ -20,18 +23,16 @@ nnoremap <buffer> <LocalLeader>l
let b:undo_ftplugin = b:undo_ftplugin
\ . '|nunmap <buffer> <LocalLeader>l'
-" Add undo commands to fix clearing buffer-local vim maps that the core
-" ftplugin leaves in place
-let b:undo_ftplugin = b:undo_ftplugin
- \ . '|nunmap <buffer> [['
- \ . '|vunmap <buffer> [['
- \ . '|nunmap <buffer> ]]'
- \ . '|vunmap <buffer> ]]'
- \ . '|nunmap <buffer> []'
- \ . '|vunmap <buffer> []'
- \ . '|nunmap <buffer> ]['
- \ . '|vunmap <buffer> ]['
- \ . '|nunmap <buffer> ]"'
- \ . '|vunmap <buffer> ]"'
- \ . '|nunmap <buffer> ["'
- \ . '|vunmap <buffer> ["'
+" Just get rid of the core ftplugin's square-bracket maps; I don't use them
+silent! nunmap <buffer> [[
+silent! vunmap <buffer> [[
+silent! nunmap <buffer> ]]
+silent! vunmap <buffer> ]]
+silent! nunmap <buffer> []
+silent! vunmap <buffer> []
+silent! nunmap <buffer> ][
+silent! vunmap <buffer> ][
+silent! nunmap <buffer> ]"
+silent! vunmap <buffer> ]"
+silent! nunmap <buffer> ["
+silent! vunmap <buffer> ["
diff --git a/vim/after/ftplugin/zsh.vim b/vim/after/ftplugin/zsh.vim
index 4e56f428..eb5fc035 100644
--- a/vim/after/ftplugin/zsh.vim
+++ b/vim/after/ftplugin/zsh.vim
@@ -1,5 +1,8 @@
" Extra configuration for 'zsh' filetypes
-if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+if exists('b:did_ftplugin_after') || &compatible
+ finish
+endif
+if v:version < 700
finish
endif
if &filetype !=# 'zsh'
diff --git a/vim/autoload/html.vim b/vim/autoload/html.vim
index f46b323f..c3d99706 100644
--- a/vim/autoload/html.vim
+++ b/vim/autoload/html.vim
@@ -13,3 +13,20 @@ function! html#UrlLink() abort
normal! a</a>
endfunction
+
+" Update a timestamp
+function! html#TimestampUpdate() abort
+ if !&modified
+ return
+ endif
+ let l:cv = winsaveview()
+ call cursor(1,1)
+ let l:li = search('\C^\s*<em>Last updated: .\+</em>$', 'n')
+ if l:li
+ let l:date = substitute(system('date -u'), '\C\n$', '', '')
+ let l:line = getline(l:li)
+ call setline(l:li, substitute(l:line, '\C\S.*',
+ \ '<em>Last updated: '.l:date.'</em>', ''))
+ endif
+ call winrestview(l:cv)
+endfunction
diff --git a/vim/bundle/insert_cancel b/vim/bundle/insert_cancel
new file mode 160000
+Subproject ec0551228a91752d2be5f9d771e2cb5a624e6ba
diff --git a/vim/bundle/juvenile b/vim/bundle/juvenile
-Subproject 16bb7d26ec9ae1fe6d34646ebf8366c797f955c
+Subproject f8dd96db090e86875c37136ca0484dd1d10abd9
diff --git a/vim/plugin/dist.vim b/vim/plugin/dist.vim
new file mode 100644
index 00000000..53962c93
--- /dev/null
+++ b/vim/plugin/dist.vim
@@ -0,0 +1,16 @@
+" 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
diff --git a/vim/plugin/macros.vim b/vim/plugin/macros.vim
deleted file mode 100644
index 585eedc8..00000000
--- a/vim/plugin/macros.vim
+++ /dev/null
@@ -1,5 +0,0 @@
-" If we don't have packages (Vim < 8.0), try to load matchit.vim from the
-" older macros location in the distributed runtime instead
-if !has('packages')
- silent! runtime macros/matchit.vim
-endif
diff --git a/vim/plugin/matchit.vim b/vim/plugin/matchit.vim
new file mode 100644
index 00000000..31e6e37d
--- /dev/null
+++ b/vim/plugin/matchit.vim
@@ -0,0 +1,6 @@
+" Get matchit.vim, one way or another
+if has('packages') && !has('nvim')
+ packadd! matchit
+else
+ silent! runtime macros/matchit.vim
+endif
diff --git a/vim/stub.vimrc b/vim/stub.vimrc
deleted file mode 100644
index a0111291..00000000
--- a/vim/stub.vimrc
+++ /dev/null
@@ -1,4 +0,0 @@
-" If not running truly ancient Vim, run my real vimrc
-if v:version >= 600
- runtime vimrc
-endif
diff --git a/vim/vimrc b/vim/vimrc
index 9fc842b5..15d86763 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -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