端書
ここ2~3年で、テキストエディタの世界はすっかりVisual Studio Code(VSCode)一強となりました。(このテキストを書くのに調べてみたら、VSCodeの初回リリースは2015年なんですね。もう少し最近かと思っていました。)
そんな中 癖の塊でしかないvim/gvim(以下、vi系)を使っていて、とても便利だと思った機能を紹介します。
基本的な使い方は 既に多くの方が記事を書かれているので そちらを参照してください。
なぜvi系を使うのか?
始まり
セミナー(※1)に行った時、OSがLinuxで viをまったく使えませんでした。
「設定を変更して保存してエディタを終了する」ことすらできない悔しさ。
できないならトレーニングすればよい。そこからvi系を探していたところ、gvimに出会いました。
生真面目にマニュアル読みながら覚えようとして挫折すること2回。
「カーソルの移動」と「コピー(ヤンク)」「ペースト」「デリート」のみでとりあえず使い始め 今に至ります。
※1
確か、Azureがまだ弱々だった頃のPostgreSQLのセミナーでした。
それでも有効性は高い
会社では ほぼWindowsしか使わないので、vi系知識が「必須になる」ことはありません。
ただ、OracleやPostgreSQLを使用する時、リリースタイミングと相互運用チェックと趣味でLinuxに構築することもあるので、意識せず使えるようになったvi系の知識は重宝します。
そして便利に使えるようになる
使えば使うほどコマンドを覚えて便利に使えるので、VSCodeよりも使っています。
(つまりVSCodeも使っています。)
せっかくなので、いくつか紹介したいなぁ、と思い至りました。
機能:連番
概要
連番をつけたい場合、番号なしでテキスト作成してから番号をつけます。
手順
テキストを作成して
Ctrl+v
で矩形選択モードにして、カーソル移動(Shift+g
でもOK)で最終行まで選択し
Shift+i
→1.
→ESC
で左端に1.
をまとめて設定
2行目以降の数値部分をCtrl+v
で矩形選択し
g
→Ctrl+a
で連番になります。
仕組み
Ctrl+a
は自身を含め右側で一番近い数字のインクリメント。
これにg
をつけています。
(g
については後述します。)
機能:カーソル行以下削除(=レジスタ保存)
概要
私のgvim使用用途は主に「下書き」であり、作成した文書は別のところに持っていく必要があります。
書き出しを一番下の行から行えば、この方法で 簡単に余す所なくレジスタに入れることができます。
手順
文書を作成したら
書き出し部分に戻り
d
→Shift+g
あとは必要なところに貼り付ける
仕組み
削除(レジスタ保存)のd
と、最終行への移動のShift+g
の組み合わせです。
移動キー:{
、}
概要
段落移動できます。
目に見える範囲で移動できるので、Cntl+b
やCntl+f
よりも使い勝手がよいと思っています。
動作
}
を繰り返し押下した時の動作は以下の通りです。
{
は上記の逆方向に動作します。
もちろん、他のカーソル移動系キーと同様、d
,y
,v
との組み合わせも可能なので、「ブロックを切り取って移動する」などが簡単にできるようになります。
痒いところに手が届くg
g
はちょっとした機能を提供してくれます。
表示上の行移動(g
→j
,g
→k
)、半角空白なしの行結合(g
→Shift+j
)、貼り付け後 貼り付けた最終行に移動(g
→p
)など。
今まで使っていたコマンドにg
を付加すると結構面白いです。
あとがき(今後)
何か良さげなものがあったら追記します。
あとがき(雑談)
セミナーなどでノートPC のキーボードを使った時、vi系のカーソル移動は本当に便利だと感じました。
普段使いのキーボードは カーソルキーをホームポジションにマッピングしているので、そのあたりの利便性は気づきませんでしたが、ノートPCでNotepad使うと カーソル動かすだけでイライラしました。