diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-12 20:57:13 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-12 20:57:13 +1300 |
commit | 937458202c8311ecbed7a51a4cec1d1941a6bfd0 (patch) | |
tree | 00b3900dc6a7e351218dfe8f55b1fd575bf08889 | |
parent | Merge branch 'release/v0.14.0' into develop (diff) | |
download | dotfiles-937458202c8311ecbed7a51a4cec1d1941a6bfd0.tar.gz dotfiles-937458202c8311ecbed7a51a4cec1d1941a6bfd0.zip |
Bind norm J on fixed_join.vim load if appropriate
If there are no mappings to the <Plug>FixedJoin target that the
fixed_join.vim plugin provides at the time it is loaded, and the
line-joining function of normal-mode J is not already mapped, the plugin
will try to map it itself, for a more plug-and-play.
-rw-r--r-- | vim/config/whitespace.vim | 7 | ||||
-rw-r--r-- | vim/doc/fixed_join.txt | 9 | ||||
-rw-r--r-- | vim/plugin/fixed_join.vim | 6 |
3 files changed, 12 insertions, 10 deletions
diff --git a/vim/config/whitespace.vim b/vim/config/whitespace.vim index 12d41a4e..981def81 100644 --- a/vim/config/whitespace.vim +++ b/vim/config/whitespace.vim @@ -24,12 +24,5 @@ set shiftround " despite the noble Steve Losh's exhortations set nojoinspaces -" Rebind normal J to run plugin-defined join that doesn't jump around, but -" only if we have the eval feature, because otherwise this mapping won't exist -" and we should keep the default behaviour -if has('eval') - nmap J <Plug>FixedJoin -endif - " \x strips trailing whitespace via a custom plugin nmap <Leader>x <Plug>StripTrailingWhitespace diff --git a/vim/doc/fixed_join.txt b/vim/doc/fixed_join.txt index df0df251..834a3569 100644 --- a/vim/doc/fixed_join.txt +++ b/vim/doc/fixed_join.txt @@ -4,10 +4,13 @@ Author: Tom Ryder <tom@sanctum.geek.nz> License: Same terms as Vim itself (see |license|) This plugin provides a mapping target <Plug>FixedJoin to create a binding for a -user to join lines in normal mode without the cursor jumping around. +user to join lines in normal mode without the cursor jumping around. If the +user's configuration does not specify a mapping to this target by the time this +plugin is loaded, it will attempt to map 'J' in normal mode to simply replace +the default functionality. -If also provides a :FixedJoin command if you have +user_commands, but this is -not required. +The plugin also provides a :FixedJoin command if you have +user_commands, but +this is not required. This plugin lives in Tom Ryder's "dotfiles" suite, and will eventually be spun off into a separate distribution as it solidifies and this documentation diff --git a/vim/plugin/fixed_join.vim b/vim/plugin/fixed_join.vim index 83977c2f..2e7f2abd 100644 --- a/vim/plugin/fixed_join.vim +++ b/vim/plugin/fixed_join.vim @@ -31,6 +31,12 @@ noremap <silent> <unique> \ <Plug>FixedJoin \ :<C-U>call <SID>FixedJoin()<CR> +" If there's no mapping to it already, try to bind normal-mode J to it, to +" simply replace the old functionality +nmap <unique> + \ J + \ <Plug>FixedJoin + " Create a command as well in case it's useful if has('user_commands') command -nargs=0 |