私はvimをUnix系システムでもvscodeのvimプラグインでもよく使いますが、vimの効率的で効果的な編集モードはとても使いやすいです。
この投稿は、その使用過程でのメモを記録したものです。
Vim
Vim 正規表現のさまざまなモード
Vimにはいくつかのモードがありますが、私がよく使うモードは以下の通りです:
NORMAL MODE | ノーマルモードは、ちょうどファイルのデフォルトを入力すると、このモードでは、編集することはできませんが、カーソルを移動することができます入力します。 |
INSERT MODE | 挿入モード、つまりテキストを入力できる編集モード |
VISUAL MODE | vを押してアクセスする視覚化モードでは、特定の文字や行を選択することができます。 |
VISUAL LINE MODE | shift+vキーでアクセスできるビジュアルラインモードでは、複数の行を選択できます。 |
VISUAL BLOCK MODE | ビジュアル文字ブロックモード、ctrl+vを押して入力し、文字の同じ位置を選択するために複数の行を選択することができます。 |
Vim 一般的なショートカット
カーソル移動の制御
以下のキーはすべて、通常モードまたは視覚化モードで使用できます。
j | カーソルを1行下に移動 |
数 n+j | カーソルをn行下に移動 |
k | カーソルを1行上に移動 |
数 n+k | カーソルをn行上に移動 |
h | カーソルを左へ1文字移動 |
数 n+h | カーソルをn文字左に移動 |
l | カーソルを右に1文字移動 |
数 n+l | カーソルをn文字右に移動 |
0 | カーソルは現在の行の先頭に移動します。 |
$ | カーソルは現在の行の最後に移動します。 |
gg | カーソルはテキスト全体の先頭に移動します。 |
G | カーソルはテキスト全体の最後に移動します。 |
数 n+G | カーソルをn行目に移動 |
編集 コピー ペースト 削除
以下のキーはすべて、通常モードまたは視覚化モードで使用できます。
i | 現在のカーソル文字より前の編集 |
shift+i | 現在の行の先頭で編集 |
a | カーソル位置以降の編集へ |
shift+a | この行の最後で編集へ |
o | 現在の行の下に編集用の新しい行を追加します。 |
O | 現在の行に編集用の改行を追加 |
Esc | 編集モードやその他の操作の終了 |
u | 前のステップを元に戻す |
u または shift+u | 視覚化モードでは、uは選択した大文字を小文字に変更し、shift+uは選択した小文字を大文字に変更します。 |
x | 現在のカーソルがある文字、またはビジュアルモードで選択されている複数の文字を削除します。 |
数 n+x | 現在のカーソルの先頭から n 文字削除します。 |
dd | 現在のカーソル行、またはビジュアルモードで選択されている複数の文字を削除します。 |
数 n+dd | 現在行からn行削除 |
y | 選択した行または文字をコピー |
yy | チェックを外すと、現在の行をコピーします。 |
p | カーソル位置の後ろ、またはコピーが行にある場合は新しい次の行に貼り付けます。 |
shift+p | カーソル位置の前に貼り付けるか、行をコピーする場合は新しい前の行に貼り付けます。 |
r | 置換: 選択された文字または行を、その後に入力された文字で置換します。 |
コマンドの実行
保存と終了
以下のコマンドを実行するには、shift+:を使用します。
w | 保存 |
wq | 保存して終了 |
q | 保存せずに終了 |
q! | 強制終了 |
ウィンドウの切り替え
以下のウィンドウ関連コマンドを実行するには、shift+:を使用します。
split | 新しいウィンドウが縦に開き、新しいウィンドウで開かれたファイルは同じファイルのままです。 |
split new.file | 新しいウィンドウを縦に開き、新しいウィンドウはnew.fileファイルを開きます。 |
vsplit | 窓を横に開くと縦になるのは、窓が縦に並んでいることを示しているのでしょうか? |
ctrl+w | ウィンドウ切り替え状態に入り、jkhlでウィンドウを切り替えるか、wで次のウィンドウにジャンプします。 |
検索
通常モードで / または ?を押して検索操作を実行します。
/aaa | 上から下へ順に検索モードに入り、Enterを押すと最初の結果に、nを押すと次の結果に、shift+nを押すと前の結果にジャンプします。 |
?aaa | 検索モードを下から上に入力し、Enterキーを押すと最初の検索結果にジャンプします。 |
置換
通常モードでshift+:を押して、置換操作を実行します。
構文を使ってください:
s/正規文字列/置換文字列/フラグビット
最後に、正規表現を使って検索と置換の両方の操作が可能です。