Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド


投稿日:2012年10月26日
  • 9
  • 0



Linux初心者にとって最大の敵、viエディタと仲良くする方法

Linuxで編集作業をするとなると避けて通れない「vi(ブイアイ)エディタ」。

viエディタ」はマウスの普及していない時代に開発された編集ツールです。そのためマウス操作に慣れた人には、とっつきにくい印象を与えます。

ちなみにCentOS5.8ではデフォルトでviの派生版である、「vim(ヴィム)」がインストールされています。そのなかでも最小オプションである「vim-minimal」というタイプになります。


viを実際に操作します

前回解説したターミナルエミュレータ(Tera Term等)でログインしてください。

一般ユーザーで「cdコマンド」を入力してEnterを押してください。
cd」はディレクトリを移動するコマンドです。ディレクトリを何も指定しないと「ログインしているユーザーのホームディレクトリ」に移動します。
(特別に設定していない場合は「/home/ユーザー名」)

※コマンドラインの見方
コマンド」「引数、その他」「コメント」「#(rootユーザ)」「$(一般ユーザ)」

$ cd

続けてviエディタで新規にファイルを作成します。今回は仮に「text」というファイルを作成します。

$ vi text

すると以下のような画面になると思います。
画面下にある「“test” [New File]」はtestという新しいファイルを作成したという表記です。

コマンドモードと編集モード

この画面がviエディタの「コマンドモード」の画面です。別名「編集モード」ともいいます。
この時点でキーボード入力をしても文字は入力できません。文字を入力するには「入力モード」に切り替える必要があります。

入力モード」へ切り替えるには「a」もしくは「i」を押します。(個人的にインサートモードのiと覚えたほうが、覚えやすい気がします)

では実際に「i」を押して「入力モード」へ切り替えてください。
下の画像のように「“test” [New File]」という表記から、「— INSERT —」という表記に変わったと思います。これが「入力モード」です。

編集モードで文字の入力

それでは何か文字を入力してみてください。入力が終わったらキーボードの「Escキー」を押して「コマンドモード」へ移行してください。
Escキー」を押すとページ下部にあった「— INSERT —」の表記がなくなるのが分かると思います。

変更したファイルを保存して終了

最後に保存して終了します。保存するにはコマンドモードで「:w」というコマンドを入力します。viエディタを終了するには「:q」と入力します。合わせて「:wq」で「変更を保存して終了」というコマンドになります。
それでは「:wq」と入力してEnterを押し、viエディタを終了してください。

ファイルが作成されているか確認するために、現在のディレクトリのファイルを表示する「ls」コマンドを入力してください。

$ ls

test」というファイルが作成されています。

 

以上、2つのモードを行き来する方法と、保存方法さえわかれば、なんとか設定ファイルの編集が可能になります。

実際の設定ファイルを編集する場合の流れは
1.「コマンドモード」でファイルの閲覧して、編集する場所を探すために検索。
2.「入力モード」でファイルを編集。
3.再び「コマンドモード」へ移行して、「:wq」で保存して終了。
というのが基本的な流れになります。


viエディタで編集する際に覚えておきたい実用的なコマンド操作

実際の編集作業をする上で、覚えておくと楽になるコマンドの一覧です。1度に全部覚えようとすると大変なので、今は「こんなことが可能なのか」と把握しておいてください。編集作業で必要になった時に、1つ1つ試してみてください。

ファイルの操作関連

上書き保存 :w
終了 :q
保存して終了 :wq
保存せず終了(強制終了) :q!
行番号を表示 :set number

行番号の表示を毎回する場合は「echo “set number” >> ~/.exrc」とコマンドを打つと次回からデフォルトで行番号が表示されます。

カーソル・ページ操作

カーソルを左へ移動(矢印キーでも可能) h ( ← )
カーソルを右へ移動(矢印キーでも可能) j ( ↓ )
カーソルを上へ移動(矢印キーでも可能) k ( ↑ )
カーソルを右へ移動(矢印キーでも可能) l ( → )
上下へ移動(Tera Termの場合) マウスのホイール
行頭に移動 0(数字のゼロ)
行末に移動 $(ドル)
次のページへ移動(矢印キーの上にあるPageUpキーも利用できます) Ctrl+b
前のページヘ移動(矢印キーの上にあるPageDownキーも利用できます) Ctrl+f

文字の操作

1文字カット(カーソルが乗っている文字) x
1行カット dd
数字の行数だけ削除 数字dd
1行コピー(viではコピーはヤンクといいます) yy
数字の行数だけコピー 数字yy
ペースト p
コピー(Tera Termの場合) Alt+c
ペースト(Tera Termの場合) 右クリック、Alt+v

検索

文字列hogeを検索 /hoge
次に見つかったhogeに移動(小文字のn) n
前に見つかったhogeに移動(大文字のN。Shift+nキー) N

やり直し

直前の操作を取り消す。UNDO u
直前の取り消しを取り消す。REDO Ctrl+r

冒頭で最大の敵と言いましたが、慣れさえすれば最大の味方になります。
事実多くのプログラマーがviを利用してコードを書いています。信じられないかもしれませんが、熟練したvi職人(素人からするともはや職人芸w)の作業は、キーボードから一切手を離さず入力を続けるため、一般エディタでの操作よりも何倍も高速です。

毛嫌いせずにどんどん使いこなしましょう。

次は「Linux初心者こそ押さえたい、失敗しない設定ファイルの編集方法」を解説します。


現在のページを共有する



現在のページに関連する記事

Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド Linuxのターミナルでコマンドを入力する方法と、オプションを調べる方法
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド Linux初心者こそ押さえたい、失敗しない設定ファイルの編集方法
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド サーバの処理を自動実行するcronの仕組みと応用法
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド ブルートフォースアタック対策!サーバへの接続に鍵認証を利用する方法
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド Linuxサーバの設定を編集する方法と、利用する便利なソフトの解説
Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド メモリ消費の多いClam AntiVirusの代替としてSophos Anti-Virus for Linuxを使う方法

おすすめの記事

Excelでセルとセルの間をダブルクリックすると移動する機能を停止する方法

Excelでセルとセルの間をダブルクリックすると移動する機能を停…

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を作成しました

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を…

そのサイト、WordPressじゃなくてWixで十分じゃない?

そのサイト、WordPressじゃなくてWixで十分じゃない?

初心者でも安全なLAMP環境を構築する方法を解説

初心者でも安全なLAMP環境を構築する方法を解説

サーバの処理を自動実行するcronの仕組みと応用法

サーバの処理を自動実行するcronの仕組みと応用法

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポンシブイメージの基本

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポン…

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャッシュの仕組み

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャ…

SNSのカウントをキャッシュするWordPressのプラグインを作成しました

SNSのカウントをキャッシュするWordPressのプラグインを作成し…


いただいたコメントなど

  1. 杉本 智基 のコメント:

    初めまして。
    大学4年生で、Ruby on railを独学で勉強しております。
    Gemfileの編集でvi エディタを使う際に編集の仕方に一日つまづいていたところ、
    本ページを見つけたことで解決することができました!
    本当に助かりました。
    感謝の気持ちを是非伝えたいと思い、コメントをした次第です。
    初心者にもとてもわかりやすく書かれていましたので、引き続き参考にさせていただきます!

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。