*usr_22.txt* For
Vim バージョン 7.3. Last change: 2010 Feb 21
VIM USER MANUAL - by Bram Moolenaar
ファイルを探す
ファイルはどこにでもありますが、どうやって目的のファイルを見つければいいので
しょうか。Vim ではさまざまな方法でディレクトリツリーをブラウズできます。ファイ
ルにジャンプするコマンドもあります。開いたことのあるファイルは後から参照できま
す。
|22.1| ファイルブラウザ
|22.2| カレントディレクトリ
|22.3| ファイルを探す
|22.4| バッファリスト
次章:
|usr_23.txt| 特殊なファイルを編集する
前章:
|usr_21.txt| 中断と再開
目次:
|usr_toc.txt|
==============================================================================
*22.1* ファイルブラウザ
ディレクトリを編集するためのプラグインがあります。試してみましょう:
自動コマンドと Vim スクリプトの魔法により、ディレクトリの内容がウィンドウに表
示されます。例えばこんな具合です:
" ============================================================================
" Netrw Directory Listing (netrw v109)
" Sorted by name
" Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.info$,\.swp$,\.o$\.obj$,\.bak$
" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec
" ============================================================================
../
./
check/
Makefile
autocmd.txt
change.txt
eval.txt~
filetype.txt~
help.txt.info
次の項目が表示されます:
1. ブラウジングツールの名前とバージョン番号
2. 表示しているディレクトリ
3. ソート方法 (name、time、sizeなど)
4. 名前のソート方法 (最初はディレクトリで、続いて *.h、*.c、などなど)
5. ヘルプの表示方法 (
<F1>キーを使ってください)。利用可能なコマンド抜粋。
6. ファイル一覧。"../" は親ディレクトリを示す。
構文強調表示が有効な場合は各項目が別々の色で表示され、視認性が上がります。
一覧の中はノーマルモードコマンドで移動できます。ファイル名の上にカーソルを動か
して
<Enter> を押すとファイルが開きます。もう一度 ":edit ." と入力すればエクス
プローラに戻れます。
CTRL-O で戻ることもできます。
ディレクトリ名の上にカーソルを動かして
<Enter> を押すと、ファイルブラウザがそ
のディレクトリに移動し、新たなファイル一覧が表示されます。"../" ディレクトリの
上で
<Enter> を押すと上の階層に移動できます。あるいは、"../" までカーソルを移
動しなくても、"-" を押すだけで上の階層に移動できます。
<F1> を押すと netrw ファイルブラウザのヘルプが表示されます。表示は次のようなも
のです:
(etc)
<F1> キーを押すと netrw プラグインのヘルプに飛びます。これは通常のヘルプページ
です。
|CTRL-]| でタグジャンプして
|CTRL-O| で戻ることができます。
ファイルを選択してファイルを開きます: (カーソルをファイル名の上に移動してから)
<enter> カレントウィンドウでファイルを開く
|netrw-cr|
o ウィンドウを水平分割してファイルを表示する
|netrw-o|
v ウィンドウを垂直分割してファイルを表示する
|netrw-v|
p
|preview-window| を使う
|netrw-p|
P 直前のウィンドウで開く
|netrw-P|
t 新しいタブページで開く
|netrw-t|
ノーマルモードでは次のコマンドを使ってブラウザの表示をコントロールできます:
i 表示スタイルを変更する (thin, long, wide, tree)。
long ではファイルのサイズと日付が表示されます。
s ファイルのソート方法を切り替える。名前、更新時間、サイ
ズでソート可。
r ソート順序を逆にする。
次のようなコマンドもあります:
c 表示しているディレクトリをカレントディレクトリにする。
(
|g:netrw_keepdir| で動作を変更できます)
R カーソルの下のファイル/ディレクトリの名前を変更する。
表示されるプロンプトに新しい名前を入力してください。
D カーソルの下のファイル/ディレクトリを削除する。確認ダ
イアログが表示されます。
mb gb ブックマークを設定/ブックマークに移動
次のような Ex コマンドもあります (他にもあります):
:Explore
[directory] カレントディレクトリ、または指定したディレクト
リをブラウズする。
:NetrwSettings netrw の現在の設定一覧。ヘルプリンク付き。
netrw ブラウザの機能はローカルマシンに限定されません。次のように url を使うこ
ともできます: (末尾の / は重要)
:Explore
ftp://somehost/path/to/dir/
:e scp://somehost/path/to/dir/
詳細は
|netrw-browse| を参照してください。
==============================================================================
*22.2* カレントディレクトリ
シェルと同じように Vim にもカレントディレクトリという概念があります。例えば、
ホームディレクトリにいるときに "VeryLongFileName" ディレクトリにあるファイルを
開きたい場合、そのまま実行することもできますが:
次のようにすれば、入力が簡単です:
":cd" コマンドでカレントディレクトリを変更できます。現在のカレントディレクトリ
を確認するには ":pwd" コマンドを使います:
直前のカレントディレクトリは記録されているので ":cd -" で元の場所に戻れます。
例:
ウィンドウローカルディレクトリ
------------------------------
ウィンドウを分割した直後、二つのウィンドウは同じカレントディレクトリを使ってい
ます。カレントディレクトリはウィンドウ毎に設定できるので、新しいウィンドウだけ
カレントディレクトリを変更して別の場所で作業できます。これを、ローカルディレク
トリといいます。
":lcd" コマンドを使うまでは、すべてのウィンドウが共通のカレントディレクトリを
使っています。一つのウィンドウで ":cd" コマンドを実行すると、他のウィンドウの
カレントディレクトリも変更されます。
":lcd" を使ってカレントディレクトリを変更したウィンドウは、固有のカレントディ
レクトリを持ちます。固有のカレントディレクトリは、他のウィンドウで ":cd" また
は ":lcd" を使っても変更されません。
固有のカレントディレクトリを持っているウィンドウで ":cd" コマンドを使うと、再
び共通のカレントディレクトリを使うようになります。
==============================================================================
*22.3* ファイルを探す
C 言語のファイルを編集していて、次のような行があったとします:
#include "inits.h"
"inits.h" を開いて内容を確認したい場合は、カーソルをファイル名の上に動かして、
次のように入力します:
ファイルが検索され、開かれます。
ファイルがカレントディレクトリにない場合は
'path' オプションが使われます。この
オプションはディレクトリ名のリストです。指定されたディレクトリからファイルが検
索されます。
例えば、"c:/prog/include" にインクルードファイルがある場合は次のコマンドでディ
レクトリを追加できます:
ディレクトリを絶対パスで指定した場合は、どこで作業していても同じディレクトリが
参照されます。開いているファイル以下のサブディレクトリにインクルードファイルが
ある場合は相対パスを指定してください。相対パスの先頭はドットです:
この場合、ファイルが保存されているディレクトリの "proto" ディレクトリからファ
イルが検索されます。つまり、"inits.h" の上で "gf" を使うと、同じディレクトリの
"inits.h" が検索された後に、"proto/inits.h" が検索されます。
"./" を付けなかった場合、つまり "proto" と指定した場合は、カレントディレクトリ
の "proto" ディレクトリが検索されます。ファイルのディレクトリとカレントディレ
クトリは意味が異なるので注意してください。
ディレクトリの指定方法は他にもあります。
'path' オプションのヘルプを参照してく
ださい。
'isfname' オプションには、ファイル名として使える文字、あるいは使えない文字を設
定できます (例えば上の例では " 文字がファイル名に含まれてませんね)。
ファイルの名前がわかっている場合は、その名前がファイル内で使われていなくても、
検索することができます:
'path' オプションを使ってファイルが検索されます。
'path' が使われる以外は
":edit" コマンドと同じです。
検索したファイルを新しいウィンドウで開くには、"gf" ":find" ではなく "
CTRL-W f"
":sfind" を使います。
Vim を起動して
'path' の中からファイルを開くには、次の方法が便利です:
'path' 内の "stdio.h" が検索されます。引数はクオート (") で囲む必要があります
|-+c|。
==============================================================================
*22.4* バッファリスト
Vim では編集中のファイルのことをバッファといいます。バッファはファイルのコピー
です。編集を終えて保存したときに、バッファの内容がファイルに書き込まれます。
バッファにはファイルのテキストの他に、マークやオプション設定などのファイルに関
連した情報も記録されます。
隠れバッファ (HIDDEN BUFFERS)
------------
例えば、one.txt を編集しているときに two.txt を編集したくなったとします。
one.txt は変更されているので ":edit two.txt" は使えません。しかも、あなたはま
だ one.txt を保存したくはありません。次のコマンドで解決できます:
"one.txt" というバッファは画面から消えます。しかしバッファの内容が失われるわけ
ではありません。未保存のテキストはまだ残っています。このようなバッファを隠れ
バッファといいます。
":hide" コマンドの引数はコマンドです。指定されたコマンドは、
'hidden' オプショ
ンがオンに設定されているかのように動作します。もちろん、自分で
'hidden' オプ
ションを設定しても構いません。バッファが破棄されたとき、
'hidden' がオンなら、
そのバッファは隠れバッファになります。
隠れバッファを使ったときは、すべてのバッファが保存されたのを確認してから Vim
を終了してください。
休眠バッファ (INACTIVE BUFFERS)
------------
バッファを閉じてもいくつかの情報は失われずに残ります。バッファリストに入ってい
るバッファの内、画面に表示されず、隠れバッファでもないバッファのことを休眠バッ
ファといいます:
アクティブバッファ ウィンドウに表示されている。テキストはメモリの中。
隠れバッファ 表示されていない。テキストはメモリの中。
休眠バッファ 表示されていない。テキストは保持されていない。
休眠バッファにはファイル名やマークなどの情報が保存されています。ファイル名が保
存されているので、編集したことのあるファイルを確認し、それを再び開くことができ
ます。
バッファリストの表示
--------------------
次のコマンドでバッファリストを表示できます:
次のコマンドも同じです。コマンドの名前と機能が連想しずらいかもしれませんが、入
力は簡単です:
コマンドの出力例:
1 #h "help.txt" line 62
2 %a+ "usr_21.txt" line 1
3 "usr_toc.txt" line 1
行頭の数字はバッファ番号です。バッファを開くときに名前の代わりにバッファ番号を
指定することもできます。下記参照。
バッファ番号に続いてフラグ、ファイル名、最後にカーソルが位置していた行番号、が
表示されます。
フラグ部分には以下の文字が (左から右へ) 表示されます。
u 非列挙バッファ (
|unlisted-buffer|)。
% カレントバッファ。
# オルタネートバッファ。
a テキストを持っている。表示されている。
h テキストを持っている。隠れバッファ。
= 読み込み専用。
- 変更不可 (
'modifiable' オプションがオフ)。
+ 変更あり。
バッファを開く
--------------
バッファ番号を指定してバッファを開くことができます。ファイル名を入力する必要は
ありません:
しかし、バッファ番号を知るためにはバッファリストを表示しなければなりません。名
前の一部分だけを指定して開くこともできます:
指定された名前に近いバッファが検索され、名前が一致したバッファが一つだけなら、
そのバッファが使われます。この例なら "help.txt" など。
バッファを新しいウィンドウで開くには、次のコマンドを使います:
もちろん名前も指定できます。
バッファリストを使う
--------------------
次のコマンドでバッファリストの中を移動できます:
:bnext 次のバッファを開く
:bprevious 前のバッファを開く
:bfirst 最初のバッファを開く
:blast 最後のバッファを開く
次のコマンドでバッファリストからバッファを削除できます:
もちろん名前も指定できます。
アクティブバッファ (ウィンドウに表示されているバッファ) を削除すると、表示して
いたウィンドウも閉じます。カレントバッファを削除するば、カレントウィンドウが閉
じます。ウィンドウが一つしかなかった場合は、他のバッファに切り替わります。なに
もないを開くことはできません!
Note:
":bdelete" でバッファを削除してもバッファの情報は失われません。バッファ
が "unlisted" 状態になり、":buffers" コマンドで表示されなくなるだけで
す。":buffers!" コマンドを使えば unlisted バッファも表示されます (そ
う、Vim は不可能を可能にするのです)。バッファの情報を完全に消去するに
は ":bwipe" を使ってください。
'buflisted' オプション参照。
==============================================================================
次章:
|usr_23.txt| 特殊なファイルを編集する
Copyright: see
|manual-copyright| vim:tw=78:ts=8:ft=help:norl: