xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
E um objeto de texto bruto "buffer":
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---EDITAR---
"Operador" é um comando que não faz nada por si só: d, y, etc.
Pressionar essas teclas coloca você no "modo de operador pendente", onde o Vim espera que você diga o que deseja que ele opere ... com um "movimento de operador pendente".
Você pode usar :omapou :onoremappara definir movimentos personalizados pendentes do operador. A técnica usada aqui é inspirada em :help omap-info:
você define um mapeamento de modo visual que cobre a área desejada,
você usa esse mapeamento em um mapeamento pendente de operador.
Note que eu usei :onoremapporque il, ale i%ainda não existe. Se você está substituindo um movimento existente ou texto-objeto - digamos ip- você deve usar um mapeamento recursiva: :omap.
:help :map-operator descreve um método um pouco mais avançado.
Legal. Você se importaria de explicar alguns pedaços? O que é o(modo pendente do operador) no onoremap? O que faz ono modo visual? Eu acho que é o "outro lado", porque parece pular para o outro lado de uma seleção ... Como encontro :hisso? Não consigo encontrá-lo com :h x_oou :h o.
Lindhe
Explicação adicionada.
Romainl
1
Eu sugeriria uma solução adicional, para usar ^ em vez de 0 (para que a linha comece no início do primeiro caractere:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
Dessa forma, se "mudarmos de linha", ele respeitará o nível de indentação.
Respostas:
Aqui está um objeto de texto "linha" bruto:
E um objeto de texto bruto "buffer":
---EDITAR---
"Operador" é um comando que não faz nada por si só:
d
,y
, etc.Pressionar essas teclas coloca você no "modo de operador pendente", onde o Vim espera que você diga o que deseja que ele opere ... com um "movimento de operador pendente".
Você pode usar
:omap
ou:onoremap
para definir movimentos personalizados pendentes do operador. A técnica usada aqui é inspirada em:help omap-info
:Note que eu usei
:onoremap
porqueil
,al
ei%
ainda não existe. Se você está substituindo um movimento existente ou texto-objeto - digamosip
- você deve usar um mapeamento recursiva::omap
.:help :map-operator
descreve um método um pouco mais avançado.Veja
:help v_o
parao
no modo visual.fonte
o
(modo pendente do operador) no onoremap? O que fazo
no modo visual? Eu acho que é o "outro lado", porque parece pular para o outro lado de uma seleção ... Como encontro:h
isso? Não consigo encontrá-lo com:h x_o
ou:h o
.Eu sugeriria uma solução adicional, para usar ^ em vez de 0 (para que a linha comece no início do primeiro caractere:
Dessa forma, se "mudarmos de linha", ele respeitará o nível de indentação.
fonte