¿Cómo puedo tirar (copiar) el único carácter en el que descansa el cursor?

49

Sé muchas maneras de copiar cosas:

yiw= tirar en la palabra actual
yaw= tirar toda la palabra (incluye un espacio final)
yy = tirar la línea actual
3yy= tirar tres líneas que comienzan en la actual
yap= tirar todo el párrafo (incluye una nueva línea)

También puedo eliminar o cambiar un solo carácter:

x= eliminar el carácter debajo del cursor
r= reemplazar el carácter debajo del cursor

Pero, ¿cómo demonios simplemente copia un solo personaje debajo del cursor?

Mi motivación es que estoy programando en Perl 6 y algunos de los operadores son personajes Unicode. En este momento estoy usando el código Perl 6 Config :: INI de tadzik como punto de partida para un analizador personalizado, por ejemplo, y me hubiera gustado haber copiado solo ese carácter de comillas en francés (un hiperoperador) de esta línea :

my %hash = $<sections>».ast;

Podría usar la versión de dos caracteres "Texas" del hiper operador >>, pero pensé que se veía mejor y menos ambiguo que >>>:

my %hash = $<sections>>>.ast;

ingrese la descripción de la imagen aquí
ingrese la descripción de la imagen aquí

Christopher Bottoms
fuente
1
Componga fácilmente la operación con el movimiento, como de costumbre:yl
VanLaser
@VanLaser ¡Buena idea! Estaba pensando que el movimiento no funcionaría porque solo quería ese personaje. Pero su sugerencia funciona muy bien para ASCII. Publíquelo como respuesta y lo votaré. Curiosamente, no funciona con este personaje Unicode, pero ytX(" yank til X") parece funcionar cuando Xestá el personaje a la derecha.
Christopher Bottoms
Me pregunto, ¿es ese un personaje, ya sea Unicode, o no hay dos personajes, ocultos / reemplazados usando la concealfunción Vim ?
VanLaser
@VanLaser Parece dos "personajes".
Christopher Bottoms
Por cierto, ¿cómo presentas al »personaje?
VanLaser

Respuestas:

41

Componer la operación con el tirón tan a menudo utilizado "un carácter a la derecha" movimiento debería funcionar: yl.

Por cierto (para comentar un comentario OP), para mí »se puede tirar de esta manera, en gVim o terminal Vim. ¿Quizás un problema de codificación (de archivo)?

VanLaser
fuente
44
Yanking también »funciona bien para mí. Yo uso vydar un tirón a un solo carácter. No estoy seguro de por qué uso eso en lugar de yl, tal vez tuve una razón consciente una vez, pero ahora es solo reflejo.
jjaderberg
3
Siempre he y<space>pensado que era tirar del personaje debajo del cursor, e iba a agregarlo como respuesta, pero después de verificar la ayuda me doy cuenta <space>y lson lo mismo.
Brett Y
Eso es bueno, y aparentemente aún más fácil de golpear, excepto tal vez cuando el espacio se usa como líder.
VanLaser
1
@jjaderberg Me gusta tu comentario, publícalo como respuesta. ¡Gracias!
Christopher Bottoms
1
@brettanomyces Me gusta tu comentario, publícalo como respuesta. ¡Gracias!
Christopher Bottoms
14

Por lo general, presiono vy( visual yank ), a veces xu( eliminar deshacer ) también. Además, si desea tirar del carbón antes de su cursor, en lugar de lvypresionar Xu, creo que esa es la razón por la que presiono xupara la corriente. :-)

Tenga en cuenta que, Xuhará que su cursor se mueva a ese carácter.

Kent
fuente
¿Quiere decir hvy. Traté de editarlo, pero aparentemente corregir un carácter en un comando vim no es un cambio significativo para ser aceptable.
Shahbaz
9

La forma más simple que sé hacer esto es usarlo xpara eliminar el carácter, que también lo coloca en el búfer y luego Pvolverlo a colocar. A continuación, puede mover el cursor y pegar el carácter hacia atrás donde lo desee p(después del cursor) o P(antes del cursor), siempre que no cambie el búfer.

BruceK
fuente