LoginSignup
12
4

More than 3 years have passed since last update.

emacs派のためのvimrc

Last updated at Posted at 2019-06-15

対象

  • emacs、mac、linuxのキーバインドでvimのカーソル移動をしたい
  • なんらかの事情でvimを扱う必要があるが、vimのキーバインドに慣れない(特にカーソル移動)

vimrcのリマップ

これを~/.vimrcに貼り付ければOK

~/.vimrc
noremap <C-p> <Up>
noremap <C-n> <Down>
noremap <C-b> <Left>
noremap <C-f> <Right>
noremap <C-a> <HOME>
noremap <C-e> <END>
noremap <C-d> <Del>
noremap <C-h> <BS>
noremap <C-k> <Esc>D
noremap <C-u> <Esc>dd

noremap! <C-p> <Up>
noremap! <C-n> <Down>
noremap! <C-b> <Left>
noremap! <C-f> <Right>
noremap! <C-a> <HOME>
noremap! <C-e> <END>
noremap! <C-d> <Del>
noremap! <C-h> <BS>
noremap! <C-k> <Esc>D
noremap! <C-u> <Esc>dd

解説

設定したキーバインド

コマンド 動作
ctrl + p 1行上にカーソル移動
ctrl + n 1行下にカーソル移動
ctrl + f 1行右にカーソル移動
ctrl + b 1行左にカーソル移動
ctrl + a 行の先頭にカーソル移動
ctrl + e 行の末尾にカーソル移動
ctrl + d カーソルの右の一文字を削除(delete)
ctrl + h カーソルの左の一文字を削除(back space)
ctrl + k カーソルから行末まで削除
ctrl + u 1行削除

※ctrl + kが連続使用できない(とりあえず妥協)
※page up,down系はhhkbのキーバインドで不便していないので省略

vimのマッピング

どうやらvimにはノーマル、ビジュアル、選択、オペレータ待機、挿入、コマンドラインなどのモードがあるようだ
noremapとnoremap!で大体カバーできるみたいなので、容赦なくリマップする

     コマンド                    モード
:map   :noremap  :unmap     ノーマル、ビジュアル、選択、オペレータ待機
:nmap  :nnoremap :nunmap    ノーマル
:vmap  :vnoremap :vunmap    ビジュアル、選択
:smap  :snoremap :sunmap    選択
:xmap  :xnoremap :xunmap    ビジュアル
:omap  :onoremap :ounmap    オペレータ待機
:map!  :noremap! :unmap!    挿入、コマンドライン
:imap  :inoremap :iunmap    挿入
:lmap  :lnoremap :lunmap    挿入、コマンドライン、Lang-Arg
:cmap  :cnoremap :cunmap    コマンドライン
:tmap  :tnoremap :tunmap    端末ジョブ

参考
https://vim-jp.org/vimdoc-ja/map.html#map-overview

さいごに

いろんなサーバに入ることが多いのですが、emacsは当然入っていません。
コーディングはIDEで行っているので、最低限のカーソル移動系のキーバインドだけどうにかしたいと思い設定しました。

本当のemacs派の人には物足りない設定になっているでしょうが、そこはすみません
(追記したほうがいいものがあれば教えてください)

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4