Retornar do netrw (Vim file explorer) para o buffer editado?

2

De acordo com o "Practic Vim" e o Vim, o atalho <C-^> deve retornar ao arquivo editado. Eu entro netrw usando :E .

Como experiência, tentei remapear o atalho padrão da seguinte forma:

:nnoremap <C-y> <C-^>

Quando uso <C-y> recebo feedback:

E23: No alternate file

... mas não volto ao buffer editado.

Como posso voltar ao buffer editado, ou como posso depurar este problema para descobrir o que me impede de retornar a ele de acordo com o procedimento documentado?

NB: Estou configurando o mapeamento no prompt de comando, não em .vimrc .

    
por 0xC0000022L 16.02.2013 / 01:36

2 respostas

4

O arquivo alternativo é, praticamente falando, o buffer que foi aberto anteriormente na mesma janela:

:e file1
:e file2
<C-^> shows file1
<C-^> shows file2
<C-^> shows file1
…

<C-^> é usado para alternar rapidamente entre dois buffers na mesma janela .

Você pode não ter um "arquivo alternativo" para ir (provavelmente uma coisa interessante que realmente não faz sentido para mim) e <C-^> não tem uso aqui.

Em vez disso, use :bd , que exclui o buffer atual (netrw) e o coloca de volta no buffer anterior. Observe que você pode usar :Rex para recuperar a última janela netrw a qualquer momento.

Se você não abrir arquivos (você usa o netrw para pesquisar algum tipo de informação), seu fluxo de trabalho pode ser:

:Ex
(exploration)
:bd
if you want to start a new exploration,
    :Ex
    :bd
if you want to explore from where you were,
    :Rex
    :bd

No entanto, você deve ler :h netrw porque tem mais comandos que provavelmente ajudariam muito: :Hex[plore] (abre netrw em uma janela dividida horizontalmente), :Vex[plore] (abre netrw em uma janela dividida verticalmente), :Tex[plore] (abre o netrw em uma nova aba) ... Esses comandos permitem que você vá em seu safari enquanto mantém algum "estado".

Como alternativa, <C-o> e <C-i> são dois atalhos úteis que permitem subir e descer o jumplist. Na sua situação, <C-o> pode ser a maneira mais rápida de voltar ao buffer anterior.

    
por 16.02.2013 / 18:02
0

Não vejo como o mapeamento tem algo a ver com o E23 ; você deve obter o mesmo erro com o comando <C-^> original. Provavelmente, nenhum arquivo alternativo foi definido ainda; alguns plug-ins também usam explicitamente o comando :keepalt para evitar a gravação da alteração do buffer.

Você pode verificar o nome do arquivo alternativo via

:echo expand('#')

ou, na saída de :ls , procure a linha que possui um # sigil.

    
por 16.02.2013 / 12:02

Tags