記事の内容
Vim(Neovim)の基本操作についてまとめてみました。
Vimとは
- ターミナル上でファイルやコードの編集ができるテキストエディタ
VimとNeovimの違い
- Vimは昔から使われているが、動作が遅くなってきている/複雑になってきているため、軽量化や拡張性を考慮した新たなVimとしてNeovimが開発された。
- Vimでできることは、ほとんどNeovimでできる。
- 使い方もほとんど同じ。
- Neovimの方がプラグインが豊富。
モードの切り替え
Vim(Neovim)にはモードという概念があり、モードによってできることが変わります。
| モード |
できること |
| インサートモード |
カーソルの移動や文字の削除など |
| ノーマルモード |
ファイルの編集 |
| コマンドモード |
ファイルを開かずに対象ファイル内のコマンドを実行できる |
| ビジュアルモード |
範囲選択など |
目的の作業に適したモードに切り替えながらファイルの編集を行います。
モードの切り替え方法は下記通りです。
| モード |
コマンド |
| インサートモード |
esc |
| ノーマルモード |
i |
| コマンドモード |
: |
| ビジュアルモード |
v |
コマンド一覧
Vim(Neovim)で使用頻度の高いコマンドの一部を種類別に一覧化しました。
起動
| コマンド |
機能 |
| vim |
vimの起動 |
| vim ファイル名.拡張子 |
対象のファイルをVimで起動 |
カーソル移動
| コマンド |
機能 |
| k(ノーマルモード) |
↑に移動 |
| j(ノーマルモード) |
↓に移動 |
| h(ノーマルモード) |
←に移動 |
| l(ノーマルモード) |
→に移動 |
ファイルの編集
| コマンド |
機能 |
| a(ノーマルモード) |
次の文字からインサートモードに切り替え |
| o(ノーマルモード) |
選択行の下に空白を入れ、インサートモードに切り替え |
| O(ノーマルモード) |
選択行に空白を入れ、インサートモードに切り替え |
ファイルの閉じ方
| コマンド |
機能 |
| :w ファイル名 |
名前をつけて保存 |
| :q |
編集終了(内容に変更がある場合は終了できない) |
| :q! |
保存しないで編集終了 |
| :wq |
保存して終了 |
削除
| コマンド |
機能 |
| x(ノーマルモード) |
1文字削除 |
| dd(ノーマルモード) |
1行削除(コピー可能) |
| dw(ノーマルモード) |
単語の削除 |
| 2 dd(ノーマルモード) |
2行削除 |
| u(ノーマルモード) |
Undo(直前の変更を元に戻す) |
| Control+r(ノーマルモード) |
Undo redo(Undoされた変更を再び行う) |
コピー&ペースト
| コマンド |
機能 |
| yy(ノーマルモード) |
1行コピー |
| p(ノーマルモード) |
現在の行の下にコピー |
| P(ノーマルモード) |
現在の行にコピー |
| 2 yy(ノーマルモード) |
2行コピー |
| v(ビジュアルモード)移動してからy |
カーソルで指定した範囲のコピー |
検索/置換
| コマンド |
機能 |
| /検索したい文字列 例 /test |
検索 |
| n |
次の検索結果に移動 |
| N |
前の検索結果に移動 |
| :%s/置換したい文字列/置換後の文字列/g |
一括置換 |
| :%s/置換したい文字列/置換後の文字列/gc |
1つずつ確認しながら置換 |
移動
| コマンド |
機能 |
| :set number |
行番号の表示 |
| :10 |
10行目に移動 |
| { |
段落ごとに上に移動 |
| } |
段落ごとに下に移動 |
| [[ |
セクションごとに上に移動 |
| ]] |
セクションごとに下に移動 |
参考文献
現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門 | Udemy