tutorial online instalar editar commands comandos comando vim

online - vim editor commands



Encuentra el personaje debajo del cursor en vim (6)

A continuación se asignará <leader>z (por lo general, /z )

:nnoremap <leader>z xhp/<CR>-<CR>

Hazme saber si esto funciona para ti.

En vim, ¿cómo puedo encontrar la siguiente aparición del personaje debajo del cursor? Quiero algo como * pero para un solo personaje en lugar de una palabra.

Ejemplo:

H|o|w are you?

va a:

How are y|o|u?

La razón por la que quiero es porque hay un personaje extraño (uno que ni siquiera sé cómo escribir) en todo mi archivo y quiero eliminarlos todos rápidamente.


Bueno, para usar un truco rápido solo use * , no encontrará nada, excepto usted, que presione / , <arriba> y edite el patrón. Solo funciona si vim reconoce el personaje como parte de la palabra, desafortunadamente.


Entonces simplemente use una regla para reemplazarlos a todos

:%s/search/replacement/

Esto reemplaza todas las ocurrencias de search con replacement .


En una sola línea puedes usar fo y luego ; para avanzar (o , hacia atrás).

En líneas múltiples, debe usar /o y luego n para avanzar (o N hacia atrás).

Alternativamente, su problema podría resolverse usando regexp y sustituto, es decir :%s/[your odd character]//g

Para lograr copiar y pegar su "carácter impar", debe ingresar en modo visual usando v para seleccionar el carácter, luego y ESC .

Luego escriba:: :%s/<CTRL+r>"//g

<CTRL+r>" copiará el contenido del registro de copia en la línea de comando.


También mira

g a (muestra el carácter debajo del cursor como ascii)

g 8 (muestra el carácter debajo del cursor como utf8, incluyendo material Unicode, códigos hexadecimales, etc.)

Y lo más útil:

8 g 8

Find an illegal UTF-8 byte sequence at or after the cursor. This works in two situations: 1. when ''encoding'' is any 8-bit encoding 2. when ''encoding'' is "utf-8" and ''fileencoding'' is any 8-bit encoding Thus it can be used when editing a file that was supposed to be UTF-8 but was read as if it is an 8-bit encoding because it contains illegal bytes. Does not wrap around the end of the file. Note that when the cursor is on an illegal byte or the cursor is halfway a multi-byte character the command won''t move the cursor.

Actualizar

Utilice el plugin vim-characterize Tim Pope para obtener nombres y datos UNICODE completos:

En Vim, presionar ga en un personaje revela su representación en decimal, octal y hex.

Characterize.vim lo moderniza con las siguientes adiciones:

  • Nombres de caracteres Unicode: U + 00A9 SÍMBOLO DE DERECHO DE AUTOR
  • Dígrafos de Vim (escriba después de insertar el carácter): Co, cO
  • Códigos Emoji:: copyright:
  • Entidades HTML: ©

:exec ''%s/''.getline(''.'')[col(''.'')-1].''//g''

Si es un personaje especial, deberás agregar una barra invertida, pero dado que todos los caracteres especiales son escribibles, supongo que no.

Editar: para que funcione con un carácter de varios bytes, reemplace getline(''.'')[col(''.'')-1] por matchstr(getline(''.''), ''.'', col(''.'')-1) (ver esta respuesta ).