La retroceso en el modo de inserción en vi no borra el carácter


70

Soy nuevo en vi, de hecho, he comenzado a aprender vi desde hoy y me he quedado atascado en el comportamiento de la tecla de retroceso.

En realidad, cuando encendí vi en mi Ubuntu 12.04 por primera vez, mi tecla de retroceso funcionaba normalmente, pero después de eso comenzó a comportarse de manera extraña. Cada vez que presiono la tecla de retroceso en el modo de inserción, solo se mueve un lugar hacia la izquierda en lugar de borrar el carácter.

¿Cómo puedo recuperar la funcionalidad de retroceso predeterminada? Tenga en cuenta que no quiero instalar vim o establecer nocompatibilty.

Respuestas:


39

Ese es el comportamiento correcto para vi, y borra el personaje, simplemente no lo muestra al reemplazarlo con un espacio en blanco como en vim. Será evidente cuando sobrescriba el carácter borrado con otro carácter o vuelva al modo de comando.

Por ejemplo, comenzando con el modo de comando en una línea vacía, lo siguiente dará como resultado la línea que contiene fo:

ifooBackspaceEsc

Antes de presionar la Esctecla, la línea se leerá foo, pero la última oha sido etiquetada como "columna de borrado". Consulte http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (principalmente el punto 4 bajo ese encabezado, y también navegue un poco más abajo para leer sobre <Control> -H)


73

Aquí está la solución más simple.
Abra una terminal, vaya al directorio de inicio y escriba

vi .vimrc

un nuevo archivo abierto ahora agregue estas líneas al archivo y salga guardando

$ set nocompatible
$ set backspace=2

9
El OP mencionó que no quieren usarnocompatibility
kiri

1
no hay necesidad de compatibilidad, también puede hacerlo simplemente agregando la segunda línea
Adithya Chakilam

1
La segunda línea solo funciona para mí si también agrego la primera línea.
djjeck

Comencé desde un .vimrc vacío y me pregunté por qué el retroceso no funcionaba en mac en iTerm2. ¡Muchas gracias!
Igor Malyk

@ minerz029 agregar, sin embargo, esta es la respuesta para la que la mayoría de la gente está aquí, ya que no había tal calificación en el título de la página.
Muhd

23

Debe cambiar al modo "insertar" moviendo el cursor con i. Hay otras formas de eliminar caracteres directamente. Puede descargar un powerpoint que uso cuando enseño una clase sobre VI aquí .

Parece que estás en el modo "Comando". Para mover el cursor:
H= Izquierda, J= Arriba, K= Abajo, L= Derecha

Una vez que haya colocado el cursor, puede eliminar el texto de la siguiente manera:
x Elimina el carácter debajo del cursor
X Elimina el carácter antes del cursor
dwElimina del cursor a la siguiente palabra
dd Elimina la línea en la que está el cursor.

Para ingresar texto , puede usar uno de los modos de ingreso de texto.
aAgrega texto a la derecha del cursor
AAgrega texto al final de la línea actual
iAgrega texto a la izquierda del cursor
IAgrega prueba al comienzo de la línea actual
oAbre una nueva línea debajo de la línea actual y te coloca en modo de ingreso de texto
OAbre una nueva línea sobre la línea actual y lo coloca en modo de ingreso de texto

Para salir del modo de entrada de texto y volver al modo de comando, use Esc.

Para deshacer los cambios: (Un favorito de los alumnos)
uDeshacer el último comando ingresado
UDeshacer todos los cambios en la ** línea actual **

Para guardar / salir: :wescribe (guarda) el archivo y permanece abierto
:wqEscribe (guarda) el archivo y sale de VI
:qSale ( sale ) si no ha realizado cambios
:q! Salga (sale) sin guardar los cambios
ZZEscribe (guarda) el archivo y sale de VI (igual que :wq)


11
El OP mencionó que el comportamiento misterioso ocurre en modo de inserción . Entonces esta no es la respuesta a la pregunta que se hace.
LarsH

En realidad, el OP no se indicó en modo de inserción . La pregunta fue editada.
Argusvision

1
Okay. Estás en lo correcto. Parece que hice una suposición. Según mi experiencia, la mayoría de las personas nuevas en VI se encuentran con problemas para cambiar de modo y navegar cuando están en el modo de comando. Mis estudiantes a menudo se quejan y culpan a VI por tener un comportamiento errático cuando es simplemente un error del usuario, o no tener una idea del conjunto de comandos.
Argusvision

1
Comprensible. Estoy de acuerdo en que es la reacción común al modo sin inserción.
LarsH

Argus, "en modo de inserción" se agregó al título de la pregunta en una edición, pero estaba en el cuerpo de la pregunta desde el principio.
LarsH

13

Instale el paquete vim completo para obtener la funcionalidad de retroceso y la tecla de flecha

sudo apt-get update
sudo apt-get install vim

Funciona como se esperaba. La mejor respuesta
Vicky

Esa es la respuesta perfecta. No es necesario editar ningún archivo de configuración, solo instale el vim-runtimepaquete y todo funcionará como estoy acostumbrado. ¡Gracias!
Olli D-Metz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.