2d 13h の遅延、申し訳ありません
Vim Advent Calender 2 の 16日目の記事です
なぜ書いたか
jj -> esc などの非常に使い勝手がよく、手になじむコマンドを広めたい
主に .vimrc
での設定についてです
jj to esc
一番 Vim での作業効率が上がるコマンドだと思っている
imap jj <Esc>
多分ここを見て知った
普段入力する insert mode から カーソルを移動させたり行単位で削除やカット、複製をする normal mode への移動には
esc
か ctrl h
を使っていたが、前者では大きく左上に、後者では少し右下に、左手をホームポジションから浮かせて動かさなければならない。一方 このマッピングで適用した jj ならばホームポジションのまま右の人差し指を二連打するだけで切り替えができる。
j を二つ使う単語や j で終わる単語があれば困るが、英単語にも日本語にも j が連続する単語はなく、j で終わる単語も
これなどを参考に見てもなさそうで、実際に使っていても遭遇したことがないので、干渉する事はないと思う。
VScode でも
ここを参考に
VScode の preferences -> setting をクリックして setting を開き
右上のアイコンの右から三番目のファイルマークのアイコンを開き、 設定ファイルを表示して
setting.json に
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"after": ["<Esc>"]
}
],
と書けば jj で インサートから ノーマルに抜けられる。
VScode でも非常に便利なのでおすすめ
cll to console.log()
おそらくこちらの gist からコピペして使っていたはず
imap cll console.log();<Esc>==f(a
js 限定だが、何かと使うことが多いのに入力数が多い console.log()
このマッピングをするとホームポジションのまま
左手中指を一段下げて一回、右手薬指をそのままの段で二連打するだけで、console.log()
の 10文字が打てる。
しかもカーソルが()の内部に入っているのでさらにすぐ中身が書ける。
欠点としては普段 c を入力した後に数フレーム c が入力されずに入力待ちになるのが少し気になるかもしれない。
js で console.log()
を打つのがめんどくさいと感じている人にはおすすめ
H/L で行の最初/最後に
これは出典不明です。わかり次第追記します
map H ^
map L $
H で空白以外の行頭
L で行末 にカーソルを一気に飛ばせる。
h で左に、l で右に移動するのが染み付いてくると、
シフト押しながら H で一気に一番行の左へ!!!!
シフト押しながら L で一気に一番行に右へ!!!!
と直感的でわかりやすい。
ホームポジションから左小指を少し下げるだけで手首の移動なしで入力できる。
yank と普段のコピーの統一
この辺を参考にコピペした
Linux, Mac, Win, で異なるので注意。私は Ubuntu でハマった
set clipboard=unnamed
vim を使っているときに yank する場所と普段のブラウザやエディタのクリップボードは違っている。
全部一つに統一してしまった方が私は捗るのでそうしている
これを適用して、vim でマークダウン書いて gg V G y で全部コピーして Qiita や Notion に CMD V で貼り付けしている
esc esc to delete search highlight
これも出典が見つからなかった。勉強会で直接教えてもらった記憶がある。
nnoremap <Esc><Esc> :nohlsearch<CR>
esc esc を No HighLight Search にマッピングする
普通に検索するなり間違えて単語の上で *
を押すなりすると検索した単語がハイライトされる
VScode などなら x を押せば検索窓が終了してハイライトも消えるが、Vim ではコマンドで消さないと延々と残り続けて目障りなので、すぐに消せるように ESC 二連打にマップすると検索が終わった後に ハイライトを消せて楽。
まとめ
以上の
imap jj <Esc>
での jj でのインサート抜け
imap cll console.log();<Esc>==f(a
での cll での console.log()
set clipboard=unnamed
での vim と普段のクリップボードの統一
nnoremap <Esc><Esc> :nohlsearch<CR>
での esc esc で検索単語のハイライトの解除
が私のおすすめ Vim 追加コマンド(マッピング)でした。