はじめに
こんにちはshotaです。
今回は、vim初心者がvimtutorをやる中でこれは覚えた方がいいなと感じたコマンドをユースケースと共に書いていこうと思います。
今後また、役立ちそうだなと思うコマンドがあればそれも追記していこうと思います!
また、毎回書くのが大変なのでお伝えしておくと、以下で記載するコマンドはすべてノーマルモード(escキーを押した状態)であることが前提です。
vimを覚えて活用していく上での大事な考え方
テキストに変更を加えるvimの操作コマンドの多くは、オペレータとモーションからなります。
オペレータでは、何をするかを指定します。(例えば「d」は、削除を意味します)
モーションでは、何に対して働きかけるかを指定します。(例えば「w」は、カーソル位置から空白を含む単語の末尾までを指します)※
例えば、escキー打った後にカーソルを合わせて、「dw」コマンドを実行すると、カーソル位置から空白を含む単語の末尾まで削除されます。
また、オペレータとモーションの間にカウントを利用すると、指定した数値分繰り返し実行できるようになります。
例えば、「d2w」の場合は、空白を含む2単語削除することができます。
この考え方を持った上で、次のユースケースを見てください。
- w:カーソル位置から空白を含む単語の末尾まで
- e:カーソル位置から空白を含まない単語の末尾まで
- $:カーソル位置から行末まで
※モーションに関しては、共通の場合が多く、以下のようなものが多いです。
vimの起動と終了
まずは、vimの起動と終了がわからなければ始まりませんのでそこから記載していきます。
利用方法
vimの開始:
ターミナルでvimと打てばvimを起動できます。
また、vim ファイル名を指定すると、ファイルが存在する場合は既存ファイルがvimで開きますし、ファイルが存在しない場合は新規ファイルが作成され、vimで開きます。
vimの終了:
- :q:保存をせずに終了
- :qw:保存して終了
カーソルの移動
vimにはカーソルノーマルモード時(escを押した後の状態)にカーソル移動を十字キー以外で行う方法があります。
これが使えると、基本的に手をキーボードの定位置から動かす必要がなくなるため、便利です。
利用方法
h:左
j:下
k:上
l;右
文字を消したいとき
利用方法
- 消したい文字の上にカーソルを移動する
- xを押すとカーソル直下の文字が削除される
テキストを編集したいとき
カーソル直下でINSERTモードになる。
利用方法
- iキーを押す
- 画面下部に-- INSERT --と表示されていれば、テキストが入力可能になる
テキストを追加したいとき
カーソル直下の次からINSERTモードになる。
利用方法
- Aキーを押す
- 画面下部に-- INSERT --と表示されていれば、テキストを入力可能になる
単語・文章を削除したいとき
利用方法
最初に説明したvimを覚えて活用していく上での大事な考え方で説明した通り、オペレータとモーションの組み合わせをここでは使用します。
dw:カーソル位置から空白を含む単語の末尾まで削除
de:カーソル位置から空白を含まない単語の末尾まで削除
d$:カーソル位置から行尾まで削除
行全体の削除
利用方法
dd
コピペと切り取り(ターミナルで言う「Command+c」、「Command+v」「Command+x」)
利用方法(Command+c)
- vキーを押す
- h,j,k,lでコピーする範囲を選択する
- yキーを押す
利用方法(Command+v)
- vキーを押す
- カーソルをペーストしたい位置に持ってくる
- pキーを押す
利用方法(Command+x)
- vキーを押す
- h,j,k,lで切り取る範囲を選択する
- dキーを押す
注意点
上記コマンドは、OSではなくvim上でのコピペなので、上記の方法でコピーや切り取りしたものをControl+vしても貼り付けはできません。**
検索したいとき
利用方法
/検索したい単語を記載する
次の検索結果に移動したい時は、nを押す
前の検索結果に移動したい時は、Nを押す
対応する括弧を検索したいとき
括弧が一致していないプログラムのデバッグ等で役立ちます
利用方法
- 始まりの括弧((,{,[)にカーソルを合わせる
- %とタイプすると、その始まりの括弧に対応する閉じ括弧に移動します
外部コマンドを実行したいとき
今書いているファイルどこにあるものだっけとかでも使えそうだなと思い書いてます
利用方法
- :!タイプした後にコマンドを記載しEnterを押す
例えば、:!lsを実行すると、vimを操作しているファイルの階層でlsコマンドが実行されます
別ファイルに記載した内容を保存したいとき
vim ファイル名ではなく、vimで起動した時、ファイル保存先が決まっていない状態です。
そんな時、vimを新しいファイルだったり、特定のファイルに保存したいときに使えます。
利用方法
:w ファイル名
ファイルの中身をvimで開いているファイルに挿入したいとき
元のファイルは残しておきつつ、別ファイルにも挿入したい時使えるかなと思い書いてます。
また、コマンドの出力結果を入力したい場合なども利用できます。
利用方法
:r コピー元ファイル名 or !実行コマンド
文字を置換したいとき
既にある文章を置換したい場合などに便利です。
置換は、挿入に似ていますが、全てのタイプされた文字は既存の文字を削除した上で挿入されます。
利用方法
- 置換したい文字の上にカーソルを移動します
- Rを押します
- 置換したい内容を打ち込みます
検索時に大文字/小文字を無視したいとき
利用方法
- set ic
逆に大文字/小文字の区別の無視を無効にしたいとき
- set noic
マッチした内容を強調表示したいとき
- set hls
各コマンドの仕様が見たいとき
以下の3つの方法で見ることができます。
利用方法
- ヘルプキーを押す
- fnキー+F1キーを押す
- :helpでEnterを押す
上記実行後に:help 調べたいコマンド で実行すればそのコマンドの使用を見ることができます。
コマンドの補完をしたいとき
コマンドを打つときの補完をしてくれます。
利用方法
- コマンドの先頭を打って、control+Dを押すと、先頭文字から始まるコマンドの一覧を表示します
- 更に上記で検索した結果に合うようコマンドある程度打って、tabキーを押すと、候補を表示します
- コマンドを打ち終えた後に半角スペースを押して、tabを押すと、候補を表示します
OSのクリップボードにファイル内の内容をコピーしたいとき
vimで書いたファイルをQiitaとかに貼り付けたい時に役立ちます。
自分も今回Qiitaに移そうとして困って調べました。
内容としては、ファイル全体の内容をクリップボード(システムレジスタ +)にコピー(ヤンク)するコマンドです。
利用方法
- :%y+