title

Top  >> Vine Linux Menu  >> 基本操作  >> vi エディタ

vi エディタ

 vi エディタの使い方

 ”vi”は、UNIXの標準的なエディタで、Linuxにも標準で備わっています。 Vine Linuxには、他にもEmacsやgeditなどのエディタが備わっていますが、ここではviエディタについて説明します。 viエディタは”X”を立ち上げなくても使用でき、システム設定ファイルなどを編集する際には非常に便利です。 最近はほとんどのディストリビューションで、”vim”というvi のクローンが採用されているようですが、基本はvi なのでvi として説明します。

 さて、vi は”コマンドモード”と”入力モード”の2つのモードを持っています。 viを使う上で、この事だけは忘れてはなりません。 viエディタにはたくさんのコマンドが用意されていますが、数個のコマンドでファイルの編集は十分にできるので、必要なものだけ覚えて使用するという考え方もあります。

 vi エディタの起動は、以下のようにして行います。

$ vi パス+ファイル名

 例えば、/home/penguin/ ディレクトリにある .bashrc をviエディタで開く場合には、以下のように入力します。 パスは絶対パスでも相対パスでもOKです。 入力すると、以下の様にviエディタが起動します。 また、ファイル名を入力せずに”vi”とだけ入力した場合には、新規作成となります。

$ vi /home/penguin/.bashrc
viエディタ

 vi エディタの起動直後では、”コマンドモード”になっているので、文字などを入力する事はできません。 文字を入力する場合には、モードを入力モードへ変更する必要があります。 コマンドモードから入力モードへ移行するには、以下のようにコマンドを入力します。 コマンドは大文字/小文字を区別しますので、注意して下さい。 コマンドモードで入力したコマンドは、エディタの最下部に表示されます。

i (インサート) カーソルの位置から入力に入る

 編集したならば、入力モードから一旦コマンドモードへ戻り、保存するかしないかを決定してviエディタを終了します。
コマンドモードへ戻るには、”Esc”(エスケープボタン)を押します。 1回押せばコマンドモードに戻りますが、不安な場合には数回押してもコマンドモードに戻ったままなので大丈夫です。 コマンドモードへ戻ったならば、以下の様なコマンドを入力してvi エディタを終了します。

:q ! 保存せずに終了する
:wq 保存して終了する

viエディタを利用した編集は以上のようになります。
また、編集手順をまとめると、以下のようになります。

vi エディタの使用手順
@ vi エディタでファイルを開く
A コマンドモードから入力モードに移行する
B 編集を行う
C 入力モードからコマンドモードへ戻る
D 保存をする/しない
E 終了

このページのTop へ

 vi エディタのコマンドモードにおける各種コマンド

 vi エディタのコマンドモードにおけるコマンドの一覧です。 よく使うと思われるコマンドを掲載しますが、他にもたくさんのコマンドがありますので、ご了承下さい。 しかしながら、わずかなコマンドだけでも知っていれば、編集はできると思います。

vi エディタの主なコマンド
操作の分類 コマンド 操作
入力モードへ移行 i カーソルの位置から入力に入る
コマンドモードへ移行 Esc ※ 何度押してもコマンドモードのまま
カーソルの移動 → ( l ) 右へ移動
← ( h ) 左へ移動
↑ ( k ) 上へ移動
↓ ( j ) 下へ移動
文字の削除 x 1文字削除
dd 1行削除(=1行カット)
カット/コピー/ペースト yy 1行コピー
dd 1行カット
p ペースト
検索 /検索文字列 後方検索
?検索文字列 前方検索
n 次の候補
N 前の候補
保存・終了 :q ! 保存せずに終了
:wq 保存して終了
:zz 保存して終了
:w 上書き保存
:w 別名 ファイルを別名で保存
:wq 別名 ファイルを別名で保存して終了

よく使うコマンドを押さえれば、vi エディタでの編集は十分できると思います。


このページのTop へ

 vi エディタのカスタマイズ

 vi エディタは、設定ファイルを編集する事によりカスタマイズが可能です。 例えば、特定の語句をカラー表示したり、行番号を表示したりなどできます。 自分の好みと環境に合わせて設定を行う事によって、vi エディタが使いやすくなります。

 vi(vim)の設定ファイルは「.vimrc」というファイルです。 エディタを起動すると、各ユーザのホームディレクトリにある .vimrc を読み込みますが、ホームディレクトリに .vimrc が存在しない場合には「/etc/vim/vimrc」を読み込みます。 ホームディレクトリの設定ファイルが優先されるので、各ユーザは自分のホームディレクトリに .vimrc を作成するか、/etc/vim/vimrc を .vimrc に名前を変更してホームディレクトリにコピーして使用します。 ホームディレクトリに置いた設置ファイルは隠しファイルなので間違えないように注意してください(ドットが付いて .vimrc です)。 コピー後は、ファイルの所有者及びグループをホームディレクトリのユーザに変更して、パーミッションも変えておきます。

例えば、「penguin」というユーザのホームディレクトリに .vimrc をコピーして設置したい場合には、次のようにします。 パーミッション等を変更するまではルートで作業しなければなりませんが、その後はユーザ権限でファイルの編集が可能になります。

# cp /etc/vim/vimrc /home/penguin/.vimrc   <--- 設定ファイルをコピー

# chown penguin /home/penguin/.vimrc   <--- .vimrc の所有者をユーザに変更
# chgrp penguin /home/penguin/.vimrc   <--- .vimrc のグループをユーザに変更
# chmod 600 /home/penguin/.vimrc     <--- .vimrc のパーミッションを変更

以上の作業の後は、ユーザ権限でファイルの編集ができます。 vi エディタの設定ファイルを編集するのにはvi エディタを使います(echo コマンドでもオプションの追記はできます)。 ホームディレクトリにて、次のようにするとvi エディタの設定ファイルである .vimrc が表示されます。

$ vi .vimrc

" An example for a vimrc file.
"
" Maintainer:	Bram Moolenaar < Bram@vim.org >
" Last change:	2001 Jul 18
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"	      for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"	    for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start   <--- backspace キーを押したときの動作

" read/write a .viminfo file, don't store more than 50 lines of registers
set viminfo='20,\"50

" show the cursor position all the time
set ruler   <--- ルーラーの表示

set autoindent		" always set autoindenting on
if has("vms")		   <--- vms オプションを付けた場合にはバックアップファイルの作成を禁止
  set nobackup		" do not keep a backup file, use versions instead
else
  set backup		" keep a backup file   <--- バックアップファイルが作成される(ファイル名~)
endif
set history=50		" keep 50 lines of command line history   <--- コマンド履歴保持数
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
・
・中略
・
if &term == "xterm"
     "set t_Co=8
     set t_Sb=^[4%dm
     set t_Sf=^[3%dm
endif

" vim:tw=78:sw=2:norl:

上記のように、初期状態でいくつかのオプションが指定されています。 このファイルに特定のオプションを追記する事により、vi エディタをカスタマイズします。 以下に、vi エディタの主なカスタマイズオプションを示します。

vi エディタの主なカスタマイズ項目
オプション 動作
set autoindent 改行時に上の行と同じく自動インデントする
set number 行番号を表示する
set ruler ルーラー(右下に表示される行・列の番号)を表示する
set tabstop=数値 タブの大きさを半角スペース数で指定
set nowrap 折り返し表示しない
set history=数値 コマンド履歴の保存数
set backup ファイルを保存する時にバックアップファイルを作成する
set nobackup バックアップファイルを作成しない
syntax on | off カラー表示のオンまたはオフ

例えば、vi エディタで行番号を表示したい場合には、.vimrc を開いて適当な位置にset number を追記します。

上記のように、.vimrc を編集してvi エディタをカスタマイズすると、永続的に設定内容は維持されます。 しかし、一時的に行番号を表示したかったり、カラー表示をオフにしたい場合があります。 そのような時には、.vimrc を編集せずに、vi エディタのコマンドモードでオプションを指定する事で、一時的に設定を反映させる事ができます(vi を閉じるとオプションの効力は消えます)。 例えば、一時的にカラー表示をオフにしたいという時には、コマンドモードで次のようにします。

# 例として、.vimrc の一部
# 特定の文字列がカラー表示される場合、syntax on|off で表示を変更できる

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

" read/write a .viminfo file, don't store more than 50 lines of registers
set viminfo='20,\"50


:syntax off   <--- vi のコマンドモードで指定すると一時的に反映される

以上のように、vi エディタのカスタマイズは、設定を編集する方法とvi のコマンドモードで指定する方法があります。 設定内容を永続的に保持するか、一時的に反映させるかで使い分けると便利です。


このページのTop へ