vimをよく使っていろいろ編集しているのですが、最近キーカスタマイズにはまっているので紹介。
テスト的に、Karabinerを利用。インストールはHomebrewで。インストールしたら、アクセシビリティとか変更の必要あり。
brew cask install karabiner-elements
.vimrcに以下を記述。また念のため<C-j>にも割り当てる。
" ESCキーの代わり
inoremap jk <ESC>
imap <C-j> <esc>
noremap! <C-j> <esc>
こちらも、.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>