vi (software)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
tu
software
Vim în Debian sid
Vim în Debian sid
Tip Editor de text
Dezvoltator Bill Joy și alții
Data primei versiuni 1976
Ultima versiune 7.3 (15 august 2010 )
Sistem de operare Unix-like
Limba C.
Licență Licență BSD
( licență gratuită )
Site-ul web ex-vi.sourceforge.net/

vi este un editor de text cu o interfață de text pentru BSD și Unix .

Numele provine din cea mai scurtă prescurtare fără echivoc a comenzii visual din ex (adică <vi>). Această comandă comută editorul de linie ex în modul vizual. Vi împreună cu Emacs a fost unul dintre protagoniștii așa-numitului război al editorului .

Istorie

Programul a fost scris de Bill Joy în 1976 pentru o versiune timpurie a BSD . Primele versiuni ale vi nu dădeau nicio indicație asupra modului utilizat și, prin urmare, era obișnuit să apăsați tasta ESC doar pentru a vă asigura că sunteți în modul de comandă ( semnalează cu un „beep” că sunteți deja în modul de comandă dacă încercați a intra din nou). Versiunile recente ale acestuia oferă o indicație a modului curent în linia de stare curentă sau grafic. Versiunile grafice ale vi (de exemplu gvim ) acceptă utilizarea mouse - ului și accesul la comenzi prin intermediul meniurilor grafice.

Ulterior, a devenit editorul de facto standard pentru Unix și favoritul utilizatorului până la sosirea Emacs după 1984 . În 2014, vi sau una dintre clonele sale poate fi găsită în aproape fiecare versiune a Unix ( Specificația unică UNIX indică vi ca editor, deci fiecare sistem conform are vi ).

Chiar și în secolul al XXI-lea, prin urmare, există de obicei pre-instalate pe sisteme de tip Unix (de exemplu, indiferent dacă sunt diferitele versiuni de Linux , respectiv Mac OS ).

A fost unul dintre cele mai utilizate programe de către utilizatorii Unix ( conform unui sondaj Usenet din 1991, a fost preferat de jumătate din alegători). [ fără sursă ]

Caracteristici

Pentru comoditate, același program pornește în modul vi sau ex , în funcție de numele sub care este lansat. „vi” este o abreviere care se pronunță literă cu literă ca [ vi: ai ] și nu ca un cuvânt [vai].
Acesta pornește mai repede decât Emacs și necesită mai puțină memorie, astfel încât unii suporteri Emacs îl folosesc și ca editor pentru e-mailuri sau mici modificări.

În mod obișnuit, se găsește destul de dificil pentru un utilizator nou (adică prezintă o curbă de învățare destul de abruptă) la BSD și Unix, deoarece este un editor modal .

Un editor modal (ca orice alt program modal ) atribuie diferite acțiuni tastelor, în funcție de modul activ când sunt apăsate. Principalele moduri de editare din vi sunt modurile de inserare și comandă . În modul inserare, când este apăsată o tastă, caracterul tastat este interpretat ca aparținând textului care urmează să fie inserat în editor și nu ca o comandă, așa cum se întâmplă în modul anterior. Prin apăsarea tastei ESC din modul de inserare este posibil să reveniți la modul de comandă în orice moment; pentru a trece în schimb pentru a insera modul , tastați caracterul (comanda) i : intrarea în noul mod este semnalată de apariția mesajului - INSERT - . Revenind la modul de comandă, este posibil să distingem de obicei comenzi mai complexe care necesită mai întâi să tastați caracterul colon : uneori urmat de celelalte opțiuni (așa cum se întâmplă în funcțiile de căutare și inserare a textului, chiar dacă în cazurile menționate anterior operația de anulare :u sau cea de ștergere a liniei curente :d comanda este relativ simplă), sau fără două puncte (așa cum se întâmplă de exemplu în comanda w pentru a poziționa cursorul la începutul cuvântului care urmează celei curente).

Pro și contra programelor modale

În modul de comandă, fiecare caracter corespunde unei mișcări a cursorului sau unei funcții de editare (de exemplu, cu j cursorul se deplasează la linia următoare, cu k se deplasează la linia anterioară, x șterge un caracter și i ( inserare ) sau a ( adăugați ) reveniți la modul de inserare). Acest mod, din punct de vedere al utilizabilității, este mult mai complex decât orice program de interfață grafică , dar există motive pentru care este încă folosit. Tastele apăsate în modul „comandă” nu corespund, în general, niciunui caracter afișat, cu excepția excepțiilor cum ar fi, de exemplu, „:” (cursorul) sau „/”: acesta este probabil unul dintre cele mai mari motive de confuzie pentru noi utilizatori.

Unele comenzi pot fi foarte periculoase: de exemplu, apăsarea majusculei D șterge linia curentă de la cursor până la sfârșitul acestuia și, dacă acest lucru se întâmplă din greșeală, poate compromite munca efectuată sau fișierul. Cu toate acestea, comanda :u poate fi întotdeauna utilizată pentru a anula ultima operație, prin urmare chiar și în cazul unei erori. Este foarte dificil să cunoașteți funcționalitățile unui astfel de program fără un manual, spre deosebire de programele cu meniuri grafice și bara de instrumente, unde sunt reprezentate funcțiile disponibile. Nu există combinații de comenzi care sunt foarte frecvente în alte contexte, cum ar fi CTRL-z pentru a anula ultima operație. Caracteristici noi sunt rareori adăugate.

Există situații în care utilizarea unui program fără o interfață grafică este esențială, atunci când este necesar să modificați fișierele la distanță numai prin utilizarea terminalului. Această operațiune, efectuată local, ar necesita, de fapt, descărcarea, modificarea și retrimiterea fișierelor modificate sau activarea unei interfețe care permite modificarea directă de la distanță, cu toate acestea mai costisitoare din punct de vedere al resurselor dacă modificările necesare sunt minime. , modificarea unei setări într-un fișier .ini de inițializare, sau în mod similar un alt fișier de configurare). Utilizarea programelor de interfață grafică necesită în mod evident utilizarea mouse-ului, ale cărui mișcări trebuie trimise în timp real către serverul de la distanță.

Unul dintre avantajele de a avea un mod de comandă separat de introducerea textului real este că operațiile de editare multiple pot fi efectuate folosind o singură linie a tastaturii fără a fi nevoie să apăsați Alt , Ctrl sau alte modificatori în același timp, ceea ce se reduce cu cel puțin o factor de doi numărul de taste de apăsat pentru a activa aceleași funcții de bază ale editorului. Mai mult, modul separat înseamnă că operațiuni de editare mai complexe pot fi obținute prin juxtapunerea mai multor primitive simple (de exemplu, dw pentru a șterge un cuvânt, c2fa pentru a schimba textul de la cursorul prezent la al doilea „a”). De asemenea, trebuie considerat că modul dublu permite utilizarea vi pe practic orice tip de terminal, întrucât secvențele de caractere asociate cu fiecare dintre ele variază (^? În loc de ^ H pentru backspace, de exemplu), în timp ce literele de alfabetul și caracterele precum ":" sau "/" sunt prezente pe orice tip de tastatură. Pentru utilizatorii cu experiență, acest lucru permite o muncă mult mai rapidă, de asemenea, deoarece este posibil să utilizați comenzi vi doar cu linia principală a tastaturii, fără a fi nevoie, de exemplu, să vă deplasați mâinile peste tastele săgeți. Cu toate acestea, în multe versiuni ale vi, este posibil să le folosiți pentru a vă deplasa în text în orice mod, precum și BACKSPACE sau CANC pentru a șterge textul; cu toate acestea, este posibil ca aceste taste să nu funcționeze dacă utilizați vi de la terminale de la distanță.

Manipularea textului

Căutați și înlocuiți cuvinte și șiruri

Un punct forte în utilizarea vi se datorează puterii expresive și operaționale a funcțiilor de căutare și înlocuire bazate pe utilizarea expresiilor regulate, în mare parte moștenite de la editorul anterior și activate cu ajutorul comenzilor / e: care redirecționează cursorul pe ultima linie a ferestrei pentru a introduce datele pentru căutare / înlocuire. Acest lucru permite unui utilizator expert să obțină cu o singură comandă operații care în editorii tradiționali pot necesita sute de acțiuni elementare. De exemplu, o operațiune cum ar fi transformarea tuturor cuvintelor izolate „if” în „IF” într-un text (delimitat prin '<' și '\>') ignorând caracterele din alte cuvinte se obține prin simpla tastare, în modul de comandă:

 : g / \ <if \> / s // IF / g

sau, și mai simplu, comanda de înlocuire ( g ) aplicată șirului ( % s sau „înlocuire”) care urmează să fie înlocuită (dacă) cu noul șir (IF) [1] :

 :% s / if / IF / g

Copiați și lipiți textele lungi

De asemenea, este posibil să efectuați operații de copiere și lipire. De exemplu, în modul de comandă, puteți selecta una sau mai multe linii contigue utilizând comanda V. După selectare, este posibilă ștergerea (prin comanda d ) sau lipirea (prin comanda p ). Fără a ieși din modul de comandă, puteți utiliza funcțiile pentru a vă deplasa în text între faza de copiere și lipire . Mutarea, pe lângă cele din cele 4 direcții, vă permite să mergeți direct la o linie sau la sfârșitul textului (folosind comanda G ). De exemplu, pentru a merge direct la linia 257 a fișierului (în modul de comandă):

 : 257

Programe derivate din vi și clone

  • Vim - „Vi IMproved” - este cel mai cunoscut dintre moștenitorii lui vi, este o clonă actualizată [1]
  • Există o versiune adaptată la BSD pe Sourceforge. Utilizați și ca punct de plecare [2]
  • nvi este o implementare a editorului de text ex / vi distribuit inițial ca parte a Fourth Berkeley Software Distribution (4BSD) [3]
  • bvi "Binary VI" - un editor bazat pe vi pentru fișiere binare [4]
  • Elvis este o clonă vi pentru Unix și alte sisteme de operare [5]
  • Vigor este editorul vi cu adăugarea Vigor Assistant, un personaj animat deliberat iritant modelat pe Clippy de la Microsoft Office [6]
  • VILE sau Vi Like Emacs este un set de macrocomenzi pentru Emacs care vă permite să utilizați comenzile vi [7]

Curiozitate

este prezent în Evans Hall de la Universitatea din California .

Notă

  1. ^ (RO) Acolo și Vim Editor: 12 exemple puternice de căutare și înlocuire , pe thegeekstuff.com. Adus pe 29 noiembrie 2017 .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității GND ( DE ) 4195682-5
Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă cu software-ul liber