Vimまとめ
【目次】
今更だけどviとVim
そもそも
Vimは複数あるLinux向けのテキストエディタの一つであり、ほとんどのLinuxディストリビューションに標準でインストールされている。(=ほぼLinuxの標準エディタといえる!)
Vimはviエディタの後継として開発されたもので、Linux関連のドキュメントではVimのことをviで表記していることがある。そのため、「vi」が出てきたら「Vim」と思って良い。 (現在ほとんど使われることはないが、互換性のため起動時も「vi」コマンドでも起動可能)
Vimのコマンド集
保存と終了
コマンド | 意味 |
---|---|
:w | 上書き保存 |
:q | 終了 |
:wq | 保存かつ終了 |
:q! | 保存せず終了 |
移動
-カーソル
コマンド | 意味 |
---|---|
h | 左 |
j | 下 |
k | 上 |
l | 右 |
-単語
コマンド | 意味 |
---|---|
w | 次の単語先頭へ |
b | 前の単語先頭へ |
W | スペース区切り 次の単語先頭へ |
e | 次の単語の末尾へ |
-行
コマンド | 意味 |
---|---|
0 | 行頭 |
$ | 行末 |
I(大文字i) | 行頭移動&インサートモードに切り替え |
A | 行末移動&インサートモードに切り替え |
gk | 1行ずつ上移動 |
gj | 1行ずつ下移動 |
gg | 最初の行へ |
G | 最後の行へ |
<数字>G | <数字>で指定された行へ |
削除・コピー・ペースト
コマンド | 意味 |
---|---|
x・dl | 1文字削除 |
dw | 単語の末尾まで削除 |
dd | 行全体を削除 |
dG | 現在地から最下部までを一気に削除 |
s | カーソル上の文字を削除&インサートモードに切り替え |
S | カーソルのある行を削除&インサートモードに切り替え |
C | 現在置から右を削除&インサートモードに切り替え |
ddp | カット&ペースト |
yyp | コピー&ペースト |
- dコマンド:削除範囲の指定が可能
- y(ヤンク):コピーのこと
- p(プット):ペースト
連結
コマンド | 意味 |
---|---|
J | 現在とその下の行を連結し、1つの行となる |
取り消し
コマンド | 意味 |
---|---|
u | 取り消し(undo) |
U | 行全体の変更取り消し |
Ctrl + r | 取り消しを取り消す(redo) |
検索系
「/」の後ろに検索ワードを入力後Enterで現在開いているファイルから文字列を検索する。なお検索は、カーソル位置からスタートするので注意。
コマンド | 意味 |
---|---|
/<文字列> | 下方向に検索 |
?<文字列> | 上方向に検索 |
* | 下方向に単語を検索 |
n | 次の検索結果へ移動 |
N | 前の検索結果へ移動 |
CTRL-O | 検索後元の場所に戻る |
% | (,),[,],{, もしくは } 上にカーソルがある状態で 対になる文字検索 |
「プロセス番号を調べる」の際に登場したコマンドless
。これはスクロール表示を可能にするコマンドで、以下のように使う。
less [オプション]<ファイル名>
lessコマンドでファイル閲覧中にも、検索系のコマンドが使える。
参考:新しいLinuxの教科書p79~81
置換系
コマンド | 意味 |
---|---|
:#,#s/old/new/g | #,# には置き換える範囲の開始と終了の行番号を指定 |
:%s/old/new/g | ファイル全体で見つかるものに対して変更する |
:%s/old/new/gc | 上記の変更の際、1つ1つ確認がはいる |
r | 一文字だけ |
挿入系
挿入後 は<ESC>
コマンド | 意味 |
---|---|
cw | カーソル位置から単語の終わりまで削除&挿入 |
c$ | カーソル位置から行の終わりまで削除&挿入 |
a | カーソル上の次から文字追加 |
A | 行末に文字追加 |
o | カーソルの下に行追加&インサートモードへ |
O | カーソルの上に行追加&インサートモードへ |
繰り返し
コマンド | 意味 |
---|---|
. | 直前の一連操作を繰り返す |
外部コマンド結果の利用
:!r<コマンド>
でコマンドを実行して結果を貼り付けられる。
コマンド(例) | 意味 |
---|---|
:!r ls | カレントディレクトリのファイル一覧を貼り付け |
ファイル保存・読み込み
コマンド | 意味 |
---|---|
:w FILENAME | ファイルに保存 |
:r ファイル名 | ファイル名というファイルが取り込まれカーソルの下に挿入される |
:r !dir | dir コマンドの出力をカーソル位置以下に読み込む |
ファイルの作成、編集について
このサイトがわかりやすく説明してあった!
起動スクリプトの作成
"vimrc" ファイルを作成することで色々な機能を使えるようになる。
(例)参考:vimtutorより 1. "vimrc" ファイルの編集を開始する。(システムに依存) `:edit ~/.vimrc` UNIX 向け 2. "vimrc" を読み込む。 :read $VIMRUNTIME/vimrc_example.vim 3. 以下のようにファイルへ書き込みます。 :write 4. 次回 Vim を起動すると、色づけ構文が使えるようになる。
補完
CTRL-D
: command で可能な補完を見られる。
<TAB>
で補完を使用する。
ヘルプ
コマンド | 意味 |
---|---|
:help | help画面の表示 |
:q | help終了 |
Ctrl + ] | リンク先移動 |
Ctrl + t | リンク先から元の場所へ |
:help <コマンド> | そのコマンドのヘルプ表示 |
参考:新しいLinuxの教科書p116~128
Vimのモード
Vimには4種類のモードがある。
- ノーマルモード:コマンド入力のできる基本の状態
- ビジュアルモード:v
範囲選択をする
- インサートモード(挿入モード):i
で文字の入力ができる状態
(カーソルの右側に文字入力したい時にはa
を使用する)
- コマンドモード::
各種コマンドの実行。文字列の編集作業をする
ea
で現在の単語の直後でインサートモードに切り替わる
参考:新しいLinuxの教科書p111~113
オペレーターとモーション
オペレータ
動作を指定するもの。オペレーターコマンドは、カウントとモーションコマンドと組合わせることができる。
主要な4種は以下である
コマンド | 意味 |
---|---|
c | 変更 (change) |
d | 削除&挿入モードに切り替え (delete) |
y | コピー(yank ) |
g | 移動全般 (go) |
モーション
モーションはカーソル移動コマンドのことで、対象範囲を指定する。
なお、モードによって入力順序が異なる。
ノーマルモード
→基本的に最初にオペレータを入力し、その後に範囲指定を行う(CUI的発想)
ビジュアルモード
→範囲を最初に選んでそれからオペレータを入力する (GUI的発想)
このサイトの説明が分かりやすかった。
その他参考:Vim幼稚園からVim小学校へ
モーション一覧の一部
コマンド | 意味 |
---|---|
w | カーソル位置から空白を含む単語の末尾まで。 |
e | カーソル位置から空白を含まない単語の末尾まで。 |
$ | カーソル位置から行末まで。 |
繰り返しのモーションの前に数値をタイプ
d 数値 モーション
コンビネーションによるテキスト編集
コマンド | 意味 |
---|---|
ci' | シングルクオート内の文字列を削除してインサートモードへ |
ca' | シングルクオート+文字列を削除してインサートモードへ |
cit | HTMLタグで囲まれた文字列を削除・編集 |
ciw | カーソルがある単語だけが消えてインサートモードへ |
cit
についてはこのサイトの説明がわかりやすかった。以下は一部抜粋
citのcはアクション。cの場合は削除して挿入モードに変更。 citのiは範囲。iはタグの中身が範囲でaに置き換えるとタグ全体が範囲になる。 citのtはターゲット。tの場合はタグに対して行う。
その他参考:脱初心者を目指すなら知っておきたい便利なVimコマンド25選 (Vimmerレベル診断付き)
その他参考:Vim幼稚園からVim小学校へ
ビジュアル選択
コマンド | 意味 |
---|---|
ggVG | ファイル内全選択 |
= | インデント揃える |
その他
スニペット(neosnippet)を導入することで、定型のものは瞬時に呼び出せるようになる。