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 %:hqual 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 autochdirpara fazer o 'c' keyefeito no shell, para que você possa usar !command args no diretório alterado.
Tente adicionar set autochdirao seu .vimrc. Se você quiser mudar apenas uma vez, use :cd(ou :cd!para forçar).
cnoremap cd. lcd %:p:he em nnoremap ,cd :cd %:p:h<CR>:pwd<CR>vez disso
'c' keyno 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 netrwmanterá o diretório de navegação igual ao diretório atual.
Adicionar isso ao meu .vimrcmuda automaticamente o diretório de trabalho do Vim para o arquivo atual:
autocmd BufEnter * silent! :lcd%:p:h
set autochdirfaz isso também :-)