Vim pluginをできるだけ少ないキーで実行させたいのと、前々から不便なところを変えたいと思ってたので書いた。:VimShell
などと毎回打ち込むのは非常に面倒だし( q:
してhistoryから選ぶのもいいけど)。
マッピングするにあたって参考にしたサイト
http://deris.hatenablog.jp/entry/2013/05/02/192415
とりあえず今回書いたマッピング。
nmap j gj
nmap k gk
nmap <S-h> ^
nmap <S-j> }
nmap <S-k> {
nmap <S-l> $
nmap m %
nmap <CR> A<CR><ESC>
nmap == :call SetCurrentLine()<CR>gg=G:call SetCursor()<CR>
nmap <Space>n :NERDTree<CR>
nmap <Space>v :vs<CR>:<C-u>VimShell<CR>
nmap <Space>tl :vs<CR>:TweetVimHomeTimeline<CR>
nmap <Space>tm :vs<CR>:TweetVimMentions<CR>
nmap <Space>ts :TweetVimSay<CR>
imap <C-f> <C-x><C-o>
vmap <S-h> ^
vmap <S-j> {
vmap <S-k> }
vmap <S-l> $
function! SetCurrentLine()
let s:line = line('.')
let s:col = col('.')
endfunction
function! SetCursor()
call cursor(s:line, s:col)
endfunction
ちょっとした解説
nmap j gj
とかnmap k gk
は割と定番なマッピング。Shift + h
で左端、Shift + l
で右端にカーソル移動。いちいち$
とか^
を押す必要がない。 めっちゃ便利。nmap <CR> A<CR><ESC>
:ノーマルモードでもリターンキーで改行できるようにした。=
を二回連続で入力することでバッファ全体のインデント整理をするようにした。その際、先頭行に移動してしまうので、移動しないようにちょっとした関数を書いた。(もっと綺麗に書きたい)- 各プラグインは
Space + 'プラグインの頭文字'
みたいに設定した。 imap <C-f> <C-x><C-o>
: オムニ補完をキー一発でできるように設定。
個人的におすすめは、nmap <S-h> ^
と nmap <S-l> $
。 ものすごい便利。ホームポジションを崩さずに操作できるのは気持ちがいい。
最後に
あくまでこういうマッピングもあるんだな程度で。
たぶん、コピペしてもマッピング内容を忘れるので。
ちなみにこれ書くのに2時間くらい使った。テキストエディタの闇は深い。