*usr_22.txt*	For Vim バージョン 9.2.  Last change: 2026 Feb 14


		     VIM ユーザーマニュアル	by Bram Moolenaar


				ファイルを探す


ファイルはどこにでもありますが、どうやって目的のファイルを見つければいいので
しょうか。Vim ではさまざまな方法でディレクトリツリーをブラウズできます。ファイ
ルにジャンプするコマンドもあります。開いたことのあるファイルは後から参照できま
す。

|22.1|	ファイルブラウザー
|22.2|	カレントディレクトリ
|22.3|	ファイルを探す
|22.4|	バッファリスト

次章: |usr_23.txt|  特殊なファイルを編集する
前章: |usr_21.txt|  中断と再開
目次: |usr_toc.txt|

==============================================================================
*22.1*	ファイルブラウザー

ディレクトリを編集するためのプラグインがあります。試してみましょう: >

	:edit .

自動コマンドと Vim script の魔法により、ディレクトリの内容がウィンドウに表示さ
れます。例えばこんな具合です (78 文字以内に収まるように少し整理されています): >

  " ==========================================================================
  " Netrw Directory Listing                                       (netrw v184)
  "   /path/to/vim/runtime/doc
  "   Sorted by      name
  "   Sort sequence: [\/]$,*,\(\.bak\|\~\|\.o\|\.h\|\.info\|\.swp\)[*@]\=$
  "   Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special
  " ==========================================================================
  ../
  ./
  check/
  Makefile
  autocmd.txt
  change.txt
  eval.txt
  filetype.txt
  help.txt.info

次の項目が表示されます:

1. ブラウジングツールの名前とバージョン番号
2. 表示しているディレクトリ
3. ソート方法 (name、time、sizeなど)
4. 名前のソート方法 (最初はディレクトリで、続いて拡張子など)
5. ヘルプの表示方法 (<F1> キー)。使用可能なコマンドの要約
6. ファイル一覧。"../" を含む (親ディレクトリがリストされる)

構文強調表示が有効な場合は各項目が別々の色で表示され、視認性が上がります。

一覧の中はノーマルモードコマンドで移動できます。ファイル名の上にカーソルを動か
して <Enter> を押すとファイルが開きます。もう一度 ":edit ." と入力すればエクス
プローラーに戻れます。CTRL-O で戻ることもできます。

ディレクトリ名の上にカーソルを動かして <Enter> を押すと、ファイルブラウザーが
そのディレクトリに移動し、新たなファイル一覧が表示されます。"../" ディレクトリ
の上で <Enter> を押すと上の階層に移動できます。あるいは、"../" までカーソルを
移動しなくても、"-" を押すだけで上の階層に移動できます。

<F1> を押すと netrw ファイルブラウザーのヘルプが表示される。表示は次のようなも
のである: >
>
 QUICK HELP						netrw-quickhelp
                       (Use ctrl-] to select a topic)
	Intro to Browsing...............................netrw-intro-browse
	  Quick Reference: Maps.........................netrw-quickmap
	  Quick Reference: Commands.....................netrw-browse-cmds
<
<F1> キーを押すと netrw プラグインのヘルプに飛ぶ。これは通常のヘルプページであ
る。|CTRL-]| でタグジャンプして |CTRL-O| で戻ることができる。したがって、
|netrw-quickmap| で CTRL-] を押すと、次の場所にジャンプする:
>
				netrw-quickmap  netrw-quickmaps
 QUICK REFERENCE: MAPS				netrw-browse-maps

	  ---			-----------------			----
	  Map			Quick Explanation			Link
	  ---			-----------------			----
	 <F1>	Causes Netrw to issue help
	 <cr>	Netrw will enter the directory or read the file      netrw-cr
	 <del>	Netrw will attempt to remove the file/directory      netrw-del
<	 (etc.)

表示および編集するファイルを選択するには (カーソルをファイル名の上に置く):
>
	   o	Enter the file/directory under the cursor in a new   netrw-o
		browser window.  A horizontal split is used.
	   O	Obtain a file specified by cursor                    netrw-O
	   p	Preview the file                                     netrw-p
	   P	Browse in the previously used window                 netrw-P
	   v	Enter the file/directory under the cursor in a new   netrw-v
		browser window.  A vertical split is used.
<
ブラウザーの表示を制御するには、以下のノーマルモードコマンドを使用できる:
>
	   i	Cycle between thin, long, wide, and tree listings    netrw-i
	   r	Reverse sorting order                                netrw-r
	   s	Select sorting style: by name, time, or file size    netrw-s
<
追加のノーマルモードのコマンドの例として:
>
	   cd	Make browsing directory the current directory        netrw-cd
	   D	Attempt to remove the file(s)/directory(ies)         netrw-D
	   gb	Go to previous bookmarked directory                  netrw-gb
	   mb	Bookmark current directory                           netrw-mb
	   R	Rename the designated file(s)/directory(ies)         netrw-R
<
コマンドモードを使用することもできる。これも、単なる例である:
>
     :Explore[!]  [dir] Explore directory of current file......netrw-explore
     :Hexplore[!] [dir] Horizontal Split & Explore.............netrw-explore
<
netrw ブラウザーはローカルマシンだけに限定されない。以下のような URL も使用で
きる: >

	:Explore ftp://somehost/path/to/dir/
	:e scp://somehost/path/to/dir/
<
	Note: 末尾の "/" は重要。

詳細は |netrw-browse| を参照。

==============================================================================
*22.2*	カレントディレクトリ

シェルと同じように Vim にもカレントディレクトリという概念があります。例えば、
ホームディレクトリにいるときに "VeryLongFileName" ディレクトリにあるファイルを
開きたい場合、そのまま実行することもできますが: >

	:edit VeryLongFileName/file1.txt
	:edit VeryLongFileName/file2.txt
	:edit VeryLongFileName/file3.txt

次のようにすれば、入力が簡単です: >

	:cd VeryLongFileName
	:edit file1.txt
	:edit file2.txt
	:edit file3.txt

":cd" コマンドでカレントディレクトリを変更できます。現在のカレントディレクトリ
を確認するには ":pwd" コマンドを使います: >

	:pwd
	/home/Bram/VeryLongFileName

直前のカレントディレクトリは記録されているので ":cd -" で元の場所に戻れます。
例: >

	:pwd
	/home/Bram/VeryLongFileName
	:cd /etc
	:pwd
	/etc
	:cd -
	:pwd
	/home/Bram/VeryLongFileName
	:cd -
	:pwd
	/etc


☆ウィンドウローカルディレクトリ

ウィンドウを分割した直後、二つのウィンドウは同じカレントディレクトリを使ってい
ます。カレントディレクトリはウィンドウ毎に設定できるので、新しいウィンドウだけ
カレントディレクトリを変更して別の場所で作業できます。これを、ローカルディレク
トリといいます。 >

	:pwd
	/home/Bram/VeryLongFileName
	:split
	:lcd /etc
	:pwd
	/etc
	CTRL-W w
	:pwd
	/home/Bram/VeryLongFileName

`:lcd` コマンドを使うまでは、すべてのウィンドウが共通のカレントディレクトリを
使っています。一つのウィンドウで `:cd` コマンドを実行すると、他のウィンドウの
カレントディレクトリも変更されます。
`:lcd` を使ってカレントディレクトリを変更したウィンドウは、固有のカレントディ
レクトリを持ちます。固有のカレントディレクトリは、他のウィンドウで `:cd` また
は `:lcd` を使っても変更されません。
固有のカレントディレクトリを持っているウィンドウで `:cd` コマンドを使うと、再
び共通のカレントディレクトリを使うようになります。


☆タブローカルディレクトリ

新しいタブページを開くと、新しいタブページが開かれた以前のタブページのウィンド
ウのディレクトリが使用されます。カレントタブページのディレクトリは `:tcd` コマ
ンドで変更できます。タブページ内のすべてのウィンドウは、ウィンドウローカルディ
レクトリを持つウィンドウを除いて、このディレクトリを共有します。このタブページ
で新しいウィンドウを開くと、このディレクトリが現在の作業ディレクトリとして使用
されます。タブページで `:cd` コマンドを使ってもタブローカルディレクトリを持つ
タブページの作業ディレクトリは変わりません。タブページで `:cd` コマンドを使用
してグローバル作業ディレクトリを変更すると、カレントタブページ作業ディレクトリ
も変更されます。


==============================================================================
*22.3*	ファイルを探す

C 言語のファイルを編集していて、次のような行があったとします:

	#include "inits.h" ~

"inits.h" を開いて内容を確認したい場合は、カーソルをファイル名の上に動かして、
次のように入力します: >

	gf

ファイルが検索され、開かれます。
ファイルがカレントディレクトリにない場合は 'path' オプションが使われます。この
オプションはディレクトリ名のリストです。指定されたディレクトリからファイルが検
索されます。
例えば、"c:/prog/include" にインクルードファイルがある場合は次のコマンドでディ
レクトリを追加できます: >

	:set path+=c:/prog/include

ディレクトリを絶対パスで指定した場合は、どこで作業していても同じディレクトリが
参照されます。開いているファイル以下のサブディレクトリにインクルードファイルが
ある場合は相対パスを指定してください。相対パスの先頭はドットです: >

	:set path+=./proto

この場合、ファイルが保存されているディレクトリの "proto" ディレクトリからファ
イルが検索されます。つまり、"inits.h" の上で "gf" を使うと、同じディレクトリの
"inits.h" が検索された後に、"proto/inits.h" が検索されます。
"./" を付けなかった場合、つまり "proto" と指定した場合は、カレントディレクトリ
の "proto" ディレクトリが検索されます。ファイルのディレクトリとカレントディレ
クトリは意味が異なるので注意してください。

ディレクトリの指定方法は他にもあります。'path' オプションのヘルプを参照してく
ださい。
'isfname' オプションには、ファイル名として使える文字、あるいは使えない文字を設
定できます (例えば上の例では " 文字がファイル名に含まれてませんね)。

ファイルの名前がわかっている場合は、その名前がファイル内で使われていなくても、
検索することができます: >

	:find inits.h

'path' オプションを使ってファイルが検索されます。'path' が使われる以外は
":edit" コマンドと同じです。

検索したファイルを新しいウィンドウで開くには、"gf" ":find" ではなく "CTRL-W f"
":sfind" を使います。


Vim を起動して 'path' の中からファイルを開くには、次の方法が便利です: >

	vim "+find stdio.h"

'path' 内の "stdio.h" が検索されます。引数はクォート (") で囲む必要があります
|-+c|。

==============================================================================
*22.4*	バッファリスト

Vim では編集中のファイルのことをバッファといいます。バッファはファイルのコピー
です。編集を終えて保存したときに、バッファの内容がファイルに書き込まれます。
バッファにはファイルのテキストの他に、マークやオプション設定などのファイルに関
連した情報も記録されます。


☆隠れバッファ

例えば、one.txt を編集しているときに two.txt を編集したくなったとします。
one.txt は変更されているので ":edit two.txt" は使えません。しかも、あなたはま
だ one.txt を保存したくはありません。次のコマンドで解決できます: >

	:hide edit two.txt

"one.txt" というバッファは画面から消えます。しかしバッファの内容が失われるわけ
ではありません。未保存のテキストはまだ残っています。このようなバッファを隠れ
バッファといいます。
":hide" コマンドの引数はコマンドです。指定されたコマンドは、'hidden' オプショ
ンがオンに設定されているかのように動作します。もちろん、自分で 'hidden' オプ
ションを設定しても構いません。バッファが破棄されたとき、'hidden' がオンなら、
そのバッファは隠れバッファになります。
隠れバッファを使ったときは、すべてのバッファが保存されたのを確認してから Vim
を終了してください。


☆非アクティブバッファ

バッファを閉じてもいくつかの情報は失われずに残ります。バッファリストに入ってい
るバッファの内、画面に表示されず、隠れバッファでもないバッファのことを休眠バッ
ファといいます:

	アクティブバッファ	ウィンドウに表示されている。テキストはメモリの
				中。
	隠れバッファ		表示されていない。テキストはメモリの中。
	休眠バッファ		表示されていない。テキストは保持されていない。

休眠バッファにはファイル名やマークなどの情報が保存されています。ファイル名が保
存されているので、編集したことのあるファイルを確認し、それを再び開くことができ
ます。


☆バッファリストの表示

次のコマンドでバッファリストを表示できます: >

	:buffers

次のコマンドも同じです。コマンドの名前と機能が連想しずらいかもしれませんが、入
力は簡単です: >

	:ls

コマンドの出力例:

  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' オプションがオフ)。
	    +	変更あり。


☆バッファを開く

バッファ番号を指定してバッファを開くことができます。ファイル名を入力する必要は
ありません: >

	:buffer 2

しかし、バッファ番号を知るためにはバッファリストを表示しなければなりません。名
前の一部分だけを指定して開くこともできます: >

	:buffer help

指定された名前に近いバッファが検索され、名前が一致したバッファが一つだけなら、
そのバッファが使われます。この例なら "help.txt" など。
バッファを新しいウィンドウで開くには、次のコマンドを使います: >

	:sbuffer 3

もちろん名前も指定できます。


☆バッファリストを使う

次のコマンドでバッファリストの中を移動できます:

	:bnext		次のバッファを開く
	:bprevious	前のバッファを開く
	:bfirst		最初のバッファを開く
	:blast		最後のバッファを開く

次のコマンドでバッファリストからバッファを削除できます: >

	:bdelete 3

もちろん名前も指定できます。
アクティブバッファ (ウィンドウに表示されているバッファ) を削除すると、表示して
いたウィンドウも閉じます。カレントバッファを削除するば、カレントウィンドウが閉
じます。ウィンドウが一つしかなかった場合は、他のバッファに切り替わります。何も
ないを開くことはできません!

	Note: ":bdelete" でバッファを削除してもバッファの情報は失われません。
	バッファが "unlisted" 状態になり、":buffers" コマンドで表示されなくな
	るだけです。":buffers!" コマンドを使えば unlisted バッファも表示されま
	す(そう、Vim は不可能を可能にするのです)。バッファの情報を完全に消去す
	るには ":bwipe" を使ってください。'buflisted' オプション参照。

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

次章: |usr_23.txt|  特殊なファイルを編集する

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