viエディタでよく使うコマンド

2013年5月30日

久々に入門書引っ張り出してきました。トップの画像ね。
水口克也(2012)『これならわかる! Linux入門講座 第2版』秀和システム

VPSを使うにあたり、ちょいちょいviエディタを使ってファイルを編集していますが、使い方についてまとめていなかったので、今更ながら改めて書いてみます。

viエディタ

テキストエディタですね。UNIX/Linuxに標準でインストールされています。
Wordやメモ帳のような専用アプリケーションを使わなくても、テキストファイルの編集ができます。
viエディタの起動は、「vi」のあとにファイル名を入力してEnterするだけ。
$ vi ファイル名
私が初めてviエディタを使ったのはiptablesを編集したときで、慣れるまではコマンドモードと文字入力モードのどっちで操作しているのか混乱してました(笑)。
コマンドは大量にありますが、全部は覚えきれないので、私がよく使うものだけ載せておきます。

基本操作

viエディタを起動した直後はコマンドモードになっているので、まずは文字入力モードに切り替える操作について。

コマンド 操作内容
i カーソルの位置から入力する
o カーソルの位置の下に空白行を挿入し、そこから入力する
文字の入力が終わったら「Esc」キーでコマンドモードに戻ります。コマンドモードに戻らないと保存も終了もできないので。

コマンド 操作内容
:w ファイルを上書き保存
:wq ファイルを上書き保存してviを終了
:q viを終了(ファイルが上書き保存されていない場合は警告が表示される)
:q! viを強制終了(ファイルは上書き保存されない)
文字入力に関してはいつも通りでできると思います。覚えるのはコピペくらい。最初はいつもの癖でしょっちゅうCtrl+Cってやっちゃってた(笑)。

コマンド 操作内容
yy カーソル位置の行をコピー
p カーソル位置の下の行にペースト
これだけ覚えればとりあえずファイル編集は問題なくできるかな。

使えると便利な行移動

「ファイルの150行目を編集しましょう」なんて言われたとき、150行目までどうやって移動しますか?そしてそもそも今カーソルがある位置が何行目か分かりますか?
行番号が表示されたほうが便利ですよね。指定した行に瞬時に移動できるといいですよね。

コマンド 操作内容
:set number 行番号を表示させる
:数値 指定した行へ移動
G 最終行へ移動
Macのターミナルを使ってviでファイルを開いたとき。

行番号を表示させるにはコマンドモードで「:set number」と入力してEnter。

こんな感じで左側に番号が出てきます。
じゃあ50行目に移動してみましょう。「:50」と入力してEnter。

移動できました。
最終行へは「G」。

「末尾」って書いてありますね。英語表示なら「Bot」かな。

ファイル内でのキーワード検索

修正したい項目が何行目にあるか分からなーいってとき。キーワード検索しましょう。

コマンド 操作内容
/キーワード 指定したキーワードを検索する
n 検索結果の次候補へ移動
例えば「WordPress」というキーワードを検索したいとき。「/WordPress」でEnter。

引っかかったキーワード部分の色が変わって強調表示されます。
「n」で次の候補へ移動。

最後の候補まで行くとまた最初に戻ります。大文字で「N」と打つと逆移動も可能。

WindowsのTera Termだとこんな感じ。ターミナルもTera Termも、背景色や文字色はいろいろ設定できます。目に優しい、見易い色やフォントにするといいかもですね。

これくらいかな。
はい終わりじゃあ終わり(HIKAKIN風)←知ってる?