En Vim (7.2), hay un comando de modo normal r
para reemplazar un solo personaje con otro. Por ejemplo, escribir rX
reemplazará el carácter debajo del cursor con X
y luego lo regresará al modo normal.
¿Existe un comando en modo normal para insertar un solo carácter y luego volver al modo normal?
Respuestas:
MelBurslan tiene razón en que esta característica no existe de forma nativa, pero crear un comando definido por el usuario no es realmente la forma de crearlo. Jugué unos minutos y se me ocurrió esto:
Que utiliza algunos trucos de Vim que implican "poner" texto de un registro, en este caso el registro de "expresión". La expresión que se está conectando al registro es "
nr2char(getchar())
", que devolverá una cadena de caracteres única.La razón por la que construí el mapeo de esta manera es porque obtener la entrada del usuario "a mitad de camino" es complicado y puede comportarse de manera impredecible; incluso esta asignación colocará el cursor en el área de estado mientras espera que el usuario escriba un carácter.
fuente
Gracias a Johnny por darnos esta excelente respuesta en los comentarios a continuación:
Eso asigna Control + i para insertar un solo carácter, y lo hace de manera muy concisa.
En su archivo vimrc, esto se verá así:
Cambié mi mapeo para usar el espacio, y puedes cambiar el tuyo a tu (s) clave (s) preferida (s):
fuente
Hasta donde yo sé, no existe tal función en ninguna encarnación ampliamente distribuida de vi editor pero, vim tiene una facilidad para crear comandos personalizados. Se ha discutido anteriormente aquí: en este hilo
Es posible que pueda crear su comando personalizado haciendo lo que desea hacer.
fuente
Una manera simple de hacer esto es usar los comandos Cortar xy Poner p. Digamos que ese
*
es el carácter que desea insertar. Insértalo usando i * Esc. Entonces golpear x. Eso cortará al personaje. Ahora, puedes golpear ppara poner el personaje único. Si es necesario insertar caracteres que 300 veces, puede escribir:300p
.fuente