Personalização de separadores de palavras em vi
Pergunta
VI trata -
traço e
espaço como separadores de palavras para comandos como dw
e cw
.
Existe uma maneira de adicionar _
sublinhado também?
Eu muitas vezes quer mudar parte de um nome de variável que contém sublinhados, como alterar src_branch
para dest_branch
. Eu acabar contando caracteres e usando s
(como 3sdest
), mas seria muito mais fácil usar cw
(como cwdest
).
Solução
No caso de você estiver usando vim, você pode mudar isso configurando a opção iskeyword
(:he iskeyword
). Se isso não for uma opção, você sempre pode usar ct_
em vez de contagem.
Outras dicas
Existe uma maneira de adicionar
_
sublinhado também?
:set iskeyword-=_
Uma outra boa opção nesses casos é usar camelcasemotion plug-in .
Acrescenta nova ,b
movimentos, ,e
e ,w
, que funcionam de forma análoga com b
, e
e w
, exceto que eles reconhecem palavras CamelCase e snake_case. Com ele você pode usar
c,edest
e isso vai substituir "src_branch" com "dest_branch" se o cursor estava no primeiro caractere de "src_branch".
Você pode digitar cf_dest_
e salvar a parte de contagem.
Editar: ou como sugerido: ct_
altera o texto até mesmo antes do caractere sublinhado. (Estou usando o movimento f
mais, por isso veio mais naturalmente para mim)
Ou você poderia redefinir 'iskeyword'
(:help iskeyword
para detalhes).
Eu estava apenas olhando para este eu mesmo e adicionou isto à minha .vimrc:
set iskeyword=!-~,^*,^45,^124,^34,192-255,^_
O meu .vimrc teve problemas com ^ | e ^", que fazia parte do iskeyword padrão para a minha configuração, então eu mudei para os valores ASCII e ele funciona muito bem. A minha principal modificação foi adicionar '^ _' ao final da configuração padrão para manter vim de ver sublinhado como sendo parte de uma palavra.