Aiuto vim
versione disponibile in : en ru zh es ja de nl fr
data di creazione : 20220618- data di aggiornamento : 20220618- data di generazione : 20240612_171233
vim vim_25_presentation_by_bram_moolenaar_on_2016_november_2 mastering_the_vim_language
- vi è l'editor standard di qualsiasi distribuzione UNIX.. vi non si è mai evoluto dalla sua creazione, il che lo rende un editor rustico..3.Iniziare con vim
Ma il suo design originale è molto vicino allo spirito di unix".
- l'evoluzione di vi è l'editor vim (vi-migliorato di Bram Moolenar)vedi sotto.
- lancia l'editor con il nome del file da elaborare come argomento "vi toto.txt" - l'editor lancia una finestra a schermo intero in cui appaiono le righe di testo. Linee vuote che iniziano con "~" sono visibili se il numero di righe del file è inferiore al numero di righe della finestra.
- per impostazione predefinita siamo in modalità comando dell'editor, cioè tutti i tasti della tastiera sono un comando.
- ad esempio, per spostarsi, utilizzare i tasti h,j,k,l . touches de déplacement vi - per inserire del testo, utilizzare ad esempio il tasto "i" per "inserire", "a per aggiungere", "R^ per sostituire - Una volta terminata la modifica del testo, premere il tasto ^esc" per uscire dalla modalità di modifica..
- in vi, è necessario uscire dalla modalità di modifica per cambiare la riga: è necessario passare nuovamente alla modalità di comando per effettuare una mossa Fortunatamente in vim questo vincolo viene rimosso.
- per tutti gli ordini vedere . vimaz - c'è anche un . mode ligne de commande vi che si ottiene digitando il tasto ":" e che permette di lanciare comandi globali su una selezione di righe del file.
- Per concludere questa introduzione, sotto un aspetto rustico, persino arcaico, vi è un editor unico nella sua concezione, un tipo di editor a sé stante.
da solo. È questo progetto iniziale che fa sì che vim sia riconosciuto come l'editor più potente disponibile..
Si è appena entrati nell'editor vim.
È possibile utilizzare i tasti freccia (frecce e paginazione) per muoversi all'interno di questo testo.
La cosa più importante da sapere che rende vim (vi) unico è il fatto che vim (vi) è un editor multimodale.
La caratteristica principale dell'editor vim (vi) è di operare principalmente nel . mode commande vi Possiamo dire che esistono due tipi di editor, quelli che funzionano di default e principalmente in modalità di modifica. (si digita sulla tastiera e il testo viene scritto) e quelli che funzionano per impostazione predefinita e principalmente in modalità di comando (si digita sulla tastiera e il sistema esegue le operazioni).
Nel primo sono presenti tutti gli editor, tranne vi e vim. (emacs, ultraedit, notepad, ...Iniziare con vim) nel secondo c'è vi e vim.
vim è l'estensione storica, lo sviluppo del vi originale del sistema unix, che non si è evoluto se non grazie a vim..
Le modalità di vim sono:
In vim la modalità di inserimento è identica a quella di un editor come notepad.5.Modalità a riga di comando vi
Si accede a questa modalità dal menu . mode commande vi immettendo i seguenti comandi: - "a" per aggiungere testo (aggiunge dopo il carattere corrente) - "i" per l'inserimento del testo (inserisce subito prima del carattere corrente) - "R" per la sostituzione del testo (sostituisce il testo a partire dal carattere corrente) - "o" per aprire una nuova riga ( "O" per aprirlo al di sopra dell'attuale) - ^s" per il sostituto (equivalente a "R").
Il testo viene inserito con i soliti tasti, mentre il movimento viene effettuato con il tasto frecce, i tasti di paginazione, è possibile cambiare la modalità "inserimento" "sostituzione", eliminare un carattere con . Suppr e utilizzare l'opzione per salvare le modifiche, uscire e cercare, selezionare con il mouse, usare il copia e incolla.
Possiamo quindi considerare vim un sottoinsieme di notepad.
Quindi non c'è motivo di continuare a usare il blocco note se si ha vim..
Uscire dalla modalità di immissione con il tasto escape . ESCAPE .
Questi sono in realtà i comandi dell'editor ^teletype^, il precursore di vi, l'editor ^ed^..
Quando l'input del computer poteva essere visualizzato su uno schermo piuttosto che su una telescrivente, ^ed^ si è evoluto in ^vi^. (che è un'abbreviazione di \"visivo\".).
Ciò significa che "vi" contiene i geni di "ed".
Tra l'altro, ha dato origine al comando "sed" che può significare "stream ed" per esempio.
Si accede a questa modalità immettendo il carattere ".:" da . mode commande vi .
In vim, è possibile recuperare i comandi già inseriti navigando con le frecce su e giù.
È anche possibile inserire l'inizio di un comando e poi utilizzare le frecce per selezionare solo i comandi corrispondenti al prefisso inserito..
ordine note_it azione
:b nn rendere il buffer courant (fichier) identificato come "nn", per l'elenco dei buffer vedere il comando :ls
:e file modifica il file di cui è stato inserito il percorso :g/expr/ globale : seleziona le righe che contengono le espressioni regolari "exp^ e : :g/expr/l - elenca le linee :g/expr/d - distrugge le linee :g/expr/s// - applica il comando di sostituzione "s" alle righe selezionate :ls elenca i buffer già modificati durante la sessione e ne visualizza il numero (vedi ordine :b nn) :n next - emette il buffer successivo se sono stati richiesti più file :q lasciare l'editor ":q!" forza l'uscita senza salvare :r rewind - ritorna al primo buffer richiesto all'apertura di vi o quando si ordina ":n file" :s . substitution de chaine :w salva il file corrente ":w!" forza la riscrittura in caso di avvertimento :x eXit salva il buffer corrente ed esce da vi :map_it crea un nuovo . mode commande vi dalla combinazione di comandi di questa modalità ! . shell vi consente l'interazione con l'ambiente esterno del programma vi, offre possibilità illimitate / oppure :/ ricerca di un . expression régulière (i target sono visualizzati in giallo) il comando "n" consente di navigare nella ricerca
specifico
vim :gf vai al file, apre il file il cui percorso si trova sotto il cursore :sp split ,divide l'area di lavoro in due per aprire un secondo buffer commutabile con ctrl-W w :scheda nuova aggiunta di una scheda spazio di lavoro
5.1.Modalità a riga di comando suggerimento vi
L'uso del carattere "!" in diversi contesti consente di impartire comandi di sistema.
Sulla riga di comando di vi, ad esempio, digitate ":!dir " per aprire una shell ed eseguire il comando dir.
o in . mode commande vi , "!" seguito da un comando di spostamento (ne
se solo ENTER) visualizza un prompt in cui è possibile inserire un comando
sistema. Il buffer selezionato dalla mossa viene inviato allo standard input del programma (stdin)
e l'output standard del programma (stdout) viene recuperato e colloca il risultato nel buffer delimitato
spostando (il vecchio buffer viene perso).
Possiamo lanciare una query SQL con il comando isql, trasformare un testo tramite uno script perl,
scrivere programmi C per creare nuovi comandi di editing, ... Le possibilità sono infinite.
l'ordine :consente di creare un nuovo comando.
Ad esempio, il comando :"map ² j.
" crea il comando "²^ che individua l'ultimo comando sulla riga successiva.
5.3.1.Esempio di mappa dei comandi analogia vim mq
Non posso fare a meno di fare una divertente analogia con la <mécanique_quantique_it_nweb>(fr.wikipedia.org/wiki/M%C30X0P+09canique_quantique) e l'operatore hamiltoniano H
responsabile dell'evoluzione nel tempo. Questo operatore può essere visto come la combinazione degli operatori di creazione e distruzione di stati energetici (o particelle nella teoria quantistica dei campi).
Le energie sono spesso H = energia potenziale energia cinetica = a² b² e con la fattorizzazione complessa o i²=-1 H = (a ib)(a-ib) = C * D, dove C e D sono gli operatori di creazione e distruzione..
Se consideriamo una riga di testo in vim e il comando "x" per cancellare un carattere (distruzione),
il comando predefinito di inserimento del contenuto del buffer "p" (creazione)
e la loro combinazione "xp" in un comando ":mappa
avremo creato il nuovo comando ": evoluzione.
Ma qui lo spazio è simboleggiato da una linea di sottolineatura e, ad esempio, il carattere o come particella :
applicando il comando ".
È inoltre possibile creare l'operatore inverso con ":mappa
__________________________________o___________________________________________________________________
- eseguire le macro sul sistema "o" (la particella quantistica :-meccanica quantistica nweb)
- per compilare le macro senza copiarle nella riga di comando si può usare la macro [xlm_it] posizionandosi sulla linea della macro.
mappa
mappa
- Una traiettoria può essere definita da
mappa #H
- Una traiettoria ciclica (oscillazione) dalla macro ricorsiva:
mappa #S #H#S
- Attenzione: questa macro ricorsiva può essere interrotta solo con CTRL-C.
notiamo che fermando la macro si può lasciare il sistema con la particella distrutta, il "o" è scomparso (è tornato al vuoto quantistico) o creato, il ^o" è presente ma probabilmente in un'altra posizione rispetto a quella originaria..
Questo ci dice che quando una macro viene interrotta, ciò avviene su un comando "atomico" e non su una macro chiamata da una macro.
Penso che questo esempio mostri molto bene la dinamica delle macro.
In Vim c'è un altro modo per registrare una sequenza di comandi.
Questo è il comando "q", che consente di registrare la sequenza di comandi che saranno poi digitati sulla tastiera (l'inserimento di un altro ^q^ interrompe la registrazione) e il comando "@" che permette di eseguire questi comandi.
I comandi vengono memorizzati in buffer denominati da un carattere alfanumerico che deve essere specificato insieme ai comandi "q" e "@"..
Ad esempio, q03dwj memorizza nel buffer 0 il comando 3dwjbbb, che cancella 3 parole e passa alla riga successiva tornando indietro di 3 parole, eseguendo la seguente sequenza.
il comando @0 ripete la sequenza.
Il comando ":s/chaine1/chaine2/" di sostituzione della catena1 con la catena2 offre possibilità molto potenti: Se si desidera modificare il carattere "/", è necessario utilizzare "\\/" per specificare questo carattere o utilizzare un altro carattere delimitatore di stringa ".:s.
chaine1.
canale2.
"
:s/toto/titi/ sostituire ^toto^ con ^titi^ sulla linea
:s/toto/titi/g sostituire tutti i ^toto^ con ^titi^ sulla linea :1,$/toto/titi/g sostituisce tutti i ^toto^ con i ^titi^ sull'intero file :., 10/toto/titi/g sostituisce tutti i ^toto" con ^titi" a partire dalla riga corrente su dieci righe :g/tata/s/toto/titi/g sostituisce tutti i "toto" con "titi" su tutte le righe che contengono la stringa "tata". :'a,'bg/tata/s/toto/titi/g sostituisce tutti i ^toto" con ^titi" su tutte le righe che contengono la stringa ^tata" tra le righe memorizzate dagli indici "a" e "b"
5.4.1.. expression régulière : espressione regolare
Le espressioni regolari consentono di specificare stringhe di ricerca complesse..
Il carattere "." viene utilizzato per specificare qualsiasi carattere.
Il carattere "*" viene utilizzato per specificare qualsiasi sequenza di caratteri.
Il carattere ""^ viene utilizzato per specificare l'inizio della riga.
Il carattere "$" viene utilizzato per specificare la fine della riga.
Un blocco "" viene utilizzato per specificare un possibile set di caratteri nell'espressione regolare.
Per esempio :
Per esempio "toto.*titi" si riferisce alla porzione di linee che iniziano con toto e finiscono con titi.
Per esempio ".*questo.*titi.*" denota le righe che contengono sia toto che titi in questo ordine.
Per esempio "^toto.*titi$" denota le righe che iniziano con toto e finiscono con titi.
|" (backslash-pipe)
così "toto.|titi.*toto" permette, ad esempio, in un comando g//s// di
effettuare la modifica solo sulle righe corrispondenti al criterio.
Siamo quasi al livello di un richiedente in modalità testo.
È possibile suddividere una riga o una porzione di riga in sottocampi in un'espressione regolare
nel comando ":s".
Esempio:
catena di destinazione: Bella marchesa, i tuoi bellissimi occhi mi fanno morire d'amore.
(B.)(v.)()()()"
che si chiama \\1 \\2 \\3 \\4 \\5
Il comando ":(B.)(v.)()()()/\\5 \\4\\3/" con tutte le le permutazioni dei sottocampi generano forme meno belle di prosa di prima frase: d'amore i tuoi begli occhi che muoiono mi fanno Belle marquise
È questa modalità che spiega la potenza di vim.
Ogni tasto è un comando.
Esistono diversi tipi di comandi:
È possibile combinare comandi di tipo diverso: cambiare*muoversi, ad esempio :6.1.Controllo del movimento vi
I comandi di spostamento, vedere il tipo "d^ nell'elenco . vimaz può essere combinato con altri comandi di modifica per formare un nuovo comando di modifica.
I tasti freccia sono ovviamente operativi e funzionano in combinazione con i tasti SHIFT, CTRL e CTRL..
I comandi di modifica, vedere il tipo "m" nell'elenco . vimaz
Comandi di ricerca, vedi tipo "r^ nell'elenco . vimaz
6.4.Comando di gestione del buffer vi
I comandi del buffer, vedere il tipo "g^ nell'elenco . vimaz
6.5.. vimaz :Sono venuto dalla A alla Z
L'alfabeto di vim.
Quando si è in . mode commande vi ogni lettera è un comando :
colonna descrizione
. lettre
la lettera d'ordine. Può essere una lettera singola, raddoppiata, seguita da un'altra lettera, seguita dal tipo di ordine
Doppia lettera menzionata da ² che non è usata da vim Lettera seguita da qualsiasi altra lettera, quest'ultimo caso è indicato dalla presenza di un ^underscore" ad es. f_ Seguito dal tipo di comando "d^ per lo spostamento, ad esempio in questo caso sono operativi tutti i comandi di spostamento. . commande type
tipo di ordine : d Spostamento, m Modifica, r Ricerca, g Gestione del buffer . note vim
utilità o potenza dell'ordine citato da una serie di più ... o meno . mnemo
origine dell'uso della lettera per il comando, mezzo mnemonico, in inglese ovviamente
. lettre . type cmd . mnemo . note vim azione
. caractère non alphabétique vi
. m ripete l'ultimo comando di modifica ~ m Maiuscole/minuscole invertite. Da usare con "g" : g~d ^ d va all'inizio della riga $ d va alla fine della riga * r vim cerca la parola che si trova sotto il cursore : tutti i bersagli sono colorati di giallo . Vedi qui g* '_ d "cote" seguito da una lettera sposta il cursore sulla riga memorizzata da quella lettera vedi m_ "_yd g "double dimension" seguito da una lettera, seguita da "y" yank seguito da un comando di spostamento memorizza il testo da spostare in un buffer denominato da quella lettera "ayfo g esempio: "afo memorizza nel buffer "a" dal carattere corrente al successivo "o" sulla riga corrente "byy g "byy memorizza la riga corrente nel buffer b "by'b g "b'b memorizza nel buffer b dalla riga corrente alla riga memorizzata dall'indice b . caractère alphabétique vi
a m append aggiunge il testo dopo il carattere corrente e passa a . mode de saisie vi A md Appendice aggiunge testo alla fine di una riga passa a . mode de saisie vi b d indietro sposta il cursore indietro di una parola, se . majuscule le parole sono solo separate da spazi vuoti e spazi B d Indietro idem "b" si . majuscule parole definite da ciò che è separato da spazi e spazi vuoti c_ m cambiamento - "c" seguito da un . commande de déplacement vi cambia il testo dal carattere corrente alla fine del movimento C m Cambiamento - cambia il testo dal carattere corrente alla fine della riga dd m cancellare "d" seguito da un . commande de déplacement vi cancella il testo dal carattere corrente fino alla fine del movimento d² m cancellare "d" raddoppiato cancella la riga corrente D m cancellare cancella il testo dal carattere corrente fino alla fine della riga e d fine sposta il cursore alla fine della parola corrente E d Fine sposta il cursore alla fine del campo ".. mot large corrente " f_ r trovare "f" seguito da un carattere sposta il cursore lungo la riga fino al carattere, se esiste. F_ r trovare "F" uguale a "f", ma si sposta all'inizio della riga. g² d andare sposta il cursore all'inizio del file G d andare sposta il cursore alla fine del file g* r globale (vim) come "*" ma non è la parola ma la stringa che viene cercata (se compare in una parola) g~d m globale inverte le lettere maiuscole e minuscole fino a quando il movimento gf d go file modifica il file il cui percorso è sotto il cursore i m inserto inserisce i caratteri digitati successivamente prima che il carattere corrente passi a . mode de saisie vi I md Inserire inserire i caratteri digitati successivamente all'inizio della riga passa a . mode de saisie vi J m unirsi concatena la riga corrente con quella successiva (fusione di due linee) tra le due righe viene inserito uno spazio vuoto tastiera di spostamento : hjkl jk:su giù , hl sinistra destra (da utilizzare nella macro al posto delle frecce) tastiera originale senza trackpad . touches de déplacement vi
h d freccia sinistra j d freccia verso l'alto k d freccia verso il basso l d freccia destra m_ d memorizzare "m" seguito da una lettera memorizza la riga successiva con questa lettera come indice, il richiamo avviene con il carattere "cote".: ' o m aperto apre o inserisce una riga dopo la riga corrente O m Aperto apre o inserisce una riga PRIMA della riga corrente p m mettere inserisce il contenuto del buffer corrente r_ m sostituire sostituisce il carattere corrente che rimane in . mode commande vi R m Sostituire sostituisce il testo dalla posizione corrente passa a . mode de saisie vi s m sostituto sostituisce il testo dalla posizione corrente passa a . mode de saisie vi S m Sostituto - sostituisce la riga corrente con i caratteri digitati successivamente passa a . mode de saisie vi t_ r a "t" seguito da un carattere sposta il cursore sulla riga immediatamente precedente al carattere, se esiste. T_ r A "T" uguale a "t", ma si sposta all'inizio della riga. (utilità in combinazione con un controllo a doppia classificazione u m annullare "undo" annulla l'ultima modifica. annulla tutte le modifiche apportate dopo l'ultima modifica al file . "redo" ctrl-r è l'inverso di undo v g (vim) entra in modalità di selezione del testo (visione lineare del testo) ctrl-v in modalità di selezione del blocco rettangolare (vista superficiale del testo) w d fine sposta il cursore alla fine della parola corrente W d Fine sposta il cursore alla fine del campo ".. mot large " corrente x m elimina la lettera yd g strattone "y" seguito da un . commande de déplacement vi memorizza nel buffer predefinito il testo interessato dallo spostamento, utilizzato in combinazione con i buffer denominati ^_ z² "z." o "zz" centra la finestra sulla riga corrente z. ENTER
posiziona la riga corrente all'inizio della finestra z- posiziona la riga corrente nella parte inferiore della finestra . commandes utilisant la touche CTRL
CTRL-R ^redo" inverso di ^u" ^undo" CTRL-A incrementa il numero sotto il cursore CTRL-X decrementa il numero sotto il cursore
Come muoversi facilmente all'interno di un file su cui si sta lavorando.
una parola definita solo da ciò che è separato da spazi e spazi vuoti.
esempio: Da lunedì mattina è un'unica parola ampia.
In vi l'alterazione di un tasto tramite shift (maiuscolo) modifica il comando corrispondente alla minuscola.
L'alterazione può essere di diversi tipi, ma l'ordine risultante è vicino a quello iniziale..
possibile alterazione: