1

私はまだプロのようにvimを使うことを学んでいます。その過程で、プロジェクトディレクトリのサブモジュールでファイルを開くと、CtrlPプラグインが検索のルートをサブモジュールディレクトリのルートに切り替えることに気付きました。これを防ぎ、ルート検索ディレクトリを元のプロジェクトの1つ、または最初に開いたプロジェクトの1つに保つ方法はありますか?

4

3 に答える 3

8

おそらく設定を微調整したいと思うでしょうg:ctrlp_working_path_mode。この機能を一度に無効にして、作業ディレクトリを手動で設定したいと思うかもしれません:cd

GitHubの現在のctrlpドキュメントから:

When starting up, CtrlP sets its local working directory according to this
variable: 

  let g:ctrlp_working_path_mode = 'ra'

  c - the directory of the current file.
  a - like "c", but only applies when the current working directory outside of
      CtrlP isn't a direct ancestor of the directory of the current file.
  r - the nearest ancestor that contains one of these directories or files:
      .git .hg .svn .bzr _darcs
  w - begin finding a root from the current working directory outside of CtrlP
      instead of from the directory of the current file (default). Only applies
      when "r" is also present.
  0 or <empty> - disable this feature.

Note #1: if "a" or "c" is included with "r", use the behavior of "a" or "c" (as
a fallback) when a root can't be found.

Note #2: you can use a |b:var| to set this option on a per buffer basis.
于 2012-11-05T18:20:47.410 に答える
3

.vimrcで、次のように設定してCtrlPの動作を変更する必要があります。

let g:ctrlp_working_path_mode = 'rw'

この設定では、外部の現在の作業ディレクトリでバージョン管理ファイルを検索します。

次に、プロジェクトで作業する前に、dirをメインフォルダーに変更します。ここで、main .gitは、またはその中のdir(サブモジュールではない)に変更します。

:cd my/project/main/path

サブモジュール内でファイルを開き、Cpがヒットしているときに、現在の作業ディレクトリがサブモジュールの外にある場合は、メインの.gitがあったファイルが引き続き使用されます。

于 2015-06-16T23:32:15.660 に答える
1

私はこれらのマッピングを私の中に持っています~/.vimrc

nnoremap <leader>f :CtrlP<CR>
nnoremap <leader>F :CtrlPCurWD<CR>

プロジェクトのどこかでファイルを開きたい場合は最初のファイルを使用し、近くのファイルを開きたい場合は2番目のファイルを使用します。

于 2012-11-05T19:38:10.613 に答える