Expanda o movimento t para as próximas linhas


16

Existe uma maneira de t{char}e f{char}continuará a funcionar nas próximas linhas, se {char}não estiver presente em uma determinada linha?

Eu gostaria de evitar o uso /{char}<CR>para salvar 1 pressionamento de tecla e para não ter destaque na pesquisa, especialmente quando eu preciso disso em combinação com verbos (por exemplo dfa, ct.).


2
Você pode fazer d/apara excluir para o próximo ae c/.excluir para o próximo .. Se você o usar hlsearche não desejar ao executar esta operação, poderá criar um mapeamento que faça sua d/operação e desabilitar o realce (termina com :nohlsearch).
Jjaderberg 23/08/2015

2
Você pode usar (ou estudar) um plug-in como github.com/rhysd/clever-f.vim (com g:clever_f_across_no_linedefinido como 0 e outras opções ativadas / desativadas à vontade).
VanLaser

1
Dahu criou um plugin para isso: github.com/dahu/vim-fanfingtastic
EvergreenTree

1
Eu ainda acho que o melhor plugin para isso é easymotion
Vitor

1
Também fiz um plugin: improvedft
Christian Brabandt

Respostas:


6

Eu também estava usando dahu / vim-fanfingtastic por algum tempo e achei muito útil. Ele suporta repetições semânticas .graças à biblioteca tpope / repeat.vim, que você também deve instalar.

Uma alternativa é chrisbra / betterft, que faz mais ou menos a mesma coisa.

O rhysd / clever-f.vim tem uma opção para ativar a busca em várias linhas, embora sua principal característica seja permitir frepetir a busca atual, como ;já acontece.

Todos esses identificadores ;e ,chaves, conforme o esperado.

A desvantagem com multi-linha fe té que se você bater na tecla errada, você será levado para fora da linha atual para algum lugar inesperado no arquivo. Ctrl-Opode ajudar nesses momentos. (Isso pode ser perigoso com uma cmudança, se você não perceber que acabou de engolir algumas linhas, mas esses foram apenas problemas iniciais para mim.)

Existem outros plugins relacionados, com abordagens ligeiramente diferentes, como justinmk / vim-sneak e goldfeld / vim-seek que solicitam dois caracteres , facilitando (mas ainda não garantido) atingir o local de destino.

E depois há easymotion / vim-easymotion . Isso oferece várias teclas de movimento poderosas , algumas das quais exigem um pressionamento de tecla extra ou duas para confirmar o caractere de destino quando há muitos candidatos.


Mas atualmente estou usando uma solução caseira. Eu trabalhei com o autor de EasyMotion para fazer fe t piscar marcadores de contagem sobre todos os personagens correspondentes à sua frente.

insira a descrição da imagem aqui

Isso atua como um assistente de contagem natural para movimentos de baunilha vim. Quando você tenta se mover para algum lugar com, fxmas descobre que há mais xobstáculos no caminho do que imaginava, pode ler o número que piscou sobre o personagem que estava buscando e depois [count];pular para lá.

Você pode encontrar a agência aqui . Não deixe de ler a seção Adicionar dicas úteis para configurar os mapeamentos de teclas.

No entanto, para coperações de alteração, ainda é preferível acertar na primeira vez . Nesses casos, recomendo que você pressione uma tecla extra no vmodo Visual ou use um dos saltos garantidos do EasyMotion.


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.