usr_02.txt For Vim バージョン 8.2. Last change: 2021 Apr 24
VIM USER MANUAL - by Bram Moolenaar
初めての Vim
この章では、Vim を使ってファイルを編集するための最低限のことを説明します。操作
が下手でも遅くても、とにかく編集できるようになりましょう。この章に出てくるコマ
ンドはこれからの基礎になるものなので、少し時間をとって練習してください。
02.1 Vim の起動方法
02.2 文字の挿入
02.3 カーソル移動
02.4 文字の削除
02.5 undo (取り消し) と redo (やり直し)
02.6 他の編集コマンド
02.7 Vim の終了
02.8 ヘルプの引き方
次章: usr_03.txt カーソルの移動
前章: usr_01.txt マニュアルについて
目次: usr_toc.txt
==============================================================================
02.1 Vim の起動方法
Vim を起動するには次のコマンドを入力します。
UNIXならコマンドプロンプトから実行できます。Microsoft Windows環境では、コマン
ドプロンプトを開いて、入力してください。
Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:
+---------------------------------------+
|# |
|~ |
|~ |
|~ |
|~ |
|"file.txt" [New file] |
+---------------------------------------+
('#' はカーソルの位置です)
チルダ (~) の行は、ファイルにその行がないことを示しています。ファイルの末尾よ
り後ろを表示する場合にチルダが表示されます。画面の下の方に、編集中のファイル名
は "file.txt" で、それが新しいファイルであることが表示されています。このメッ
セージの表示は一時的なもので、他のメッセージが表示されると消えてしまいます。
VIM コマンド
------------
gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は:
コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
xterm ウィンドウを使います。MS-Windows のコマンドプロンプトを使っている場合も、
そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じように表示
されますが、gvim にはメニューバーなどの追加機能があります。詳しくは後で述べま
す。
==============================================================================
02.2 文字の挿入
Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
ん。後から修正できます。プログラマのリメリック(詩の一種)を入力して見ましょう。
次のように入力します:
"turtle" を入力した後で <Enter> キーを押して改行します。最後に <Esc> キーを押
して挿入モードを終了し、ノーマルモードに戻ります。このとき、Vim ウィンドウには
次のような二行が表示されています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
今は何モード?
-------------
現在のモードを確認できるようにするには、次のコマンドを入力してください。
":" (コロン記号) を入力すると、カーソルがウィンドウの最下段に移動します。ここ
はコロンコマンド (":" で始まるコマンド) を入力する場所です。<Enter> キーを押す
とコマンドが実行されます (コロンで始まるコマンドは全てこの方法を使います)。
さて、"i" コマンドを入力すると、ウィンドウの最下段に "-- 挿入 --" という表示が
現れます。これは、あなたが挿入モードにいることを示しています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
|-- 挿入 -- |
+---------------------------------------+
<Esc> を押すとノーマルモードに戻り、最下段は空白になります。
トラブルを避ける
----------------
Vim を使い始めたときはモードを混同しがちです。現在のモードを忘れてしまったり、
知らないうちに間違ってモードを変更してしまったりすることがあります。どのモード
にいる場合でも <Esc> を押せばノーマルモードに戻れます。<Esc> を二回押さなけれ
ばならないときもあります。ノーマルモードで <Esc> を押すとビープ音が鳴るので、
その場合は既にノーマルモードにいるということです。
==============================================================================
02.3 カーソル移動
ノーマルモードでは、次のキーを使って移動できます:
h 左 hjkl
j 下
k 上
l 右
最初はでたらめなコマンドに思えるかもしれません。"l" キーで 右 (right) に移動す
るなんておかしいですね。しかしこれには合理的な理由があります。エディタで最もよ
く使うのはカーソル移動であり、これらのキーは右手のホームポジションにあるので
す。つまり、(特に 10 本の指を使ってタイプする人が) 最も速く打てる場所にコマン
ドが配置されています。
Note:
カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離
さなければならないので、編集速度は落ちてしまいます。一時間に数百回も移
動することを考えると、結構な時間が消費されることになります。
また、矢印キーが無いキーボードや、矢印キーの配置場所がおかしいキーボー
ドもあります。hjkl の使い方を知っていれば、そのような場合でも安心です。
コマンドを覚えるには、"h" は左にあって、"l" は右にあって、"j" は下を指してい
る、とでも覚えてください。図で示します:
移動コマンドを覚える一番の方法は使ってみることです。"i" コマンドを使って適当な
テキストを入力し、hjkl キーを使って動き回り、いろんな場所に文字を挿入してみて
ください。<Esc> キーを押してノーマルモードに戻るのを忘れずに。vimtutor を使っ
て練習してみるのもいいでしょう。
日本のユーザーへ、Hiroshi Iwataniさんは次のような提案をしています。
Komsomolsk
^
|
Huan Ho <--- ---> Los Angeles
(Yellow river) |
v
Java (ジャワ島。プログラミング言語のあれではない)
==============================================================================
02.4 文字の削除
文字を削除したい場合は、文字の上にカーソルを移動して "x" を押します。(これはタ
イプライタを使っていた古い時代に、消したい文字の上に "xxxxxx" と印字していたの
と同じ感覚です)。例えば、例文の一行目にカーソルを移動して、xxxxxxx (xを7つ) 打
ち、"A very " を消してみましょう。その結果は次のようになります:
+---------------------------------------+
|intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
さて、新しいテキストを挿入してみましょう。例えば次のように入力します:
"i" で挿入を開始し、"A young " を入力しています。最後に <Esc> キーを押して挿入
モードを抜けます。結果は次のようになります。
+---------------------------------------+
|A young intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
行削除
------
行全体を消すには "dd" コマンドを使います。行が消された場所は、それ以降の行を上
げることで詰められます。
+---------------------------------------+
|Found programming UNIX a hurdle |
|~ |
|~ |
|~ |
| |
+---------------------------------------+
改行を取る
----------
Vim では複数の行を一行にまとめることができます。これは行と行の間にある改行文字
を削除するのと同じです。それには "J" コマンドを使います。
例えば、次の二行があるとします:
A young intelligent
turtle
最初の行にカーソルを動かし "J" を押すと次のようになります:
A young intelligent turtle
==============================================================================
02.5 undo (取り消し) と redo (やり直し)
間違ってテキストを削除してしまった場合、同じ内容を入力し直すこともできますが、
もっと簡単な方法があります。"u" コマンドで直前の編集結果を undo (取り消し)
できます。例えば、"dd" コマンドで削除した行を、"u" コマンドで元に戻せます。
もう一つ例を示します。カーソルを一行目の A に移動して:
A young intelligent turtle
xxxxxxx とタイプし、"A young" を削除します。結果は次のようになります:
intelligent turtle
"u" で直前の削除が取り消されます。最後に削除されたのは g なので、その文字が復
活します。
g intelligent turtle
もう一度 "u" を実行すると、さらに一つ前に削除された文字が復活します:
ng intelligent turtle
次の "u" コマンドでは u が復活し、次々と元に戻すことができます:
ung intelligent turtle
oung intelligent turtle
young intelligent turtle
young intelligent turtle
A young intelligent turtle
Note:
"u" を二回押したときに、最初の状態に戻ってしまった場合は、Vi 互換モー
ドが設定されています。not-compatible を参照して正しく設定してくださ
い。
このマニュアルでは「Vim方式」の使い方を前提にしています。古き良き時代
の Vi 方式を使いたい場合は、細かい部分でマニュアルの説明と違うことがあ
るので注意してください。
redo (やり直し)
---------------
undo し過ぎてしまった場合は、CTRL-R (redo) を押すことで、直前のコマンドを
取り消せます。つまり、undo を undo します。実際に二回 CTRL-R を押してみましょ
う。"A "の二文字が消えます。
young intelligent turtle
undo コマンドには特別なバージョン、"U" (行 undo) コマンドがあります。行 undo
コマンドは直前に編集した行のすべての変更を取り消します。このコマンドは、二回実
行すると、直前の "U" が取り消されます。
A very intelligent turtle
xxxx "very" を削除
A intelligent turtle
xxxxxx "turtle" を削除
A intelligent
"U" で行全体を元に戻す
A very intelligent turtle
"u" で "U" を undo
A intelligent
"u" が undo で、CTRL-R が redo であるのに対し、"U" コマンドはそれ自身が変更コ
マンドです。ちょっとわかりにくいかも知れませんが心配はいりません。"u" と
CTRL-R があればどんな場合でも大丈夫だ、ってことです。詳細は 32.2 にあります。
==============================================================================
02.6 他の編集コマンド
Vim には文章を編集するための数多くのコマンドがあります。下記、またはQ_inを参
照してください。ここでは頻繁に使うものだけを述べます。
追記 (APPENDING)
----------------
"i" コマンドはカーソルの前に文字列を挿入しますが、行末に文字を追加したいときは
はどうすればいいでしょうか? それにはカーソルの後ろに文を挿入できないといけませ
ん。"a" (append) コマンドで追記できます。
例えば、次の行を
and that's not saying much for the turtle.
このように変更したいとします
and that's not saying much for the turtle!!!
まずカーソルを行末のピリオドの上に動かし、"x" でピリオドを消します。この時カー
ソルは行末の turtle の "e" の上にあります。ここで、次のコマンドを入力します。
これで turtle の後ろに三つの "!" 記号が追加されます:
and that's not saying much for the turtle!!!
新しい行を開く
--------------
"o" コマンドを使うと、カーソルの下に新しい空の行が作成され、挿入モードに入りま
す。そのため、そのまま新しい行の文章を入力できます。
以下のような二行があり、カーソルが一行目のどこかにあるとします:
A very intelligent turtle
Found programming UNIX a hurdle
"o" コマンドを実行し、テキストを入力すると:
次のような結果になります:
A very intelligent turtle
That liked using Vim
Found programming UNIX a hurdle
"O" コマンド (大文字) を使うと、カーソルの上に空行を作成できます。
カウンタを使う
--------------
例えば、9 行上に移動したい場合、"kkkkkkkkk" とタイプすることもできますが、"9k"
コマンドでも同様に移動できます。実はほとんどのコマンドには回数を指定できます。
例えば上記の例では、"a!!!<Esc>" で三つの "!" 記号を追加しましたが、これは
"3a!<Esc>" と入力することもできます。最初の 3 はコマンドを三回実行することを指
定しています。同様に、三文字削除したい場合は "3x" を使います。カウントは必ず対
象となるコマンドの前に指定してください。
==============================================================================
02.7 Vim の終了
Vim を終了するには "ZZ" コマンドを使います。ファイルが保存され、Vim が終了しま
す。
Note:
他の多くのエディタと違い、Vim は自動的にバックアップを作成しません。
"ZZ" と打つとファイルが上書きされるため、元に戻す方法はありません。バッ
クアップファイルを作成するように設定することもできます。07.4を参照し
てください。
変更を破棄する
--------------
ファイルを編集した後で、元の方が良かったと気づくことがあると思います。心配はい
りません。「全部投げ捨てて終了する」コマンドがあります。
コマンドを確定するには <Enter> キーが必要ですよ。お忘れなく。
詳細を説明すると、このコマンドは三つの部分から成っています。":" はコマンドライ
ンモードの開始、"q" コマンドはエディタを終了するコマンド、"!" はオーバーライド
修飾詞です。
変更を破棄するにはオーバーライド修飾詞が必要です。単に ":q" を実行した場合、エ
ラーメッセージが表示され、コマンドは実行されません:
E37: 最後の変更が保存されていません (! で変更を破棄)
オーバーライドを指定することで、「バカげたことをしてるように見えるのはわかって
る。でも本当にそうしたいんだ」と Vim に告げているわけです。
Vim を終了したくない場合は、":e!" コマンドでオリジナルのファイルを再読み込みで
きます。
==============================================================================
02.8 ヘルプの引き方
知りたいことは何でも Vim のヘルプで調べることができます。どんどん調べてくださ
い!
何かを知りたいときには、たいていはグーグルを使うよりもヘルプを使って探すほうが
簡単です。なぜならヘルプの題目は一定のスタイルガイドに沿っているからです。
さらに、ヘルプはあなたが使っているVimの特定のバージョンに即しているという利点
があります。後で追加されたコマンドのヘルプは表示されません。それらはあなたの環
境では動かないでしょう。
次のコマンドでヘルプの総合案内が表示されます:
ヘルプは <F1> ファンクションキーでも表示できます。キーボードに <Help> キーがあ
る場合はそれも使えます。
":help" に引数を指定しなかった場合は総合案内が表示されます。Vim の作者はとても
賢い (いや、すごい怠け者かも) ので、ヘルプウィンドウには普通の編集ウィンドウが
使われています。ヘルプウィンドウの中ではすべてのノーマルモードコマンドが使えま
す。したがって、h, j, k, l で 上下左右に移動できます。
ヘルプウィンドウは、エディタを終了するのと同じコマンド ("ZZ") で閉じることがで
きます。この場合は、ヘルプウィンドウが閉じるだけで、Vim は終了しません。
ヘルプを読むと、縦棒 "|" で囲まれた文字に気づくと思います (例: help)。それは
ハイパーリンクです。その場所にカーソルを置いて、CTRL-] (タグジャンプ) を押す
と、そのヘルプにジャンプできます。(理由は省きますが、Vim ではハイパーリンクの
ことをタグと呼びます。CTRL-] はカーソル下の単語をタグとみなして、その場所にジャ
ンプします。)
ジャンプした後は CTRL-T (タグをポップする) で元の場所に戻れます。CTRL-O (古い
場所へのジャンプ) でも元に場所に戻れます。
ヘルプ画面の最上部に*help.txt*という表記があります。"*" で囲まれた名前はヘルプ
システムのタグ (ハイパーリンクの飛び先) を定義するために使われています。
タグの使い方の詳細は 29.1 を参照してください。
特定のヘルプ項目を見るには次のコマンドを使います:
例えば "x" コマンドのヘルプを見るには次のようにします:
文字の削除方法を調べるには次のようにします:
Vim のコマンド一覧を見たい場合は次のようにします:
コントロール文字コマンド (例えば CTRL-A) のヘルプを見るには、"CTRL-" に続けて
その文字を指定します:
Vim にはいろんなモードがあります。特に指定がなければノーマルモードコマンドのヘ
ルプが表示されます。例えば、次のコマンドでノーマルモードの CTRL-H コマンドのヘ
ルプが表示されます:
他のモードを指定するにはプリフィックスを付けてください。例えば、挿入モードのヘ
ルプを見たいときには、"i_" を付けます。CTRL-H の場合なら次のようになります:
Vim を起動するときにはコマンドライン引数を指定できます。引数は先頭が "-" で始
まります。例えば、"-t" 引数の意味を調べるには次のコマンドを使います:
Vim にはオプションがたくさんあり、それを設定することでカスタマイズができます。
オプションのヘルプを見るには、アポストロフィでそれを囲ってください。例えば、
'number' オプションの意味を調べるには次のコマンドを使います:
モードのプリフィックス一覧は help-summary を参照してください。
特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
には次のコマンドを使います:
例えば次のようなエラーメッセージが表示された場合:
E37: 最後の変更が保存されていません (! で変更を破棄)
行頭のエラーIDを使えばヘルプを検索できます:
概要: help-summary
1) トピックをタイプした後、あり得るトピック全てを表示させるには Ctrl-D を使い
ます。もしくはタブで補完します:
2) バーで囲まれた関連ヘルプへのリンクを辿ってみて下さい。ヘルプの詳細からユー
ザー視点のコマンド説明で、あまり詳しすぎないユーザードキュメントへ移動でき
ます。例えば:
usr_27.txt があるのが分かります。
3) オプションは単一のアポストロフィで囲まれます。list オプションに関するヘルプ
へ行くには:
ページを見つけ出します。
特定のオプションには特有のネームスペースが付きます。例:
下さい。例:
4) ノーマルモードのコマンドにはプリフィックスはありません。"gt" コマンドのヘル
プへ行くには:
5) 挿入モードのコマンドは i_ で始まります。単語の削除に関するヘルプであれば:
6) ビジュアルモードのコマンドは v_ で始まります。ビジュアル領域のもう片方へジャ
ンプする方法のヘルプであれば:
7) コマンドラインの編集や引数は c_ で始まります。引数の % の使用方法のヘルプで
あれば:
8) Exコマンドは常に ":" で始まります。よって ":s" コマンドのヘルプに移動するに
は:
9) デバッグに関するコマンドは ">" で始まります。デバッグコマンドの "cont" のヘ
ルプに移動するには:
10) キーの組み合わせは通常、使用できるモードを表す 1 文字から始まります。例え
ば:
Note いくつかのキーは常に同様に記載されています。例えばコントロールキーは
常に CTRL と記載されます。
ノーマルモードのコマンドはプリフィックスを持たず、項目は :h CTRL-<Letter>
により参照可能です。例えば
を押す必要があります)。ここで "g" はノーマルコマンドの "g" を意味し、何か
を実行する前に常に 2 番目のキーが必要です。"z" で始まるコマンドも同様です。
11) 正規表現の項目は常に / で始まります。よって Vim の正規表現の "\+" 量指定子
のヘルプに移動するには:
12) レジスタは常に "quote" で始まります。特殊なレジスタ ":" について調べるので
あれば:
13) Vim script は以下を参照。
ています。例えば
さらに重要なのが
の関数はすべて "()" を含みます。よって:
ついての説明に移動します。
14) マッピングについては :h map.txt で述べられています。
固有のある項目を調べるには :map-トピック も使用できます。例えば:
15) コマンド定義は :h command-トピック で記載されます。カスタムコマンドの '!'
引数については
16) ウィンドウの制御コマンドは常に CTRL-W で始まります。:h CTRL-W_文字 で該当
のヘルプが見つかります。例えば:
ウィンドウ操作コマンド群を眺めたいならば
17) 全てのヘルプ (とインストールしたプラグイン) のページを検索するには
:helpgrep を使用してください。使用法については :helpgrep を参照してく
ださい。
項目を検索するには:
参照可能です:
18) ユーザーマニュアルは初心者にとってより親しみやすい項目について説明していま
す。(おそらくあなたの想像通り) usr_toc.txt でその目次を見つけることがで
きます:
(Digraph)" と "特殊な文字を入力する" の項目は 24 章です。そのページに移動
するには:
す:
19) ハイライトグループは常に hl- から始まります。例えば
20) 構文ハイライトは :syn-トピック という形式になっています。例えば
21) quickfix コマンドは大体 :c から始まり、location リストコマンドは大体 :l か
ら始まります。
22) Autocommand イベントはそれらの名前で見つける事ができます:
23) コマンドラインスイッチは常に "-" から始まります。Vim のコマンドスイッチ -f
に関するヘルプであれば:
24) オプショナルな機能は常に "+" から始まります。conceal 機能の使い方について
調べるのであれば:
25) ファイルタイプ特有の機能が含まれるドキュメントは通常
ft-<ファイルタイプ>-<機能> に存在します。よって C のシンタックスファイルと
そこで提供されているオプションについては以下に記載されます。
26) エラーと警告のコードは help で直接引くことができます。よって
しかし時々エラーコードの説明が存在しない場合がありますが、どちらかといえば
大抵それを引き起こした Vim のコマンドの方に記載されているでしょう。よって:
==============================================================================
次章: usr_03.txt カーソルの移動
Copyright: see manual-copyright vim:tw=78:ts=8:noet:ft=help:norl:
VIM USER MANUAL - by Bram Moolenaar
初めての Vim
この章では、Vim を使ってファイルを編集するための最低限のことを説明します。操作
が下手でも遅くても、とにかく編集できるようになりましょう。この章に出てくるコマ
ンドはこれからの基礎になるものなので、少し時間をとって練習してください。
02.1 Vim の起動方法
02.2 文字の挿入
02.3 カーソル移動
02.4 文字の削除
02.5 undo (取り消し) と redo (やり直し)
02.6 他の編集コマンド
02.7 Vim の終了
02.8 ヘルプの引き方
次章: usr_03.txt カーソルの移動
前章: usr_01.txt マニュアルについて
目次: usr_toc.txt
==============================================================================
02.1 Vim の起動方法
Vim を起動するには次のコマンドを入力します。
gvim file.txt
UNIXならコマンドプロンプトから実行できます。Microsoft Windows環境では、コマン
ドプロンプトを開いて、入力してください。
Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:
+---------------------------------------+
|# |
|~ |
|~ |
|~ |
|~ |
|"file.txt" [New file] |
+---------------------------------------+
('#' はカーソルの位置です)
チルダ (~) の行は、ファイルにその行がないことを示しています。ファイルの末尾よ
り後ろを表示する場合にチルダが表示されます。画面の下の方に、編集中のファイル名
は "file.txt" で、それが新しいファイルであることが表示されています。このメッ
セージの表示は一時的なもので、他のメッセージが表示されると消えてしまいます。
VIM コマンド
------------
gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は:
vim file.txt
コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
xterm ウィンドウを使います。MS-Windows のコマンドプロンプトを使っている場合も、
そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じように表示
されますが、gvim にはメニューバーなどの追加機能があります。詳しくは後で述べま
す。
==============================================================================
02.2 文字の挿入
Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
ん。後から修正できます。プログラマのリメリック(詩の一種)を入力して見ましょう。
次のように入力します:
iA very intelligent turtle
Found programming UNIX a hurdle
Found programming UNIX a hurdle
"turtle" を入力した後で <Enter> キーを押して改行します。最後に <Esc> キーを押
して挿入モードを終了し、ノーマルモードに戻ります。このとき、Vim ウィンドウには
次のような二行が表示されています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
今は何モード?
-------------
現在のモードを確認できるようにするには、次のコマンドを入力してください。
:set showmode
":" (コロン記号) を入力すると、カーソルがウィンドウの最下段に移動します。ここ
はコロンコマンド (":" で始まるコマンド) を入力する場所です。<Enter> キーを押す
とコマンドが実行されます (コロンで始まるコマンドは全てこの方法を使います)。
さて、"i" コマンドを入力すると、ウィンドウの最下段に "-- 挿入 --" という表示が
現れます。これは、あなたが挿入モードにいることを示しています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
|-- 挿入 -- |
+---------------------------------------+
<Esc> を押すとノーマルモードに戻り、最下段は空白になります。
トラブルを避ける
----------------
Vim を使い始めたときはモードを混同しがちです。現在のモードを忘れてしまったり、
知らないうちに間違ってモードを変更してしまったりすることがあります。どのモード
にいる場合でも <Esc> を押せばノーマルモードに戻れます。<Esc> を二回押さなけれ
ばならないときもあります。ノーマルモードで <Esc> を押すとビープ音が鳴るので、
その場合は既にノーマルモードにいるということです。
==============================================================================
02.3 カーソル移動
ノーマルモードでは、次のキーを使って移動できます:
h 左 hjkl
j 下
k 上
l 右
最初はでたらめなコマンドに思えるかもしれません。"l" キーで 右 (right) に移動す
るなんておかしいですね。しかしこれには合理的な理由があります。エディタで最もよ
く使うのはカーソル移動であり、これらのキーは右手のホームポジションにあるので
す。つまり、(特に 10 本の指を使ってタイプする人が) 最も速く打てる場所にコマン
ドが配置されています。
Note:
カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離
さなければならないので、編集速度は落ちてしまいます。一時間に数百回も移
動することを考えると、結構な時間が消費されることになります。
また、矢印キーが無いキーボードや、矢印キーの配置場所がおかしいキーボー
ドもあります。hjkl の使い方を知っていれば、そのような場合でも安心です。
コマンドを覚えるには、"h" は左にあって、"l" は右にあって、"j" は下を指してい
る、とでも覚えてください。図で示します:
k
h l
j
h l
j
移動コマンドを覚える一番の方法は使ってみることです。"i" コマンドを使って適当な
テキストを入力し、hjkl キーを使って動き回り、いろんな場所に文字を挿入してみて
ください。<Esc> キーを押してノーマルモードに戻るのを忘れずに。vimtutor を使っ
て練習してみるのもいいでしょう。
日本のユーザーへ、Hiroshi Iwataniさんは次のような提案をしています。
Komsomolsk
^
|
Huan Ho <--- ---> Los Angeles
(Yellow river) |
v
Java (ジャワ島。プログラミング言語のあれではない)
==============================================================================
02.4 文字の削除
文字を削除したい場合は、文字の上にカーソルを移動して "x" を押します。(これはタ
イプライタを使っていた古い時代に、消したい文字の上に "xxxxxx" と印字していたの
と同じ感覚です)。例えば、例文の一行目にカーソルを移動して、xxxxxxx (xを7つ) 打
ち、"A very " を消してみましょう。その結果は次のようになります:
+---------------------------------------+
|intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
さて、新しいテキストを挿入してみましょう。例えば次のように入力します:
iA young <Esc>
"i" で挿入を開始し、"A young " を入力しています。最後に <Esc> キーを押して挿入
モードを抜けます。結果は次のようになります。
+---------------------------------------+
|A young intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
行削除
------
行全体を消すには "dd" コマンドを使います。行が消された場所は、それ以降の行を上
げることで詰められます。
+---------------------------------------+
|Found programming UNIX a hurdle |
|~ |
|~ |
|~ |
| |
+---------------------------------------+
改行を取る
----------
Vim では複数の行を一行にまとめることができます。これは行と行の間にある改行文字
を削除するのと同じです。それには "J" コマンドを使います。
例えば、次の二行があるとします:
A young intelligent
turtle
最初の行にカーソルを動かし "J" を押すと次のようになります:
A young intelligent turtle
==============================================================================
02.5 undo (取り消し) と redo (やり直し)
間違ってテキストを削除してしまった場合、同じ内容を入力し直すこともできますが、
もっと簡単な方法があります。"u" コマンドで直前の編集結果を undo (取り消し)
できます。例えば、"dd" コマンドで削除した行を、"u" コマンドで元に戻せます。
もう一つ例を示します。カーソルを一行目の A に移動して:
A young intelligent turtle
xxxxxxx とタイプし、"A young" を削除します。結果は次のようになります:
intelligent turtle
"u" で直前の削除が取り消されます。最後に削除されたのは g なので、その文字が復
活します。
g intelligent turtle
もう一度 "u" を実行すると、さらに一つ前に削除された文字が復活します:
ng intelligent turtle
次の "u" コマンドでは u が復活し、次々と元に戻すことができます:
ung intelligent turtle
oung intelligent turtle
young intelligent turtle
young intelligent turtle
A young intelligent turtle
Note:
"u" を二回押したときに、最初の状態に戻ってしまった場合は、Vi 互換モー
ドが設定されています。not-compatible を参照して正しく設定してくださ
い。
このマニュアルでは「Vim方式」の使い方を前提にしています。古き良き時代
の Vi 方式を使いたい場合は、細かい部分でマニュアルの説明と違うことがあ
るので注意してください。
redo (やり直し)
---------------
undo し過ぎてしまった場合は、CTRL-R (redo) を押すことで、直前のコマンドを
取り消せます。つまり、undo を undo します。実際に二回 CTRL-R を押してみましょ
う。"A "の二文字が消えます。
young intelligent turtle
undo コマンドには特別なバージョン、"U" (行 undo) コマンドがあります。行 undo
コマンドは直前に編集した行のすべての変更を取り消します。このコマンドは、二回実
行すると、直前の "U" が取り消されます。
A very intelligent turtle
xxxx "very" を削除
A intelligent turtle
xxxxxx "turtle" を削除
A intelligent
"U" で行全体を元に戻す
A very intelligent turtle
"u" で "U" を undo
A intelligent
"u" が undo で、CTRL-R が redo であるのに対し、"U" コマンドはそれ自身が変更コ
マンドです。ちょっとわかりにくいかも知れませんが心配はいりません。"u" と
CTRL-R があればどんな場合でも大丈夫だ、ってことです。詳細は 32.2 にあります。
==============================================================================
02.6 他の編集コマンド
Vim には文章を編集するための数多くのコマンドがあります。下記、またはQ_inを参
照してください。ここでは頻繁に使うものだけを述べます。
追記 (APPENDING)
----------------
"i" コマンドはカーソルの前に文字列を挿入しますが、行末に文字を追加したいときは
はどうすればいいでしょうか? それにはカーソルの後ろに文を挿入できないといけませ
ん。"a" (append) コマンドで追記できます。
例えば、次の行を
and that's not saying much for the turtle.
このように変更したいとします
and that's not saying much for the turtle!!!
まずカーソルを行末のピリオドの上に動かし、"x" でピリオドを消します。この時カー
ソルは行末の turtle の "e" の上にあります。ここで、次のコマンドを入力します。
a!!!<Esc>
これで turtle の後ろに三つの "!" 記号が追加されます:
and that's not saying much for the turtle!!!
新しい行を開く
--------------
"o" コマンドを使うと、カーソルの下に新しい空の行が作成され、挿入モードに入りま
す。そのため、そのまま新しい行の文章を入力できます。
以下のような二行があり、カーソルが一行目のどこかにあるとします:
A very intelligent turtle
Found programming UNIX a hurdle
"o" コマンドを実行し、テキストを入力すると:
oThat liked using Vim<Esc>
次のような結果になります:
A very intelligent turtle
That liked using Vim
Found programming UNIX a hurdle
"O" コマンド (大文字) を使うと、カーソルの上に空行を作成できます。
カウンタを使う
--------------
例えば、9 行上に移動したい場合、"kkkkkkkkk" とタイプすることもできますが、"9k"
コマンドでも同様に移動できます。実はほとんどのコマンドには回数を指定できます。
例えば上記の例では、"a!!!<Esc>" で三つの "!" 記号を追加しましたが、これは
"3a!<Esc>" と入力することもできます。最初の 3 はコマンドを三回実行することを指
定しています。同様に、三文字削除したい場合は "3x" を使います。カウントは必ず対
象となるコマンドの前に指定してください。
==============================================================================
02.7 Vim の終了
Vim を終了するには "ZZ" コマンドを使います。ファイルが保存され、Vim が終了しま
す。
Note:
他の多くのエディタと違い、Vim は自動的にバックアップを作成しません。
"ZZ" と打つとファイルが上書きされるため、元に戻す方法はありません。バッ
クアップファイルを作成するように設定することもできます。07.4を参照し
てください。
変更を破棄する
--------------
ファイルを編集した後で、元の方が良かったと気づくことがあると思います。心配はい
りません。「全部投げ捨てて終了する」コマンドがあります。
:q!
コマンドを確定するには <Enter> キーが必要ですよ。お忘れなく。
詳細を説明すると、このコマンドは三つの部分から成っています。":" はコマンドライ
ンモードの開始、"q" コマンドはエディタを終了するコマンド、"!" はオーバーライド
修飾詞です。
変更を破棄するにはオーバーライド修飾詞が必要です。単に ":q" を実行した場合、エ
ラーメッセージが表示され、コマンドは実行されません:
E37: 最後の変更が保存されていません (! で変更を破棄)
オーバーライドを指定することで、「バカげたことをしてるように見えるのはわかって
る。でも本当にそうしたいんだ」と Vim に告げているわけです。
Vim を終了したくない場合は、":e!" コマンドでオリジナルのファイルを再読み込みで
きます。
==============================================================================
02.8 ヘルプの引き方
知りたいことは何でも Vim のヘルプで調べることができます。どんどん調べてくださ
い!
何かを知りたいときには、たいていはグーグルを使うよりもヘルプを使って探すほうが
簡単です。なぜならヘルプの題目は一定のスタイルガイドに沿っているからです。
さらに、ヘルプはあなたが使っているVimの特定のバージョンに即しているという利点
があります。後で追加されたコマンドのヘルプは表示されません。それらはあなたの環
境では動かないでしょう。
次のコマンドでヘルプの総合案内が表示されます:
:help
ヘルプは <F1> ファンクションキーでも表示できます。キーボードに <Help> キーがあ
る場合はそれも使えます。
":help" に引数を指定しなかった場合は総合案内が表示されます。Vim の作者はとても
賢い (いや、すごい怠け者かも) ので、ヘルプウィンドウには普通の編集ウィンドウが
使われています。ヘルプウィンドウの中ではすべてのノーマルモードコマンドが使えま
す。したがって、h, j, k, l で 上下左右に移動できます。
ヘルプウィンドウは、エディタを終了するのと同じコマンド ("ZZ") で閉じることがで
きます。この場合は、ヘルプウィンドウが閉じるだけで、Vim は終了しません。
ヘルプを読むと、縦棒 "|" で囲まれた文字に気づくと思います (例: help)。それは
ハイパーリンクです。その場所にカーソルを置いて、CTRL-] (タグジャンプ) を押す
と、そのヘルプにジャンプできます。(理由は省きますが、Vim ではハイパーリンクの
ことをタグと呼びます。CTRL-] はカーソル下の単語をタグとみなして、その場所にジャ
ンプします。)
ジャンプした後は CTRL-T (タグをポップする) で元の場所に戻れます。CTRL-O (古い
場所へのジャンプ) でも元に場所に戻れます。
ヘルプ画面の最上部に*help.txt*という表記があります。"*" で囲まれた名前はヘルプ
システムのタグ (ハイパーリンクの飛び先) を定義するために使われています。
タグの使い方の詳細は 29.1 を参照してください。
特定のヘルプ項目を見るには次のコマンドを使います:
:help {subject}
例えば "x" コマンドのヘルプを見るには次のようにします:
:help x
文字の削除方法を調べるには次のようにします:
:help deleting
Vim のコマンド一覧を見たい場合は次のようにします:
:help index
コントロール文字コマンド (例えば CTRL-A) のヘルプを見るには、"CTRL-" に続けて
その文字を指定します:
:help CTRL-A
Vim にはいろんなモードがあります。特に指定がなければノーマルモードコマンドのヘ
ルプが表示されます。例えば、次のコマンドでノーマルモードの CTRL-H コマンドのヘ
ルプが表示されます:
:help CTRL-H
他のモードを指定するにはプリフィックスを付けてください。例えば、挿入モードのヘ
ルプを見たいときには、"i_" を付けます。CTRL-H の場合なら次のようになります:
:help i_CTRL-H
Vim を起動するときにはコマンドライン引数を指定できます。引数は先頭が "-" で始
まります。例えば、"-t" 引数の意味を調べるには次のコマンドを使います:
:help -t
Vim にはオプションがたくさんあり、それを設定することでカスタマイズができます。
オプションのヘルプを見るには、アポストロフィでそれを囲ってください。例えば、
'number' オプションの意味を調べるには次のコマンドを使います:
:help 'number'
モードのプリフィックス一覧は help-summary を参照してください。
特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
には次のコマンドを使います:
:help i_<Up>
例えば次のようなエラーメッセージが表示された場合:
E37: 最後の変更が保存されていません (! で変更を破棄)
行頭のエラーIDを使えばヘルプを検索できます:
:help E37
概要: help-summary
1) トピックをタイプした後、あり得るトピック全てを表示させるには Ctrl-D を使い
ます。もしくはタブで補完します:
:help some<Tab>
help の使い方に関するより詳しい情報については: :help helphelp
2) バーで囲まれた関連ヘルプへのリンクを辿ってみて下さい。ヘルプの詳細からユー
ザー視点のコマンド説明で、あまり詳しすぎないユーザードキュメントへ移動でき
ます。例えば:
:help pattern.txt
を見るとイントロダクション部分にユーザーガイドのトピック 03.9 やusr_27.txt があるのが分かります。
3) オプションは単一のアポストロフィで囲まれます。list オプションに関するヘルプ
へ行くには:
:help 'list'
もし特定のオプションを探していないのであれば、以下でも可能です: :help options.txt
正規表現を使って記載された全てのオプションを検索し textwidth 等のヘルプのページを見つけ出します。
特定のオプションには特有のネームスペースが付きます。例:
:help cpo-<letter>
は設定 'cpoptions' のフラグに対応します。<letter> は個別のフラグに置き換えて下さい。例:
:help cpo-;
さらに 'guioptions' のフラグであれば: :help go-<letter>
4) ノーマルモードのコマンドにはプリフィックスはありません。"gt" コマンドのヘル
プへ行くには:
:help gt
5) 挿入モードのコマンドは i_ で始まります。単語の削除に関するヘルプであれば:
:help i_CTRL-W
6) ビジュアルモードのコマンドは v_ で始まります。ビジュアル領域のもう片方へジャ
ンプする方法のヘルプであれば:
:help v_o
7) コマンドラインの編集や引数は c_ で始まります。引数の % の使用方法のヘルプで
あれば:
:help c_%
8) Exコマンドは常に ":" で始まります。よって ":s" コマンドのヘルプに移動するに
は:
:help :s
9) デバッグに関するコマンドは ">" で始まります。デバッグコマンドの "cont" のヘ
ルプに移動するには:
:help >cont
10) キーの組み合わせは通常、使用できるモードを表す 1 文字から始まります。例え
ば:
:help i_CTRL-X
は挿入モードでそれぞれ異なるものを補完する CTRL-X 系コマンドに移動します。Note いくつかのキーは常に同様に記載されています。例えばコントロールキーは
常に CTRL と記載されます。
ノーマルモードのコマンドはプリフィックスを持たず、項目は :h CTRL-<Letter>
により参照可能です。例えば
:help CTRL-W
に対して :help c_CTRL-R
はコマンドラインに入ったときの CTRL-R が行うことを説明しています。また :help v_CTRL-A
はビジュアルモードでの数値のインクリメントを説明し :help g_CTRL-A
は "g<C-A>" コマンドについて述べています (これには "g" を押して <CTRL-A>を押す必要があります)。ここで "g" はノーマルコマンドの "g" を意味し、何か
を実行する前に常に 2 番目のキーが必要です。"z" で始まるコマンドも同様です。
11) 正規表現の項目は常に / で始まります。よって Vim の正規表現の "\+" 量指定子
のヘルプに移動するには:
:help /\+
もし正規表現の全てに関して知りたいのなら、以下を参照してください: :help pattern.txt
12) レジスタは常に "quote" で始まります。特殊なレジスタ ":" について調べるので
あれば:
:help quote:
13) Vim script は以下を参照。
:help eval.txt
Vim script のいくつかの側面については :h expr-X ("X" は1文字) に記載されています。例えば
:help expr-!
は Vim script の "!" (否定)演算子の説明の項目に移動します。さらに重要なのが
:help function-list
にはすべての関数の簡潔な説明が記載されています。ヘルプ項目の Vim scriptの関数はすべて "()" を含みます。よって:
:help append()
は現在のバッファにテキストを追加 (append) する方法ではなく append 関数についての説明に移動します。
14) マッピングについては :h map.txt で述べられています。
:help mapmode-i
:imap コマンドについて調べるなら上記を使用してください。またマッピング固有のある項目を調べるには :map-トピック も使用できます。例えば:
:help :map-local
はバッファローカルなマッピングに関する項目です。または :help map-bar
は '|' がどのようにマッピングで処理されるかに関する項目です。15) コマンド定義は :h command-トピック で記載されます。カスタムコマンドの '!'
引数については
:help command-bar
で見つける事ができます。16) ウィンドウの制御コマンドは常に CTRL-W で始まります。:h CTRL-W_文字 で該当
のヘルプが見つかります。例えば:
:help CTRL-W_p
で一つ前のウィンドウへの移動のヘルプにアクセスできます。また自分のペースでウィンドウ操作コマンド群を眺めたいならば
:help windows.txt
でアクセスできます。17) 全てのヘルプ (とインストールしたプラグイン) のページを検索するには
:helpgrep を使用してください。使用法については :helpgrep を参照してく
ださい。
項目を検索するには:
:helpgrep トピック
これにより最初にマッチした項目に移動します。次の項目に移動するには: :cnext
全てのマッチした項目は以下のコマンドで開くことできる quickfix ウィンドウで参照可能です:
:copen
好きな項目に移動し、Enter を押すとそのヘルプにジャンプすることができます。18) ユーザーマニュアルは初心者にとってより親しみやすい項目について説明していま
す。(おそらくあなたの想像通り) usr_toc.txt でその目次を見つけることがで
きます:
:help usr_toc.txt
興味を持った項目を探すようにざっと眺めてみてください。"ダイグラフ(Digraph)" と "特殊な文字を入力する" の項目は 24 章です。そのページに移動
するには:
:help usr_24.txt
また特定の章に直接アクセスしたければ、このように章番号でもアクセス可能です:
:help 10.1
上記で usr_10.txt の 10.1 章に移動し、マクロの記録の解説が見れます。19) ハイライトグループは常に hl- から始まります。例えば
:help hl-WarningMsg
には WarningMsg ハイライトグループについて書かれています。20) 構文ハイライトは :syn-トピック という形式になっています。例えば
:help :syn-conceal
には ":syn" コマンドの Conceal 引数について書かれています。21) quickfix コマンドは大体 :c から始まり、location リストコマンドは大体 :l か
ら始まります。
22) Autocommand イベントはそれらの名前で見つける事ができます:
:help BufWinLeave
全てのイベントを見るには: :help autocommand-events
23) コマンドラインスイッチは常に "-" から始まります。Vim のコマンドスイッチ -f
に関するヘルプであれば:
:help -f
24) オプショナルな機能は常に "+" から始まります。conceal 機能の使い方について
調べるのであれば:
:help +conceal
25) ファイルタイプ特有の機能が含まれるドキュメントは通常
ft-<ファイルタイプ>-<機能> に存在します。よって C のシンタックスファイルと
そこで提供されているオプションについては以下に記載されます。
:help ft-c-syntax
オムニ補完に関するセクションは :help ft-php-omni
で、ファイルタイププラグインに関しては :help ft-tex-plugin
で提供されている事があります。26) エラーと警告のコードは help で直接引くことができます。よって
:help E297
はスワップエラーメッセージの説明に移動し、また :help W10
は "Changing a readonly file" の警告について述べます。しかし時々エラーコードの説明が存在しない場合がありますが、どちらかといえば
大抵それを引き起こした Vim のコマンドの方に記載されているでしょう。よって:
:help E128
は :function コマンドに飛びます。==============================================================================
次章: usr_03.txt カーソルの移動
Copyright: see manual-copyright vim:tw=78:ts=8:noet:ft=help:norl: