English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Tutti i sistemi Unix Like includono l'editor di testi vi, altri editor di testi non sono necessariamente presenti.
Ma al momento usiamo più spesso l'editor vim.
Vim ha la capacità di editare programmi, può distinguere attivamente la correttezza della sintassi con il colore dei caratteri, il che facilita la progettazione di programmi.
Articoli correlati:Mappa completa dei tasti rapidi di Vim - dal principiante all'esperto
Vim è un editore di testo derivato da vi. Ha molte funzioni convenienti per la programmazione come completamento del codice, compilazione e salti di errore, che sono ampiamente utilizzati dai programmatori.
In breve, vi è un vecchio elaboratore di testi, ma le funzioni sono abbastanza complete. Vim può essere considerato uno strumento molto utile per gli sviluppatori di programmi.
Semplicemente, il sito web ufficiale di vim (http://www.vim.org) Anche io dico che vim è uno strumento di sviluppo di programmi, non un software di elaborazione testi.
Mappa dei tasti della tastiera vim:
In generale, vi/vim è diviso in tre modalità, rispettivamenteModalità di comando (Command mode),Modalità di input (Insert mode)eModalità di comando di fondo (Last line mode). Queste tre modalità hanno la seguente funzione:
L'utente ha appena avviato vi/vim e è entrato nella modalità di comando.
In questo stato, l'azione della tastiera sarà riconosciuta da Vim come comando, non come carattere di input. Ad esempio, se premete i, non verrà inserito un carattere, ma i verrà considerato un comando.
Ecco alcuni comandi comuni:
i Passare alla modalità di input per inserire caratteri.
x Eliminare il carattere alla posizione del cursore corrente.
: Passare alla modalità di comando di fondo per inserire comandi nella riga più in basso.
Se si desidera modificare il testo: avviare Vim, entrare nella modalità di comando, premere i per passare alla modalità di input.
La modalità di comando ha solo alcuni comandi di base, quindi è necessario ancora dipendere dalla modalità di comando di fondo per inserire più comandi.
Nella modalità di comando, premere i per entrare nella modalità di input.
Nella modalità di input, è possibile utilizzare i seguenti tasti:
Tasti dei caratteri e combinazioni con ShiftInserire caratteri
ENTERTasto Invio, cambia riga
BACK SPACETasto Backspace, elimina il carattere precedente al cursore
DELTasto Elimina, elimina il carattere successivo al cursore
Tasti di direzioneSpostare il cursore nel testo
INIZIO/FINESpostare il cursore all'inizio/fine della riga
Pagina su/Pagina giùPagina superiore/inferiore
InserisciCambia il cursore in modalità di input/sostituzione, il cursore diventa una linea verticale/una linea sottile
ESCEsci dal modalità di input, passare al modalità di comando
Premere : (due punti) nel modalità di comando per entrare nel modalità di comando di fondo.
Il modalità di comando di fondo può inserire un singolo o più caratteri di comando, ci sono molti comandi disponibili.
Nei modalità di comando di fondo, i comandi di base sono (i punti di domanda sono omessi):
q Esci dal programma
w Salva il file
Premere il tasto ESC per uscire in qualsiasi momento dal modalità di comando di fondo.
In altre parole, possiamo immaginare questi tre modalità come rappresentati dagli icona qui sotto:
Se vuoi creare un file chiamato w3codebox.txt con vi, puoi farlo così:
$ vim w3codebox.txt
Inserire direttamente Nome del file vi Puoi entrare nel modalità generale di vi. Nota che dietro vi deve essere sempre il nome del file, indipendentemente dal fatto che il file esista o meno!
Nel modalità generale, è sufficiente premere i, o, a per entrare nel modalità di input!
Nel modalità di editing, noterai che nella barra di stato in basso a sinistra apparirà il testo –INSERT-, che indica che puoi inserire qualsiasi carattere.
A questo punto, sulla tastiera oltre a Esc Oltre a questo pulsante, tutti gli altri tasti possono essere considerati come pulsanti di input generali, quindi puoi effettuare qualsiasi tipo di editing.
Bene, supponiamo di averlo editato secondo lo stile sopra descritto, allora come uscire? Sì! Esatto! Basta premere Esc Questo pulsante! Immediatamente noterai che il – INSERT – nella parte inferiore sinistra della schermata è scomparso!
OK, dobbiamo archiviare, salvare e uscire, l'istruzione è molto semplice, inserisci :wq Salva e esci!
OK! Così abbiamo creato con successo il file w3codebox.txt.
Oltre ai semplici esempi di i, Esc, :wq, il vim ha molti altri tasti disponibili.
Metodi per muovere il cursore | |
---|---|
h o il tasto freccia sinistra (←) | Il cursore si sposta di un carattere a sinistra |
j o il tasto freccia in basso (↓) | Il cursore si sposta di un carattere in basso |
k o il tasto freccia in alto (↑) | Il cursore si sposta di un carattere in alto |
l o il tasto freccia destra (→) | Il cursore si sposta di un carattere a destra |
Se metti la tua mano destra sulla tastiera, noterai che hjkl sono disposti insieme, quindi puoi utilizzare questi quattro pulsanti per muovere il cursore. Se si desidera muoversi più volte, ad esempio muoversi di 30 righe in basso, è possibile utilizzare la combinazione di tasti '30j' o '30↓' Questo significa aggiungere il numero di volte desiderato e premere l'azione! | |
[Ctrl] + [f] | Lo schermo si muove 'in basso' di una pagina, equivalente al pulsante [Page Down] (常用) |
[Ctrl] + [b] | Lo schermo si muove 'in alto' di una pagina, equivalente al pulsante [Page Up] (常用) |
[Ctrl] + [d] | Lo schermo si muove 'in basso' di metà pagina |
[Ctrl] + [u] | Lo schermo si muove 'in alto' di metà pagina |
+ | Il cursore si muove alla riga inferiore del carattere non spaziale |
- | Il cursore si muove alla riga superiore del carattere non spaziale |
n<space> | Quella n rappresenta il 'numero', ad esempio 20. Dopo aver premuto il numero, premere il tasto spazio per muovere il cursore di n spazi a destra in questa riga caratteri. Ad esempio, 20<space> sposterà il cursore di 20 spazi in avanti. |
0 o tasto funzione [Home] | Questo è il numero '0': muove al primo carattere di questa riga (常用) |
$ o tasto funzione [End] | Muove al carattere finale di questa riga (usato spesso) |
H | Il cursore si muove al primo carattere della riga più in alto di questo schermo |
M | Il cursore si muove al primo carattere della riga centrale di questo schermo |
L | Il cursore si muove al primo carattere della riga più in basso di questo schermo |
G | Muove all'ultima riga di questo file (usato spesso) |
nG | n è un numero. Muove al rigo n di questo file. Ad esempio, 20G si muoverà al rigo 20 di questo file righe (può essere combinato con :set nu) |
gg | Muove al primo rigo di questo file, equivalente a 1G! (常用) |
n<Enter> | n è un numero. Muove il cursore di n righe in basso (usato spesso) |
ricerca sostituzione | |
/word | Cerca una stringa chiamata word al di sotto del cursore. Ad esempio, per cercare vbird all'interno di un file Questa stringa, digitare /vbird! (常用) |
?word | cerca una stringa chiamata word al di sopra del cursore. |
n | Questa n è una tastiera inglese. Rappresenta la ripetizione dell'azione di ricerca precedente. Per esempio, Se abbiamo eseguito /vbird per cercare in basso la stringa vbird, premere n continuerà a cercare in basso il nome vbird successivo della stringa. Se si esegue ?vbird, premere n continuerà a cercare in alto la stringa chiamata vbird! |
N | Questa N è una tastiera inglese. Esattamente opposta a n, rappresenta l'azione di ricerca 'in senso inverso' della ricerca precedente. Ad esempio /vbird, premere N indica la ricerca 'in alto' di vbird. |
Usare /word con n e N è molto utile! Ti permette di trovare ripetutamente alcune parole chiave di ricerca!} | |
:n1,n2s/word1/word2/g | n1 e n2 sono numeri. Cerca la stringa word1 tra le righe n1 e n2 e sostituiscila con
word2 ! Ad esempio, se cercare e sostituire vbird con VBIRD tra le righe 100 e 200: 『:100,200s/vbird/VBIRD/g』 (usato) |
:1,$s/word1/word2/g o :%s/word1/word2/g | Cerca la stringa word1 da prima a ultima riga e sostituiscila con word2 ! (usato) |
:1,$s/word1/word2/gc o :%s/word1/word2/gc | Cerca la stringa word1 da prima a ultima riga e sostituiscila con word2 ! e mostra un messaggio di conferma all'utente prima di sostituire (confirm) Devo sostituire?! (usato) |
Elimina, copia e incolla | |
x, X | In una riga di testo, x elimina un carattere (equivalente a [del] pulsante) X elimina un carattere (equivalente a [backspace], ossia il tasto retrocesso) (常用) |
nx | n è un numero, elimina consecutivamente n caratteri. Per esempio, se devo eliminare 10 caratteri consecutivamente: 『10x』. |
dd | Elimina l'intera riga in cui si trova il cursore (usato) |
ndd | n è un numero. Elimina il cursore delle righe inferiori a n, ad esempio 20dd elimina 20 righe. (常用) |
d1G | Elimina il cursore fino alla riga iniziale. |
dG | Elimina il cursore fino alla riga finale. |
d$ | Elimina il cursore fino alla fine della riga. |
d0 | Questo è il numero 0, elimina il cursore fino al primo carattere della riga. |
yy | Copia la riga in cui si trova il cursore (usato) |
nyy | n è un numero. Copia il cursore delle righe inferiori a n, ad esempio 20yy copia 20. Riga (usato) |
y1G | Copia la riga in cui si trova il cursore fino alla riga iniziale. |
yG | Copia la riga in cui si trova il cursore fino alla riga finale. |
y0 | Copia il carattere in cui si trova il cursore fino all'inizio della riga. |
y$ | Copia il carattere in cui si trova il cursore fino alla fine della riga. |
p, P | p incolla i dati copiati sotto il cursore, mentre P incolla sopra il cursore! Per esempio, attualmente il cursore è alla riga 20 e ho già copiato 10 righe di dati. Cosa succede se premo p dopo? Le 10 righe di dati verranno incollate dopo le 20 righe originali, ossia a partire dalla riga 21. Ma cosa succede se premo P? Quindi la riga originale 20 sarà spostata a diventare la riga 30. (常用) |
J | Combina il testo della riga corrente con il testo della riga successiva |
c | Rimuovi più dati in una volta, ad esempio rimuovi 10 righe, [10cj] |
u | Ripristina l'azione precedente (usato frequentemente) |
[Ctrl]+r | Ripeti l'azione precedente (usato frequentemente) |
Questo u e [Ctrl]+r sono comandi molto usati! Uno è per ripristinare, l'altro per rifare l'azione~ Utilizzando queste due funzioni, il tuo editing, eh eh! è molto divertente! | |
. | Non c'è da dubitare! Questo è il punto decimale! Significa ripetere l'azione precedente. Se vuoi ripetere azioni come cancellare più volte, incollare più volte ecc., premi il punto decimal "."! (常用) |
Entrare nel modalità di editing di input o sostituzione | |
---|---|
i, I | Entrare nel modalità di input (Insert mode): i significa "iniziare ad inserire dal cursore corrente", I significa "iniziare ad inserire dal primo carattere non spaziatore della riga corrente". (常用) |
a, A | Entrare nel modalità di input (Insert mode): a significa "iniziare ad inserire a partire dal prossimo carattere del cursore corrente", A Significa "iniziare ad inserire a partire dall'ultimo carattere della riga corrente" (usato frequentemente) |
o, O | Entrare nel modalità di input (Insert mode): Questa è la lettera maiuscola e minuscola dell'inglese o. O inserirà una nuova riga sotto il cursore attuale; O inserirà una nuova riga sopra il cursore attuale (usato frequentemente) |
r, R | Entrare nel modalità di sostituzione (Replace mode): r sostituirà solo il carattere attualmente posizionato una volta; R continuerà a sostituire il testo attorno al cursore fino a quando non viene premuto Fino a ESC; (usato frequentemente) |
Nella parte inferiore sinistra della schermata di vi appariranno le parole "--INSERT--" o "--REPLACE--". Il nome dice tutto su questa azione!! In particolare, come abbiamo anche menzionato sopra, se vuoi inserire caratteri nel file: Devi assolutamente vedere INSERT o REPLACE nell'angolo in basso a sinistra per poter inserire! | |
[Esc] | Uscire dal modalità di editing e tornare al modalità normale (usato frequentemente) |
Comandi di salvataggio, uscita ecc. della riga di comando | |
---|---|
:w | Scrivi i dati modificati sul file su disco (usato frequentemente) |
:w! | Se l'attributo del file è "solo lettura", forza la scrittura del file. Tuttavia, non è garantito che tu possa scrivere. Ha ancora a che fare con i permessi del file! |
:q | Uscire da vi (usato frequentemente) |
:q! | Se hai modificato il file ma non vuoi salvare le modifiche, usa ! per uscire forzatamente senza salvare il file. |
Attenzione, il punto esclamativo (!) in vi spesso ha il significato di "obbligatorio"~ | |
:wq | 储存后离开,若为:wq!则为强制储存后离开 (常用) |
ZZ | 这是大写的Z喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) |
ZQ | 不保存,强制退出。效果等同于:q!。 |
:w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) |
:r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] | 将n1到n2的内容储存成filename这个档案。 |
:! command | 暂时离开vi到指令行模式下执行command的显示结果!例如 『:! ls /home』即可在vi当中查看/home底下以ls输出的档案信息! |
变更环境vim | |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与set nu相反,为取消行号! |
特别注意,在vi/vim中,数字是很有意义的!数字通常代表重复做几次的意思!也有可能是代表去到第几个什么什么的意思。
举例来说,要删除50行,则是用『50dd』对吧!数字加在动作之前,如我要向下移动20行呢?那就是『20j』或者是『20↓』即可。