Usr_22

Nvim の :help ページは、生成されたもので、ソースtree-sitter-vimdocパーサーを使って変換しています。


VIM ユーザーマニュアル - Bram Moolenaar 著
編集するファイルを見つける
ファイルはどこにでもあります。では、どうやって見つけるのでしょうか?Vim はディレクトリツリーをブラウズするための様々な方法を提供しています。別のファイルで言及されているファイルにジャンプするコマンドもあります。そして、Vim は以前に編集したファイルを記憶しています。
22.1 ファイルブラウザ 22.2 カレントディレクトリ 22.3 ファイルを検索する 22.4 バッファリスト
次の章: usr_23.txt 他のファイルを編集する 前の章: usr_21.txt 一時的に離れて戻ってくる 目次: usr_toc.txt

ファイルブラウザ

Vimには、ディレクトリを編集可能にするプラグインがあります。これを試してみてください。
:edit .
自動コマンドと Vim スクリプトの魔法によって、ウィンドウはディレクトリの内容で満たされます。それはこのようになります。
" ============================================================================
" Netrw ディレクトリリスト (netrw v109)
" 名前でソート
" ソート順序: [\/]$,\.h$,\.c$,\.cpp$,,\.info$,\.swp$,\.o$\.obj$,\.bak$
" クイックヘルプ: <F1>:help -:上へ移動 D:削除 R:名前変更 s:ソート x:実行
" ============================================================================
../
./
check/
Makefile
autocmd.txt
change.txt
eval.txt~
filetype.txt~
help.txt.info
これらの項目を見ることができます。
1. ブラウジングツールの名前とそのバージョン番号 2. ブラウズするディレクトリの名前 3. ソートの方法 (名前、時間、またはサイズでソート) 4. 名前がどのようにソートされるか (ディレクトリが最初、次に *.h ファイル、*.c ファイルなど) 5. ヘルプの取得方法 (<F1> キーを使用) と、利用可能なコマンドの簡単なリスト 6. 親ディレクトリをリスト表示できる "../" を含むファイルのリスト。
構文強調表示が有効になっている場合、異なる部分が強調表示され、見つけやすくなります。
テキスト内を移動するには、ノーマルモードの Vim コマンドを使用できます。たとえば、カーソルをファイルの上に移動して <Enter> を押すと、そのファイルを編集することになります。ブラウザに戻るには、再度 ":edit ." を使用するか、":Explore" を使用します。CTRL-O も機能します。
カーソルがディレクトリ名の上にあるときに <Enter> を使用してみてください。結果として、ファイルブラウザはそのディレクトリに移動し、そこにある項目を表示します。最初のディレクトリ "../" で <Enter> を押すと、1つ上のレベルに移動します。 "-" を押すと、最初に "../" 項目に移動する必要なく、同じことができます。
netrw ファイルブラウザでできることについてヘルプを得るには <F1> を押すことができます。これが表示されます。
9. Directory Browsing         netrw-browse   netrw-dir   netrw-list   netrw-help
MAPS                                                                 netrw-maps
     <F1>.............Help.......................................|netrw-help|
     <cr>.............Browsing...................................|netrw-cr|
     <del>............Deleting Files or Directories..............|netrw-delete|
     -................Going Up...................................|netrw--|
     a................Hiding Files or Directories................|netrw-a|
     mb...............Bookmarking a Directory....................|netrw-mb|
     gb...............Changing to a Bookmarked Directory.........|netrw-gb|
     cd...............Make Browsing Directory The Current Dir....|netrw-c|
     d................Make A New Directory.......................|netrw-d|
     D................Deleting Files or Directories..............|netrw-D|
     <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
     i................Change Listing Style.......................|netrw-i|
     <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
     o................Browsing with a Horizontal Split...........|netrw-o|
     p................Use Preview Window.........................|netrw-p|
     P................Edit in Previous Window....................|netrw-p|
     q................Listing Bookmarks and History..............|netrw-qb|
     r................Reversing Sorting Order....................|netrw-r|
(など)
したがって、<F1> キーを押すと、netrw ディレクトリブラウジングのコンテンツヘルプページが表示されます。通常のヘルプページです。タグ付きのヘルプ項目にジャンプするには通常の CTRL-] を使用し、戻るには CTRL-O を使用します。
表示と編集のためにファイルを選択するには: (カーソルがファイル名の上にある場合)
<enter> 現在のウィンドウでファイルを開く。netrw-cr o 水平にウィンドウを分割してファイルを表示する netrw-o v 垂直にウィンドウを分割してファイルを表示する netrw-v p プレビューウィンドウ を使用する netrw-p P 前のウィンドウで編集する netrw-P t 新しいタブでファイルを開く netrw-t
ブラウザの表示を制御するために、次のノーマルモードコマンドを使用できます。
i リストスタイル (thin, long, wide, tree) を制御します。long リストには、サイズと日付の情報が含まれます。s s を繰り返し押すと、ファイルのソート方法が変更されます。名前、更新日時、またはサイズでソートできます。r ソート順を反転します。
追加のノーマルモードコマンドの例として
cd Vim の現在のディレクトリの概念を、ブラウザのディレクトリと同じに変更します。(これを制御するには g:netrw_keepdir も参照してください) R カーソルの下にあるファイルまたはディレクトリの名前を変更します。新しい名前のプロンプトが表示されます。D カーソルの下にあるファイルまたはディレクトリを削除します。確認のリクエストが表示されます。mb gb ブックマークの作成/ブックマークへの移動
コマンドモードも使用できます。繰り返しますが、ほんの一例です。
:Explore [ディレクトリ] 指定された/現在のディレクトリをブラウズする :NetrwSettings ヘルプリンク付きの現在の netrw 設定の包括的なリスト。
netrw ブラウザは、ローカルマシンに限定されません。次のような URL を使用できます。(末尾の / が重要です)
:Explore ftp://somehost/path/to/dir/ :e scp://somehost/path/to/dir/
詳細については、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
Vim は最後に使用したディレクトリを記憶しています。前のディレクトリに戻るには "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 コマンドが使用されていない限り、すべてのウィンドウは同じカレントディレクトリを共有します。1つのウィンドウで :cd コマンドを実行すると、他のウィンドウのカレントディレクトリも変更されます。:lcd が使用されたウィンドウでは、異なるカレントディレクトリが記憶されます。他のウィンドウで :cd または :lcd を使用しても、それは変更されません。異なるカレントディレクトリを使用しているウィンドウで :cd コマンドを使用すると、共有ディレクトリの使用に戻ります。

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

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

22.3 ファイルを検索する

次の行を含む C プログラムを編集しているとします。
#include "inits.h"
その "inits.h" ファイルの内容を確認したいとします。カーソルをファイル名の上に移動して、次のように入力します。
gf
Vim はファイルを見つけて編集します。ファイルがカレントディレクトリにない場合はどうなるでしょうか?Vim は、ファイルを検索するために 'path' オプションを使用します。このオプションは、ファイルを検索するディレクトリ名のリストです。たとえば、インクルードファイルが "c:/prog/include" にあるとします。このコマンドは、'path' オプションに追加します。
:set path+=c:/prog/include
このディレクトリは絶対パスです。どこにいても、同じ場所になります。ファイルが、ファイルの場所より下のサブディレクトリにある場合はどうなるでしょうか?その場合は、相対パス名を指定できます。これはドットで始まります。
:set path+=./proto
これは、"gf" を使用するファイルがあるディレクトリの下にある "proto" ディレクトリを Vim に検索させることを示しています。したがって、"inits.h" で "gf" を使用すると、Vim はファイルのディレクトリから開始して "proto/inits.h" を検索します。"./" なしで、つまり "proto" の場合、Vim はカレントディレクトリの下の "proto" ディレクトリを検索します。そして、カレントディレクトリは編集しているファイルがある場所ではない可能性があります。
'path' オプションを使用すると、ファイルを検索するディレクトリをさらに多くの方法で指定できます。'path' オプションのヘルプを参照してください。'isfname' オプションは、ファイル名にどの文字を含め、どの文字を含めないかを決定するために使用されます (上記の例の " 文字など)。
ファイル名がわかっているが、ファイル内に見つからない場合は、次のように入力できます。
:find inits.h
そうすると、Vim は 'path' オプションを使用して、ファイルの場所を特定しようとします。これは、'path' の使用を除いて、":edit" コマンドと同じです。
見つかったファイルを新しいウィンドウで開くには、"gf" の代わりに CTRL-W f を使用するか、":find" の代わりに ":sfind" を使用します。
'path' のどこかにあるファイルを編集するために Vim を直接起動するのに最適な方法
vim "+find stdio.h"
これにより、'path' の値でファイル "stdio.h" が見つかります。引用符は、1つの引数 -+c を持つために必要です。

22.4 バッファリスト

Vim エディターは、編集中のファイルを記述するためにバッファという用語を使用します。実際、バッファは編集するファイルのコピーです。バッファの変更を終了すると、バッファの内容をファイルに書き込みます。バッファにはファイルの内容だけでなく、すべてのマーク、設定、およびその他の関連するものも含まれています。

隠しバッファ

ファイル one.txt を編集していて、ファイル two.txt を編集する必要があるとします。単純に ":edit two.txt" を使用することもできますが、one.txt に変更を加えたため、これは機能しません。one.txt をまだ書き込みたくもありません。Vim には解決策があります。
:hide edit two.txt
バッファ "one.txt" は画面から消えますが、Vim はまだこのバッファを編集していることを認識しているため、変更されたテキストを保持します。これは隠しバッファと呼ばれます。バッファにはテキストが含まれていますが、表示することはできません。":hide" の引数は別のコマンドです。":hide" は、'hidden' オプションが設定されているかのように、そのコマンドを動作させます。このオプションを自分で設定することもできます。効果は、バッファが破棄されると、そのバッファが非表示になることです。注意してください!変更を加えた隠しバッファがある場合は、すべてのバッファを保存したことを確認せずに Vim を終了しないでください。

非アクティブバッファ

バッファが一度使用されると、Vim はそれに関するいくつかの情報を記憶します。ウィンドウに表示されておらず、非表示にもなっていない場合、バッファリストにまだあります。これは非アクティブバッファと呼ばれます。概要
アクティブ ウィンドウに表示され、テキストがロードされています。隠し ウィンドウには表示されませんが、テキストはロードされています。非アクティブ ウィンドウに表示されず、テキストはロードされていません。
非アクティブなバッファは、Vimがマークなどの情報を保持しているため、記憶されます。また、ファイル名を記憶しておくことは、どのファイルを編集したかを確認したり、再び編集したりするのに役立ちます。

バッファの一覧表示

バッファリストを表示するには、次のコマンドを使用します。
:buffers
同じことを行うコマンドで、バッファを一覧表示するのはそれほど明白ではありませんが、入力する文字数ははるかに少なくて済みます。
:ls
出力は次のようになります。
1 #h "help.txt" 行62
2 %a + "usr_21.txt" 行1
3 "usr_toc.txt" 行1
最初の列にはバッファ番号が含まれています。これを使用すると、名前を入力しなくてもバッファを編集できます(下記参照)。バッファ番号の後にフラグが続きます。次に、ファイルの名前と、カーソルが最後にあった行番号が表示されます。表示される可能性のあるフラグは次のとおりです(左から右へ)。
u バッファはリストされていません。unlisted-buffer。% 現在のバッファ。# 代替バッファ。a バッファはロードされ、表示されています。h バッファはロードされていますが、非表示です。= バッファは読み取り専用です。- バッファは変更できません。'modifiable' オプションがオフです。+ バッファが変更されました。
バッファの編集
バッファを番号で編集できます。これにより、ファイル名を入力する必要がなくなります。
:buffer 2
ただし、番号を知る唯一の方法は、バッファリストを見ることです。代わりに、名前またはその一部を使用できます。
:buffer help
Vimは、入力した名前に最適な一致を見つけます。名前に一致するバッファが1つしかない場合は、それが使用されます。この場合、「help.txt」です。新しいウィンドウでバッファを開くには
:sbuffer 3
これは名前でも機能します。

バッファリストの使用

次のコマンドを使用して、バッファリスト内を移動できます。
:bnext 次のバッファへ移動 :bprevious 前のバッファへ移動 :bfirst 最初のバッファへ移動 :blast 最後のバッファへ移動
リストからバッファを削除するには、次のコマンドを使用します。
:bdelete 3
繰り返しになりますが、これも名前で機能します。アクティブだった(ウィンドウに表示されていた)バッファを削除すると、そのウィンドウは閉じられます。現在のバッファを削除すると、現在のウィンドウが閉じられます。それが最後のウィンドウだった場合、Vimは編集する別のバッファを見つけます。何も編集しないということはありえません!
注: ":bdelete" でバッファを削除した後でも、Vimはそれを記憶しています。実際には「リストされていない」状態になり、":buffers" のリストには表示されなくなります。":buffers!" コマンドは、リストされていないバッファを一覧表示します(はい、Vimは不可能なことができます)。バッファをVimに完全に忘れさせるには、":bwipe" を使用します。'buflisted' オプションも参照してください。
次の章: usr_23.txt 他のファイルの編集
著作権: manual-copyright を参照してください vim:tw=78:ts=8:noet:ft=help:norl
メイン
コマンド索引
クイックリファレンス