Next: usr_03.txt, Previous: usr_01.txt, Up: 目次 [Index]
*usr_02.txt* For Vim バージョン 8.1. Last change: 2017 Mar 14 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| | ヘルプの引き方 |
Vim を起動するには次のコマンドを入力します。
gvim file.txt
UNIX ならコマンドプロンプトから實行できます。Microsoft Windows 環境では、MS-DOS プロンプトを開いて、入力してください。Vim が起動して "file.txt" といふ名前のファイルの編輯が開始されます。これは新しいファイルなので、ウィンドウは空になつてゐます。次のやうな畫面が表示されます:
+---------------------------------------+ |# | |~ | |~ | |~ | |~ | |"file.txt" [New file] | +---------------------------------------+ ("#" はカーソルの位置です)
チルダ (~) の行は、ファイルにその行がないことを示してゐます。ファイルの末尾より後ろを表示する場合にチルダが表示されます。畫面の下の方に、編輯中のファイル名は "file.txt" で、それが新しいファイルであることが表示されてゐます。このメッセージの表示は一時的なもので、他のメッセージが表示されると消えてしまひます。
gvim は編輯用のウィンドウを新しく作ります。次のコマンドを使つた場合は:
vim file.txt
コマンドウィンドウの中で編輯できます。つまり、xterm の中で實行すれば、Vim は xterm ウィンドウを使ひます。Microsoft Windows の MS-DOS プロンプトを使つてゐる場合も、そのウィンドウの中で編輯できます。gvim でも vim でもテキストは同じやうに表示されますが、gvim にはメニューバーなどの追加機能があります。詳しくは後で述べます。
Vim はモード型エディタです。モードによつて擧動が變はります。一番よく使ふモードは「ノーマルモード」と「插入モード」です。ノーマルモードでは、入力した文字はコマンドとして扱はれます。插入モードでは、入力した文字はそのまま插入されます。Vim を起動した直後はノーマルモードになつてゐます。
插入モードに入るには、"i
" コマンドを入力します (譯注: i は Insert の意)。これで、文章を入力できるやうになります。入力した文章はファイルに插入されます。入力を閒違へても心配する必要はありません。後から修正できます。プログラマのリメリック (詩の一種) を入力して見ませう。次のやうに入力します:
iA very intelligent turtle Found programming UNIX a hurdle
‘turtle’ を入力した後で <Enter>
キーを押して改行します。最後に <Esc>
キーを押して插入モードを終了し、ノーマルモードに戾ります。このとき、Vim ウィンドウには次のやうな 2 行が表示されてゐます。
+---------------------------------------+ |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>
を 2 回押さなければならないときもあります。ノーマルモードで <Esc>
を押すとビープ音が鳴るので、その場合は既にノーマルモードにゐるといふことです。
ノーマルモードでは、次のキーを使つて移動できます:
h 左 j 下 k 上 l 右
最初はでたらめなコマンドに思へるかもしれません。l
キーで 右 (right) に移動するなんてをかしいですね。しかしこれには合理的な理由があります。エディタで最もよく使ふのはカーソル移動であり、これらのキーは右手のホームポジションにあるのです。つまり、(特に 10 本の指を使つてタイプする人が) 最も速く打てる場所にコマンドが配置されてゐます。
Note:
カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離さなければならないので、編輯速度は落ちてしまひます。一時閒に數百回も移動することを考へると、結構な時閒が消費されることになります。また、矢印キーが無いキーボードや、矢印キーの配置場所がをかしいキーボードもあります。h
j
k
l
の使ひ方を知つてゐれば、そのやうな場合でも安心です。
コマンドを覺えるには、h
は左にあつて、l
は右にあつて、j
は下を指してゐる、とでも覺えてください。圖で示します:
k h l j
移動コマンドを覺える一番の方法は使つてみることです。"i
" コマンドを使つて適當なテキストを入力し、h
j
k
l
キーを使つて動き回り、いろんな場所に文字を插入してみてください。<Esc>
キーを押してノーマルモードに戾るのを忘れずに。|vimtutor| を使つて練習してみるのもいいでせう。
日本のユーザーへ、Hiroshi Iwatani さんは次のやうな提案をしてゐます。
Komsomolsk ^ | Huan Ho <--- ---> Los Angeles (Yellow river) | v Java (ジャワ島。プログラミング言語のあれではない)
文字を削除したい場合は、文字の上にカーソルを移動して x
を押します。(これはタイプライタを使つてゐた古い時代に、消したい文字の上に ‘xxxxxx’ と印字してゐたのと同じ感覺です)。例へば、例文の 1 行目にカーソルを移動して、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 では複數の行を 1 行にまとめることができます。これは行と行の閒にある改行文字を削除するのと同じです。それには "J
" コマンドを使ひます。
例へば、次の 2 行があるとします:
A young intelligent turtle
最初の行にカーソルを動かし "J
" を押すと次のやうになります:
A young intelligent turtle
閒違つてテキストを削除してしまつた場合、同じ內容を入力し直すこともできますが、もつと簡單な方法があります。"u
" コマンドで直前の編輯結果を undo (取り消し)できます。例へば、"dd
" コマンドで削除した行を、"u
" コマンドで元に戾せます。
もう 1 つ例を示します。カーソルを 1 行目の ‘A’ に移動して:
A young intelligent turtle
xxxxxxx とタイプし、‘A young’ を削除します。結果は次のやうになります:
intelligent turtle
"u
" で直前の削除が取り消されます。最後に削除されたのは ‘g’ なので、その文字が復活します。
g intelligent turtle
もう一度 "u
" を實行すると、さらに 1 つ前に削除された文字が復活します:
ng intelligent turtle
次の "u
" コマンドでは ‘u’ が復活し、次々と元に戾すことができます:
ung intelligent turtle oung intelligent turtle young intelligent turtle young intelligent turtle A young intelligent turtle
Note:
u
を 2 回押したときに、最初の狀態に戾つてしまつた場合は、Vi 互換モードが設定されてゐます。|not-compatible| を參照して正しく設定してください。このマニュアルでは「Vim 方式」の使ひ方を前提にしてゐます。古き良き時代の Vi 方式を使ひたい場合は、細かい部分でマニュアルの說明と違ふことがあるので注意してください。
undo し過ぎてしまつた場合は、CTRL-R (redo) を押すことで、直前のコマンドを取り消せます。つまり、undo を undo します。實際に 2 回 CTRL-R を押してみませう。‘A ’ の 2 文字が消えます。
young intelligent turtle
undo
コマンドには特別なバージョン、"U
" (行 undo
) コマンドがあります。行 "undo
" コマンドは直前に編輯した行のすべての變更を取り消します。このコマンドは、2 回實行すると、直前の "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| にあります。
Vim には文章を編輯するための數多くのコマンドがあります。下記、または |Q_in| を參照してください。ここでは頻繁に使ふものだけを述べます。
"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’ の後ろに 3 つの ‘!’ 記號が追加されます:
and that's not saying much for the turtle!!!
"o
" コマンドを使ふと、カーソルの下に新しい空の行が作成され、插入モードに入ります。そのため、そのまま新しい行の文章を入力できます。
以下のやうな 2 行があり、カーソルが 1 行目のどこかにあるとします:
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>" で 3 つの ‘!’ 記號を追加しましたが、これは "3a!<Esc>
" と入力することもできます。最初の 3 はコマンドを 3 回實行することを指定してゐます。同樣に、3 文字削除したい場合は "3x
" を使ひます。カウントは必ず對象となるコマンドの前に指定してください。
Vim を終了するには "ZZ
" コマンドを使ひます。ファイルが保存され、Vim が終了します。
Note:
他の多くのエディタと違ひ、Vim は自動的にバックアップを作成しません。"ZZ" と打つとファイルが上書きされるため、元に戾す方法はありません。バックアップファイルを作成するやうに設定することもできます。|07.4| を參照してください。
ファイルを編輯した後で、元の方が良かつたと氣づくことがあると思ひます。心配はいりません。「全部投げ捨てて終了する」コマンドがあります。
:q!
コマンドを確定するには <Enter>
キーが必要ですよ。お忘れなく。
詳細を說明すると、このコマンドは 3 つの部分から成つてゐます。"‘:’" はコマンドラインモードの開始、"q
" コマンドはエディタを終了するコマンド、"‘!’" はオーバーライド修飾詞です。
變更を破毀するにはオーバーライド修飾詞が必要です。單に ":q
" を實行した場合、エラーメッセージが表示され、コマンドは實行されません:
E37: 最後の變更が保存されてゐません (! で變更を破毀)
オーバーライドを指定することで、「バカげたことをしてるやうに見えるのはわかつてる。でもボクは大人だし、本當にさうしたいんだ」と Vim に告げてゐるわけです。
Vim を終了したくない場合は、":e!
" コマンドでオリジナルのファイルを再讀み込みできます。
知りたいことは何でも 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 some<Tab>
help の使ひ方に關するより詳しい情報については:
:help helphelp
:help pattern.txt
を見るとイントロダクション部分にユーザーガイドのトピック |03.9| や |usr_27.txt| があるのが分かります。
:help 'list'
もし特定のオプションを探してゐないのであれば、以下でも可能です:
:help options.txt
正規表現を使つて記載された全てのオプションを檢索し ’textwidth’ 等のヘルプのページを見つけ出します。特定のオプションには特有のネームスペースが付きます。例:
:help cpo-<letter>
は設定 ’cpoptions’ のフラグに對應します。"<letter>" は個別のフラグに置き換へて下さい。例:
:help cpo-;
さらに ’guioption’ のフラグであれば:
:help go-<letter>
gt
" コマンドのヘルプへ行くには:
:help gt
:help i_CTRL-W
:help v_o
:help c_%
:s
" コマンドのヘルプに移動するには:
:help :s
cont
" のヘルプに移動するには:
:help >cont
:help i_CTRL-X
は插入モードでそれぞれ異なるものを補完する Ctrl-X 系コマンドに移動します。
Note:
いくつかのキーは常に同樣に記載されてゐます。
例へばコントロールキーは常に CTRL
と記載されます。ノーマルモードのコマンドはプリフィックスを持たず、項目は ":h CTRL-<char>
" により參照可能です。例へば
:help CTRL-W
に對して
:help c_CTRL-R
はコマンドラインに入つたときの CTRL-R
が行ふことを說明してゐます。また
:help v_Ctrl-A
はビジュアルモードでの數値のインクリメントを說明し
:help g_CTRL-A
は "g<C-A>
" コマンドについて述べてゐます (これには g
を押して <Ctrl-A> を押す必要があります)。
\+
" 量指定子のヘルプに移動するには:
:help /\+
もし正規表現の全てに關して知りたいのなら、以下を參照してください:
:help pattern.txt
:
" について調べるのであれば:
:help quote:
:help eval.txt
Vim script のいくつかの側面については :h expr-X (‘X’ は 1 文字) に記載されてゐます。例へば
:help expr-!
は Vim script の ‘!’ (否定) 演算子の說明の項目に移動します。さらに重要なのが
:help function-list
にはすべての函數の簡潔な說明が記載されてゐます。ヘルプ項目の Vim script の函數はすべて ‘()’ を含みます。よつて:
:help append()
は現在のバッファのテキストを append する方法ではなく append 函數についての說明に移動します。{譯注: |:append| ではなく |append()| に移動するといふ意味だと思はれます。}
:help mapmode-i
|:imap| コマンドについて調べるなら上記を使用してください。またマッピング固有のある項目を調べるには ":map-topic
" {譯注: "topic" は項目名} も使用できます。例へば:
:help :map-local
はバッファローカルなマッピングに關する項目です。または
:help map-bar
は ‘|’ がどのやうにマッピングで處理されるかに關する項目です。
:h command-topic
" で記載されます。カスタムコマンドの "!
" 引數については
:help command-bar
で見つける事ができます。
CTRL-W
で始まります。":h CTRL-W_文字
" で該當のヘルプが見つかります。例へば:
:help CTRL-W_p
で 1 つ前のウィンドウへの移動のヘルプにアクセスできます。また自分のペースでウィンドウ操作コマンド群を眺めたいならば
:help windows.txt
でアクセスできます。
:helpgrep topic
これにより最初にマッチした項目に移動します。次の項目に移動するには:
:cnext
全てのマッチした項目は以下のコマンドで開くことできる QuickFix ウィンドウで參照可能です:
:copen
好きな項目に移動し、Enter を押すとそのヘルプにジャンプすることができます。
:help usr_toc.txt
興味を持つた項目を探すやうにざつと眺めてみてください。"ダイグラフ (Digraph)" と "特殊な文字を入力する" の項目は 24 章です。そのページに移動するには:
:help usr_24.txt
また特定の章に直接アクセスしたければ、このやうに章番號でもアクセス可能です:
:help 10.1
上記で |usr_10.txt| の 10.1 章に移動し、マクロの記錄の解說が見れます。
:help hl-WarningMsg
には WarningMsg ハイライトグループについて書かれてゐます。
:syn-トピック
" といふ形式になつてゐます。例へば
:help :syn-conceal
には ":syn
" コマンドの ‘Conceal’ 引數について書かれてゐます。
:help BufWinLeave
全てのイベントを見るには:
:help autocommand-events
:help -f
:help +conceal
:help ft-c-syntax
オムニ補完に關するセクションは
:help ft-php-omni
で、ファイルタイププラグインに關しては
:help ft-tex-plugin
で提供されてゐる事があります。
:help E297
はスワップエラーメッセージの說明に移動し、また
:help W10
は ‘Changing a readonly file’ の警告について述べます。しかし時々エラーコードの說明が存在しない場合がありますが、どちらかといへば大抵それを引き起こした Vim のコマンドの方に記載されてゐるでせう。よつて:
:help E128
は |:function| コマンドに飛びます。
Next: usr_03.txt, Previous: usr_01.txt, Up: 目次 [Index]