¿Los comandos cygwin vim son diferentes a los vim normales?

28

No puedo editar archivos de texto usando vim en cygwin.

Tengo que presionar imuchas veces para insertar texto. A veces funciona y a veces no. Cada vez que muevo el cursor hacia arriba, tengo que presionar I muchas veces.

¿Cual podría ser el problema? ¿ backspaceFunciona en cygwin?

Randhir Singh
fuente
¿Está ejecutando dentro de la consola nativa de Windows, en otro emulador de terminal que se ejecuta como una aplicación nativa, en un emulador de terminal que se ejecuta bajo X? ¿Qué versión de Windows? ¿Importa el retraso entre presionar ESCy presionar i?
Gilles 'SO- deja de ser malvado'

Respuestas:

34

Cygwin vim se entrega con la configuración predeterminada de vim, que deja a vim en modo de compatibilidad vi donde intenta emular el vi original lo más cerca posible. Entre otras limitaciones, las teclas de flecha no funcionan en ese modo, y la retroceso simplemente mueve el cursor hacia la izquierda en lugar de borrar un carácter.

Crear un vacío ~/.vimrces suficiente para deshabilitar el modo de compatibilidad vi:

touch ~/.vimrc

Dicho esto, ipara ingresar al modo de inserción debería funcionar de todos modos. Deberá proporcionar más detalles sobre dónde y cómo está ejecutando vim. Además, ¿está ejecutando realmente el vim que viene con Cygwin, o la versión nativa de vim de Windows?

Actualizar

Puede agregar los siguientes conjuntos en ~ / .vimrc para hacer que sea similar al vim predeterminado

set nocompatible
set backspace=indent,eol,start
set backup
set history=50
set ruler
set background=dark
set showcmd
set incsearch
syntax on
set hlsearch

Si vim no recoge su archivo vimrc, es posible que esté buscando un .vircarchivo. En este caso, cambie el nombre del archivo y se aplicarán los cambios.

ak2
fuente
Hubiera sido agradable si hubieras dicho cómo desactivar la compatibilidad.
Gedeón
¿Sabes dónde está la ubicación de inicio predeterminada de cygwin? Quiero crear .virc por GUI en lugar de cygwin
Alex
13

La forma más fácil es copiar el archivo vimrc de muestra de Cygwin VIM

cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc

Esto solucionará el problema para cada cuenta en su sistema. Si, por algún motivo, solo desea cambiarlo para un usuario en particular, haga

cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc

Ver referencia aquí

Gaurav
fuente
1
Esta debería ser la respuesta aceptada porque el ejemplo en realidad activa el resaltado de sintaxis de manera predeterminada y probablemente muchas otras configuraciones predeterminadas a las que la gente está acostumbrada.
JohnEye
No funcionó hasta que se reinició una PC. ¡Pero funciona!
3bdalla
Excelente respuesta, simple y resuelto todos los diferentes problemas que estaba viendo con una nueva instalación de cygwin, y el resaltado de sintaxis es una ventaja inesperada
crobicha
¡Esta es, de lejos, la mejor respuesta!
Theodore R. Smith
1
¿Dónde se encuentra ese archivo? Estaba buscando eso en / usr / share / pero luego no puedo ver ningún directorio llamado vim.
neo33
3

Tuve problemas con las teclas de flecha al intentar vim dentro de Windows 8.1 usando cygwin. El problema era, imprimir A / B / C / D mientras navegaba con las teclas de flecha en modo de inserción. La solución que funcionó para mí es:

cp vimrc_example.vim ~/.vimrc

Básicamente, el comando anterior copia el vimrc_example.vimarchivo a /home/<user name>/.vimrc.

Noufal
fuente
Eso me lo arregló. Tuve el mismo problema con la tecla de inserción y las flechas que no funcionan en vim. Eso fue en Windows 10.
Yanick Girouard
2

¿Estás seguro de que no estás usando vi en lugar de vim?

rfelsburg
fuente
1

Intenta de esta manera:

  • primero:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • luego, agregue esta línea a su ./.bashrcarchivo:

    alias vi="vim"
    
binghenzq
fuente
0

No, los comandos son exactamente iguales. Parece que tienes un problema de entrada. O su teclado está en mal estado o su terminal está en el fritz o algo así.

Caleb
fuente
0

Dependiendo de las características de su programa de terminal, cuando presiona una tecla de cursor, envía una secuencia de caracteres que comienza con la tecla ESC. Por ejemplo, la tecla de flecha hacia arriba envía los tres caracteres ESC [A. Con vim en modo de entrada, presionar una tecla de cursor puede terminar el modo de entrada cuando se ve ESC, y los caracteres posteriores pueden interpretarse como comandos vim. Como sale del modo de entrada, debe presionar i nuevamente para continuar insertando texto. Quizás esto es lo que te está pasando.

Compruebe si su terminal tiene opciones que pueden cambiar la emulación, como VT-100, VT-220, o una configuración que especifique lo que se envía cuando se presionan las teclas Retroceso o Supr. Cambiar esa configuración puede obtener el comportamiento que desea. Si está utilizando la consola de comandos nativa de Windows, probablemente no obtenga esas opciones.

Puede que tenga que evitar usar las teclas del cursor en el modo de entrada. Presione ESC para salir del modo de entrada, luego mueva el cursor, luego vuelva a presionar para obtener más información. Así es como los veteranos tuvimos que hacerlo antes de que vim se volviera lo suficientemente inteligente como para interpretar las teclas del cursor en el modo de entrada.

malabarista
fuente