:edit {file}が:Explore中に現在のディレクトリを使用するようにする


8

私はよくを使用して、開いているファイルディレクトリからファイルシステムを探索する:Ex:Sex、ディレクトリを渡してvimを呼び出してファイルシステムの探索を開始し、ファイルを開きます。

いずれの場合でも、ディレクトリツリーをナビゲートしているときに、:edit {file}コマンドを使用して新しいファイルを開くと、vimが実行された現在のディレクトリからの相対パスが常に使用されます。そう:

~# vim .
-> navigate to Development/
-> open a file
:e <tab> will complete path from home dir

または:

~# vim Development/
-> open a file
:Sex
:e <tab> will complete paths from Development/

(自動またはコマンドを使用して)ファイルシステムをナビゲートしているときにvimの現在の作業ディレクトリを現在選択されているディレクトリに変更することは可能ですか?

回答:


5

これは、netrw構成変数g:netrw_keepdirを0(デフォルトは1)に設定することで可能です。
永続的にするには、.vimrcファイルに次の行を追加します。

let g:netrw_keepdir=0

7

はい、vimには:cd、現在のディレクトリを出力するか、現在のディレクトリを変更するコマンドがあります。ヘルプはこれです-最後の行に注意してください:

:cd[!] {path}           Change the current directory to {path}.
                        If {path} is relative, it is searched for in the
                        directories listed in |'cdpath'|.
                        Does not change the meaning of an already opened file,
                        because its full path name is remembered.  Files from
                        the |arglist| may change though!
                        On MS-DOS this also changes the active drive.
                        To change to the directory of the current file: >
                                :cd %:h

のヘルプの冒頭に記載されているように:cd、これはvimの作業ディレクトリに影響を与えます。これは、:Ex戻るコマンドや内部コマンドが使用するものだけでなく、外部コマンドも新しい場所を使用します。


自動コマンドをバインドできる「ディレクトリ変更」のようなイベントはありますか?また、ファイルを開いた後にのみ機能しますか?
guido

@guido私が知っているわけではありませんが、他の2つの答えは自動変更の可能性のようです
イズカタ

7

次の2つのオプションを設定して、Vimの現在の作業ディレクトリが常に現在のバッファーと同じになるようにします。

set autochdir                   " Changes the cwd to the directory of the current
                                " buffer whenever you switch buffers.
set browsedir=current           " Make the file browser always open the current
                                " directory.

2番目のコマンドはそれを行います。1つ目は、不要なファイルを開くときにもディレクトリを変更しますvim path/to/file
guido 2015

@guido設定だけがbrowsedirあなたが説明している振る舞いにどのように影響するかわかりません この設定は、GUIファイルブラウザーが開くディレクトリに影響を与え、コマンドラインの補完に使用されるディレクトリには影響を与えません。
リッチ

@完全に正しいリッチ; let g:netrw_keepdir=0これをテストする前に、vimrc から削除するのを忘れました!
guido 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.