viエディタの基本操作
こんにちは。cloudpackの猪井です。
最近はAWSを一から勉強しています。が、サーバーを構築・運用する上でUNIX/Linuxの知識が不可欠ということで、そちらも勉強しています。
Linuxでは、コマンドをたくさん覚える必要があります。 テキストファイルの作成・編集にはviというコマンドを使います。
これはLinuxを扱う上で基礎の基礎とのことなので、今回はその基本的な使い方をメモしておこうと思います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
viには大きく分けると2つのモードがあります。挿入モードとコマンドモードです。
挿入モード
データの入力は挿入モードで行います。コマンドモードにおいて以下の編集コマンドを入力すると、挿入モードに移ってデータの入力が出来ます。
i カーソルの前に、文字を挿入
a カーソルの後に、文字を追加
I 行の先頭の文字の前に文字を挿入
A 行末に文字を追加
o 下に新しい行を挿入
O 上に新しい行を挿入
コマンドモード
カーソルの移動や文字や行の削除などは、コマンドモードで行います。挿入モードでEscキーを押すと、コマンドモードに移ります。
・カーソルの移動
h 左に移動
j 下に移動
k 上に移動
l 右に移動
0(ゼロ) 行の先頭に移動
^ 行の最初の文字へ移動
$ 行の最後の文字へ移動
H 現在ページの先頭行へ移動
L 現在ページの末尾行へ移動
・文字や行の削除(カット)
x カーソル位置の1文字を削除
dd カーソルのある行を削除
・文字列の検索
/ 入力した文字列を後ろへ検索する
? 入力した文字列を前へ検索する
・コピー&ペースト
yy 現在の行をヤンク(コピー)
p カーソル位置の後にペースト
P カーソル位置の前にペースト
・ファイルの保存
:w ファイルの上書き保存
:w filename ファイル名を「filename」にして保存
:w! 書き込み不可のファイルに強制的に上書き保存
・viの終了
:q viを終了する(編集中だとエラーになる)
:q! viを終了する(編集中でも強制終了)
ZZ(=:wq) ファイルを上書き保存してviを終了する
・その他
. 直前の作業を繰り返す
u 直前の操作を取りやめる
Ctrl+r 操作の取りやめのやり直し
おまけ(でも重要):ビジュアルモード
viには更に「ビジュアルモード」というものがあります。範囲選択に便利です。
v 文字単位のビジュアルモード開始
V 行単位のビジュアルモード開始
このモードでカーソルを移動した分だけ、範囲を選択できます。
範囲を選択してyやdを押すと、それぞれヤンク、カットができます。
ビジュアルモードでEscキーを押すと、コマンドモードに移動します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
とりあえずはこんなところでしょうか。まずはこのぐらいの範囲で習得していこうと思います。
今まで、エディタといえばWindowsのメモ帳くらいしか使っていなかった私にとって、この「モードを切り替える」という概念は非常に取っ付きづらいですね。少しずつ慣れていこうと思います。
本当はまだまだもっと便利な機能があるようなので、いずれは使いこなせるようになりたいです。
参考
http://archive.linux.or.jp/JF/JFdocs/vi-user-usage.txt
秀丸を10年使い続けた私が、MacVimと出会って困って訊いて調べて… 徒然備忘録 - Qiita