Ricerca…


Osservazioni

Vim (o "Vi IMproved") è un editor di testo multi-mode ( modale ) basato su console. È ampiamente utilizzato e disponibile di default su tutti i sistemi Unix, Linux e Apple OS X. Vim ha una grande comunità attiva e una vasta base di utenti. L'editor supporta tutti i linguaggi di programmazione più diffusi e molti plug-in sono disponibili per estenderne le funzionalità.

Sviluppatori come l'editor per la sua velocità, molte opzioni di configurazione e potente editing basato su espressioni. In modalità "comando" l'editor è controllato da comandi da tastiera, quindi l'utente non viene distratto da una GUI o da un puntatore del mouse.

Vim è basato sul precedente editore "vi" di Unix creato negli anni settanta ed è stato in continuo sviluppo dal 1991. Con macro e plugin l'editor offre la maggior parte delle funzionalità di un moderno IDE. È inoltre in grado di elaborare grandi quantità di testo con il suo linguaggio di scripting (vimscript) ed espressioni regolari.

Argomenti principali:

Vim messaggio di avvio standard

Versioni

Versione Data di rilascio
8.0 2016/09/12
7.4 2013/08/10
7.3 2010-08-15
7.2 2008-08-09
7.1 2007-05-12
7.0 2006-05-07
6.0 2001/09/26
5.0 1998/02/19
4.0 1996/05/29
3.0 1994/08/12
2.0 1993/12/14
1.14 1991/11/02

Installazione

Il Vim sulla tua macchina, se ce n'è uno, è molto probabile che sia una build "piccola" che non ha funzionalità utili come il supporto degli appunti, l'evidenziazione della sintassi o persino la possibilità di usare plugin.

Questo non è un problema se tutto ciò di cui hai bisogno è un modo rapido per modificare i file di configurazione, ma presto otterrai un certo numero di muri se intendi rendere Vim il tuo editor principale.

Pertanto è generalmente consigliabile installare una build completa.

Installazione su Linux / BSD

Su quei sistemi, il trucco è semplicemente quello di installare la versione della GUI che viene fornita con un comando gvim per l'avvio della GUI e un comando vim per l'avvio della TUI.

Distribuzioni basate su Arch e Arch

$ sudo pacman -R vim
$ sudo pacman -S gvim

Distribuzioni basate su Debian e Debian

$ sudo apt-get update
$ sudo apt-get install vim-gtk

Distribuzioni basate su Gentoo e Gentoo

$ sudo emerge --sync
$ sudo emerge app-editors/gvim

RedHat e distribuzioni basate su RedHat

$ sudo yum check-update
$ sudo yum install vim-X11

Fedora

$ sudo dnf check-update
$ sudo dnf install vim-X11

Distribuzioni basate su Slackware e Slackware

$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim

OpenBSD e distribuzioni basate su OpenBSD

$ sudo pkg_add vim-x11

Distribuzioni di FreeBSD e FreeBSD

$ sudo pkg install editors/vim

Installazione su Mac OS X

La strategia è simile a Mac OS X: installiamo la versione GUI per ottenere sia la GUI che il TUI. Alla fine dovremmo essere in grado di:

  • fare doppio clic sull'icona MacVim nel Finder,
  • fai clic sull'icona MacVim nel Dock,
  • emettere $ mvim nella shell per aprire la GUI MacVim,
  • emettere $ mvim -v nella shell per aprire il TUI MacVim.

Installazione regolare

Scarica e installa un'istantanea ufficiale come faresti con qualsiasi altra applicazione Mac OS X.

Inserisci lo script mvim che viene fornito in bundle con MacVim da qualche parte nel tuo $PATH .

Gestore di pacchetti

MacPorts:
$ sudo port selfupdate
$ sudo port install macvim
homebrew:
$ brew install macvim

Per rendere MacVim la console di default Vim:

$ brew install macvim --with-override-system-vim

Installazione su Windows

Non c'è Vim su sistemi Windows per impostazione predefinita. È possibile scaricare e installare Vim dal sito Tuxproject per build più aggiornate e complete oppure è possibile scaricare e installare Vim dal sito Vim ufficiale.

cioccolatoso

> choco install vim

Costruire Vim dalla fonte

Se i metodi sopra indicati non soddisfano le tue esigenze, è comunque possibile costruire Vim da solo , con solo le opzioni di cui hai bisogno.

Questo argomento sarà discusso nella sua sezione (attualmente in bozza).

Uscire da Vim

Per uscire da Vim, per prima cosa assicurati di essere in modalità Normale premendo Esc .

  • :q Invio (ti impedirà di uscire se hai modifiche non salvate - abbreviazione di: esci)

Per annullare le modifiche e uscire da Vim:

  • :q! Invio per forzare l'uscita e annullare le modifiche (abbreviazione di :quit! non confondere con :!q ),
  • ZQ è una scorciatoia che fa lo stesso di :q! ,
  • :cq Enter quit e return error (elimina tutte le modifiche in modo che il compilatore non ricompili questo file)

Per salvare le modifiche e uscire da Vim:

  • :wq Enter (abbreviazione di :write e :quit ),
  • :x Invio (uguale a :wq , ma non verrà scritto se il file non è stato modificato),
  • ZZ è una scorciatoia che fa lo stesso di :x (Salva spazio di lavoro e chiudi l'editor),
  • :[range]wq! Invio (scrivi le righe in [intervallo])

Per chiudere buffer multipli in una volta (anche in più finestre e / o schede), aggiungere la lettera a qualsiasi comandi sopra (quelli che iniziano con : ). Ad esempio, per scrivere e chiudere tutte le finestre puoi usare:

  • :wqa Invio o
  • :xa Invio - Scrivi tutti i buffer modificati e esce da Vim. Se ci sono buffer senza nome file, che sono di sola lettura o che non possono essere scritti per un altro motivo, Vim non si chiuderà
  • :xa! Invio : consente di scrivere tutti i buffer modificati, anche quelli di sola lettura, e di uscire da Vim. Se ci sono buffer senza un nome di file o che non possono essere scritti per un altro motivo, Vim non si chiuderà
  • :qa Invio - prova a uscire, ma interrompi se ci sono dei file non salvati;
  • :qa! Invio - esci senza salvare (elimina le modifiche in qualsiasi file non salvato)

Se hai aperto Vim senza specificare un file e vuoi salvare quel file prima di uscire, riceverai E32: No file name messaggio di E32: No file name . Puoi salvare il tuo file e uscire usando:

  • :wq filename Immettere o;
  • :x filename Invio

Spiegazione:

Il tasto : in realtà apre la modalità Comando . Il comando q è un'abbreviazione di quit , w , di write e x , di exit (puoi anche digitare :quit :write e :exit se vuoi). I tasti di scelta rapida che non iniziano con : come ZZ e ZQ riferiscono alle mappature dei tasti in modalità Normale . Puoi pensare a loro come scorciatoie.

Il ! il tasto viene talvolta utilizzato alla fine di un comando per forzarne l'esecuzione, che consente di scartare le modifiche nel caso di :q! . Posizionare il ! all'inizio del comando ha un significato diverso. Ad esempio, si può digitare:! :!q invece di :q! e vim terminerebbe con un errore 127.

Un modo semplice per ricordare questo è pensare ! come un modo di insistere per eseguire qualcosa. Proprio come quando scrivi: "Voglio smettere!"

Tutorial interattivi di Vim (come vimtutor)

vimtutor è un tutorial interattivo che copre gli aspetti più basilari dell'editing del testo.

Su un sistema simile a UNIX, puoi iniziare il tutorial con:

$ vimtutor

Su Windows, "Vim tutor" può essere trovato nella directory "Vim 7.x" in "Tutti i programmi" nel menu di Windows.

Vedi :help vimtutor per ulteriori dettagli.

Altre esercitazioni interattive includono quelle basate su browser:

  • Vim Adventures - Una versione di gioco interattiva di vimtutor disponibile sul web. Solo i primi livelli sono gratuiti.
  • Open Vim - Un terminale interattivo che ti insegna i comandi di base con feedback.
  • Vim Genius - Un altro terminale interattivo che include anche lezioni intermedie e avanzate tra cui macro e arglist.

Salvataggio di un file di sola lettura modificato in Vim

A volte, possiamo aprire un file che non abbiamo il permesso di scrivere in Vim senza usare sudo .

Utilizzare questo comando per salvare un file di sola lettura modificato in Vim.

:w !sudo tee > /dev/null %

A quale mappa puoi :w!! nel tuo .vimrc :

cmap w!! w !sudo tee > /dev/null %

Ti verrà presentata una richiesta come mostrato nell'immagine.

Premere INVIO o digitare comando per continuare. [O] K, (L) oad File: .

Premi O e il file verrà salvato. Rimane aperto in vi / vim per ulteriori modifiche o letture e puoi uscire normalmente digitando :q! poiché il file è ancora aperto in sola lettura.

Comando Spiegazione

:w ............................ isn't modifying your file in this case, 
   ............................ but sends the current buffer contents to 
   ............................ a substituted shell command
   !sudo ...................... call the shell 'sudo' command
         tee .................. the output of the vi/vim write command is redirected 
                                using the 'tee' command
             > /dev/null ...... throws away the standard output, since we don't need 
                                to pass it to other commands
                         % .... expands to the path of the current file

fonti:

Sospendere vim

Quando si utilizza vim dalla riga di comando, è possibile sospendere vim e tornare al prompt, senza effettivamente uscire da vim . Quindi in seguito sarai in grado di riprendere la tua sessione vim dallo stesso prompt.

In modalità normale (in caso contrario, premere esc per arrivarci), emettere uno di questi comandi:

:st entra

:sus entra

:stop enter

:suspend invio

In alternativa, su alcuni sistemi, in modalità Normale o Visual , l'emissione di Ctrl + Z avrà lo stesso effetto.

Nota: se è impostato l' autowrite , i buffer con modifiche e nomi di file verranno scritti. Aggiungi un ! prima di entrare per evitare, ad es. :st! entrare .

Successivamente, quando si desidera tornare alla propria sessione vim , se non sono stati sospesi altri lavori, l'emissione di quanto segue ripristinerà Vim come lavoro in primo piano.

fg entrare

Altrimenti dovrai trovare l'ID di lavoro della tua sessione di vim immettendo i jobs entrata e quindi mettendo in primo piano i lavori corrispondenti fg %[job ID] inserisci es. fg %1 invio .

Nozioni di base

Esegui tutorial interattivi Vim quante volte è necessario per sentirsi a proprio agio con le basi.

Vim offre diverse modalità, ad es. Modalità normale , modalità inserimento e modalità riga di comando .

La modalità normale è per la modifica e la navigazione del testo. In questa modalità h , j , k e l corrispondono ai tasti cursore , , e . La maggior parte dei comandi in modalità normale può essere preceduta da un "conteggio", ad esempio 3j sposta verso il basso di 3 righe.

La modalità di inserimento è per l'inserimento diretto del testo, in questa modalità vim è simile ad altri più semplici editor di testo. Per entrare nella modalità di inserimento premere i in modalità normale. Per lasciarlo, premere <ESC> (tasto Esc).

La modalità riga di comando serve per eseguire comandi più complessi come il salvataggio del file e l'uscita da vim. Premere : per avviare la modalità della riga di comando. Per uscire da questa modalità è anche possibile premere <ESC> . Per salvare le modifiche al file utilizzare :w (o :write ). Per uscire da vim senza salvare le modifiche, utilizzare :q! (o :quit! ).

Questi sono alcuni dei comandi più utili in vim:

Comando Descrizione
i (inserire) entra nella modalità di inserimento prima della posizione corrente del cursore
I entra nella modalità di inserimento prima del primo carattere stampabile della riga corrente
a (append) entra nella modalità di inserimento dopo la posizione corrente del cursore
A entra in modalità inserimento dopo l'ultimo carattere stampabile della riga corrente
x cancella il carattere nella posizione corrente del cursore
X cancella il carattere a sinistra nella posizione corrente del cursore
w passa alla parola successiva
b passa alla parola precedente
0 sposta all'inizio della riga
$ sposta alla fine della riga
r sostituisci: inserisce la modalità di sostituzione per un carattere. Il prossimo carattere digitato sostituirà il carattere sotto il cursore.
R entra nella modalità di sostituzione indefinitamente. Ogni carattere digitato sostituirà il carattere sotto il cursore e farà avanzare il cursore di uno.
s sostituto: cancella il carattere nella posizione corrente del cursore e quindi entra nella modalità di inserimento
S elimina la riga corrente su cui si trova il cursore e attiva la modalità di inserimento
<Esc> , <Cc> esce dalla modalità di inserimento e ritorna alla modalità normale
u disfare
<Cr> rifare
dd , dw , dl , d$ tagliare la linea corrente, dal cursore alla parola successiva o il carattere, dalla posizione corrente alla fine della riga corrente, nota: D è l'equivalente di d$
cc , cw , cl cambia la linea corrente, dal cursore alla parola successiva o al carattere, rispettivamente
yy , yw , yl , y$ yank ("copia") la riga corrente, dal cursore alla parola successiva o il carattere, rispettivamente la posizione corrente alla fine della riga corrente
p , P mettere ("incolla") dopo, o prima della posizione corrente, rispettivamente
o , O per creare una nuova riga vuota, dopo o prima di quella corrente e accedere alla modalità di inserimento
:w scrivere il buffer corrente su disco
:q! , ZQ smettere senza scrivere
:x :wq , ZZ scrivere e uscire
:help apri una finestra con il file di aiuto
:help {subject} mostra aiuto per un argomento specifico
qz iniziare a registrare le azioni per registrare z , q per terminare la registrazione, @z per riprodurre le azioni. z può essere qualsiasi lettera: q è spesso usato per comodità. Ulteriori informazioni: Macro

Cosa fare in caso di incidente

Vim salva tutte le modifiche non salvate in un file di scambio , un file aggiuntivo che viene eliminato una volta che le modifiche sono state salvate. Il nome del file di scambio è in genere il nome del file in fase di modifica preceduto da a . e con un suffisso .swp (puoi vederlo con :sw ).

Quindi, nel caso in cui il processo Vim termini prima che tu abbia avuto la possibilità di salvare le tue modifiche, puoi ripristinare il tuo lavoro applicando le modifiche contenute nel file di scambio al tuo file corrente usando l'opzione della riga di comando -r . Ad esempio se myFile è il file che stavi modificando, usa:

$ vi -r myFile

per recuperare le modifiche non salvate.

Se esiste un file di scambio, vim dovrebbe comunque richiedere comunque le opzioni di ripristino

$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Se si sceglie (R) ecover, vengono applicate le modifiche dal file swp ma il file di swap non verrà eliminato, quindi non dimenticare di eliminare il file swap in seguito se si è soddisfatti del ripristino.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow