NB Esta não é uma duplicata de Como funciona o comando "d3fg"? Leia antes de votar para fechar!
Cheguei a um impasse na minha busca para que pequenas exclusões funcionem como grandes . O problema que tenho é que não consigo descobrir como remapear comandos como esse d3d. De fato, nem consigo entender como eles funcionam, nem encontro nenhuma menção a eles na ajuda de Vim. *
d3jé direto: aplica o d
operador ao 3j
movimento,
3ddtambém é simples: executa o dd
comando com uma "contagem" de 3.
d3d parece que deve ser simples, aplica o d
operador ao… mas o que é 3d
? Não é um movimento. Se você digitar 3dpor conta própria, o Vim a tratará como uma contagem seguida por um operador e aguardará pacientemente por mais informações.
E você não pode aplicar operadores a outros operadores. ddnão é descrito na ajuda como uma sequência de dois operadores. É um comando separado, com duas teclas. (cf. dc, que não faz nada.)
Também não parece ser o caso de o posicionamento da contagem ser flexível para comandos que exigem duas teclas: 2gjmove o cursor para baixo duas linhas da tela, mas g2jdescarta as duas primeiras teclas pressionadas inteiramente e move o cursor para baixo uma linha.
Então, como isso funciona? Este é apenas um caso especial no código interno do Vim? Existe alguma maneira de criar um d[count]d
mapeamento?
EDIT : É um objeto de texto? :h text-objects
não incluí-lo na lista de "texto comandos de seleção objeto", mas então ele não incluem dd em uma lista de exclusões "agrupados desde pequenas a grandes objetos". E d2awexclui a palavra sob o cursor e a seguinte. Por outro lado, c2dnão faz nada.
* Tenho certeza de que alguma menção a eles deve existir, mas não consigo encontrá-la. Eu li :help deleting
, :help motion.txt
e tentou :helpgrep dNd
para todos os valores de N de 1-9 .
dd
é idêntico a d_
. _
leva o cursor para o primeiro não-espaço em branco na ( [count]
-1) ésima linha para baixo, mas é no sentido da linha; portanto, quando emparelhado com um operador, ele opera em linhas inteiras. Por esse motivo, faz sentido que uma contagem possa aparecer entre os dois d
s.
d
atua como uma confirmação; Então é o mesmo qued3<CR>
.y3y
ec3c
também funciona da mesma forma ... Não consigo encontrar nenhum documento sobre isso no Vim: help, vi (1), nvi (1) ou na especificação POSIX ... Ele se comporta da mesma formavi
envi
entre .