【CUI】vim は覚えると楽しめる!

もくじ

vimとは

vi および vim というテキストエディタです。基本的にコマンドを使って操作します。

慣れないとカーソル移動だけでもだいぶストレスになりますが、慣れてしまうとキーボードだけで操作ができるので便利なものです。

MacであればOSがUNIX派生系なので標準でvimを使うことができます。Winであればvimをインストールしてから行ってください。

vim を使う

vim とだけ打つ

$ vim

すると簡単な説明書きが出ます。ヘルプや終了のコマンドが載っていますね。

f:id:bonoponz:20210208133844p:plain

チュートリアルを開く

$ vimtutor

f:id:bonoponz:20210208133903p:plain

豆知識程度に覚えておくといいかもしれません。

ファイルを開く

index.phpを開きます。

$ vim index.php
$ vi index.php

上記どちらでもOKです。
もしディレクトリの指定をすれば、現ディレクトリ以外のファイルも開くことが可能です。

$ vim /user/index.php

モード

ノーマルモード

ファイルを開いた状態の標準モードです。

入力モード

iを押すと入力モードに切り替わります。

ESCを押すとモードを抜けられます。

ビジュアル(選択)モード

vを押すとビジュアルモードに切り替わります。

テキストを選択するモードです。

ESCを押すとモードを終了できます。

コマンドモード

:を押すとコマンドモードに切り替わります。

キー 操作
:q エディタの終了
(ファイルを閉じる)
:q! 変更点を無視してエディタの終了
変更せずファイルを閉じる)
:w 保存
:w [ファイル名] 別名をつけて保存
:e [ファイル名] 別のファイルを開く
:wq 保存して閉じる

ESCを押すとモードを抜けられます。

移動と選択

移動(ノーマルモード

キー 操作
gg ファイルの先頭に移動
G(Shift + g ファイルの終わりに移動
CTRL + f 画面単位で下に移動
CTRL + b 画面単位で上に移動
w 単語単位で右に移動
b 単語単位で左に移動

他にも便利なコマンドがあります。

キー 操作
^(キャレット) 行頭に移動
$ 行末に移動
f [文字] 移動したい文字まで移動
例えば2つ目の「u」にジャンプしたい時、;を押すと次に移動
CTRL + b 画面単位で上に移動
% メソッドなどの括弧の上で%を押すと、対応する括弧まで移動

選択(ビジュアルモード)

キー 操作
v(小文字) 文字単位で選択
V(大文字) 行単位で選択
Ctrl + v 矩形(四角)単位で選択

応用

  1. ggでカーソルを先頭に戻す
  2. Shift + vで行選択
  3. Shift + gでファイルの最後まで移動(選択)

これでファイルの中身を全選択できます。

コピー/カット/ペースト

カットは削除にもなります。カットされたものはクリップボードに保存されるのでペーストが可能です。

コピー

キー 操作
yy カーソルのある行をコピー
[行数] yy 指定した行数分コピー

カット

キー 操作
x カーソルのある文字を1文字単位で削除
dd 行単位で削除
[行数] dd 指定した行数分削除

ペースト

キー 操作
p クリップボードにある文字を貼り付け

■あしたは
とても
いい天気

■にカーソルがあるとして、3yyを入力後pを押すと下記のようになります。

あしたは
とても
いい天気
あしたは
とても
いい天気

元に戻す/取り消し

間違って消してしまった場合に元に戻したり、元に戻したのを取り消したい場合に使います。

キー 操作
u 元に戻す
CTRL + u 取り消し(直前のuを取り消す)
U 行全体の変更を元に戻す

検索と置換

検索

キー 操作
/ [単語] 入力した単語を検索
? [単語] 入力した単語を検索
n 下方向に検索を続ける
N 上方向に検索を続ける
* カーソルがある位置の単語を下方向に検索
# カーソルがある位置の単語を上方向に検索

置換

コマンドモードになります。

キー 操作
:s/hoge/fuga/ カーソルのある行のhogeをfugaに置換
:s/hoge/fuga/g カーソルのある行の全てのhogeをfugaに置換
:%s/hoge/fuga/g ファイル全体のhogeをfugaに置換
:%s/hoge/fuga/gc ファイル全体のhogeをfugaに置換するとき、
置換する前に毎回確認してくれる

■あしたはとてもいい天気

■にカーソルがある場合:s/あした/きょう/returnすると置換されます。

きょうはとてもいい天気

今後も

まだできることはあるようなので、また時間を見つけてまとめていきます。

参考サイト

vim入門が無料で全回視聴ができます。

vim入門 (全18回) - プログラミングならドットインストール