Respostas:
Como já sugerido, você pode usar autochdir, que mudará para o diretório do arquivo que você abriu, a outra opção é
:cd mydirectory
que mudará o diretório. Este pode ser um caminho absoluto ou relativo, portanto :cd ..
, subirá um nível. Ou você pode usar o :cd %:h
qual também mudará para o diretório onde o arquivo atual está, mas sem definir autochdir.
:cd
irá alterar o diretório para o seu diretório inicial (ou no Windows, imprimirá o diretório atual).
:cd -
irá mudar o diretório para o diretório anterior que você visitou.
%
traduz para o nome do arquivo atual incluindo o caminho, :
adiciona o modificador, h
é o cabeçalho, ou seja, o caminho até o último separador de caminho, que exclui o próprio nome do arquivo.
Além disso, se você estiver navegando no sistema de arquivos com o explorador de arquivos netrw, poderá definir o diretório atual pressionando a tecla c.
set autochdir
para fazer o 'c' key
efeito no shell, para que você possa usar !command args
no diretório alterado.
Tente adicionar set autochdir
ao seu .vimrc
. Se você quiser mudar apenas uma vez, use :cd
(ou :cd!
para forçar).
cnoremap cd. lcd %:p:h
e em nnoremap ,cd :cd %:p:h<CR>:pwd<CR>
vez disso
'c' key
no explorador de arquivos netrw para acompanhar isso.
Eu não sei o que há de errado com o vim. Eu quero o diretório onde inicio o vim como o atual.
Eu segui a dica sobre autochd acima e configurei como noautcd no meu .vimrc.
Ainda não fiz, mas vou começar o vim assim a partir de agora:
vim —cmd 'cd `pwd`'
Isso o manterá no diretório atual!
Com netrw:
além de pressionar a ctecla para definir o diretório atual, você também pode colocar:
let g:netrw_keepdir= 0
em seu .vimrc
; isso significa que netrw
manterá o diretório de navegação igual ao diretório atual.
Adicionar isso ao meu .vimrc
muda automaticamente o diretório de trabalho do Vim para o arquivo atual:
autocmd BufEnter * silent! :lcd%:p:h
set autochdir
faz isso também :-)