LoginSignup
16
11

More than 1 year has passed since last update.

業務に活かせるVimテクニック

Last updated at Posted at 2021-12-22

はじめに

2021年度ニフティ新入社員兼Vimmerの@penpenpenです!
普段からNeoVimを愛用しており、社内でVimを布教しています。
本記事では、開発で使っていて便利だと思ったコマンドを紹介します。

Tips

それでは行きます!

任意の長さの文字列を作成する

ノーマルモードで以下のようなコマンドを打ちます。
(文字数)i(入力したい文字)
すると, インサートモードに入るので、そのままescでノーマルモードに移行すると所望の文字列が得られます。
例えば以下の画像では、64文字のxが入力されています。
決めた長さの文字列を作成する

単語を繰り返すことも可能です。
vimを繰り返すだけの画像![Kapture 2021-12-22 at 16.55.32.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270960/0a7f8485-29ba-e3e8-0ac7-e809ac34d480.gif)<br>

行頭、行末に同じ文字列を挿入する

行頭に特定の文字を入れる

矩形選択のビジュアルモードで行を選択し、Iを打ち、インサートモードに入ります。その後挿入したい文字列を入力しノーマルモードに戻ると行頭に文字列が挿入されます。
行頭に特定の文字列を入力する
なお、単にコメントを入れたい場合は、tomtom/tcomment_vimなどのプラグインを使うと便利です。

行末に特定の文字を入れる

行末の場合は、行頭でIを打つところをAと打てば良いです。
行末に文字列を入れる
Cなどの行末に;を入れないといけない言語で、入れ忘れを一括で直したい時などに便利です。

連番を作る

まずは連番を作りたい分だけヤンク&ペーストで1を入力します。
次に、矩形選択で数字を選択し、g<C-a>を打つと、連番が得られます。
選択する範囲は連番の最初の数字の次の数字からスタートすることに注意してください。
Kapture 2021-12-22 at 17.02.17.gif
これまでのテクニックを組み合わせると、手軽にリストを作れます。
Kapture 2021-12-22 at 22.39.52.gif

特定の文字列を含む行を削除する

ノーマルモードで以下のようなコマンドを打ちます。
:g/hogehoge/d
これにより、hogehogeを含む行を削除することができます。
コメントや、行を削除したいときにその行に特定の文字列が含まれているときに一掃できるので便利です。
行削除

バッファ上でコマンドを実行する

sortや昨日の@h_okawa0303さんが紹介されたjqといったlinuxコマンドもVim上で実行しテキストの整形ができます。
では、試しに『「jqめちゃくちゃ便利じゃん😂」と感動することが多いので使い方を調べた』のソートを実行してみましょう。あらかじめusers.jsonをペーストしているものとして話を進めます。

ビジュアルモードでコマンドに入力したい文字列を選択し、!(linuxコマンド)を入れると、実行結果に置き換えてくれます。
Kapture 2021-12-22 at 21.56.24.gif
Kapture 2021-12-22 at 22.02.06.gif
手軽にjsonを整形したり、バッファ上の文字列をソートするときに便利です。

重複している行を削除

ノーマルモードで:sort uと打つと重複行を削除できます。
重複している行を削除
辞書順にソートされてしまいますが、どういう値が入っているか簡単に眺めたいときなどに便利です。

おわり

本記事でのVimのテクニックで何か参考になる部分があれば幸いです。

本日は弊社のiOSアプリ、マイニフティがリリースされました!
https://csoption.nifty.com/myapp/
もし@nifty接続サービスを使われていましたら、ぜひお試しください。

16
11
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
16
11