No vim, existe uma maneira de procurar uma palavra em uma janela diferente?

1

Estou trabalhando com um arquivo onde as definições e as referências a essas definições estão em partes diferentes do arquivo. Eu estou olhando para o arquivo em uma janela dividida - uma metade olhando para a definição, a outra metade olhando para uma referência, para que eu possa atualizar os dois, e depois passar para a próxima definição.

O que eu quero fazer é encontrar uma palavra em um painel e pesquisar essa palavra no outro painel. Muito parecido com colocar o cursor sobre uma palavra no modo de comando, e pressionando *, exceto que o painel atual não deve se mover - o outro deve.

Existe uma maneira de fazer isso no vim?

Ou, alguém pode sugerir uma maneira diferente de trabalhar que facilitaria isso?

    
por SpoonMeiser 08.12.2009 / 14:13

2 respostas

2

Esta página contém um snippet semelhante ao que você está procurando. Ele pega a palavra atual (como se você tivesse pressionado * ), alterna para a outra janela e procura por ela com n :

:nnoremap <Leader>w :let @/=expand("<cword>")<Bar>wincmd w<Bar>normal n<CR>

Você pode alterar a parte <Leader>w para qualquer combinação que desejar (até mesmo para algo como * , substituindo assim sua funcionalidade padrão).

    
por 08.12.2009 / 15:04
0

Eu achei as guias do Vim mais convenientes do que as janelas divididas. Essas guias estão disponíveis na versão do console, bem como na GUI. Você pode precisar de mais do que uma compilação mínima do Vim para o recurso (em particular, a opção de compilação "+ windows" precisa ser ativada).

Use :tabnew ou :tabnew <file> para abrir uma nova guia. Use :tabnext (atalho: gt ) ou :tabprev (atalho: gT ) para ir para a próxima guia / anterior. Use :close para fechar a janela da guia atual.

Veja :help tabpage.txt para uma referência básica.

Quanto à questão de como executar um comando de busca na aba anterior e ter o último movimento, não tenho certeza - a resposta do Leader_Fire pode funcionar, mas pode precisar de ajustes.

    
por 08.12.2009 / 15:24