こちらは デジタルキューブグループ Advent Calendar 2023 7日目の記事となります!
はじめに
みなさん Vim は使っておりますでしょうか。
僕は VSCode を使っています。
みなさんも、ターミナルからテキストファイルを修正したいとき、SSH した先でテキストファイルを修正したいとき、Vim を使うタイミングはそこそこあるのではないでしょうか。
僕もそうです。
が、なんだか機能を全部使いこなせていない気がします。
Vim の基本的な操作と、便利な機能について紹介していきます。
1. Vimの基本操作
Vimの基本操作には、ノーマルモード、インサートモード、ビジュアルモードなどがあります。
ノーマルモードでの基本操作
移動: `h`、`j`、`k`、`l`(左、下、上、右)
削除: `x`(カーソル位置の文字を削除)
コピー: `y`(ヤンク)、`p`(ペースト)、`yw`(単語をコピー)
移動は 2h
5k
のように前に数字を入れることでその回数分移動できます。
インサートモードへの切り替え
`i`(カーソル位置に挿入)、`a`(カーソルの次に挿入)
2. インサートモードとビジュアルモード
テキストの挿入や編集はインサートモードで行います。
インサートモードへの切り替え
ノーマルモードで `i` を押すと、カーソル位置から挿入が始まります。
`a` はカーソルの次から挿入が始まります。
ビジュアルモードの利用
`v` を押すと、文字単位での選択が可能。
`V` で行単位、`Ctrl+v` で矩形選択ができる。
3. マクロの活用
Vimのマクロ機能は、反復作業の自動化から複雑なタスクの実行まで、様々な場面で利用できます。
マクロの録音:
`q` でマクロの記録を開始し、任意のアルファベットでマクロの名前を指定。
実行するコマンドを記録。
`q` で録音終了。
マクロの確認:
`:reg` で記録したマクロの一覧が表示される
マクロの実行:
`:reg ` に続けてマクロ名を入力すると、記録した操作が再生される。
4. 画面分割機能
Vimでは、複数のファイルや同一ファイルの異なる部分を同時に表示するための画面分割機能があります。
コマンドは基本的に control + w を押した後にそれぞれのコマンドを続ける、というふうになっています。
基本操作:
Ctrl+w + s : 新しいウィンドウを水平に分割
:sp : 新しいウィンドウを水平に分割
Ctrl+w + v : 新しいウィンドウを垂直に分割
:vsp : 新しいウィンドウを垂直に分割
Ctrl+w + 矢印キー : 分割されたウィンドウ間を移動
Ctrl+w + c : 現在のウィンドウを閉じる
Ctrl+w + o : 現在のウィンドウ以外を閉じる
ウィンドウの削除は :q! でも可能です。
5. タブの作成機能
Vimでは、タブを使って複数のファイルを管理することができます。
基本操作:
:tabnew : 新しいタブを開く
:tabnext : 次のタブに移動
:tabprev : 前のタブに移動
:tabclose : 現在のタブを閉じる
タブの削除も :q! でも可能です。
6. Vimの中でTerminalを開く機能
Vim内でターミナルを開いてコマンドを実行することができます。
Vim内でTerminalを開く:
:term : 新しいターミナルを開く
Ctrl+w, :term : 画面を分割して新しいターミナルを開く
感想
マクロ、画面分割、ターミナルあたりは記事を書くにあたり初めて知りました。
かなり色々なことができるんですね。
まだまだいろんな機能があるみたい、とっても奥深い Vimmer の世界....
VSCode でいいや
おまけ↓
参考資料
https://vim.blue/tab-operation/
https://original-game.com/vim-mac6/
https://vim.blue/vim-macro-complex-repeat/
https://zenn.dev/sun_asterisk/articles/6b2bf762a7e510#terminal