Como definir o diretório de trabalho / atual no Vim?


109

Portanto, quando desejo criar um novo arquivo usando o comando: e, não desejo especificar o caminho completo, apenas o novo nome do arquivo. Isso pode ser feito?

Respostas:


144

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.


13
se estiver usando várias janelas, você pode até usar: lcd para alterar o diretório apenas para a janela atual.
Inútil

1
@Useless: interessante ... Acho que nunca vou querer isso, mas acho que é uma questão de gosto. Obrigado pela informação.
falstro

3
Estou tentando descobrir o que%: h significa, alguma ajuda?
Michael

10
@Michael %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.
falstro 02 de

@falstro, você sabe como: o comando cd pode ser aplicado a todas as janelas nas mesmas instâncias em execução do vim? Ex: ao usar divisão: sp
mgouin

15

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.


também use set autochdirpara fazer o 'c' keyefeito no shell, para que você possa usar !command args no diretório alterado.
pimgeek de

9

Tente adicionar set autochdirao seu .vimrc. Se você quiser mudar apenas uma vez, use :cd(ou :cd!para forçar).


1
a ajuda diz que isso quebra alguns plug-ins (não sei quais), então tomei o cuidado de adicionar mapeamento no meu .vimrc: cnoremap cd. lcd %:p:he em nnoremap ,cd :cd %:p:h<CR>:pwd<CR>vez disso
ErichBSchulz

também use 'c' keyno explorador de arquivos netrw para acompanhar isso.
pimgeek

3

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!


2

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.


Isso parece ter um comportamento equivalente a: lcd para cada mudança de pasta netrw. Você tem uma ideia de como essa configuração pode ser equivalente a: cd (alterar o diretório para todas as janelas)? Obrigado!
mgouin

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.