SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【linux】viエディタ入門(初級編)

sshでサーバーにログインできるようになって、コマンドをいくつか覚えたら、次はエディタでファイルの編集ができるようになりましょう。

ファイルを編集できるだけでやれることがぐっと広がります。設定ファイルを書き換えたり、ちょっとしたスクリプトを書いて実行したり。サーバーでそのままプログラムを書いてもいいわけです。

1、sshでサーバーにログイン。

sshでログイン

2、/tmpディレクトリあたりで作業するのが無難でしょうか。

cd /tmp

3、新規ファイルの編集を始めます。

vi test.txt

4、最初はコマンドモードになっているので、いきなりキーボードを押しても文字が表示されません。

viエディタ画面

5、コマンドモードでキーボードの「i」を押すと入力モードになります。これでキーボードを押すと文字が入力されます。

viエディタ 入力中

6、保存するには、入力モードを抜けてコマンドモードにして(escキーを押す)、:wと入力してenterキーを押します。

viエディタ 保存する

7、終了するには、コマンドモードで:qです。コマンドモードにして(escキーを押す)、:qと入力してenterキーを押します。

8、ファイルが作成されました。

9、ファイルをまた編集してみます。

vi test.txt

10、入力モードにする方法はいくつかあります。

i → カーソルの位置から入力
I(shift+i) → カーソルの位置の行頭から入力
a → カーソルの位置の右隣から入力
A(shift+a) → カーソルの位置の行末から入力
o → 現在の行の下に1行挿入し、その行頭から入力開始
O(shift+o) → 現在の行の上に1行挿入し、その行頭から入力開始

最初はiだけで覚えておけばよいです。そのうちカーソル移動が面倒に思えてきたら、作業効率アップのために他のキーも覚えるとよいです。

11、カーソル移動についても練習。カーソルキーで移動は可能だが、手をホームポジションに置いたままカーソル移動をする方法がある。一般にカーソルキーは遠いところにあるが、カーソルキーでなくても移動ができる。

h → 左
j → 下
k → 上
l → 右

12、他のキーで、次のようにさまざまな移動ができる。

H → 画面の最上行に移動
M → 画面の中央行に移動
L → 画面の最下行に移動
g → ファイルの先頭行に移動
G → ファイルの最終行に移動
数字で行数G → ファイルのn行目に移動
0 → の頭へ移動
$ → 行の最後へ移動

13、ファイル内の検索は、コマンドモードで/(スラッシュ)を押して、キーワードを入力して、enterキーを押す。その後、次の候補へはnを押す。前の候補へはN(shift+n)を押す。ついでに、コマンドモードで?を押して、キーワードを入力して、enterキーを押すと、ファイルの先頭に向かって検索できる。

viエディタで 検索

Firefoxでスラッシュ(/)を押すとクイック検索ができるのはこれと同じ感覚。

14、置換もできる。コマンドモードで :%s/置換元文字列/置換後文字列/オプション

viエディタで置換

15、その他よくある操作

x → カーソル位置の文字を削除
X(shift+x) → カーソル位置の左を削除
dd → 1行削除
数字dd → 指定した行数まとめて削除
d$ → カーソル位置から行末までを削除
d^ → カーソル位置から行頭までを削除

u → undo 元に戻す

. → 直前の動作を繰り返す

16、コピー&ペーストもできる。コピーではなくヤンクと呼ぶのでy。

yy → 現在の行をバッファにコピー
nyy → n 行分をバッファにコピー
yw → 単語をバッファにコピー
p → バッファ内のテキストを挿入(文字、単語はカーソルの右に、行は現在の行の下に挿入される)
P(shift+p) → バッファ内のテキストを挿入(文字、単語はカーソルの左に、行は現在の行の上に挿入される)

17、保存して終了を同時に実行するには :wp

18、保存しないで終了するときは :q!

あれ?終了できないんだけど?終了できないんだけど!? とあわてないで。

これで一通り操作が体験できたでしょうか。

関連するメモ

コメント