Вводные файлы в той же папке как текущий файл, в энергии

Я попробовал оба метода большим коммерческим применением.

ответ, к которому метод лучше, очень зависит от Вашей точной ситуации, но я запишу то, что мой общий опыт показал до сих пор.

лучший метод в целом (по моему опыту): соединительная линия должна быть всегда стабильной.

Вот некоторые инструкции и преимущества этого метода:

  • Код каждая задача (или связанный набор задач) в его собственном ответвлении, тогда у Вас будет гибкость того, когда требуется объединить эти задачи и выполнить выпуск.
  • QA должен быть сделан на каждом ответвлении, прежде чем это будет объединено с соединительной линией.
  • Путем выполнения QA на каждом отдельном ответвлении, Вы будете знать точно, что вызвало легче ошибку.
  • Это решение масштабируется к любому числу разработчиков.
  • Этот метод работы, так как ветвление является почти мгновенной операцией в SVN.
  • Тег каждый выпуск, который Вы выполняете.
  • можно разработать функции, которые Вы не планируете выпустить некоторое время и решить точно, когда объединить их.
  • Для всей работы Вы делаете, можно обладать преимуществом фиксации кода. Если Вы будете работать из соединительной линии только, Вы, вероятно, сохраните свой код, отменил фиксацию много, и следовательно оставил без защиты и без автоматической истории.

, При попытке сделать противоположное и сделать всю Вашу разработку в соединительной линии, у Вас будут следующие проблемы:

  • проблемы сборки Constant для ежедневных сборок
  • потеря Производительности, когда разработчик фиксирует проблему для всех других людей на проекте
  • Дольше, выпускает циклы, потому что необходимо наконец получить стабильную версию
  • менее стабильные версии

, у Вас просто не будет гибкости, в которой Вы нуждаетесь, при попытке сохранить стабильность ответвления и соединительной линии как песочница разработки. Причина состоит в том, что Вы не можете привередливо выбрать от соединительной линии, что Вы хотите вставить ту стабильную версию. Это было бы уже все смешано во вместе в соединительной линии.

один случай в особенности, что я сказал бы, чтобы сделать всю разработку в соединительной линии, при запуске нового проекта. Могут быть другие случаи также в зависимости от Вашей ситуации.

<час>

По тому, как распределенные системы управления версиями обеспечивают намного больше гибкости, и я настоятельно рекомендую переключение или на hg или на мерзавца.

47
задан cloudhead 10 November 2009 в 15:04
поделиться

11 ответов

Более новые версии vim имеют встроенную команду autochdir, в противном случае вы можете вернуться к настройке, подобной BufEnter.

" set vim to chdir for each file
if exists('+autochdir')
    set autochdir
else
    autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
endif
32
ответ дан 26 November 2019 в 19:10
поделиться

У меня есть следующие три строки в моем . 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 делают то же самое, но в новой вкладке / разделенном окне.

45
ответ дан 26 November 2019 в 19:10
поделиться

Простая идея - использовать настройку autochdir. Попробуйте это в вашем .vimrc:

set autochdir

Это изменит рабочий каталог vim на каталог открытого вами файла.

Примечание: я не уверен, в какой версии добавлена ​​эта функция. Я обновил vim 6 до версии 7.2, чтобы это работало.

26
ответ дан 26 November 2019 в 19:10
поделиться

Добавьте эту строку в конфигурацию vimrc

autocmd BufEnter * cd %:p:h

% текущего имени файла
: p развернуть до полного пути
: h head (последний компонент пути удален)

См. : help expand для получения дополнительной информации.

9
ответ дан 26 November 2019 в 19:10
поделиться

Попробуйте следующее:

:e %:p:h/file2.js
15
ответ дан 26 November 2019 в 19:10
поделиться

Решение с 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

5
ответ дан 26 November 2019 в 19:10
поделиться

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.

3
ответ дан 26 November 2019 в 19:10
поделиться

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
3
ответ дан 26 November 2019 в 19:10
поделиться

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.

2
ответ дан 26 November 2019 в 19:10
поделиться

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.

2
ответ дан 26 November 2019 в 19:10
поделиться

Другой вариант:

:e <Tab> 

Это циклический переход по папкам в вашем рабочем каталоге.

0
ответ дан 26 November 2019 в 19:10
поделиться