vimをよく使っていろいろ編集しているのですが、最近キーカスタマイズにはまっているので紹介。

karabinerと組み合わせる場合 *

テスト的に、Karabinerを利用。インストールはHomebrewで。インストールしたら、アクセシビリティとか変更の必要あり。

brew cask install karabiner-elements

jkで挿入モードを抜ける *

.vimrcに以下を記述。また念のため<C-j>にも割り当てる。

" ESCキーの代わり
inoremap jk <ESC>
imap <C-j> <esc>
noremap! <C-j> <esc>

Leaderキーにいろいろ割り当てる *

こちらも、.vimrcに書きます。ここでは、Leaderをスペースキーに割り当てています。Leaderキーの機能は、キーの組み合わせではなくて、連続でキーを押すことで実行できるショートカットのようなもの。

let mapleader = "\<Space>"

そして、もろもろの機能を割り当て。

" 二回スペースキーを押すとビジュアルモードに。
nmap <Leader><Leader> V
" [スペース]とwで保存
nnoremap <Leader>w :w<CR>
" クリップボードのアクセスも
vmap <Leader>y "+y
vmap <Leader>d "+d
nmap <Leader>p "+p
nmap <Leader>P "+P
vmap <Leader>p "+p
vmap <Leader>P "+P

あとは、vim-goでビルドと実行を割当てると便利。vim-goのチュートリアルに書いてあるやつだけど。

autocmd FileType go nmap <leader>b  <Plug>(go-build)
autocmd FileType go nmap <leader>r  <Plug>(go-run)

挿入モードでカーソル移動 *

英数キーと組み合わせなければ、karabiner使わなくてもできます。

" 挿入モード時、Ctrlキーでhjklで移動
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
cnoremap <C-h> <Left>
cnoremap <C-j> <Down>
cnoremap <C-k> <Up>
cnoremap <C-l> <Right>