Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:resurse:folosire-vim [2013/08/11 11:34]
mihai.barbulescu [Where am I?]
uso:resurse:folosire-vim [2018/10/01 12:59] (current)
dragos.dimitriu [Replacing]
Line 1: Line 1:
 ~~SHOWSOLUTION~~ ~~SHOWSOLUTION~~
-====== Folosire ​vim ======+ 
 +====== Folosire ​Vim ======
  
 <​hidden>​ <​hidden>​
-Pentru cine își dorește să facă demonsrtație pe proiector, ar fi util să se vadă clar ce taste sunt apăsate. Pentru astacel mai interesant mi s-a părut [[https://​launchpad.net/​screenkey|screenkey]],​ orice alte sugestii sunt binevenite.+Ar fi interesant ca in josul paginiiin loc de exercitii, fiecare asistent sa puna cate un lucru pe care el il considera "​awesome"​ la vim 
 +sau un exemplu de situatie reala in care vim "i-a salvat viata" ​:)
 </​hidden>​ </​hidden>​
 +
 +===== Video tutorials =====
 +
 +  * [[http://​www.youtube.com/​watch?​v=GdZxzS3veBA|IT Assistant - Introducere in vim 1]]
 +  * [[http://​www.youtube.com/​watch?​v=GJaAEOk6-zs|IT Assistant - Introducere in vim 2]]
 +
 +===== Suport laborator =====
 +
 +  * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​lpg=PA532&​pg=PA473#​v=onepage&​q&​f=false|Cartea de USO cap. 14.3. Editorul Vim]]
 +  * [[http://​www.benjiegillam.com/​2012/​02/​switching-to-vim-the-easy-way/​|Switching to Vim: The Easy Way - Installing/​Vimtutor]]
 +  * [[http://​vim-adventures.com/​|VIM Adventures]] - un joc simpatic care vă va ajuta să aveți o tranziție și mai ușoară către vim și să exersați comenzi de bază.
 +  * [[http://​www.moolenaar.net/​habits.html|Sfaturi de la Bram Moolenaar, creatorul Vim]]
 +  * [[http://​mislav.uniqpath.com/​2011/​12/​vim-revisited/​|A Gentle Introduction to Vim]]
 +  * [[https://​danielmiessler.com/​study/​vim/​|Vim - 5 levels to mastery]]
 ===== Cheat sheet ===== ===== Cheat sheet =====
  
Line 16: Line 32:
 ==== More cheatsheets ==== ==== More cheatsheets ====
  
 +  * [[http://​www.mihneadb.net/​post/​vim-cheatsheet/​|Mihnea'​s Vim Cheatsheet]]
   * [[http://​www.fprintf.net/​vimCheatSheet.html|Complete vim CheatSheet]]   * [[http://​www.fprintf.net/​vimCheatSheet.html|Complete vim CheatSheet]]
   * [[http://​linuxmoz.com/​vi-commands-cheat-sheet/​|Vi Commands Cheat Sheet]]   * [[http://​linuxmoz.com/​vi-commands-cheat-sheet/​|Vi Commands Cheat Sheet]]
   * [[http://​www.viemu.com/​a_vi_vim_graphical_cheat_sheet_tutorial.html|Graphical vim cheatsheet and tutorial]]   * [[http://​www.viemu.com/​a_vi_vim_graphical_cheat_sheet_tutorial.html|Graphical vim cheatsheet and tutorial]]
-  * [[http://​tnerual.eriogerg.free.fr/​vimqrc.pdf|Vim Quick Reference Card (PDF)]] 
-===== Suport laborator ===== 
-  * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​lpg=PA532&​pg=PA473#​v=onepage&​q&​f=false|14.3. Editorul Vim]] 
-  * [[http://​vim-adventures.com/​|Vim Adventures]] 
-  * [[http://​www.moolenaar.net/​habits.html|Sfaturi de la Bram Moolenaar, creatorul Vim]] 
-  * [[http://​mislav.uniqpath.com/​2011/​12/​vim-revisited/​|A Gentle Introduction to Vim]] 
  
 ===== Pachete necesare ===== ===== Pachete necesare =====
-  * vim +  * [[http://​linux.die.net/​man/​1/​vi|vim]] 
 +  * [[http://​linux.die.net/​man/​1/​vimtutor|vimtutor]]
  
 ===== Arhivă laborator ===== ===== Arhivă laborator =====
Line 38: Line 49:
 <note tip> <note tip>
 Deși pare complicat, **''​vim''​** nu este dificil de folosit. Nu trebuie să rețineți toate comenzile posibile de la prima folosire. Comenzile de Vim se învață în momentul în care vă loviți de ele și căutați să găsiți o soluție eficientă. Deși pare complicat, **''​vim''​** nu este dificil de folosit. Nu trebuie să rețineți toate comenzile posibile de la prima folosire. Comenzile de Vim se învață în momentul în care vă loviți de ele și căutați să găsiți o soluție eficientă.
 +</​note>​
 +
 +<note warning>​Înainte de a începe tutorialul de aici vă recomandăm să parcurgeți lecțiile din ''​vimtutor''​. Sunt 7 lecții care vă trec prin comenzile de bază și lucrați direct pe textul din ''​vimtutor'',​ fără a fi nevoie să deschideți alt terminal. ​
 +
 +Rulați comanda:
 +
 +<code bash>
 +student@uso:​~$ vimtutor
 +</​code>​
 </​note>​ </​note>​
 ===== Editorul vim. Intro ===== ===== Editorul vim. Intro =====
Line 73: Line 93:
 </​code>​ </​code>​
  
-Se pot deschide mai multe fișiere: ​+Odată ce a fost deschis, vim se va afla în modul __Normal__. Pentru a naviga prin fișier se folosesc tastele **''​h''​**,​ **''​j''​**,​ **''​k''​**,​ **''​l''​** exact ca în figura următoare. 
 + 
 +{{http://​elf.cs.pub.ro/​uso/​store/​03_vim_nav_keys.png?​nocache}} 
 + 
 +<note tip> 
 +Rândul din mijloc al tastaturii poartă numele de __home row__. Dacă aveți degetele deasupra lui veți face cele mai scurte mișcări pentru a ajunge la orice tastă. 
 +</​note>​ 
 + 
 +Evident, se pot deschide mai multe fișiere: ​
  
 <code bash> <code bash>
Line 99: Line 127:
 </​note>​ </​note>​
  
-Odată ce a fost deschisvim se va afla în modul __Normal__. Pentru a naviga prin fișier se folosesc tastele **''​h''​**,​ **''​j''​**,​ **''​k''​**,​ **''​l''​** exact ca în figura următoare.+Însă dacă, de exemplu, avem un fișier header cu definițiile a foarte multe funcții sau macro-uri am vrea să îl avem undeva în stânga sau în dreapta pentru a putea apela corect acele funcții ​în codul nostru. Pentru a vizualiza simultan conținutul a mai multe fișiere folosim split views:
  
-{{http://elf.cs.pub.ro/uso/store/03_vim_nav_keys.png?​nocache}}+^ Comandă ​        ^ Formă scurtă ^ Efect           ^ 
 +| **''​:split''​** ​ | **'':​sp''​** ​ | split orizontal | 
 +| **'':​vsplit''​** | **'':​vsp''​** | split vertical ​ | 
 + 
 +Navigarea între view-uri se face cu //Ctrl+w// și apoi //Ctrl + litera// asociată direcției de deplasare (//h, j, k, l//) 
 + 
 +Aceste //splits// ar putea fi folosite și pentru compararea a două surseDar, de exemplu, scriem cod în echipă și vrem să comparăm fișierul nostru original cu ce a adăugat nou un coleg al nostru e mai bine să folosim un utilitar care semnalează diferențele între cele două fișiere pe care le vizualizăm. Pentru aceasta putem folosi **''​vimdiff''​** (care uneori poate fi mai util decât **''​diff''​** din linia de comandă). **''​vimdiff''​** e un shortcut pentru **''​vim -d''​**. Dacă aveți nevoie de ajutor **'':​h vimdiff''​**  
 + 
 +<code bash> 
 +vimdiff file1 file2 
 +vim -d file1 file2 
 +</​code>​
  
-<note tip> 
-Rândul din mijloc al tastaturii poartă numele de __home row__. Dacă aveți degetele deasupra lui veți face cele mai scurte mișcări pentru a ajunge la orice tastă. 
-</​note>​ 
  
 ===== Părăsire editor ===== ===== Părăsire editor =====
Line 137: Line 173:
 </​note>​ </​note>​
  
-Dacă am deschis mai multe fișiere și vrem să le închidem pe toate o dată trebuie să folosim **''​qall''​**. Dacă vrem să salvăm toate modificările:​ **''​wqall''​**+Dacă am deschis mai multe fișiere și vrem să le închidem pe toate o dată trebuie să folosim **''​qa''​**. Dacă vrem să salvăm toate modificările:​ **''​wqa''​**
  
 ===== Comenzi frecvente și utile în vim ===== ===== Comenzi frecvente și utile în vim =====
Line 170: Line 206:
 ===== Replacing ===== ===== Replacing =====
  
-De multe ori, într-un fișier, vrem să înclocuim ​un șir cu alt șir. Pentru a face aste lucru trebuie să intrăm în modul __Command__ și să dăm o comandă care începe cu **''​s/''​**,​ de exemplu:+De multe ori, într-un fișier, vrem să înlocuim ​un șir cu alt șir. Pentru a face aste lucru trebuie să intrăm în modul __Command__ și să dăm o comandă care începe cu **''​s/''​**,​ de exemplu:
  
 <code bash> <code bash>
uso/resurse/folosire-vim.1376210043.txt.gz · Last modified: 2013/08/11 11:34 by mihai.barbulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0