Полностью игнорируя NERDTree, вы можете настроить сопоставление CommandT так, чтобы оно по умолчанию включало корень вашего проекта. Чтобы сделать его гибким, вы можете динамически загружать корень проекта для каждого сеанса vim из переменной среды:
"If the $H environment variable is available, assume it contains CommandT's root dir
if !empty($H)
nnoremap <silent> <Leader>t :CommandT $H<CR>
else
nnoremap <silent> <Leader>t :CommandT<CR>
endif
Или, проще говоря, вы можете использовать $ PWD, который должен отражать каталог, в котором вы начали свой vim
сеанс.
Что касается предлагаемого вами решения, вы действительно можете cd
в NERDTree, поместив курсор на узел, к которому вы хотите перейти, а затем нажав cd
(см. :h NERDTree-cd
). Это изменяет вывод _6 _ / _ 7_ для буфера NERDTree
, и если вы запустите CommandT
, находясь в буфере NERDTree
, CommandT
будет использовать новое значение для поиска. Проблема в том, что CommandT
попытается открыть выбранный файл в буфере редактирования, к которому вы последний раз обращались, на что не влияет cd
ing в NERDTree
буфере. А теперь, поскольку версия 1.3.1 из CommandT
пытается открыть выделение, используя относительный путь (относительный от :pwd
из NERDTree buffer
), это, скорее всего, не сработает.
Ниже приведен патч git-format
ted для CommandT v1.3.1, чтобы заставить его работать:
From cf4569af2f5d06673d96ac0f798c22612b5579f5 Mon Sep 17 00:00:00 2001
From: Petr Skocik <[email protected]>
Date: Fri, 1 Aug 2014 02:10:35 +0200
Subject: [PATCH] open selection by its absolute rather than relative path
---
ruby/command-t/controller.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/ruby/command-t/controller.rb b/ruby/command-t/controller.rb
index 6026aca..4774345 100644
--- a/ruby/command-t/controller.rb
+++ b/ruby/command-t/controller.rb
@@ -240,6 +240,7 @@ module CommandT
selection = File.expand_path selection, @path
selection = relative_path_under_working_directory selection
selection = sanitize_path_string selection
+ selection = VIM::pwd + '/' + selection
ensure_appropriate_window_selection
::VIM::command "silent #{command} #{selection}"
end
--
1.9.1
person
PSkocik
schedule
01.08.2014