Vá para a navegação no diretório anterior após abrir o arquivo no vim


122

Quando abro um diretório navegando no vim, posso abrir um arquivo movendo o cursor para o nome de um arquivo e pressionando Enter .

Agora, existe algum comando para voltar à navegação do diretório anterior?

Caso contrário, existe uma maneira de abrir um arquivo sem fechar o modo de navegação de diretório?


2
Não tenho certeza, mas se você quiser uma navegação de diretório realmente conveniente, recomendo que você verifique NERDTree
Johan Kotlinski

Respostas:


197

Você pode voltar para o último buffer usando :b#.

Se você acabou de abrir um arquivo, ele o trará de volta à navegação no diretório.

Update : Como essa resposta foi aceita como a correta e, portanto, está no topo, gostaria de resumir um pouco as respostas, incluindo a de @romainl que imho é a correta.


3
Isso deveria ser :b#. Eu consertaria, mas as edições de um caractere não funcionam.
echristopherson

Se eu fizer vim <dirname>isso, navegar até o arquivo e pressionar Enter, não funcionará; se eu abrir o vim, :e <dirname>selecione o arquivo e Enterfuncionará. Em ambos os casos, :buffersmostra apenas um buffer. Não tenho certeza por que isso acontece.
mcmlxxxvi

@mcmlxxxvi de acordo com o vim wiki b#funciona apenas para "buffers editados anteriormente": vim.wikia.com/wiki/…
ezdazuzena

3
Coisa boa resumir todas as outras respostas corretas, eu gostaria que mais pessoas fizessem isso.
LightMan de

1
@veich Obrigado pelo seu comentário, mas não vou fazer isso por enquanto, pois a pergunta é apenas sobre como retroceder. Esta não é uma página wiki, estou apenas resumindo as outras questões por uma questão de clareza. Espero que você entenda isso.
ezdazuzena

88

Você pode usar Ctrl- Opara voltar ao buffer anterior.


2
Muito útil em geral (por exemplo, para navegar de volta gf), mas no caso de explorar diretórios, não me leva de volta à "linha" em que estava ao abrir o arquivo. :Rex<Enter>, que é um tanto desajeitado (5 pressionamentos de tecla contra 1), o faz. Provavelmente este é um candidato a mapeamento ...
Tomasz Gandor

34

O comando adequado para retornar à listagem netrw é :Rex[plore]. Você pode executá-lo mesmo depois de pular de e para dezenas de arquivos.


Ao editar um arquivo após sair da lista netrw, retornar com :Rexplorealguma diferença de retornar com :Explore?
Jasha

Para responder à minha própria pergunta, parece que :Rexploresempre retorna para a mesma lista de netrw que você estava navegando antes, enquanto :Explorefornece a lista para o diretório de qualquer arquivo que esteja aberto no momento.
Jasha

29

:Ex o levará de volta (e mostrará o que você editou e não salvou).


1
Eu votei a favor de CADA uma das respostas. todos eles foram úteis
javadba de

Legal, é um pouco melhor do que Ctrl-Oporque destaca o diretório pai ( ..), em vez da linha superior (algum cabeçalho Netrw), mas ainda não é onde deixei o explorer (o arquivo aberto). 4 pressionamentos de tecla contra 1, alguma economia de js para navegar até onde eu estava, mas ainda assim é provável que mapeie :Rex<Enter>se estou esperando muita navegação.
Tomasz Gandor

26

Eu confio em Ctrl ^ para ir e voltar entre dois buffers.


1
Isso funcionou para mim com o vim 7.3 no OSX do homebrew. Ctrl-O parece não funcionar.
Gardner Bickford,

5
Você nem mesmo precisa de mudança, pode apenas Ctrl 6
mVChr

mais corretamente, isso "edita o arquivo alternativo": vimdoc.sourceforge.net/htmldoc/editing.html#CTRL- ^
ezdazuzena

Excelente! Embora funcione apenas para frente e para trás (como um "Desfazer 1 nível"), na verdade ele retorna à linha em que eu estava! Parece que não estou mapeando, :Rex<CR>afinal! (Claro, apenas quando eu não estou ansioso para "voltar" de navegações aninhadas (pulei para outro arquivo etc.).
Tomasz Gandor

14

Eu normalmente só uso :E. É fácil de lembrar e leva você de volta à lista de diretórios do arquivo que você abriu.


2
Estou surpreso que tenha poucos votos. É definitivamente uma resposta.
TaoPR de

1
Não se surpreenda - no meu vim 7.4.x atual :Eé ambíguo e não faz nada. Você precisa digitar pelo menos :E<CR>.
Tomasz Gandor

1
Isso é o mesmo que :Exou :Explorerse nenhum outro comando começando com Efor definido. Veja, por exemplo, stackoverflow.com/a/14367507/1141095
ezdazuzena
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.