cum invata omul vim
Dupa cum probabil m-am mai laudat, folosesc vim foarte des si ma stradui ca de fiecare data cand am cate o problema de editor sa gasesc solutia. Azi am o problema de genul: am extras din configurile lui nagios o lista de scripturi folosite, le-am trecut prin niste zeama de awk sa obtin caile relative la libexec. Acu ca am lista de fisiere, vreau sa deschid pe rand fiecare fisier, sa ma uit la el, sa scriu niste comentarii si sa trec mai departe. Pentru ca nu-mi place sa folosesc mouse-ul si nici filemanagere sau cinspe ferestre diferite si pentru ca vreau syntax highlighting, e un job pentru vim.
Step 0: am deschis gvim si avea fontul aiurea (sans de 12, eu prefer dejavu sans mono de 9, ca e la fel ca in consola). :set guifont=* ca sa am dialog de fonturi ca nu-l stiu pe de rost, selectez dejavu sans mono de 9, ok, arata bine, dar acu sa-l pun in .vimrc. Nu, nu vreau sa pun mana pe mouse
:set guifont=<tab>, ca sa vad ce valoare are, enter sa ramana in history. :e ~/.vimrc ca sa editez vimrc-ul, q: ca sa vad isoricul de comenzi ex, caut linia cu guifont, yy pe ea sa o copiez in registerul default, ctrl-c ca sa inchid istoricul, p in fisier ca sa salvez comanda, :wq sa il salvez, inchid gvim, il deschid, arata bine.
Step 1: deschid fisierul , gf pe primul script, oroare! nu merge ca are calea relativa la libexecul lui nagios, ce bine ar fi daca ar cauta prin svn... Captain Vim to the rescue! :set path=<tab>, incep sa adaug calea catre libexec din working copy-ul meu local, nu conteaza ca e la 8 directoare adancime, merge tab-completion. Enter, gf, merge, ura. Pacat ca trebuie sa dau ctrl-6 sama intorc inapoi sa scriu comentariile, ce bine ar fi daca ar fi deschise amandoua...
Step 2: can i haz new window? manualul zice ca in loc de gf pot folosi ctrl-w f ca sa deschid intr-o fereastra noua (de la vim 7 si ctrl-w gf pentru un tab nou, dar nu e ce-mi trebuie, ca le vreau simultan pe ecran). Cool, ctrl-w ctrl-w sa comut repede intre ele, ctrl-w c sau :q sa inchid fereastra. Pacat ca fereastra noua se deschide deasupra celei curente, am widescreen si oricum liniile fisierelor sunt relativ scurte, as prefera sa vad mai mult pe verticala...
Step 3: Daca comanda de split era cu doua puncte, puteam sa o prefixez cu :virt, dar exista o solutie de reorganizare rapida: ctrl-w L sa trimit fereastra curenta in dreapta, evident si fratii lui cu HJK, pentru stanga, jos, sus (cuum, nu ai folosit niciodata hjkl keys? nethack ftw!). Aparent miscarea asta buleste partial afisarea elementelor de layout (o parte din bara verticala nu are reverse color si parca si syntax highlightingul e putin aiurea), un ^L pentru refresh si i'm good to go.
Dupa cum ziceam unui amic, cea mai utila comanda de vim este :help, am folosit-o de vreo 5 ori in cam tot atatea minute si am invatat o gramada de chestii noi. Da, stiu, probabil se putea si mai simplu sau emacs avea deja un mode care sa faca chestia asta out-of-the-box, dar atunci nu mai aveam ce scrie aici, nu-i asa?
Happy vimming!