Vim: e начальный каталог?
Я код в Vim, а не IDE.
Мой исходный код часто вложен в 2-3 справочника глубоко.
~/foo$ find
xyz
bar/abc
bar/def
~/foo$ vim
// inside of vim
:e bar/abc
... some work ...
:e <-- is there a way I can have this :e start in ~/foo/bar instead of ~/foo ?
В принципе, я хочу: e запустить каталог в "путь к последнему отредактированному файлу"
Спасибо!
Ответы
Ответ 1
Есть много причин не любить autochdir, поскольку он испортил некоторые плагины, и если вы закончите делать: e../../../foo.txt, вы ничего не набираете. Точно так же, как идея пробовала этот cmap, я сбил
:cnoremap red edit <c-r>=expand("%:h")<cr>/
то вы можете ввести: красный и получить
:e /the/path/to/your/current/files/dir/
(отредактируйте: возможно, используйте z вместо красного, так как есть команды, начинающиеся с красного)
Чтобы развернуть тему, также ознакомьтесь с плагином FuzzyFinder и некоторыми пользовательскими сопоставлениями, чтобы быстро перейти к общим файлам, которые вы всегда редактируете. Например,
10 или около того ваших обычных файлов должно быть не более 2 нажатий клавиш. Это помогает, если их систематически называют
Вот идея, которую я использую для django.
http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings
Ответ 2
Попробуйте параметр autochdir
. Он автоматически изменит текущий рабочий каталог на тот файл, который был недавно открыт или выбран. В .vimrc:
set autochdir
Для получения дополнительной информации :help autochdir
Ответ 3
Чтобы всегда менять рабочий каталог на текущий каталог файлов, у меня есть это в .vimrc
:
if has("autocmd")
autocmd BufEnter * :lcd %:p:h
endif " has("autocmd")
Ответ 4
Извините, но команда vim: edit принимает путь, который интерпретируется относительно текущего рабочего каталога экземпляра vim.
У вас есть команда: cd, которую вы могли бы использовать для :cd bar
, затем выполните некоторое время, затем :cd ..
.
Надеюсь, что это поможет.
Ответ 5
Некоторое время назад я задавал вопросы, связанные с этим в списке рассылки vim: http://www.mail-archive.com/[email protected]/msg03266.html Возможно, вы найдете полезные советы в этой теме.
Я тестировал множество плагинов, но поскольку графические интерфейсы на основе CLI мне не нравятся, я просто закончил использование стандартного vim с несколькими настройками конфигурации.
Как отметил honk, эта строка устанавливает рабочий каталог так же, как файл, на котором вы работаете:
autocmd BufEnter * lcd %:p:h
Мой другой совет - использовать wildmenu. Это облегчает получение обзора файлов в вашем текущем каталоге, когда вы идете: e, а затем TAB. Я программист на python, поэтому в последней строке показано, как скрыть автоматически сгенерированные файлы, которые интерпретирует интерпретатор python, но вы можете использовать его, чтобы скрыть файлы java.class или c.obj файлы или что-то еще.
set wildmode=list:longest
set wildignore=*.pyc,*pyo
Ответ 6
-
:cd
каталог изменений
-
:pwd
печатает текущий.
Ответ 7
почему не просто :E
? Исследуйте каталог текущего файла.
:help :E
Ответ 8
Это не совсем то, что вы хотели, но проверьте NERDTree.
Ответ 9
В vim/gVim у меня только cd C:/blah/blah
в верхней части моего vimrc. Я предполагаю, что он работает на всех платформах.
Я лично использую бродягу для каждого проекта, поэтому достаточно одного компакт-диска, но я думаю, вы можете заставить vim использовать и другие файлы конфигурации, я думаю, -u
.
Или сопоставьте ключ для каждого проекта, который вы так нажимаете, Ctrl + F1 делает cd path/to/project/1
и Ctrl + F2 делает cd path/to/project/2
возможно?
Примечание. Я не использую никаких плагинов