vim evita selecionar sublinhado

3

Então, sei que um sublinhado ( _ ) é considerado parte de uma palavra em vim . Trabalhando com Python, normalmente acabo tendo muitos sublinhados. Existe uma maneira de selecionar parte de uma palavra excluindo o sublinhado? Por exemplo, em long_name , adoraria selecionar rapidamente long .

    
por tr33hous 23.01.2014 / 15:25

3 respostas

5

Se você quiser, você pode usar

:set iskeyword-=_

... o que significa que os sublinhados não são mais contados como partes de uma palavra (isso não afeta o WORDs). Você pode reverter isso com:

:set iskeyword+=_

Estes podem ser facilmente definidos para alguns atalhos de teclado:

:nnoremap <f2> :set iskeyword-=_
:nnoremap <s-f2> :set iskeyword+=_

Alguém com um pouco mais de habilidade de vimscripting do que eu provavelmente poderia descobrir uma maneira de ter um botão de alternância, em vez de separar as teclas on e off.

    
por 23.01.2014 / 17:40
4

Dê uma olhada no plug-in vim-textobj-underscore .

Trecho do README:

The textobj-underscore plugin provides two new text-objects which are triggered by a_ and i_ respectively. You can use them when you have to deal with the following type of words:

foo_bar_baz

Now, suppose you have to change bar to qux (* for cursor position). You can do the following:

foo_b*ar_bar

and type ci_ to get

foo_*_bar

Or you can type da_ to get foobar

    
por 23.01.2014 / 16:35
1

Você pode usar meu plug-in camelcasemotion ; ele fornece movimentos para pular para cada fragmento e objetos de texto para selecionar / trabalhar nessa parte (incluindo e excluindo o sublinhado).

    
por 23.01.2014 / 15:41

Tags