0
0

More than 1 year has passed since last update.

Vimのコマンド(自分用のメモ書き)

Posted at

はじめに

数年前にLinux系のお仕事でvimを触ったおかげでvimが好きなった。
ピアノのようにキーを奏でられるところが好き。
しばしば使うコマンドを、しばしば忘れる。
vimのhelpに全て記載されているが、vscodeにてvimのキーバインドを使用しているので、気軽にヘルプがみれない。
だから、メモをQiita上に残して見れるようにしておく。

参考書籍

著者が喜ぶので、書籍を購入することをお勧めする。
Kindleで購入してしまったので、少し後悔。
老眼進行中なので、スマホで読むのがしんどい。

モードの遷移

Vimには4つのモードがある。

  • ノーマルモード
  • ビジュアルモード
  • 挿入モード
  • コマンドモード

カーソル移動

コマンド 作用
h j k l 左上下右に移動
enter 下の行の先頭文字に移動
w 次の単語に移動
b 前の単語に移動
e 単語の末尾に移動
$ 行末に移動
0 行頭に移動
^ 行の先頭文字に移動
% 対応するカッコに移動
H M L 画面の最上・中央・最下行に移動

文字入力

コマンド 作用
i hoge ESC カーソル位置にhogeを挿入
a hoge ESC カーソル位置の後ろにhogeを挿入
o hoge ESC 次行に行を追加してhogeを挿入
O hoge ESC 前行に行を追加してhogeを挿入
I hoge ESC 空白を覗く行頭からhogeを挿入
A hoge ESC 行末からhogeを挿入
R hoge ESC カーソル位置からhogeを上書き

スクロール・ジャンプ

コマンド 作用
Ctrl+u 半画面上スクロール
Ctrl+d 半画面下スクロール
Ctrl+b 画面上スクロール
Ctrl+f 画面下スクロール
Ctrl+y 1行上スクロール
Ctrl+e 1行下スクロール
zz 現在行を画面中央行へスクロール
z 現在行を画面最上行へスクロール
G ファイル最終行にジャンプ
1G 行番号1にジャンプ
200G 行番号200にジャンプ
gg 先頭行にジャンプ

削除・カット・コピー

コマンド 作用
x カーソル位置の文字を削除
dw 単語を削除
dd 行を削除
d0 行から現在位置まで削除
d$ 現在位置から行末まで削除
yw 単語をコピー
yy 行をコピー
y0 行頭から現在位置までコピー
y$ 現在位置から行末までコピー
p 挿入貼り付け
cw hoge 現在位置の単語をhogeに書き換え
rA カーソル位置の文字をAに置き換え

その他編集操作

コマンド 作用
J 現在行と次行を連結
~ カーソル位置の文字をUpper⇔Lowerに変換
u UNDO
ctrl+r REDO
. 直前のコマンドを再実行
>> カーソル行を右にインデント
<< カーソル行を左にインデント

選択範囲の操作

コマンド 作用
v ビジュアルモードに変更
d 選択範囲をカット
x 選択範囲をカット
y 選択範囲をコピー
> 選択範囲を右インデント
< 選択範囲を右インデント
Ctrl+v 矩形範囲の選択
Shift+v 行単位の選択

検索・置換

コマンド 作用
/hoge 文字列hogeを前方向に検索
/ 同じ文字列を検索
?hoge 文字列を後方向に検索
? 同じ文字列を後方向に検索
* カーソル位置の単語を前方向に検索
# カーソル位置の単語を後方向に検索
:%s/hoge/abec/g 文字列hogeをabecに一括置換
:%s/hoge/abec/gc 文字列hogeをabecに確認しながら置換
4,9s/hoge/abec/g 4~9行目のhogeをabecに一括置換
.,$s/hoge/abec/g 現在行~最終行目のhogeをabecに一括置換
g/hoge/d hogeを含む行を削除
g!/hoge/d hogeを含む行を削除
:noh 検索結果のハイライト表示を消す

分割画面

コマンド 作用
:sp enter 画面を上下に分割
ctrl + w j 分割画面の下に移動
ctrl + w k 分割画面を移動
ctrl + w 10+ 現在分割画面の範囲を10行増やす
ctrl + w 10- 現在分割画面の範囲を10行減らす
:new filename enter 画面分割して「filename」を開く

マーク・マクロ

コマンド 作用
mA 現在行をマークAに記録する
`A マークAに記憶した行にジャンプする
qA 任意の操作 q マクロAにキー操作を記録する
@A マクロAを再現する

ファイル

コマンド 作用
:w filename enter 指定したfilenameでファイル保存
:w 上書き保存
:wq 上書き保存&終了
:q 終了
:q! 強制的に終了
:n 次のファイルに進む
:N 前のファイルに進む
:e filename enter 現在のファイルを終了し、別のファイルを編集
ctrl + g 編集中のファイル名と行位置を表示
:pwd 現在のディレクトリパスを表示

設定 ※vim用の設定なのでvscodeで同じように動作するか未検証

コマンド 作用
:set number 行番号を表示
:set nonumber 行番号を非表示
:set autoindent オートインデント
:set ts=4 タブの空白数を4に設定
:set sw=4 インデントの空白数を4に設定
:set nolist タブ文字・行末を可視化
:set tw=80 折り返し行数を80文字に設定
:set enc=utf-8 文字コードをUTF-8に設定
:set ff=unix 文字コードをUNIX式に設定
:syntax on 文字解釈し色分け表示
:set hlsearch 検索一致箇所をハイライト表示
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0