Jump to content
pyth0n3

Just started vim .Ouups something went wrong!

Recommended Posts

Posted (edited)

Level:Basic

In urmatoarele randuri voi descrie cateva optiuni a unui editor de text si anume

"VIM", eu il voi chema alaturi de altii in urmatorul fel "The Editor".

Probabil majoritatea va veti face urmatoarele intrebari:

De ce ar trebui sa ma intereseze VIM daca eu ma ocup doar de atacuri informatice?

Ei bine raspunsul meu e simplu.Ar trebui.Fiecare hacker blackhat sau whitehat

care se respecta ar trebui sa cunoasca VIM (Parerea mea).Nu ma intrebati de ce,

raspunsul ar trebui sa il gasiti singuri in diversele sisteme pe care le penetrati , mai precis in sistemele *NIX based unde uneori singurul editor instalat

de default este chiar VIM.

Inainte de a scrie acest tutorial am luat in considerare urmatoarele:

Va aflati intrun sistem *NIX based folosind o conexiune ssh si din greseala scrieti in terminal "vim".

Pentru unii acest cuvant poate fi chiar o mare problema deoarece pentru a iesi din editor se poate recurge la inchiderea sesiunii ssh (necunoscand alternativele). Un atacker va renunta la modificarea unui exploit deoarece nu va reusi sa modifice codul sursa. Bineinteles in aceste cazuri exista si alte alternative de a scrie o bucata de cod

cat > exploit.c << eof

dar aceste sintaxe nu au puterea unui editor.

Ca sa nu fac prea multa confuzie voi spune ca vim are doua moduri prin care se pot efectua diverse operatii (desi in general ar fi 4 ) oricum aceste 2 moduri pe care le voi descrie vor permite sa efectuati diverse operatii de baza importante.

Cand vine deschis vim intra de default in "Normal mode"

In acest mod se pot efectua urmatoarele: modificarea textului se poate deplasa usor in jurul fiecarui rand sau cuvant si se pot efectua diverse operatii de tipul delete,cut,paste.

"Insert mode" intrand in aceasta modalitate se poate scrie textul (de preferat ar fi doar acest lucru incat diverse alte optiuni se pot efectua in "Normal mode").

Cand vine deschis Vim intra in "Normal mode" iar pentru a scrie text va trebui apasat tastul <i> asadar se trece in "Insert mode" iar pentru a reintra in "Normal mode" se poate apasa tastul <Esc>.

Precizez ca in "Normal mode" se pot efectua diverse comenzi , voi reveni pe parcurs cu cateva.

Dupa ce vine scris codul in "Insert mode" se trece in "Normal mode" aici se pot face diverse lucruri.

Pentru a naviga in jurul textulul se pot folosi tastele traditionale up,down,left,right dar vim pune la dispozitie si altele.

<h> left

<l> right

<k> up a line

<j> down a line

<0> start of line (tastul e zero nu il confundati cu o)

<^> first character of line

<$> end of line

Decideti voi care sunt mai usoare de folosit .

Cum vine editat un fisier?

vim file1

Vim va deschide file1 in "Normal mode" , un fisier poate fi deschis chiar din vim din "Normal mode" ":e nume_fisier" iar in cazul in care fisierul file1 este deja deschis il va inchide si va deschide un nou buffer cu nume_fisier.

Daca este complicat ce am descris mai sus e mai simplu ca un fisier sa fie deschis in urmatoarea sintaxa "vim nume_fisier" sau "vim" dupa care ":e nume_fisier", are acelasi efect cu ceea ce am descris mai sus.

Tin sa precizes ca din vim se poate schimba directorul folosind comanul ":cd"

Exemplu:

":cd /home/pyth0n3/Desktop" , trebuie doar sa fiti in "Normal mode"

Tin sa precizez ca exista diverse combinatii avansate dar ma limitez sa explic cateva feature esentiale pentru a putea edita un simplu file.

Dupa ce vine scris un file va trebui salvat . Ouups, something went wrong

Din "Normal mode" se poate salva folosind urmatoarea sintaxa ":w" sau ":w nume_fisier" pentru a da un nume fisierului in cazul in care nu a fost deschis un fisier in vim.

Note:mai exista o sintaxa pentru a salva un fisier din vim si anume ":up" sau ":up nume_fisier"

(":up" -> preserves timestamps)

Nici aici nu voi intra la comenzile avansate ca sa nu fac confuzie , ceea ce am descris pana aici permite editarea si salvarea unui fisier.

Cum sa inchid vim dupa ce am editat un fisier ? Ouups again

Din "Normal mode" "ZZ" salveaza fisierul si inchide vim

Din "Normal mode" ": x" salveaz? fi?ierul în cazul în care

acesta a fost schimbat si inchide vim (preserving its timestamp)

Din "Normal mode" ":q!" iese din vim fara sa salveze fisierul

Din "Normal mode" ":qa" iese din vim , inchide toate sesiunile deschise fara sa salveze fisierele.

Cum sa sterg text ?

Din "Normal mode" "x" sterge un caracter.

Din "Normal mode" "dd" sterge o linie de caractere (sau cuvinte)

Note: "2dd" sterge doua linii (linia in care se afla cursorul si urmatoarea)

"3dd" sterge trei linii (linia in care se afla cursorul si urmatoarele 2) "xdd" sterge linia in care se afla cursorul si urmatoarele x linii unde x poate avea o anumita valoare.

Folosind "d" se pot sterge diverse linii de cod , spre exemplu pentru a sterge liniile de la numarul 5 la numarul 10 se poate folosi urmatoarea sintaxa din "Normal mode" ":5,10d"

Vim inainte de a sterge liniile le pune intrun anumit registru asadar in cazul in care va trebui adus inapoi ultima bucata de cod sters se poate proceda cu comandul "p" din "Normal mode"

Se pot aduce diverse alte bucati de cod sterse in precedenta

Pentru a avea o lista cu text-ul sters se poate da comand-ul ":registers"

Deci in cazul in care ati sters de mai multe ori bucati de text le puteti aduce inapoi folosind urmatoarea sintaxa ("xp) unde x este valoarea de registu care contine codul pe care vreti sa il aduceti inapoi.

Exemplu :

--- Registers ---

"" ef^J

"1 ef^J

"2 cd^J

"3 ab^J

"4 a^Jb^Jc^J

In acest exemplu am sters mai multe caractere de mai multe ori

pentru a aduce inapoi liniile a,b,c vom da comandul "4p iar pentru a aduce inapoi linia de cod "cd" care am sterso in precedenta se poate chema urmatoarea sintaxa "2p.

Pentru a copia cateva linii de text se poate folosi urmatoarea sintaxa in "Normal mode"

"5yy" va copia linia unde se afla cursorul si urmatoarele 4 linii

"xyy" va copia linia unde se afla cursorul si urmatoarele x linii unde x poate fi o valoare numerica.

"p" va face paste la liniile copiate in precedenta iar "xp" va face paste la liniile copiate in precedenta de x ori unde x este o valoare numerica.

Cum am mai spus in precedenta vim are o gramada de comenzi avansate , iar in acest tutorial am vrut doar sa explic cateva comenzi de baza care pot permite editarea/modificarea textului , salvarea unui fisier.

Tutorialul este adresat catre toti cei care nu au folosit vim niciodata iar pentru ceilalti care cunosc deja vim va pune doar cateva puncte.

Documentarea oficiala se poate gasi la urmatoarea adresa

Vimdoc : the online source for Vim documentation

Iar pentru toti cei care sunt inceptori incercati sa instalati si sa folositi cream

Cream :: a modern configuration of the Vim text editor

Cream's motto is "Cream makes the powerful Vim text editor easy!"

Il veti gasi ca pachet in fiecare distributie linux (cel putin in cele mai cunoscute)

Cateva informatii pentru necunoscatori

Autorul care a creat vim este kopk.jpg

born in 1961, in Lisse, province of Zuid-Holland, Netherlands

Bram Moolenaar - Wikipedia, the free encyclopedia

Download paper:

wget http://sprunge.us/fMaZ -O basic_vim_tut.txt

Edited by pyth0n3
Posted

A? vrea s? adaug c? vim este disponibil ?i pentru Windows. (x86/x64).

Download de aici.

Rula?i install din arhiv?. Apoi ad?ga?i calea în System Properties->Advanced->Environment Variables->Path.

În plus de asta. Pentru rularea de comenzi externe :! comanda. (Util când programa?i pentru c? pute?i accesa g++, gcc etc).

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...