Vim: электронный стартовый каталог? - PullRequest
15 голосов
/ 31 января 2010

Я кодирую в 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, чтобы запустить каталог в "путь к последнему отредактированному файлу"

Спасибо!

Ответы [ 9 ]

12 голосов
/ 31 января 2010

Есть много причин не любить autochdir, так как он портит некоторые плагины, и если вы в конечном итоге делаете: e ../../../foo.txt, вы ничего не получаете. Просто, как идея, попробуйте эту карту, я выбил

: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

12 голосов
/ 31 января 2010

Попробуйте вариант autochdir. Он автоматически изменит текущий рабочий каталог на тот, который был последний раз открыт или выбран. В .vimrc:

set autochdir

Для получения дополнительной информации, :help autochdir

3 голосов
/ 31 января 2010

Чтобы всегда менять рабочий каталог на каталог текущего файла, у меня это есть в моем .vimrc:

if has("autocmd")
  autocmd BufEnter * :lcd %:p:h
endif " has("autocmd")
2 голосов
/ 31 января 2010

Извините, но команда vim's: edit принимает путь, который интерпретируется относительно текущего рабочего каталога экземпляра vim.

У вас есть команда: cd, которую вы можете использовать для :cd bar, затем работать некоторое время, затем :cd ...

Надеюсь, это поможет некоторым.

1 голос
/ 09 февраля 2010

Некоторое время назад я задавал вопросы, связанные с этим, в списке рассылки vim: http://www.mail-archive.com/vim_use@googlegroups.com/msg03266.html Возможно, вы найдете полезные советы в этой теме .

Я протестировал множество плагинов, но поскольку GUI на основе 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
0 голосов
/ 28 февраля 2015

На vim / gVim у меня просто есть cd C:/blah/blah в верхней части моего vimrc. Я думаю, что это работает на всех платформах.

Я лично использую vagrant для каждого проекта, поэтому достаточно одного компакт-диска, но я думаю, что вы также можете использовать vim для использования различных конфигурационных файлов, -u флаг, я думаю.

Или сопоставить ключ с каждым вашим проектом, поэтому нажатие Ctrl + F1 делает cd path/to/project/1, а Ctrl + F2 делает cd path/to/project/2 возможно?

Примечание: я не использую плагины

0 голосов
/ 02 ноября 2012

Это не совсем то, что вы хотели, но посмотрите NERDTree.

0 голосов
/ 16 мая 2010

почему не просто :E? Исследовать каталог текущего файла.

:help :E

0 голосов
/ 31 января 2010
  • :cd меняет каталог
  • :pwd печатает текущий.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...