Я попробовал оба метода большим коммерческим применением.
ответ, к которому метод лучше, очень зависит от Вашей точной ситуации, но я запишу то, что мой общий опыт показал до сих пор.
лучший метод в целом (по моему опыту): соединительная линия должна быть всегда стабильной.
Вот некоторые инструкции и преимущества этого метода:
, При попытке сделать противоположное и сделать всю Вашу разработку в соединительной линии, у Вас будут следующие проблемы:
, у Вас просто не будет гибкости, в которой Вы нуждаетесь, при попытке сохранить стабильность ответвления и соединительной линии как песочница разработки. Причина состоит в том, что Вы не можете привередливо выбрать от соединительной линии, что Вы хотите вставить ту стабильную версию. Это было бы уже все смешано во вместе в соединительной линии.
один случай в особенности, что я сказал бы, чтобы сделать всю разработку в соединительной линии, при запуске нового проекта. Могут быть другие случаи также в зависимости от Вашей ситуации.
<час>По тому, как распределенные системы управления версиями обеспечивают намного больше гибкости, и я настоятельно рекомендую переключение или на hg или на мерзавца.
Более новые версии vim имеют встроенную команду autochdir, в противном случае вы можете вернуться к настройке, подобной BufEnter.
" set vim to chdir for each file
if exists('+autochdir')
set autochdir
else
autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
endif
У меня есть следующие три строки в моем . vimrc
:
map ,e :e <C-R>=expand("%:p:h") . "/" <CR>
map ,t :tabe <C-R>=expand("%:p:h") . "/" <CR>
map ,s :split <C-R>=expand("%:p:h") . "/" <CR>
Теперь , e
открывается в этом буфере. , t
и , s
делают то же самое, но в новой вкладке / разделенном окне.
Простая идея - использовать настройку autochdir. Попробуйте это в вашем .vimrc:
set autochdir
Это изменит рабочий каталог vim на каталог открытого вами файла.
Примечание: я не уверен, в какой версии добавлена эта функция. Я обновил vim 6 до версии 7.2, чтобы это работало.
Добавьте эту строку в конфигурацию vimrc
autocmd BufEnter * cd %:p:h
% текущего имени файла
: p развернуть до полного пути
: h head (последний компонент пути удален)
См. : help expand
для получения дополнительной информации.
Решение с autochdir имеет свои подводные камни. Например, вы должны оставаться в каталоге, в котором находитесь, потому что теги определены с относительным путем или вам нужен Makefile или pom.xml в текущем каталоге.
Вы можете использовать
:e <C-R>%
, а затем изменить путь, удалив имя текущего файл и введите новый. Или. Используйте карту
nnoremap <leader>e :edit <C-R>=fnamemodify(@%, ':p:h')<CR>/
. Затем, нажав \ e или , e (в зависимости от настроек лидера), вы получите команду, которая открывает каталог, в котором находится ваш текущий file is, и вы можете выполнить эту команду вручную и использовать ctrl D , чтобы показать все файлы из текущего каталога файлов.
Или. Вы можете попробовать плагин 0scan .
Ключи 0 f
So vim has a :find command which will use the variable 'path'. If you have consistent directory structures for your code such as all source in under a directory "src" then you can just add that to the 'path' variable. Then when you do :find foo.js it will search both your current location then the folders listed in your path variable. It basically emulates the way bash or some other shell uses the PATH variable to find the appropriate binary to run.
I put this in my .vimrc file, which will change the current directory to the file in the buffer. This sets the current directory for the buffer, and updates when you switch buffers.
autocmd BufEnter * lcd %:p:h
You probably know that once you're in vim, you can use
:cd lib/foo
to change into lib/foo.
On the other hand, to change into the directory of the file you're current editing, try
:cd %:p:h
You can always use
:pwd
to check your current working directory.
And of course, if you forgot what file you're editing, just hit ctrl-g.
On the "shortcut" front, have you looked into the :Sex
command? This opens up the file browser in a split so that you can open other files easily. :Sex
default to the directory of the current buffer. Pretty nifty feature, if I say so myself.
I bind it to ;o
for easy access:
map ;o :Sex <CR>
You can also use :Ex
if you want to keep it in the current buffer instead of creating a split.
Другой вариант:
:e <Tab>
Это циклический переход по папкам в вашем рабочем каталоге.