はじめに
2021年度ニフティ新入社員兼Vimmerの@penpenpenです!
普段からNeoVimを愛用しており、社内でVimを布教しています。
本記事では、開発で使っていて便利だと思ったコマンドを紹介します。
Tips
それでは行きます!
任意の長さの文字列を作成する
ノーマルモードで以下のようなコマンドを打ちます。
(文字数)i(入力したい文字)
すると, インサートモードに入るので、そのままescでノーマルモードに移行すると所望の文字列が得られます。
例えば以下の画像では、64文字のxが入力されています。
行頭、行末に同じ文字列を挿入する
行頭に特定の文字を入れる
矩形選択のビジュアルモードで行を選択し、Iを打ち、インサートモードに入ります。その後挿入したい文字列を入力しノーマルモードに戻ると行頭に文字列が挿入されます。
なお、単にコメントを入れたい場合は、tomtom/tcomment_vimなどのプラグインを使うと便利です。
行末に特定の文字を入れる
行末の場合は、行頭でIを打つところをAと打てば良いです。
Cなどの行末に;を入れないといけない言語で、入れ忘れを一括で直したい時などに便利です。
連番を作る
まずは連番を作りたい分だけヤンク&ペーストで1を入力します。
次に、矩形選択で数字を選択し、g<C-a>を打つと、連番が得られます。
選択する範囲は連番の最初の数字の次の数字からスタートすることに注意してください。
これまでのテクニックを組み合わせると、手軽にリストを作れます。
特定の文字列を含む行を削除する
ノーマルモードで以下のようなコマンドを打ちます。
:g/hogehoge/d
これにより、hogehogeを含む行を削除することができます。
コメントや、行を削除したいときにその行に特定の文字列が含まれているときに一掃できるので便利です。
バッファ上でコマンドを実行する
sortや昨日の@h_okawa0303さんが紹介されたjqといったlinuxコマンドもVim上で実行しテキストの整形ができます。
では、試しに『「jqめちゃくちゃ便利じゃん😂」と感動することが多いので使い方を調べた』のソートを実行してみましょう。あらかじめusers.jsonをペーストしているものとして話を進めます。
ビジュアルモードでコマンドに入力したい文字列を選択し、!(linuxコマンド)
を入れると、実行結果に置き換えてくれます。
手軽にjsonを整形したり、バッファ上の文字列をソートするときに便利です。
重複している行を削除
ノーマルモードで:sort uと打つと重複行を削除できます。
辞書順にソートされてしまいますが、どういう値が入っているか簡単に眺めたいときなどに便利です。
おわり
本記事でのVimのテクニックで何か参考になる部分があれば幸いです。
本日は弊社のiOSアプリ、マイニフティがリリースされました!
https://csoption.nifty.com/myapp/
もし@nifty接続サービスを使われていましたら、ぜひお試しください。