2010-02-18 5 views

ответ

101

Как уже отмечалось, вы можете использовать autochdir, который изменит к директории файла, который вы открыли, другой вариант

:cd mydirectory 

который изменит каталог. Это может быть абсолютный или относительный путь, поэтому :cd .. будет двигаться на один уровень. Или вы можете использовать :cd %:h, который также изменится на каталог, в котором находится текущий файл, но без установки autochdir.

:cd 

изменит каталог на ваш домашний каталог (или на окна, распечатает текущий каталог).

:cd - 

изменит каталог на предыдущий каталог, который вы посетили.

+7

Если вы используете несколько окон, вы можете даже использовать: lcd для изменения каталога только для текущего окна. – Useless

+1

@ Бездумно: интересно ... Я не думаю, что когда-либо захочу, но, полагаю, это вопрос вкуса. Спасибо за информацию. – falstro

+3

Я пытаюсь выяснить, что означает%: h, любая помощь? – Michael

7

Попробуйте добавить set autochdir к вашему .vimrc. Если вы хотите изменить его только один раз, используйте :cd (или :cd!, чтобы заставить его).

+1

помощь говорит это ломает некоторые плагины (я не знаю, какие из них), так что я предусмотрительно добавления отображение в моем .vimrc: 'cnoremap cd. lcd%: p: h' и 'nnoremap, cd: cd%: p: h : pwd ' вместо – ErichBSchulz

+0

также используют '' ''' '' '' '' 'в проводнике файлов netrw, чтобы сопровождать это. – pimgeek

12

Также, если вы просматриваете файловую систему с помощью netrw file explorer, вы можете установить текущий каталог, нажав клавишу c.

+0

также используют '' 'set autochdir''', чтобы заставить' '' 'c 'key''' вступить в оболочку, чтобы вы могли использовать' ''! Command args '' ' под измененным реж. – pimgeek

0

С netrw: в дополнение к нажав клавишу с для установки текущего каталога, вы можете также поместить:

let g:netrw_keepdir= 0 

в вашем .vimrc; это означает, что netrw сохранит каталог просмотра так же, как и текущий каталог.

+0

Это похоже на эквивалентное поведение: lcd для каждой замены папки netrw. У вас есть идея, как этот параметр может быть эквивалентен как: cd вместо (изменить dir для всех окон)? Благодаря! – mgouin

1

Я не знаю, что не так с vim. Мне нужен каталог, в котором я запускаю vim как текущий.

Я следил за советом о autochd выше и устанавливал его в noautcd в моем .vimrc.

Я не сделал это, но я собираюсь запустить Vim, как это теперь:

vim —cmd 'cd `pwd`' 

Это заставит его придерживаться текущей директории!

1

Добавление этого к моему .vimrc автоматически изменяет рабочий реж Vim для текущего файла:

autocmd BufEnter * silent! :lcd%:p:h 
+0

'set autochdir' делает это также :-) –

Смежные вопросы