したこと
Vimを使い始めて半年経ち,vimrcでショートカットを作成したりするようになって,ようやくVimmerと呼ばれてもいいくらいになってきた.(Pluginは使っていない)
何気なくC++のプログラムを編集していて,思った.
「確実にあっている部分が視界に入って鬱陶しいなあ・・・」
そこで,何か解決方法はないかを考えたところ,Vimを使い始めた時に何度か間違えて押していたShift+j
を思い出した.ちなみに,
Shift + j
は,現在の行と次の行をスペースをいれて連結する
コマンドである.
このコマンドは間違えて入力すると,ソースコードがまとまって面倒なことになる.u
を使ってすぐに戻っていた.
しかし,みたくない部分
をまとめてしまうことができるなと考えた.終了後に元に戻すことができれば便利に使えそうだ.ここで考えたのが,C++であれば行末には;
があるため,;
を;<CR>
に置換することだ.
Vim上で
:s/;/;^M/g
とコマンドを実行すると;
が;<CR>
になってくれた.そこで,Shift+k
にショートカットを割り当てようと思い,~/.vimrc
に以下を記述した.
~/.vimrc
nnoremap <S-k> :s/;/;^M/g
これでVim上でShift+k
を入力するとコマンドが
/g
になってしまった.どうやらvimrc
では^M
は使えないようだ.そこで,先ほどの内容を以下に変更した.
~/.vimrc
nnoremap <S-k> :s/;/;\r/g
これで無事Shift+k
に;を;<CR>に置換
を割り当てることができた.
動作画面
以下が,動作画面である.連結すると,見た目上の行数が減るので,注目できる(かも).
いつでも;を;<CR>に置換
ができるので,編集中は読みたくない部分を省略して編集後に戻すことができるようになった.