I comandi di Cygwin Vim sono diversi dai normali VIM?


28

Non riesco a modificare i file di testo usando vim in cygwin.

Devo premere ipiù volte per inserire il testo. A volte funziona e talvolta no. Ogni volta che muovo il cursore verso il basso, devo premerlo più volte.

Quale potrebbe essere il problema? Fa backspaceil lavoro in Cygwin?


Stai eseguendo all'interno della console Windows nativa, in un altro emulatore di terminale in esecuzione come applicazione nativa, in un emulatore di terminale in esecuzione sotto X? Quale versione di Windows? Il ritardo tra la pressione ESCe la pressione è iimportante?
Gilles 'SO- smetti di essere malvagio' il

Risposte:


34

Cygwin vim viene fornito con la configurazione predefinita di vim, che lascia vim nella modalità di compatibilità vi dove tenta di emulare il vi originale il più vicino possibile. Tra le altre limitazioni, i tasti freccia non funzionano in quella modalità e il backspace sposta semplicemente il cursore a sinistra anziché cancellare un carattere.

La creazione di un vuoto ~/.vimrcè sufficiente per disabilitare la modalità di compatibilità vi:

touch ~/.vimrc

Detto questo, iper entrare in modalità inserimento dovrebbe funzionare comunque. Dovrai fornire maggiori dettagli su dove e come stai eseguendo VIM. Inoltre, stai effettivamente eseguendo il vim fornito con Cygwin o la versione nativa di Vim per Windows?

Aggiornare

È possibile aggiungere i seguenti set in ~ / .vimrc per rendere simile a vim predefinito

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

Se vim non raccoglie il tuo file vimrc, potrebbe invece cercare un .vircfile. In questo caso, rinominare il file e le modifiche verranno applicate.


Sarebbe stato carino se avessi detto come disattivare la compatibilità.
Gideon,

Sai dov'è la posizione base predefinita di cygwin? Voglio creare .virc dalla GUI invece di Cygwin
Alex

13

Il modo più semplice è copiare il file vimrc di esempio di Cygwin VIM

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

Questo risolverà il problema per ogni account sul tuo sistema. Se, per qualche motivo, vuoi solo cambiarlo per un determinato utente, fallo

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

Vedi riferimento qui


1
Questa dovrebbe essere la risposta accettata perché l'esempio in realtà attiva l'evidenziazione della sintassi per impostazione predefinita e probabilmente molte altre impostazioni predefinite a cui le persone sono abituate.
JohnEye,

Non ha funzionato fino al riavvio del PC. Ma funziona!
3bdalla,

Risposta eccellente, semplice e risolto tutti i diversi problemi che stavo riscontrando con una nuova installazione di Cygwin e l'evidenziazione della sintassi è un bonus inaspettato
crobicha,

Questa è di gran lunga la risposta migliore !!
Theodore R. Smith,

1
dove si trova quel file? stavo cercando quello in / usr / share / ma poi non riesco a vedere nessuna directory chiamata vim.
neo33,

3

Ho avuto problemi con i tasti freccia mentre provavo vim in Windows 8.1 usando cygwin. Il problema era stampare A / B / C / D durante la navigazione con i tasti freccia in modalità inserimento. La soluzione ha funzionato per me è:

cp vimrc_example.vim ~/.vimrc

Fondamentalmente, sopra il comando copia il vimrc_example.vimfile in /home/<user name>/.vimrc.


Ciò ha risolto il problema per me. Ho avuto lo stesso problema con la chiave di inserimento e le frecce che non funzionavano in VIM. Quello era su Windows 10.
Yanick Girouard il


1

Prova in questo modo:

  • primo:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • quindi aggiungi questa riga al tuo ./.bashrcfile:

    alias vi="vim"
    

0

No, i comandi sono esattamente gli stessi. Sembra che tu abbia un problema di input. O la tua tastiera è incasinata o il tuo terminale è in crisi o qualcosa del genere.


0

A seconda delle caratteristiche del programma terminale, quando si preme un tasto cursore invia una sequenza di caratteri che iniziano con il tasto ESC. Ad esempio, il tasto Freccia su invia i tre caratteri ESC [A. Con vim in modalità input, premendo un tasto cursore si può terminare la modalità input quando si vede ESC e i caratteri successivi possono essere interpretati come comandi vim. Poiché esce dalla modalità di input, è necessario premere di nuovo i per continuare a inserire testo. Forse è quello che sta succedendo per te.

Controlla se il tuo terminale ha opzioni che possono modificare l'emulazione, come VT-100, VT-220 o un'impostazione che specifica cosa viene inviato quando si premono i tasti Backspace o Canc. La modifica di tali impostazioni può ottenere il comportamento desiderato. Se stai utilizzando la console di comando nativa di Windows, probabilmente non ottieni queste opzioni.

Potrebbe essere necessario evitare di utilizzare i tasti cursore nella modalità di inserimento. Premere ESC per uscire dalla modalità di input, quindi spostare il cursore, quindi di nuovo i per ulteriori input. È così che noi vecchi esperti dovevamo farlo prima che Vim diventasse abbastanza intelligente da interpretare i tasti cursore in modalità input.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.