1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vimでC++編集する時に使えるいいこと考えちゃった

Last updated at Posted at 2019-04-23

TL;DR

この方法は良くない。いいと思ったけど良くない。
z+f等の畳み込み(Folding)を使おう!

はじめに

便利なものを作ったつもりで以下を書いたのですが,実際にはコメントで教えていただいた折畳を使った方が良さそうです.折畳に関してはこちらにまとめました.

したこと

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>に置換を割り当てることができた.

動作画面

以下が,動作画面である.連結すると,見た目上の行数が減るので,注目できる(かも).

vimLinkingTest.gif

いつでも;を;<CR>に置換ができるので,編集中は読みたくない部分を省略して編集後に戻すことができるようになった.

1
2
2

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?