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 возможно?

Примечание. Я не использую никаких плагинов