普段馴染みのあるフォルダやアイコンなどの図形が表示されているのはGUIと呼ばれていますが、プログラマーがマウスを使用せずに「コマンド」と呼ばれる文字列を入力している画面がCUIです。
そして、CUIで動かすのが前提のテキストディタ―にVimがあります。
Vimを使う前に知っておくべきコマンド
Vimはターミナルから起動します。ところがPC初心者はターミナルを起動させることはできても、ターミナルの終了方法を分かりません。
《参考》ターミナルの起動方法
Windowsの場合は左下の検索にターミナルを入力すればアプリを選択できる![ターミナル画像-ブログ用.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F3439948%2Fce47df74-aa72-4a98-ff45-b8efcf89c047.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=eae2a174baec65c05fdf2b1bdae6bc98)
ターミナルの終了コマンド |
ターミナルは【exit】を入力し、【enter】キーを押すと終了できます! |
Vimを起動する前に
1)ターミナルを起動
2)cd
コマンドで作業したいディレクトリ(フォルダ)へ移動する
最初に覚えるべきVimのコマンド
Vimの起動
Vimのモード
番号 |
出し方 |
モード |
用途例 |
② |
Esc |
Normal |
コマンドモード |
③ |
Esc →i
|
Insert |
文字編集 |
④ |
Esc →v
|
Visual |
文字選択 |
Vimの終了
番号 |
コマンド |
意味 |
モード |
⑤ |
:w |
ファイルを保存 |
Normal |
⑥ |
:q |
実行中のタブを閉じる |
Normal |
⑦ |
:x または:wq
|
編集した内容を保存して終了 |
Normal |
⑧ |
:q! |
編集した内容を保存せずに終了 |
Normal |
例えば、⑧の「編集した内容を保存せずに終了」したいときはEsc
でNormalモードにし、:q!
を入力してEnter
キーを押すとVimを終了できる。
既存ファイルを開く・新規作成
番号 |
コマンド |
意味 |
モード |
⑨ |
e ファイル名.拡張子 |
既存ファイルを開く。 |
Normal |
⑩ |
:w 飛鳥.html |
ファイルに名前を付けて保存 |
Normal |
⑪ |
vim ファイル名.拡張子 |
Vimの起動と同時に新規ファイルを開く。 |
ターミナル |
⑩は①でVimを起動してから【Normal】モードでファイル名を付けるのに対して、⑪はターミナルでVimを起動する際に、予めファイル名を付ける。例)vim 飛鳥.txt
文字の削除とやり直し
番号 |
コマンド |
意味 |
モード |
⑫ |
x |
1文字削除 |
Normal |
⑬ |
u |
やり直し(最後のコマンド取り消し) |
Normal |
⑭ |
ctrl +R
|
やり直しのやり直し(取り消したのを取り消し) |
Normal |
《他の削除例》
コマンド |
削除 |
モード |
D |
カーソル位置から行末まで削除 |
Normal |
S |
1行削除して、挿入モード |
Normal→Insert |
●cc |
●行削除して、挿入モード |
Normal→Insert |
v +k (又はj )+x
|
ビジュアルモード後に上又は下カーソルで範囲指定して削除 |
Normal→Visual |
コピー&貼付
番号 |
コマンド |
意味 |
モード |
⑮ |
v +l +y
|
ビジュアルモード後に範囲選択してコピー |
Normal→Visual |
⑯ |
●yy |
●列コピー |
Normal |
⑰ |
p |
ペースト |
Normal |
x
やdd
で削除した文字をp
でペーストすることもできる
選択
番号 |
コマンド |
意味 |
モード |
⑱ |
ggVG |
すべて選択 |
Normal |
次に覚えるべきVimのコマンド
外部コマンドを実行
番号 |
コマンド |
意味 |
モード |
⑲ |
:! + 外部コマンド +enter
|
外部コマンドの実行 |
Normal |
⑳ |
!dir 又は :!ls +enter
|
ディレクトリ一覧 |
Normal |
㉑ |
:!del + ファイル名.拡張子 +enter
|
ファイルを削除 |
Normal |
全ての :コマンド
は enter
を押して終了しよう!
おいおい覚えるVimのコマンド
※使っているうちに覚えるだろうコマンド
検索
番号 |
コマンド |
意味 |
モード |
㉒ |
( ,[ ,{ の位置に%
|
対応する ) ,] ,} を検索 |
Normal |
㉓ |
/ +検索したい文字列
|
文字列を検索 |
Normal |
㉔ |
n |
[/]で検索した文字列の次の検索候補に飛ぶ |
Normal |
㉕ |
N |
[/]で検索した文字列の前の検索候補に飛ぶ |
Normal |
㉖合致するすべてを強調表示する
- Normalモードで
:set hls
と入力
-
/検索したい文字
を入力
-
:nohls
で強調表示をやめる
置換
番号 |
コマンド |
意味 |
モード |
㉗ |
~ |
カーソル直下の文字の大文字小文字を切り替える |
Normal |
㉘ |
v + 範囲選択 + U
|
ビジュアルモード後に選択した範囲の大文字小文字の切替 |
Normal→Visual |
㉙ |
:s/old/new |
今いる行の最初の「old」を「new」に置換 |
Normal |
㉚ |
:s/old/new/g |
行全体の「old」 を「new」 に置換 |
Normal |
㉛ |
:1,30s/old/new/g |
1~30行目の範囲にある「old」を「new」へ置換 |
Normal |
㉜ |
:%s/old/new/g |
ファイル全体で見つかるものに対して置換 |
Normal |
㉝ |
:%s/old/new/gc |
ファイル全体で見つかるものに対して、1つ1つ確認をとりながら置換 |
Normal |
番号 |
コマンド |
意味 |
モード |
㉞ |
o |
今いる行の1つ下の行が開き、Insert |
Normal→Insert |
㉟ |
O |
今いる行の1つ上の行が開き、Insert |
Normal→Insert |
㊱あるファイルの特定行を別ファイルに保存
-
v
で特定の行を選択
-
:
を押して:'<,'>
を表示させる。
-
w ファイル名
を入力。
-
:'<,'>w ファイル名
になっていることを確認。
-
enter
で保存。
㊲Bファイルの取込 ※AとBはファイル名
- Aファイルを開く。
- 取り込みたい行にカーソルを合わせる。
- Bファイルの内容を
:r B
で読み込む。
外部コマンドの出力の読み込み。
例):r !ls
で一覧がカーソル行の下に追記される。
カーソルの移動とか
番号 |
コマンド |
意味 |
モード |
㊳ |
r |
カーソルの下の文字を置きかえ |
Normal→Insert |
㊴ |
gg |
先頭行に移動 |
Normal |
㊵ |
G |
最後の行に移動 |
Normal |
㊶ |
●G |
●(数字)行に移動 |
Normal |
㊷ |
j |
下に移動 |
Normal |
㊸ |
k |
上に移動 |
Normal |
㊹ |
h (またはb ) |
左に移動 |
Normal |
㊺ |
l (またはw またはe ) |
右に移動 |
Normal |
㊻ |
0(ゼロ) |
今いる行の頭に移動 |
Normal |
㊼ |
a |
カーソル上の文字の直後へ飛び、Insert |
Normal→Insert |
㊽ |
A |
今いる行の最後へ飛び、Insert |
Normal→Insert |
㊾ |
I |
今いる行の最初へ飛び、Insert |
Normal→Insert |
㊿ |
% |
カーソル直下に括弧があるとき括弧の始め 又は括弧の終わり に移動 |
Normal |
|
. |
直前にやったことの繰り返し |
Normal |
|
J |
1つ下の行と連結 |
Normal |
50選で終わりたかったのに・・2個オーバーしてしまいました
必要か定かではないVimのコマンド
コマンド |
意味 |
モード |
H |
表示されている画面の一番上に移動 |
Normal |
M |
表示されている画面の真ん中に移動 |
Normal |
L |
表示されている画面の一番下に移動 |
Normal |
R |
R で置換モード(?)にして、置換したい文字を編集。終了するときはesc
|
Normal |