exのコマンド構文
:[行範囲]command[オプション]
オプション
- !
- コマンドの振る舞いを少し変えたいときに使用
- count
- コマンドを繰り返す回数
- file
- コマンドの対象となるファイル名
%は、現在のファイル名。#は、直前に編集していたファイル名
行範囲
範囲指定が無い場合は、現在の行がコマンドの実行対象
数行に渡り範囲(行xから行y)を指定する場合
x,y
またはx;y
全行の指定1,$
または%
行指定表現
- .
- 現在の行
- 0
- ファイルの先頭
- $
- ファイルの最終行
- n
- 先頭からn番目の行
- +[n]
- 現在のn行下(nが無ければ、1行下)
- -[n]
- 現在のn行上(nが無ければ、1行上)
- /pattern/
- 下方に正規表現patternを探して、最初にマッチした行
- ?pattern?
- 上方に正規表現patternを探して、最初にマッチした行
- x-n
- 行xのn行上にある行
- x+n
- 行xのn行下にある行
- 'x
- xという名前でマークした行
- ''
- 直前にマークした行
行範囲指定表現
- x,y
- 行xから行yまで
- x;y
- 行xから、現在行をxとして、見つけた行yまで
- x
- xで表される単一の行
- %
- ファイル内のすべての行
アルファベット順コマンド一覧
名前 | 説明 |
---|---|
abbrev ab |
ab [string text] 略語割り当て。stringと入力した場合にtextと解釈されるように、stringにキーを割り当てる。stringもtextも省略されて場合は、現在のキーの一覧を表示。 textに改行を含める場合、Ctrl-Vに続いて、RETURNキーを入力する。 画面上は、「^M」と表示される。 |
append | [address]a[!] text 指定された行addressに文章textを挿入。文章の終わりは、ピリオドだけの行で知らせる。addressの指定が無いときは、現在の行に挿入される。[!]を指定した場合は、「自動字下げ(autoindent)」の設定が変更される。 有効だったら無効。無効だったら有効。 |
args |
ar ファイル名引数を表示。現在編集中のファイル名は[]内に表示される。 |
change | [address]c[!] text 行範囲addressにある行の内容をtextに置き換える。「!」を指定した場合は、「自動字下げ(autoindent)」の設定が変更される。 |
copy | [address]co[distination] 行範囲addressにある行をdistination行目の後にコピーする。 |
delete | [address]d [buffer] 行範囲addressにある行を削除。bufferの指定がある時は、そのbufferに削除行を保存または追加。 |
edit |
e[!][+n] [file] fileの編集を開始。「!」が指定された場合は、現在編集中のファイルに加えた変更を破棄する。fileが指定されてないときは、現在編集中のファイルを別バッファで編集開始。+n指定時はそのファイルのn行目に移動。 :e# 直前に開いていたファイルの編集に戻る。 |
file |
f [filename] 現在編集中のファイル名をfilenameに変更。filenameが指定されていないとには、ファイルのステータスを表示。 |
global | [address]g[!]/pattern/[commands] 正規表現パターンpatternを含む全ての行に対して、コマンドcommandsを実行する。行範囲addressがある時は範囲内の全行に対して実行する。commands指定が無いときは、patternを含む全ての行を表示。[!]が使用された場合は、patternを含まない行に対してcommandsを実行する。 :g/Name/s/tom/Tom/ Nameがある行のtomをTomに置き換える。 |
insert | [address]i[!] text 指定された行addressにの前に文章textを挿入。文章の終わりは、ピリオドだけの行で知らせる。addressの指定が無いときは、現在の行の前に挿入される。「!」を指定した場合は、「自動字下げ(autoindent)」の設定が変更される。 |
join | [address]j[!][count]
行範囲addressにある行を1行にまとめる。その後、「.」の後の空白は空白文字2個に変更し、「)」の後の空白は削除し、それ以外の空白は1つの空白に置き換えられる。「!」を指定すれば、この変更が行われない。 |
k | [address]k [char] 行addressを文字charでマークする。'charを入力すればマーク箇所に戻る。 |
list | [address]l[count] 行範囲address内のタブを「^I」として、行末を「$」として表示する。効果は一時的だが、:set listコマンドと同様の動き。 |
map |
map[!][char commands] コマンド群commandsをcharという名のキーボードマクロとして定義。charには任意の1文字、またはファンクションキーを意味する。「#n」を指定。「!」を使用した場合は、入力モード内でマクロを作成する。引数指定が無いときは現在定義されているマクロを一覧表示。 |
mark | [address]ma [char] 行addressを任意の小文字charでマークする。'charを入力すればマークした位置に戻る。kコマンドと同じ。 |
move | [address]m[distination] 行範囲addressにある行をdistination行目の後に移動する。 |
next |
n[!][[+command]filelist] 編集対象ファイル一覧の中にある次のファイルの編集に移る。ファイル一覧はargsコマンドで表示される。ファイル名をfilelistで指定した際には、編集対象ファイル一覧が置き換えられ、その中の最初のファイルの編集を始める。command(空白を含んではいけない)が指定された場合には、編集終了後にcommandが実行される。 |
number | [address]nu[count] 行範囲addressにある行を、行番号付きで表示。numberコマンドの略記としてはnuに加えて、「#」も有効。行数countにはaddress以降の何行を表示するか指定できる。 |
open | [address]o[/pattern/] 行範囲addressにある行またはpatternに一致する行を表示し、オープンモードに移る。オープンモードを開始、終了するにはQを入力する。オープンモードでは通常のviコマンドが使用できるが、その対象は1度に1行に限る。 |
preserve |
pre 現在編集中のバッファを、システムがクラッシュした時と同じように保存する。 |
[address]p[count] 行範囲addressで指定された行を表示。addressを単一行にして、countで行指定することもできる。略記にはpに加えてPも使用できる。 :100;+5p 100~105行目を表示。 |
|
put | [address]pu [char] 名前付きバッファcharに保存されている、削除またはコピーされた行を行addressの次の行に貼り付ける。charの指定がないときは、直前に削除またはコピーされた行を貼り付ける。 |
quit |
q[!] 現在編集中のセッションを終了。「!」を指定すると最後の書き込み時以降になされた変更を保存せずに終了する。編集ファイルリスト内に一度もアクセスされなかったファイルがある場合はqを2度入力するかq!で終了する。 |
read | [address]r [file] ファイルfileを読み込み、指定された行の後ろに挿入。ファイルfileの指定が無ければ現在編集中のファイルが読み込まれる。 |
read | [address]r!command Linux commandの実行結果を、行addressの後ろに読み込む。 |
recover |
rec システム保存領域から、ファイルfileを復旧する。 |
rewind |
rew[!] 編集ファイルリスト内の最初のファイルの編集に戻る。「!」が指定された場合は、未保存の変更を書き込まずに先頭のファイルに移動する。 |
set |
se parameter1 parameter2 ... オプションに値を設定。引数parameterが指定されてないときは、デフォルト値と違う値が設定されているオプションを表示。有効か無効かになるオプションはparameterとしてoptionあるいはnooptionと表記すれば設定できる。その他のオプションはoption=valueという形で設定する。allを設定すれば現在の設定を表示する。 |
shell |
sh 新たなシェルを起動。シェルを終了すると編集が再開される。 |
source |
so file ファイルfileを読み込み、その中にあるexをコマンドを実行。 |
substitute | [address]s[/pattern/replacement/][option][count] 行範囲address内のパターンpatternを別のパターンreplacementに置き換える。patternもreplacementも省略された場合には前回の置換を繰り返す。countを使う場合には、行addressから何行に対して置換を実行するか指定する。 option
|
t | [address]tdistination 行範囲addressにある行を、行distinationの後にコピーする。 copyコマンドと同じ。 |
tag | [address]ta tag 編集対象を、タグtagで見つけたファイルに変更。 |
unabbreviate |
una word abbreviateで定義した略語をwordを削除する。 |
undo |
u 直前の編集コマンドでなされた変更を取り消す。 |
unmap |
unm[!]char mapで定義されたキーボードマクロの内、charを削除する。入力モード用マクロの解除には「!」を指定する。 |
v | [address]v/pattern/[commands] パターンpatternを含まない行に対してコマンドcommandsを実行。commandsの指定が無いときは、patternを含まない行をすべて表示。 |
version |
ve エディタのバージョンを表示。 |
visual | [address]vi[type][count] ビジュアルモード(vi)に移り、addressで指定した行に移動。終了には、Qコマンドを使用する。位置を決めるtypeには「-」「^」「.」のどれかを指定する。引数countはウィンドウのサイズ。 |
vi |
vi[+n]file ビジュアルモード(vi)で、指定したファイルfileの編集を始める。オプション指定時はfileのn行目に跳ぶ。 |
write | [address]w[!][[>>]file] 行範囲addressで指定された行をfileに書き込む。address指定が無いときは、現在行だけでなくバッファ全体の内容を書き込む。file指定が省かれたときは、バッファの内容を現在のファイルに書き込む。「>>file」と指定した場合にはファイルの終わりにバッファの内容を追加する。「!」フラグを指定した時は強制的に書き込む。 |
write | [address]w!command 行範囲addressで指定された行をLinux commandに渡す。 |
wq |
wq[!] ファイルに書き込み後、終了する。「!」指定時は強制的に書き込む。 |
xit |
x 前回の書き込み以降に変更されていたら書き込みをして、終了。 |
yank | [address]ya[char][count] 行範囲addressで指定された行をバッファ名charにコピーする。charが指定されていないときは現在のバッファにコピーする。countを使う場合には、行addressから何行に対してコピーするかを指定。 |
z | [address]z[kind][count] 行addressで指定して行を先頭にしてテキストを表示。countに、表示する行数を指定できる。 kind
|
! | [address]![command] シェル上でLinuxコマンドを実行。行範囲addressが指定されたら、その行をcommandの標準入力に渡す。結果として、その行がcommandの実行結果で置き換えられる。 :10,20!sort -f 10~20行目をソートする。 |
= | [address]= addressで指定された行の次の行が何行目かを表示する。addressの指定がないときは最終行の行番号を表示する。 |
<> | [address]<[count] [address]>[count] 行範囲addressで指定された行を左(<)または右(>)にずらす。左シフトのとき、空白とタブは削除される。countを使う場合には、行addressから何行に対してシフトを実行するかを指定する。 |
address |
address 行範囲addressで指定された行を表示。 |
RETRUN |
RETURN ファイル内の次の行を表示する。 |
& |
&[option][count] 直前の置換コマンド(s)を繰り返す。countを使う場合には、行addressから何行に対して置換を行うかを指定する。 |
~ | [address]~[count] 行範囲addressを対象に、直前に使った正規表現を、直前に使った置換コマンド(s)で使った置換パターンで置き換える。 |