Os movimentos da palavra ignoram 'n' em '\ n'

0

Considere a seguinte linha do Python:

print("\nHello, world!")

Para alterar a palavra Hello para Hola , gostaríamos de simplesmente ciw . No entanto, esse comando ingênuo também substitui o n de \n . Como alguém pode configurar o VIM para ignorar o caractere inicial de uma palavra se imediatamente antes da palavra for encontrado o caractere \ ?

Observe que o realce do VIM reconhece o n líder como pertencente ao \n , portanto, talvez uma solução possa ser baseada nisso.

    
por dotancohen 23.07.2013 / 08:08

1 resposta

2

Os movimentos de palavras no Vim são universais (ou "ingênuos", como você diz), e são controlados apenas pela configuração 'iskeyword' . Isso geralmente é uma coisa boa, porque eles provaram ser aplicáveis a todos os tipos de texto e à maioria das linguagens de programação.

O que você quer é um objeto de texto especializado; você pode implementar isso remapeando o objeto% text iw padrão (e provavelmente também os movimentos relacionados como w , e , etc. para consistência). Eu não vi nenhuma implementação desse tipo, mas é definitivamente viável no Vimscript. O plug-in textobj-user pode ajudar.

Como alternativa, você pode aplicar o objeto de texto primeiro no modo visual e, em seguida, corrigir a seleção do caractere n inicial: viwolc . O o vai para o outro lado da seleção, l reduziu uma vez e finalmente c alterou a seleção.

... ou apenas digite novamente o n excluído; afinal de contas, é apenas um personagem e rápido de fazer. Isso é o que eu provavelmente faria.

    
por 23.07.2013 / 11:39

Tags