Come uscire dall’editor Vim?

Sono bloccato e non posso sfuggire. Dice:

"type :quit to quit VIM" 

Ma quando scrivo, appare semplicemente nel corpo dell’object.

Premi il tasto Esc per accedere alla “Modalità normale”. Quindi puoi digitare : per entrare in “Modalità riga di comando”. I due punti (:) appariranno nella parte inferiore dello schermo ed è ansible digitare uno dei seguenti comandi. Per eseguire un comando, premere il tasto Invio .

  • :q to quit (abbreviazione di :quit )
  • :q! uscire senza salvare (abbreviazione di :quit! )
  • :wq per scrivere e uscire
  • :wq! scrivere e uscire anche se il file ha solo il permesso di lettura (se il file non ha il permesso di scrittura: force write)
  • :x per scrivere e uscire (simile a :wq , ma solo scrivere se ci sono cambiamenti)
  • :exit per scrivere e uscire (uguale a :x )
  • :qa per uscire da tutti (abbreviazione di :quitall )
  • :cq per uscire senza salvare e fare in modo che Vim restituisca un errore diverso da zero (es. exit with error)

Puoi anche uscire da Vim direttamente da “Command mode” digitando ZZ per salvare e uscire (come per esempio :x ) o ZQ per uscire (come per :q! ). (Nota che il caso è importante qui. ZZ e zz non significano la stessa cosa.)

Vim ha un ampio aiuto – che puoi accedere con il comando :help – dove puoi trovare le risposte a tutte le tue domande e un tutorial per principianti.

Prima di inserire un comando, premi il tasto Esc . Dopo averlo inserito, premi il tasto Invio per confermare.

Esc termina il comando corrente e passa Vim alla modalità normale . Ora se si preme :, il : verrà visualizzato nella parte inferiore dello schermo. Ciò conferma che stai effettivamente digitando un comando e non modificando il file.

La maggior parte dei comandi ha delle abbreviazioni, con la parte opzionale racchiusa tra parentesi: c[ommand] .

I comandi contrassegnati con ‘*’ sono solo Vim (non implementati in Vi).

Safe-quit (fallisce se ci sono modifiche non salvate):

  • :q[uit] Esci dalla finestra corrente. Esci da Vim se questa è l’ultima finestra. Questo fallisce quando sono state apportate modifiche nel buffer corrente.
  • :qa[ll] * Chiudi tutte le windows e Vim, a meno che non ci siano alcuni buffer che sono stati modificati.

Prompt-quit (richiede se ci sono modifiche non salvate)

  • :conf[irm] q[uit] * Esci, ma dai :conf[irm] q[uit] quando ci sono dei buffer che sono stati modificati.
  • :conf[irm] xa[ll] * Scrivi tutti i buffer modificati e esce da Vim. Richiama un prompt quando alcuni buffer non possono essere scritti.

Scrivi (salva) le modifiche ed esci:

  • :wq Scrivi il file corrente (anche se non è stato modificato) e chiudi. La scrittura non riesce quando il file è di sola lettura o il buffer non ha un nome. :wqa[ll] * per tutte le windows.
  • :wq! Lo stesso, ma scrive anche i file di sola lettura. :wqa[ll]! * per tutte le windows
  • :x[it] , ZZ (con dettagli ). Scrivi il file solo se è stato modificato e chiudi :xa[ll] * per tutte le windows.

Annulla le modifiche ed esci:

  • :q[uit]! ZQ * Esci senza scrivere, anche quando i buffer visibili hanno delle modifiche. Non esce quando vengono modificati i buffer nascosti.
  • :qa[ll]! * :quita[ll][!] * Esci da Vim, tutte le modifiche ai buffer (incluso nascosto) vanno perse.

Premi Invio per confermare il comando.

Questa risposta non fa riferimento a tutti i comandi e agli argomenti di Vim write e quit. In effetti, sono referenziati nella documentazione di Vim .

Vim ha una vasta guida integrata, digitare Esc :help Return per aprirlo.

Questa risposta è stata ispirata dall’altra , originariamente creata da @dirvine e modificata da altri utenti SO. Ho incluso più informazioni dal riferimento Vim, dai commenti SO e da altre fonti. Anche le differenze per Vi e Vim sono riflesse.

Le immagini valgono più di mille comandi e opzioni Unix:

Inserisci qui la descrizione dell'immagine

Attingo questo ai miei studenti ogni semestre e sembrano cogliere vi dopo.

vi è una macchina a stati finiti con solo tre stati.

All’avvio, vi entra in modalità COMMAND, dove è ansible digitare brevi, pochi comandi di carattere, alla cieca . Sai cosa stai facendo; questo non è per i dilettanti.

Quando vuoi veramente modificare il testo, devi andare in modalità INSERT con un comando di un solo carattere:

  • i: andare su INSERISCI al posto del cursore
  • I: andare in modalità INSERT all’inizio della riga
  • a: aggiungi dopo il cursore
  • A: append alla fine della riga
  • o: apre una nuova riga sotto la riga corrente
  • O: apri una nuova riga al posto della riga corrente

Ora, rispondendo alla domanda: uscendo.

È ansible uscire da vi dalla modalità EX:

  • q: se non hai apportato modifiche o salvato prima
  • q !: ignora qualsiasi modifica ed esce
  • wq: salva e chiudi
  • x: questo è uguale a wq

w e x accettano un parametro per il nome del file. Se hai avviato vi con un nome file, non devi darlo di nuovo qui.

Alla fine, il più importante: come puoi raggiungere la modalità EX?

La modalità EX è per i comandi lunghi che puoi vedere digitando nella riga inferiore dello schermo. Dalla modalità COMMAND, si premono i due punti:, e appariranno due punti nella riga inferiore, dove è ansible digitare i comandi sopra.

Dalla modalità INSERT, è necessario premere ESC, cioè il pulsante Esc, andando in modalità COMMAND, quindi: per passare alla modalità EX.

Se non sei sicuro, premi ESC e questo ti porterà in modalità comando.

Quindi, il metodo robusto è ESC -: – x-Enter che salva il file e si chiude.

Se vuoi uscire senza salvare in Vim e avere Vim restituire un codice di uscita diverso da zero, puoi usare :cq .

Lo uso sempre perché non posso essere disturbato per il cambio di pinky ! . Conduco spesso cose su Vim che non devono essere salvate in un file. Abbiamo anche uno strano wrapper SVN al lavoro che deve essere chiuso con un valore diverso da zero per poter interrompere un check-in.

Questo è per lo scenario peggiore di uscire da Vim se vuoi solo uscire, non hai idea di cosa hai fatto e non ti importa di cosa accadrà ai file che hai aperto.

Ctrl-c Enter Enter vi Enter Ctrl- \ Ctrl-n :qa! accedere

Questo dovrebbe tirarti fuori la maggior parte del tempo.

Alcuni casi interessanti in cui hai bisogno di qualcosa del genere:

  • i Ctrl-o vg (si entra in modalità di inserimento, quindi in modalità visiva e quindi in modalità di attesa operatore)

  • Qappend Invio

  • i Ctrl-o gQ Ctrl-r = Ctrl-k (grazie ai pori per questo caso)

  • :set insertmode (questo è un caso quando Ctrl- \ Ctrl-n ritorna alla modalità normale)


Modifica: questa risposta è stata corretta a causa dei casi precedenti. Un tempo era:

Esc Esc Esc :qa! accedere

Tuttavia, ciò non funziona se è stata triggersta la modalità Ex. In tal caso dovresti fare:

vi Invio :qa! accedere

Quindi un comando completo per “Non voglio sapere cosa ho fatto e non voglio salvare nulla, voglio solo ora!” sarebbe

vi Inserisci Esc Esc Esc :qa! accedere

Nel caso in cui tu debba uscire da Vim in modalità facile (usando l’opzione -y ) puoi entrare nella normale modalità Vim premendo Ctrl + L e poi funzionerà qualsiasi delle normali opzioni di uscita.

Dopo aver premuto ESC (o cmd + C sul mio computer) devi premere : per far apparire il prompt dei comandi. Quindi, puoi entrare in quit .

Potresti scoprire che la macchina non ti consente di uscire perché le tue informazioni non sono state salvate. Se vuoi uscire comunque, entra ! direttamente dopo la chiusura (es :quit! ).

Vim ha tre modalità di funzionamento: modalità di input, modalità di comando e modalità Ex.

Modalità di input : tutto ciò che si digita, tutti i tasti vengono riprodotti sullo schermo.

Modalità di comando o modalità di fuga : tutto ciò che viene digitato in questa modalità viene interpretato come un comando.

Modalità Ex : questo è un altro editor, ex. È un editor di riga. Funziona per linea o in base a un intervallo di linee. In questa modalità, a : viene visualizzato nella parte inferiore dello schermo. Questo è l’ex editor.

Per uscire da Vim, puoi uscire mentre sei in modalità ex o in modalità comando. Non puoi uscire da Vim quando sei in modalità di inserimento.

Uscita dalla modalità ex

  1. Devi essere sicuro di essere in modalità Comando. Per farlo, basta premere il tasto Esc .

  2. Passare alla modalità ex premendo il tasto :

  3. Utilizzare una delle seguenti combinazioni in modalità ex per uscire:

    :q – esci :q! – esci senza salvare :wq – salva e esci o scrivi e esci :wq! – Uguale a wq, ma forza la scrittura nel caso in cui i permessi dei file siano di sola lettura :x – write & quit :qa – exit all. utile quando vengono aperti più file come: vim abc.txt xyz.txt

Uscita dalla modalità comando

  1. Premere il tasto Esc. Probabilmente lo hai già fatto se sei in modalità di comando.

  2. Premi capitale ZZ ( shift zz ) – salva e esci

  3. Premi capitale ZQ ( shift zq ) – esci senza salvare.

Ho Vim installando un client Git su Windows. :q non uscirebbe Vim per me. :exit ha comunque …

Vorrei aggiungere i miei due centesimi su questo. La domanda è stata posta qui .

Il comando q con numero chiude la divisione data in quella posizione.

:q o :q chiuderà la divisione in quella posizione.

Supponiamo che il layout della finestra di Vim sia il seguente:

 ------------------------------------------------- | | | | ------------------------------------------------- | | | | | | | | | Split 1 | Split 2 | Split 3 | | | | | ------------------------------------------------- 

Se si esegue il comando q1 , verrà chiusa la prima divisione. q2 chiuderà la seconda divisione e viceversa.

L’ordine della posizione di divisione nel comando di uscita non ha importanza. :2q o :q2 chiuderà la seconda divisione.

Se la posizione di divisione che si passa al comando è maggiore del numero di suddivisioni correnti, verrà semplicemente chiuso l’ultimo split.

Ad esempio, se si esegue il q100 nella configurazione della finestra sopra, in cui sono presenti solo tre divisioni, verrà chiusa l’ultima divisione (Divisione 3).

Ecco come puoi uscire da Vim. Premi Ctrl e ‘Z’ poi ‘X’ e ‘C’.

 Ctrl -> +Z -> +X -> +C 

Premendo Esc (o Ctrl + C ), e poi si digita :q dove q sta per quit .

Potresti aspettarti che la macchina non ti consenta di uscire, perché non hai salvato ciò su cui stai lavorando.

In questo caso, è necessario digitare :wq per salvare e uscire o :q! per smettere senza salvare.