*usr_02.txt*	For Vim バージョン 7.4.  Last change: 2010 Jul 20

		     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環境では、MS-DOS
プロンプトを開いて、入力してください。
Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:

	+---------------------------------------+
	|#					|
	|~					|
	|~					|
	|~					|
	|~					|
	|"file.txt" [New file]			|
	+---------------------------------------+
	     ("#" はカーソルの位置です)

チルダ (~) の行は、ファイルにその行がないことを示しています。ファイルの末尾よ
り後ろを表示する場合にチルダが表示されます。画面の下の方に、編集中のファイル名
は "file.txt" で、それが新しいファイルであることが表示されています。このメッ
セージの表示は一時的なもので、他のメッセージが表示されると消えてしまいます。


VIM コマンド
------------

gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は: >

	vim file.txt

コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
xterm ウィンドウを使います。Microsoft Windows の MS-DOS プロンプトを使っている
場合も、そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じよう
に表示されますが、gvimにはメニューバーなどの追加機能があります。詳しくは後で述
べます。

==============================================================================
*02.2*	文字の挿入

Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
ん。後から修正できます。プログラマのリメリック(詩の一種)を入力して見ましょう。
次のように入力します: >

	iA very intelligent turtle
	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

移動コマンドを覚える一番の方法は使ってみることです。"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 のヘルプで調べることができます。どんどん調べてくださ
い!
次のコマンドでヘルプの総合案内が表示されます: >

	: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-context| を参照してください。

特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
には次のコマンドを使います: >

	:help i_<Up>

例えば次のようなエラーメッセージが表示された場合:

	E37: 最後の変更が保存されていません (! で変更を破棄) ~

行頭のエラーIDを使えばヘルプを検索できます: >

	:help E37

サマリー:					*help-summary*  >

	:help
<		一般的なヘルプを表示します。下へスクロールすると、全てのヘルプ
		ファイルの一覧を表示します。ここには独自に追加された、Vim標準
		には添付されていないヘルプファイルも含まれます。 >
	:help user-toc.txt
<		ユーザーマニュアルの目次を表示します。 >
	:help :subject
<		Exコマンド "subject" のヘルプ。例えば次のようなもの: >
	:help :help
<		ヘルプの探し方のヘルプ。 >
	:help abc
<		ノーマルモードコマンド "abc" のヘルプ。 >
	:help CTRL-B
<		ノーマルモードコマンドにおけるキー<C-b>のヘルプ。 >
	:help i_abc
	:help i_CTRL-B
<		挿入モードにおける特定のキーのヘルプ。 >
	:help v_abc
	:help v_CTRL-B
<		ビジュアルモードにおける特定のキーのヘルプ。 >
	:help c_abc
	:help c_CTRL-B
<		コマンドラインモードにおける特定のキーのヘルプ。 >
	:help 'subject'
<		オプション 'subject' のヘルプ。 >
	:help subject()
<		関数 "subject" のヘルプ。 >
	:help -subject
<		コマンドラインオプション "-subject" のヘルプ。 >
	:help +subject
<		コンパイル時機能 "+subject" のヘルプ。 >
	:help EventName
<		自動コマンドイベント "EventName" のヘルプ。 >
	:help digraphs.txt
<		ヘルプファイル "digraph.txt" のトップ。
		他のヘルプファイルについても同様。 >
	:help pattern<Tab>
<		"pattern" で始まるヘルプタグを検索。<Tab>を繰り返し押すと他の
		候補を検索する。 >
	:help pattern<Ctrl-D>
<		"pattern" にマッチするヘルプタグを全て表示する。 >
	:helpgrep pattern
<		全ヘルプファイルの全テキストからパターン "pattern" を検索し、
		最初のマッチへジャンプする。他のマッチへジャンプするには以下の
		コマンドを使う: >
	    :cn
<			次のマッチへ >
	    :cprev
	    :cN
<			前のマッチへ >
	    :cfirst
	    :clast
<			最初/最後のマッチへ >
	    :copen
	    :cclose
<			quickfixウィンドウを開く/閉じる。quickfixウィンドウで
			<Enter>を押すと、カーソル下の要素へジャンプする。

==============================================================================

次章: |usr_03.txt|  カーソルの移動

Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
