Come chiudere vim dalla riga di comando?


46

So che questa è più una domanda linux generale ma w / e. Quindi quando entro in un programma come VIM nel prompt dei comandi visualizza tutto il testo nel file e posso modificarlo ecc. Ma non riesco a capire come chiudere o salvare il file e tornare al prompt dei comandi senza uccidere il processo. Qualsiasi aiuto è apprezzato.




Risposte:


72

In vim ci sono 3 diverse modalità:

  • Inserisci: consente di digitare e modificare normalmente
  • Visual: utilizzato per selezionare copia / incolla ecc.
  • Normale: utilizzato per i comandi

Per tornare alla modalità normale, è sempre possibile premere esc.

Quando sei in modalità Normale Premi :per iniziare il tuo comando (lo vedrai apparire in basso a sinistra). I seguenti comandi sono correlati all'uscita da vim:

  • :q - Esci se non sono state apportate modifiche
  • :q! - uscire e distruggere tutte le modifiche apportate
  • :wq - scrivere le modifiche (salvare) ed uscire
  • :x- simile a :wq, scrivere il file solo se sono state apportate modifiche, quindi uscire

4
ed :xè una scorciatoia per:wq
Ward Muylaert,

2
Hai appena dimenticato la modalità "normale". Wow. In realtà la mode()funzione in vim può restituire 18 valori distinti.
Benoit,

Come accennato da Benoit, questa risposta usa confusamente il termine "modalità di comando" per riferirsi a ciò che la documentazione di Vim chiama "modalità normale". I documenti di vim considerano la modalità di comando come quella immessa premendo :in modalità normale. Se si colpisce esc, si ritorna alla modalità normale. -1 per essere fuorviante per le persone che cercano di apprendere la terminologia standard (e di conseguenza essere in grado di dare un senso al sistema di aiuto).
intuito il

6
@intuited Chiunque può suggerire modifiche, che probabilmente sarà più utile a lungo termine di un voto negativo e di un buon consiglio che verrà seppellito nei commenti.
Michael Martin-Smucker,

Grazie per le informazioni, dovrebbe anche essere mostrato da qualche parte in VIM in modo che uno possa sapere ... è così ridicolo cercarlo su Internet.
Shridutt Kothari,

14

Per prima cosa, premi il escapetasto. 1

Quindi digita ZZ(sono due Z maiuscole di seguito).
Oppure digitare :x. O salverà eventuali modifiche e lascerà.
Puoi anche usare:wq

In alternativa, puoi digitare :q (aka, " esci, per favore "). Questo verrà chiuso solo se non hai apportato modifiche.

Se hai apportato modifiche e vuoi scartarle e andartene, digita :q!(alias " esci, accidenti !")

1 : Questo ti assicura di essere in modalità "comando". Che vuoi per digitare comandi, come quelli necessari per uscire.


4

Con nostro grande inconveniente, non esiste un metodo generale per uscire dai programmi da riga di comando come esiste il pulsante "X" per i programmi grafici.

Molti programmi da riga di comando seguono il tema dell'utilizzo di Q(eg mane top) o Ctrl+ C(eg pinge watch) per uscire, ma questo varia notevolmente, specialmente tra gli editor di testo:

  • Vim in particolare usa l'oscura combinazione di :q!allora Enter, di solito preceduta da diverse pressioni di Escper buona misura.
  • Emacs , un'altra gemma, preferisce Ctrl+ Xseguito da Ctrl+ C.

Redattori come questo sono trappole per chi non ha esperienza. La mia preferenza personale e la mia raccomandazione è di, quando sono costretto a modificare il testo dalla riga di comando, usare invece il più esplicito Joe's Own Editor (JOE) .


4
In realtà direi che si nanotratta di un editor di testo per console autoesplicativo molto più universale.
jondavidjohn,

@jondavidjohn La tua contesa è discutibile. Concordo sul fatto che nano sia senza dubbio più universale e non pretendo che sia meno esplicativo di JOE. La mia preferenza per JOE è dovuta al suo set di funzionalità ampliato e la mia raccomandazione agli utenti inesperti è influenzata da sottigliezze come l'uso del termine Salva al posto dell'Arcaic WriteOut .
ændrük,

In genere è possibile utilizzare ^ Z per sospendere il processo. Quindi puoi ucciderlo, ignorarlo, metterlo in background o riportarlo indietro. (uccidi% 1 o uccidi% x, bg, fg). C'è comunque una certa unità di controllo del lavoro.
belacqua,

3

Accanto alla risposta di jondavidjohn, ecco due link che contengono informazioni indispensabili sull'uso di vim.

  1. Questa è un'immagine della tastiera che mostra cosa fa ogni tasto in base alla modalità di modifica, alla modalità di comando o alla modalità visiva:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. Questo è il miglior tutorial di vim che abbia mai lavorato. È colloquiale e di facile comprensione, grazie al formato IRC / di messaggistica istantanea.

    http://www.vi-improved.org/tutorial.php

Infine, ci sono alcuni come aendruk che semplicemente non vogliono usare editor di testo da riga di comando avanzati. Vim in particolare ha una ripida curva di apprendimento e in realtà fa uno sforzo iniziale per abituarsi. Ma è molto veloce e molto potente. Se sei interessato a Linux oltre all'utilizzo di base del desktop, vale la pena dedicare del tempo all'apprendimento di un decente editor di testo da riga di comando come Vim o Emacs. Se hai solo bisogno di modificare del testo e non ti interessa molto oltre, prova gedit filename.txtinvece a digitare . Avvierà un familiare programma grafico, molto simile a Blocco note di Windows.


@djeikyb: apprezzo che tu faccia la distinzione tra l'utilizzo di base del desktop e la modifica avanzata del testo da riga di comando. La forza di Ubuntu rispetto ad altre distribuzioni Linux è nella sua capacità di rendere accessibile il desktop Linux da parte degli utenti di computer di tutti i giorni, che al suo attivo sono ora sempre più periti dal lusso unico di non aver mai bisogno di sapere cosa sono anche gli editor come Vim.
ændrük,

... È con questa speciale libertà in mente che prendo la decisione di lavorare molto al di sopra dei tradizionali metodi della riga di comando di Linux come ho la pazienza durante l'uso quotidiano del computer. Mi sforzo di utilizzare solo strumenti semplici e accessibili soprattutto perché posso permettermelo . Sarebbe inesatto affermare che semplicemente non mi piacciono gli editor di testo da riga di comando. Al contrario, mi è affezionato a Vim con il suo plugin VimOutliner, e sono in debito con esso per la sua influenza sul progetto Vimperator / Pentadactyl.
ændrük,

... Tuttavia, vedo il mio uso personale di questi strumenti come una deviazione dall'uso tipico del computer. Sono dell'opinione che sarebbe uno sviluppo sano per la comunità Ubuntu suggerire meno facilmente ai nuovi arrivati ​​che l'uso casuale di strumenti avanzati con curve di apprendimento ripide è la norma tra gli utenti di tutti i giorni.
ændrük,

@Letseatlunch, se il tuo obiettivo è diventare esperto in Vim, allora ti incoraggio a continuare a perseguirlo. Intendo solo comunicare che, sebbene, soprattutto, Ubuntu offra molti strumenti così avanzati che mancano del tutto ad altri sistemi operativi, imparare a usarli non dovrebbe mai essere un requisito per l'utilizzo di Ubuntu.
ændrük,

Grande chiarimento! Modificherò la mia risposta per riflettere meglio questo. Inoltre, ho raccomandato specificamente gedit su nano perché gedit è di livello superiore con una gui familiare e perché all'inizio nano mi ha ridicolmente confuso (cosa significa il simbolo del cursore ?? come posso smettere ?? come posso salvare ??) . Il che è divertente ora, considerando che Vim è il mio editor preferito.
djeikyb,

2

se Esc :q!non funziona,

prova prima Ctrl+ q(per sbloccare lo schermo bloccato con Ctrl+ s)

quindi riprovare Esc :q!(per uscire senza salvare) o Esc :wq(per salvare e uscire)


0

Vuoi uscire senza salvare:

  1. Colpire ESC
  2. Colpire ZQ

Esci con il salvataggio:

  1. Colpire ESC
  2. Colpire ZZ
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.