7

ターミナルに入力すると

mvim ./path/to/my/project

Vimはこのプロジェクトディレクトリを開きます。NERDTreeではファイルを見ることができますが、CLIコマンドを実行しようとすると次のようになります。

:!touch some/file/in/my/project

私の現在のパスは私のユーザーのホームディレクトリであることが起こります

したがって、プロジェクトディレクトリにファイルを作成する場合は、次のようにフルパスを入力する必要があります。

:!touch ./path/to/my/project/some/file/in/my/project/name

vimの起動後にdirを自動的に変更することはどういうわけか可能ですか?

4

5 に答える 5

4

これをvimrcで使用します:

" Use %% on the command line to expand to the path of the current file
cabbr <expr> %% expand('%:p:h')
于 2012-12-13T20:30:05.963 に答える
4

特定のユースケースでは、VimEnter イベントに何かを接続してみることができます。たとえば、これを vimrc に入れてみてください:

autocmd VimEnter * cd %:p:h

次に、Vim で Vim を呼び出すと、$ mvim path/to/my/project/some/file自動的:cdにそのディレクトリfileに配置されます。

これをディレクトリで機能させるには、自動コマンドに少しロジックを追加する必要があります。

autocmd VimEnter * exe 'cd '.(isdirectory(expand('%:p')) ? '%:p' : '%:p:h')

これは自分で改善できます!

于 2012-12-13T23:01:00.613 に答える
3

これを最もよく解決する方法は、正確なユースケースによって異なります。私は部分的:set autochdirですが、作業ディレクトリをプロジェクトルートに設定したい場合は、ローカルの vimrcプラグインの 1 つを使用します (私はlocalrc.vim を使用します - 各ディレクトリの構成ファイルを有効にします)、それぞれにローカル.vimrcファイルを作成しますプロジェクトのルートの

:cd expand('<sfile>:p:h')

初期化。次に、プロジェクト階層内のどのファイルを開くかに関係なく、作業ディレクトリは常にプロジェクト ルートに設定されます。

于 2012-12-14T08:32:30.090 に答える