aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-21 10:21:39 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-21 10:21:39 +1200
commite0055d4e345fe62e8e319a2e868a40c512825989 (patch)
treeeb8404efd920766638fce465556b1c1d5bdddd99
parent2a4eeb8e981d5ee68dabf582d018a1707d9d1a62 (diff)
parent600741d26b07fa5e15a8998fef285d51cc80db0a (diff)
downloaddotfiles-e0055d4e345fe62e8e319a2e868a40c512825989.tar.gz
dotfiles-e0055d4e345fe62e8e319a2e868a40c512825989.zip
Merge branch 'release/v0.57.0'v0.57.0
* release/v0.57.0: (45 commits) Bump VERSION Update paste_open.vim plugin Update auto_cache_dirs.vim plugin Add new vim_paste_open plugin and needed bindings Restore 'esckeys' setting Add .vimrc reload binding Add the "jetpack" buffer jump binding Remove 'wildignore' settings Greatly expand 'wildignore' Use literal leaders in mappings Reorder .vimrc file Remove unneeded 'showtabline' .vimrc setting Correct "Tmux" to "tmux" in a comment. Remove unneeded 'laststatus' .vimrc set Restructure indent settings in .vimrc Use more idiomatic `if 1` in .vimrc Remove unnecessary 'undofile' settings Remove 'esckeys' .vimrc setting Remove 'timeout' and related Vim settings Remove 'ttyfast' setting ...
-rw-r--r--.gitmodules3
-rw-r--r--VERSION4
-rw-r--r--vim/after/ftplugin/gitcommit/quote.vim25
m---------vim/bundle/auto_cache_dirs0
m---------vim/bundle/paste_open0
-rw-r--r--vim/filetype.vim14
-rw-r--r--vim/vimrc503
7 files changed, 230 insertions, 319 deletions
diff --git a/.gitmodules b/.gitmodules
index e8e15892..30a58edc 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -17,6 +17,9 @@
[submodule "vim/bundle/markdown_autoformat"]
path = vim/bundle/markdown_autoformat
url = https://sanctum.geek.nz/code/vim-markdown-autoformat.git
+[submodule "vim/bundle/paste_open"]
+ path = vim/bundle/paste_open
+ url = https://sanctum.geek.nz/code/vim-paste-open.git
[submodule "vim/bundle/put_blank_lines"]
path = vim/bundle/put_blank_lines
url = https://sanctum.geek.nz/code/vim-put-blank-lines.git
diff --git a/VERSION b/VERSION
index 2cb5653f..c73e8a6d 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-tejr dotfiles v0.56.1
-Sun Jun 17 11:47:39 UTC 2018
+tejr dotfiles v0.57.0
+Wed Jun 20 22:19:12 UTC 2018
diff --git a/vim/after/ftplugin/gitcommit/quote.vim b/vim/after/ftplugin/gitcommit/quote.vim
new file mode 100644
index 00000000..61fa0509
--- /dev/null
+++ b/vim/after/ftplugin/gitcommit/quote.vim
@@ -0,0 +1,25 @@
+" gitcommit/quote.vim: Make angle-bracket quote characters behave like they do
+" in mail messages, inserting the comment leader automatically on new lines
+" and auto-formatting them.
+
+" Don't load if running compatible or too old
+if &compatible || v:version < 700
+ finish
+endif
+
+" Don't load if already loaded
+if exists('b:did_ftplugin_gitcommit_quote')
+ finish
+endif
+
+" Flag as loaded
+let b:did_ftplugin_gitcommit_quote = 1
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|unlet b:did_ftplugin_gitcommit_quote'
+
+" Use trailing whitespace to denote continued paragraph
+setlocal comments+=n:>
+setlocal formatoptions+=c
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|setlocal comments<'
+ \ . '|setlocal formatoptions<'
diff --git a/vim/bundle/auto_cache_dirs b/vim/bundle/auto_cache_dirs
-Subproject fc1853e7cdda432e9e91b1352038e3cfe591e9d
+Subproject c95606022488f019fa6c207012b38ef598b5f34
diff --git a/vim/bundle/paste_open b/vim/bundle/paste_open
new file mode 160000
+Subproject 8537d312627d4acff204c543927549dcbfeae8f
diff --git a/vim/filetype.vim b/vim/filetype.vim
index 3cd2b203..6c40dec1 100644
--- a/vim/filetype.vim
+++ b/vim/filetype.vim
@@ -246,7 +246,7 @@ augroup filetypedetect
\,?*.[1-9]
\,*/man[1-9]*/?*.[1-9]*
\ setfiletype nroff
- " UNIX pass file
+ " UNIX password and shadow files
autocmd BufNewFile,BufRead
\ /etc/passwd
\,/etc/passwd-
@@ -458,7 +458,10 @@ augroup filetypedetect
\,zshrc
\ setfiletype zsh
- " Generic text and config files, if no type assigned yet
+ " Load any extra rules in ftdetect directories
+ runtime! ftdetect/*.vim
+
+ " Generic text, config, and log files, if no type assigned yet
autocmd BufNewFile,BufRead
\ ?*.text
\,?*.txt
@@ -473,9 +476,10 @@ augroup filetypedetect
\,?*.config
\,/etc/*
\ setfiletype config
-
- " Load any extra rules in ftdetect directories
- runtime! ftdetect/*.vim
+ autocmd BufNewFile,BufRead
+ \ */log/*
+ \,*.log
+ \ setf messages
" Clumsy attempt at typing files in `sudo -e` if a filename hasn't already
" been found; strip temporary extension and re-run
diff --git a/vim/vimrc b/vim/vimrc
index 69a05cd0..6431bd54 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -10,13 +10,7 @@ if has('multi_byte')
scriptencoding utf-8
endif
-" Use different keys for global and local leaders
-if has('eval')
- let g:mapleader = '\'
- let g:maplocalleader = '_'
-endif
-
-" Load filetype settings, including filetype plugins and indent settings
+" Load filetype-specific plugins, indent settings, and syntax highlighting
if has('autocmd')
filetype plugin indent on
endif
@@ -24,114 +18,81 @@ endif
" Options dependent on the syntax feature
if has('syntax') && !has('g:syntax_on')
- " Use syntax highlighting with 150 lines of context
- silent! syntax enable
- silent! syntax sync minlines=150
+ " Use syntax highlighting
+ syntax enable
- " Opinionated; if the author is using color at all, it will probably be with
- " a dark background
- set background=dark
-
- " The 'sahara' colorscheme only works in the GUI or with 256 colors
+ " Use the 'sahara' colorscheme if using the GUI or if we have 256 colors
if has('gui_running') || &t_Co >= 256
silent! colorscheme sahara
endif
+ " If we couldn't use 'sahara', just flag a dark background (the author is
+ " almost certainly using one), and we'll use the default colorscheme
+ if !exists('g:colors_name')
+ set background=dark
+ endif
+
endif
+" The all-important default indent settings; filetypes to tweak
+set autoindent " Use indent of previous line on new lines
+set expandtab " Use spaces instead of tabs
+set shiftround " Round indenting to multiples of 4
+set shiftwidth=4 " Indent with four spaces
+set softtabstop=4 " Insert four spaces for a Tab press
+
" Let me backspace over pretty much anything
set backspace=
set backspace+=indent " Spaces from 'audoindent'
set backspace+=eol " Line breaks
set backspace+=start " The start of current insertion
-" Default to no backup files at all, in a way that even ancient/tiny Vims will
-" understand; the auto_cache_dirs.vim plugin will take care of re-enabling
-" this with a 'backupdir' setting
-set nobackup
-set nowritebackup
-
-" If backups are enabled, use a more explicit and familiar backup suffix
-set backupext=.bak
-
-" Allow jumping between windows and tabs to find an open instance of a given
-" buffer with :sbuffer.
-set switchbuf=useopen
-if v:version >= 701
- set switchbuf+=usetab
-endif
-
-" Cycle back and forth through buffers.
-nnoremap <silent> [b :<C-U>bprevious<CR>
-nnoremap <silent> ]b :<C-U>bnext<CR>
-
-" Keep plenty of command and search history, because disk space is cheap
-set history=2000
-
-" Always tell me the number of lines changed by a command
-set report=0
-
-" Command-line based features
-if has('cmdline_info')
-
- " Show my current position in the status bar
- set ruler
-
- " Show the keystrokes being entered in the screen
- set showcmd
+" Start with blank comment strings rather than the old default; let the
+" filetype handle it
+set comments=
- " Show the mode we're using if not normal mode (e.g. --INSERT--)
- set showmode
+" When wrapping text, if a line is so long that not all of it can be shown on
+" the screen, show as much as possible anyway; by default Vim fills the left
+" column with @ symbols instead, which I don't find very helpful
+set display=lastline
-endif
+" Don't wait to see if Escape in insert mode precedes a key for an Alt binding
+set noesckeys
-" Current date and time insertion commands, requiring POSIX date(1)
-if has('unix')
- " \d: Local
- nnoremap <silent> <Leader>d :<C-U>read !date<CR>
- " \D: UTC
- nnoremap <silent> <Leader>D :<C-U>read !date -u<CR>
+" Try to set the 'j' flag for 'formatoptions', to automatically delete comment
+" leaders when joining lines, if supported
+if v:version >= 704 || v:version == 703 && has('patch541')
+ set formatoptions+=j
endif
-" Start with blank comment strings rather than the old default; let the
-" filetype handle it
-set comments=
-
-" Don't try to complete strings from included files, just use the strings in
-" the open buffers; I'll open the file if I want to complete from it
-set complete-=i
+" Don't join lines with two spaces at the end of sentences; I don't two-space,
+" despite the noble Steve Losh's exhortations
+set nojoinspaces
-" Configuration for the command completion feature; rather than merely cycling
-" through possible completions with Tab, show them above the command line
-if has('wildmenu')
+" Define list 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
- " Use the wild menu, both completing and showing all possible completions
- " with a single Tab press, just as I've configured Bash to do
- set wildmenu
- set wildmode=list:longest
+" Add angle brackets to pairs of characters to match
+set matchpairs+=<:>
- " Don't complete certain files that I'm not likely to want to manipulate
- " from within Vim:
- if has('wildignore')
- set wildignore+=*.a,*.o
- set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png
- set wildignore+=.DS_Store,.git,.hg,.svn
- set wildignore+=*~,*.swp,*.tmp
- endif
+" Don't use modelines at all, they're apparently potential security problems
+" and I've never used them anyway
+set nomodeline
- " Complete files without case sensitivity, if the option is available
- if exists('+wildignorecase')
- set wildignorecase
- endif
+" Don't assume a number with a leading zero is octal; it's far more likely a
+" zero-padded decimal, so increment and decrement with ^A and ^X on that basis
+set nrformats-=octal
-endif
+" Always tell me the number of lines changed by a command
+set report=0
-" A few very important custom digraphs
-if has('digraphs')
- digraph ./ 8230 " Ellipsis (HORIZONTAL ELLIPSIS U+2026)
- digraph %% 8984 " Mac command key (PLACE OF INTEREST SIGN U+2318)
- digraph 8: 9731 " Snowman (SNOWMAN U+2603)
-endif
+" Don't bother drawing the screen while executing macros or other automated or
+" scripted processes, just draw the screen as it is when the operation
+" completes
+set lazyredraw
" Set up short message settings
set shortmess=
@@ -149,162 +110,52 @@ set shortmess+=T " Truncate other message in midle if too long
set shortmess+=w " written -> [w], appended -> [a]
set shortmess+=x " [dos format] -> [dos]
-" Don't show whitespace characters or end-of-line characters visually by
-" default, but make \l toggle between them
-set nolist
-nnoremap <silent> <Leader>l :<C-U>set list! list?<CR>
+" Default to no swap files at all, in a way that even ancient/tiny Vims will
+" understand; the auto_cache_dirs.vim plugin will take care of re-enabling
+" this with a 'directory' setting
+set noswapfile
-" Don't show line numbers by default, but \n toggles them
-set nonumber
-nnoremap <silent> <Leader>n :<C-U>set number! number?<CR>
+" Never use any kind of bell, visual or not
+set visualbell t_vb=
-" Bind \p to show filetype
-nnoremap <silent> <Leader>p :<C-U>set filetype?<CR>
+" Don't wrap by default, but use \w to toggle it on or off
+set nowrap
-" Use all ancestors of current directory for :find
-if has('file_in_path')
- set path=**
+" Show my current position in the status bar, default format is fine
+if has('cmdline_info')
+ set ruler
endif
-" If the Vim buffer for a file doesn't have any changes and Vim detects the
-" file has been altered, quietly update it
-set autoread
-
-" Save a file automatically if I change buffers or perform operations with the
-" argument list; this is particularly helpful for me as I don't use 'hidden'
-set autowrite
-
-" Don't use modelines at all, they're apparently potential security problems
-" and I've never used them anyway
-set nomodeline
-
-" I really like ZZ and ZQ, so I wrote a couple more mappings; ZW forces a
-" write of the current buffer, but doesn't quit, and ZA forces a write of all
-" buffers but doesn't quit
-nnoremap <silent> ZW :<C-U>write!<CR>
-nnoremap <silent> ZA :<C-U>wall!<CR>
-
-" Don't assume a number with a leading zero is octal; it's far more likely a
-" zero-padded decimal, so increment and decrement with ^A and ^X on that basis
-set nrformats-=octal
-
-" Try to set the 'j' flag for 'formatoptions', to automatically delete comment
-" leaders when joining lines, if supported
-if v:version >= 704 || v:version == 703 && has('patch541')
- set formatoptions+=j
+" Highlight settings for search, if available
+if has('extra_search')
+ set incsearch " Show matches as I type
+ set hlsearch " Highlight completed searches
endif
-" \f shows the current formatoptions at a glance
-nnoremap <silent> <Leader>f :<C-U>setlocal formatoptions?<CR>
-
-" Match all forms of brackets in pairs (including angle brackets)
-set matchpairs+=<:>
-
-" Change and delete with C and D both cut off the remainder of the line from
-" the cursor, but Y yanks the whole line, which is inconsistent (and can be
-" done with yy anyway); this fixes it so it only yanks the rest of the line
-nnoremap Y y$
-
-" Allow the cursor to get to the top or bottom of the screen before scrolling
-" vertically, but set a reasonably wide gutter for scrolling horizontally; no
-" particular reason, just suits me better
-set scrolloff=0
-set sidescrolloff=16
-
-" Rebind <Space> in normal mode as a lazy scroll
-nnoremap <Space> <C-F>
+" Use all ancestors of current directory for :find
+if has('file_in_path')
+ set path+=**
+endif
-" Some special settings for searching, if available
-if has('extra_search')
+" Line break settings and mappings
+if has('linebreak')
- " Searching as I enter my pattern, \i toggles this
- set incsearch
- nnoremap <silent> <Leader>i :<C-U>set incsearch! incsearch?<CR>
+ " Break lines at word boundaries if possible
+ set linebreak
- " Highlight search results, \h toggles this
- set hlsearch
- nnoremap <silent> <Leader>h :<C-U>set hlsearch! hlsearch?<CR>
+ " Precede continued lines with '...'
+ set showbreak=...
- " Pressing ^L will clear highlighting until the next search-related
- " operation; quite good because the highlighting gets distracting after
- " you've found what you wanted
- nnoremap <silent> <C-L> :<C-U>nohlsearch<CR><C-L>
+ " If we have the option, indent wrapped lines as much as the first line
+ if exists('+breakindent')
+ set breakindent
+ endif
endif
-" Configure spell checking features, if available
+" Use NZ english by default
if has('spell')
-
- " Don't check spelling by default, but bind \s to toggle this
- set nospell
- nnoremap <silent> <Leader>s :<C-U>setlocal spell! spell?<CR>
-
- " Use New Zealand English for spelling by default (it's almost identical
- " to British English), but bind \u to switch to US English and \z to
- " switch back
set spelllang=en_nz
- nnoremap <silent> <Leader>u :<C-U>setlocal spelllang=en_us spelllang?<CR>
- nnoremap <silent> <Leader>z :<C-U>setlocal spelllang=en_nz spelllang?<CR>
-
-endif
-
-" Preserve the flags for a pattern when repeating a substitution with &; I
-" don't really understand why this isn't a default, but there it is
-nnoremap <silent> & :<C-U>&&<CR>
-
-" Same again for visual mode; we use vnoremap rather than xnoremap to stay
-" compatible with old Vims without doing :execute dances
-vnoremap <silent> & :<C-U>&&<CR>
-
-" Default to no swap files at all, in a way that even ancient/tiny Vims will
-" understand; the auto_cache_dirs.vim plugin will take care of re-enabling
-" this with a 'directory' setting
-set noswapfile
-
-" Start paste mode with F10 to prevent console Vim from confusing a swathe of
-" pre-formatted pasted text with actual keyboard input, and thereby attempting
-" to indent it inappropriately. If unimpaired.vim is available, it's generally
-" nicer to use yo or yO.
-set nopaste
-set pastetoggle=<F10>
-
-" Don't bother about checking whether Escape is being used as a means to enter
-" a Meta-key combination, just register Escape immediately
-if exists('+esckeys')
- set noesckeys
-endif
-
-" Don't bother drawing the screen while executing macros or other automated or
-" scripted processes, just draw the screen as it is when the operation
-" completes
-set lazyredraw
-
-" Improve redrawing smoothness by assuming that my terminal is reasonably
-" fast
-set ttyfast
-
-" Never use any kind of bell, visual or not
-set visualbell t_vb=
-
-" Require less than one second between keys for mappings to work correctly
-set timeout
-set timeoutlen=1000
-
-" Require less than a twentieth of a second between keys for key codes to work
-" correctly; I don't use Escape as a meta key anyway
-set ttimeout
-set ttimeoutlen=50
-
-" Rebind Ctrl-C in insert mode to undo the current insert operation
-inoremap <C-C> <C-C>u
-
-" Keep screeds of undo history
-set undolevels=2000
-
-" 'undodir' and 'undofile' settings will be taken care of by the
-" auto_cache_dirs.vim plugin if applicable/possible
-if has('persistent_undo')
- set noundofile
endif
" When in visual block mode, let me move the cursor anywhere in the buffer;
@@ -313,35 +164,26 @@ if has('virtualedit')
set virtualedit+=block
endif
-" Adopt the indent of the last line on new lines
-set autoindent
-
-" Use spaces instead of tabs
-set expandtab
-
-" Indent with four spaces when an indent operation is used
-set shiftwidth=4
+" Configuration for the command completion feature; rather than merely cycling
+" through possible completions with Tab, show them above the command line
+if has('wildmenu')
-" Insert four spaces when Tab is pressed
-set softtabstop=4
+ " Use the wild menu, both completing and showing all possible completions
+ " with a single Tab press, just as I've configured Bash to do
+ set wildmenu
+ set wildmode=list:longest
-" When indenting lines with < or >, round the indent to a multiple of
-" 'shiftwidth', so even if the line is indented by one space it will indent
-" up to 4 and down to 0, for example
-set shiftround
+ " Complete files without case sensitivity, if the option is available
+ if exists('+wildignorecase')
+ set wildignorecase
+ endif
-" Don't join lines with two spaces at the end of sentences; I don't two-space,
-" despite the noble Steve Losh's exhortations
-set nojoinspaces
+endif
" Configuration for window features
if has('windows')
- " Show the status in a distinct bar above the command line only if there's
- " more than one window on the screen or in the current tab
- set laststatus=1
-
- " Don't resize windows we're not splitting (Tmux-like; think Mondrian)
+ " Don't resize windows we're not splitting (tmux-like; think Mondrian)
set noequalalways
" New split windows appear below or to the right of the existing window,
@@ -351,11 +193,6 @@ if has('windows')
set splitright
endif
- " Only show the tab bar if there's more than one tab
- if exists('+showtabline')
- set showtabline=1
- endif
-
" Get rid of visually noisy folding characters
if has('folding')
let &fillchars = 'diff: ,fold: ,vert: '
@@ -363,20 +200,33 @@ if has('windows')
endif
-" Don't wrap by default, but use \w to toggle it on or off quickly
-set nowrap
-nnoremap <silent> <Leader>w :<C-U>set wrap! wrap?<CR>
+" Rebind Ctrl-C in insert mode to undo the current insert operation
+inoremap <C-C> <C-C>u
-" When wrapping text, if a line is so long that not all of it can be shown on
-" the screen, show as much as possible anyway; by default Vim fills the left
-" column with @ symbols instead, which I don't find very helpful
-set display=lastline
+" Rebind <Space> in normal mode as a lazy scroll
+nnoremap <Space> <C-F>
-" Define list 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
+" Preserve the flags for a pattern when repeating a substitution with &
+nnoremap <silent> & :<C-U>&&<CR>
+vnoremap <silent> & :<C-U>&&<CR>
+
+" Pressing ^L will clear highlighting until the next search-related operation
+nnoremap <silent> <C-L> :<C-U>nohlsearch<CR><C-L>
+
+" Cycle through things with unimpaired.vim-style bindings:
+" Buffers
+nnoremap [b :<C-U>bprevious<CR>
+nnoremap ]b :<C-U>bnext<CR>
+" Quicklist items (more often :helpgrep results)
+nnoremap [c :<C-U>cprevious<CR>
+nnoremap ]c :<C-U>cnext<CR>
+" Location list items
+nnoremap [l :<C-U>lprevious<CR>
+nnoremap ]l :<C-U>lnext<CR>
+
+" Insert blank lines above and below via my custom unimpaired.vim rip
+nmap [<Space> <Plug>PutBlankLinesAbove
+nmap ]<Space> <Plug>PutBlankLinesBelow
" Swap the j/gj and k/gk command pairs so that we move by screen row, not
" buffer line, with j/k
@@ -385,25 +235,85 @@ nnoremap k gk
nnoremap gj j
nnoremap gk k
-" Line break settings and mappings
-if has('linebreak')
+" Change and delete with C and D both cut off the remainder of the line from
+" the cursor, but Y yanks the whole line, which is inconsistent (and can be
+" done with yy anyway); this fixes it so it only yanks the rest of the line
+nnoremap Y y$
- " Break lines at word boundaries if possible
- set linebreak
+" ZW does an unconditional write for this buffer
+nnoremap ZW :<C-U>write!<CR>
+" ZA does an unconditional write for all buffers
+nnoremap ZA :<C-U>wall!<CR>
- " Precede continued lines with '...'
- set showbreak=...
+" Use different keys for global and local leaders
+if 1
+ let g:mapleader = '\'
+ let g:maplocalleader = '_'
+endif
- " If we have the option, indent wrapped lines as much as the first line
- if exists('+breakindent')
- set breakindent
- endif
+" Leader mappings below; we use a literal backslash rather than <Leader> for
+" the mappings here, because I want many of these even to work on tiny
+" stripped-down Vims like Debian's. The settings above are for plugins.
+
+" \a toggles 'formatoptions' 'a' flag using a plugin
+nnoremap \a :<C-U>ToggleOptionFlagLocal formatoptions a<CR>
+" \b toggles copy-pasteable linebreak settings
+nmap \b <Plug>CopyLinebreakToggle
+" Current date and time insertion commands, requiring POSIX date(1)
+if has('unix')
+ " \d: Local date
+ nnoremap \d :<C-U>read !date<CR>
+ " \D: UTC
+ nnoremap \D :<C-U>read !date -u<CR>
+endif
+" \f shows the current 'formatoptions' at a glance
+nnoremap \f :<C-U>set formatoptions?<CR>
+" \h toggles highlighting search results
+nnoremap \h :<C-U>set hlsearch! hlsearch?<CR>
+" \i toggles showing matches as I enter my pattern
+nnoremap \i :<C-U>set incsearch! incsearch?<CR>
+" \j jumps to buffers (jetpack)
+nnoremap \j :<C-U>ls<CR>:buffer<Space>
+" \l toggles showing tab, end-of-line, and trailing whitespace
+nnoremap \l :<C-U>set list! list?<CR>
+" \n toggles line numbers
+nnoremap \n :<C-U>set number! number?<CR>
+" \o and \O open 'pasted insert' lines
+nmap \o <Plug>PasteOpenBelow
+nmap \O <Plug>PasteOpenAbove
+" \p toggles paste mode
+nnoremap \p :<C-U>set paste! paste?<CR>
+" \r reloads .vimrc
+nnoremap \r :<C-U>source $MYVIMRC<CR>
+" \s toggles spell checking
+nnoremap \s :<C-U>setlocal spell! spell?<CR>
+" \t shows current filetype
+nnoremap \t :<C-U>set filetype?<CR>
+" \u sets US English spelling
+nnoremap \u :<C-U>setlocal spelllang=en_us spelllang?<CR>
+" \w toggles wrapping
+nnoremap \w :<C-U>set wrap! wrap?<CR>
+" \x strips trailing whitespace via a custom plugin
+nmap \x <Plug>StripTrailingWhitespace
+" \z sets NZ English spelling
+nnoremap \z :<C-U>setlocal spelllang=en_nz spelllang?<CR>
+
+" Add the packaged version of matchit.vim included in the distribution, if
+" possible; plugin/macros.vim loads this for older Vims
+if has('packages')
+ packadd! matchit
+endif
+" A few very important custom digraphs
+if has('digraphs')
+ digraph ./ 8230 " Ellipsis (HORIZONTAL ELLIPSIS U+2026)
+ digraph %% 8984 " Mac command key (PLACE OF INTEREST SIGN U+2318)
+ digraph 8: 9731 " Snowman (SNOWMAN U+2603)
endif
" Disable most core plugin stuff that I don't use; after/plugin/dist.vim
" clears these variables later
-if has('eval')
+if 1
" 2html.vim is often useful, so keep that
" matchparen.vim I use constantly
@@ -432,37 +342,6 @@ if has('eval')
endif
-" Insert blank lines above and below via my custom unimpaired.vim rip
-nmap [<Space> <Plug>PutBlankLinesAbove
-nmap ]<Space> <Plug>PutBlankLinesBelow
-
-" \b toggles copy-pasteable linebreak settings
-nmap <Leader>b <Plug>CopyLinebreakToggle
-
-" \x strips trailing whitespace via a custom plugin
-nmap <Leader>x <Plug>StripTrailingWhitespace
-
-" Use toggle_option_flag.vim plugin to bind quick toggle actions for some
-" 'formatoptions' flags
-if has('user_commands')
-
- " \a: Reformat paragraphs to 'textwidth' on all insert or delete operations
- nnoremap <silent> <Leader>a :<C-U>ToggleOptionFlagLocal formatoptions a<CR>
- " \c: Reformat comments to 'textwidth'
- nnoremap <silent> <Leader>c :<C-U>ToggleOptionFlagLocal formatoptions c<CR>
- " \j: Delete comment leaders when joining lines
- nnoremap <silent> <Leader>j :<C-U>ToggleOptionFlagLocal formatoptions j<CR>
- " \t: Reformat non-comment text to 'textwidth'
- nnoremap <silent> <Leader>t :<C-U>ToggleOptionFlagLocal formatoptions t<CR>
-
-endif
-
-" Add the packaged version of matchit.vim included in the distribution, if
-" possible; plugin/macros.vim loads this for older Vims
-if has('packages')
- silent! packadd! matchit
-endif
-
" Source all .vim files from ~/.vim/config, which may override any of the
" above
runtime! config/*.vim