Recunoașteți: de fiecare dată când vedeți o persoană care utilizează Vim, vă gândiți la posibilitatea ca ei să știe ceva ce nu aveți. De ce altceva ar folosi un editor care, în mintea ta, este datat, open-source junk? Gândește-ți ce dorești, dar există un motiv pentru care dezvoltatorii de vârf jură pe Vim.
Tutorial publicatLa fiecare câteva săptămâni, revizuim câteva postări preferate ale cititorului nostru de-a lungul istoriei site-ului. Acest tutorial a fost publicat pentru prima oară în februarie 2011.
Până când nu vei petrece cel puțin o lună de lucru în fiecare zi cu editorul, o să-l urăști, fără îndoială! Acesta este motivul pentru care majoritatea noilor veniți se vor juca cu Vim pentru o zi, vor deveni dezgustați și niciodată nu o vor mai atinge. Ce este regretabil că, dacă acești dezvoltatori ar putea depăși capcanele, aceștia ar fi introduși la viteză și flexibilitate incredibile.
Este adevărat: Vim nu este editorul de cod standard (este mai bine). Tranziția de la, de exemplu, TextMate la Vim va fi un proces complet diferit de trecerea de la TextMate la Espresso. Mențineți întotdeauna asta în minte când vă descoperiți că vă rupeți părul, deoarece Vim aparent refuză să introduceți text când tastați.
Deși există mai multe moduri în Vim, ne vom concentra pe cele trei cele mai importante. Dar înainte de a continua, rețineți că fiecare cheie servește unei funcții diferite, în funcție de modul în care vă aflați în prezent. Chiar și mai confuză - la început - o scrisoare de capital declanșează o acțiune diferită de cea a unei litere mici.
În modul comandă, apăsarea literei "i" va declanșa "Modul de inserare". Cu toate acestea, un majuscul "I" va muta cursorul la începutul liniei. Acest lucru ar putea părea confuz, dar vă oferă o putere incredibilă!
V
pentru a comuta la modul Visual, apoi tastați 5j
la Selectați cinci linii în jos. În sfârșit, ai apăsa d
, pentru ștergere. Știu că sună incredibil de confuz la început. S-ar putea să te gândești la tine, "Tot ce funcționează doar pentru a șterge cinci linii?" Adevărul este că, totuși, această metodă este mult mai rapidă.
De ce ți-ai transforma nasul la peste trei decenii de dezvoltare?
S-ar putea auzi prietenii tăi spunând: "Vim nu este un editor de cod vechi?" Ei bine, ai putea spune asta; de mai bine de treizeci de ani. Deși sincer, de ce ți-ai întoarce nasul la peste trei decenii de dezvoltare? Asta e mai mult decât am trăit! Mai bine, chiar până în prezent, Vim este în curs de dezvoltare activă. Cea mai recentă versiune, 7.3, a fost pusă la dispoziție în august 2010.
În al doilea rând, este important să rețineți că Vim nu este Vi. Dacă singura dvs. experiență este cu cea din urmă, faceți ceva timp să descărcați cea mai recentă versiune și jucăria în jur cu noile caracteristici. Veți fi plăcut surprinși!
Dacă Vim nu poate să o facă în mod nativ, puteți paria că există un plugin disponibil undeva!
Veți găsi rapid că, dacă Vim nu poate executa o anumită sarcină, atunci este probabil ca un plugin să fi fost dezvoltat pentru a oferi această funcționalitate. De exemplu, luați în considerare caracteristica excelentă a fragmentelor TextMate. În timp ce Vim nu suportă acest lucru nativ, puteți descărca pluginul snipMate, care ar trebui să facă experiența practic identică cu cea cu care sunteți obișnuit.
Cu cât mișcarea este mai mică, cu atât mai bine.
În primul rând, acest lucru nu este adevărat. S-ar putea să fi fost cazul cu Vi, dar ești liber să folosești modul în care Vim se simte cel mai confortabil pentru tine. Deci, utilizați tastele săgeți la conținutul inimii dvs. - deși rețineți că există un motiv pentru care majoritatea utilizatorilor Vim nu au.
h, j, k, l
cheile de mapare spre stânga, în jos, sus și dreapta, respectiv, servesc două scopuri:
Cand totul e spus si facut, tu sunt persoana care utilizează editorul. Dacă, la început, vă simțiți mai confortabil folosind tastele săgeți, atunci cu toate mijloacele!
Este în regulă! Vim nu este pentru toată lumea. Ca o persoana care cel putin incearca sa faca munca de design din timp in timp, pot atesta pe deplin ca Vim nu este cea mai potrivita pentru designeri.
Dezvoltatorii nu sunt designeri; este firesc ca acest fapt să se reflecte în alegerea editorilor.
Dacă descoperiți că cea mai mare parte a zilelor dvs. este petrecută cu HTML și CSS, atunci Vim nu este pentru tine. Asta nu înseamnă că nu ar trebui să-i dai o șansă; dar este cu siguranță de înțeles, ar trebui să vă decideți să rămâneți cu un editor mai prietenos cu designerul, cum ar fi Coda.
Simplu și simplu, asta-i gunoi. Cu siguranță, fiecare editor are punctele forte, dar veți descoperi că Vim este incredibil de puternic și, mai important, flexibil. Există sute de sute de plugin-uri disponibile (gratuite) care vor oferi suport pentru aproape orice fel de funcționalitate de care aveți nevoie.
Mulți nou-veniți citează de multe ori comanda încorporată "Change Inner" ca un imens punct de vânzare. Cu siguranta a fost pentru mine! Să presupunem că aveți următoarea bucată de cod:
var joe = "instalator";
Presupunând că cursorul se află la începutul acelei linii și doriți să schimbați valoarea "instalator" la "negru", în mod tradițional, puteți utiliza tastele săgeată sau mouse-ul pentru a selecta și schimba textul. Cu Vim, procesul este foarte simplificat. Pur și simplu tastați: CI“
. Aceasta înseamnă "Schimbarea cotelor interne", sau, găsiți următorul set de citate simple și modificați valoarea din interior.
ul> li Textul listei mele de elemente.
. A fost o grevă inițială pe care o aveam și cu Vim. La prima lansare, să zicem, MacVim, sunteți aruncat în pachetul de lupi! Nu se evidențiază nici un cod, nici o formatare, nici o indentare inteligentă ... nimic! În special, dacă utilizați un editor Vim personalizat, ar trebui să existe cel puțin un fișier de bază vimrc pentru a vă începe. Poate fi o experiență intimidantă care încearcă să vă dați seama cum să aplicați preferințele personalizate.
Pentru cei necunoscuți cu un fișier vimrc, este în esență un fișier care vă permite să specificați preferințele editorului.
Utilizați acest lucru ca un starter (faceți clic pe butonul Expand de mai jos):
".vimrc Fișier" Menținută de: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Uitați de compatibilitatea cu Vi. Cui ii pasa. set nocompatible "Activați fișierele de fișiere filetype pe fișierul filetype pe tipul de filety pe sintaxa pe" Scrie fișierul vechi când comutați între fișiere. set autowrite "Afișează poziția curentă a cursorului în colțul din dreapta jos. set ruler" Doriți un alt lider de hartă decât \ "set mapleader =", ";" Ați observat o întârziere ușoară după introducerea tastei + comandă? Acest lucru scade timpul de expirare. Set timeoutlen = 500 "Comutați între buffer-ele fără a salva setul ascuns" Setați schema de culori Modificați acest lucru la preferințele dvs. "Iată 100 din care puteți alege: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme Twilight "Setarea fontului și a dimensiunii. Depinde de rezoluție Ecrane mai mari, preferă h20 set guifont = Menlo: h14" Set tabstop tab = 3 set shiftwidth = 3 set softtabstop = comanda în partea din dreapta jos a setului de ecran showcmd "Afișează numerele de linii numarul set" Preferința de numerotare a liniei relative "set relativenumber" "Indent stuff set smartindent set autoindent" Afișați întotdeauna linia de stare setată laststatus = 2 " set linespace = 3 "Better line wrap wrap set set textwidth = 79 set formatoptions = qrn1" Setați căutarea incrementală "set incsearch" Selectează căutarea set hlsearch "căutare insensibilă de căutare set ignorecase set smartcase" Ascunde bara de instrumente MacVim setată implicit go- = Paragrafele greu de wrap nnorem text apq gqip "Activați setul de pliere a codului foldabil" Ascundeți mouse-ul când tastați set mousehide "Comandă rapidă pentru a desface etichete cu leader (de obicei \) + ft nnoremap ft Vatzf "Creați dicționarul pentru setările personalizate pentru expansiuni personalizate + = / Users / jeff_way / .vim / dict.txt" Deschide o divizare verticală și comută (\ v) nnoremap v v l Setarea unui șablon HTML5 pentru toate fișierele .html noi autocmd BufNewFile * silent! 0r $ VIMHOME / șabloane /%: e.tpl "Încărcați tamponul curent în Firefox - Specific Mac. Abbrev ff:! Open -a firefox.app%: p "Harta unui director de schimbare pe desktop - Nmap specific Mac d: cd ~ / Desktop : e. "Comandă rapidă pentru editarea fișierului vimrc într-o nouă filă nmap ev: tabedit $ MYVIMRC "Modificați cheia de extensie a codului de extensie zen pentru a comuta + e lasă g: user_zen_expandabbr_key = ' "" Comandă rapidă pentru comentație. Necesită hartă a pluginului T-Comment c "Economisește timp; hărți bara de spațiu la nmap-ul colonului : "Schimbarea automată a directorului curent la cea a fișierului în buffer-ul autocmd BufEnter * cd%: p: h" Completarea codului hărții la, + imap tab "Mai multă utilitate de completare a liniei de comandă set wildmenu" Setare meniu de completare automată wildmode = listă: cea mai lungă "http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE set completeopt = longest, menuone inoremap ()? „\ ":" \ u \ "inoremap ()? ' ': \' = pumvisible ()? „\ Jos> ":" " "inoremap ()? ' ': \' = pumvisible ()? „\ Jos> ":" " "" Tasta de evacuare a hărții pentru jj - mult mai rapid imap jj "Ștergeți toate tampoanele (prin Derek Wyatt) nmap ,da: exec "1,". bufnr ('$'). "Bd" "Bubble single lines (kicks cap)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Bubați mai multe linii vmap xkP '[V'] vmap xp '[V'] "Sursa fișierului vimrc după salvarea lui. În acest fel, nu trebuie să reîncărcați Vim pentru a vedea modificările. vimrc augroup END endif "navigare mai ușoară nmap fereastră h nmap j nmap k nmap l "------------------------" "NERDTREE PLUGIN SETTINGS" ------------------ ------ "" Comandă rapidă pentru NERDTreeToggle nmap nt: NERDTreeToggle "Afișați fișierele ascunse în NerdTree permiteți NERDTreeShowHidden = 1" autopen NERDTree și să focalizați cursorul în noul document autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p "Abrevieri utile în fereastra de dialog Lorem ipsum dolor stați în amet, consecutiv adipisicing elit, sed do eiusmod tempor incididunt ut labore și de asemenea, de asemenea, să se asigure că, în cazul în care există o astfel de situație, este necesar să se efectueze o astfel de operațiune. corectează. Doar de exemplu. Adăugați-vă mai jos. iab the iab Teh "ajunge la domiciliu mai ușor" hm este mai ușor de tip decât: cd ~ nmap hm: cd ~ / "Sortați în ordine alfabetică proprietățile CSS în fișier cu: SortCSS: comanda SortCSS: g # \ (\ n \) \ @<=#.,//sort " Shortcut to opening a virtual split to right of current pane " Makes more sense than opening to the left nmap bv: bel vsp "Salvează fișierul atunci când fereastra Vim pierde focalizarea au FocusLost *: wa" Backups set backupdir = ~ / .vim / tmp / backup // "backup set director = ~ / .vim / tmp / swap //" set backup "activa backup" nu se mai întinde pentru navigarea fișierelor "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l set showmatch" arăta paranteze potrivite " hartă de etichete! h 5hi
Nici eu - cel puțin nu mai mult decât am și eu - există o varietate de editori dedicați Vim care oferă o experiență Windows / Mac asemănătoare GUI.
Acești editori vă vor oferi sprijin pentru tipurile de apăsări de taste care sunt înrădăcinate în corpul dvs., cum ar fi "Command + F
"pentru a căuta sau"Command + W
"pentru a închide fereastra curentă.
Amintiți-vă cum, uneori, în școală, elevul care stă lângă dvs. a fost capabil să vă explice și să vă ajute să înțelegeți mai mult un concept dificil decât profesorul? Motivul este că, odată ce ați stăpânit o ambarcațiune, este greu să vă amintiți ce v-a dat cele mai multe probleme personale. Din septembrie până în octombrie, am început o provocare de patru săptămâni, pe care o numesc "Venturing in Vim". După ce am auzit nenumărate dezvoltatori extrem de talentați, lăudăm acest editor de cod vechi de zece ani, am decis că a meritat o lună din timpul meu să aflați de ce atât de mulți oameni consideră Vim ca fiind cel mai bun editor pe planetă.
Bineînțeles că puteți, desigur, nu este la fel de ușor de utilizat ca, de exemplu, caracteristica de la distanță a serverului Coda. Dacă vorbești despre Panic, dacă ești un utilizator de transmisie, poți lua în considerare instalarea pluginului Transmit FTP.
"Acest script vă permite să încărcați fișierul curent prin Transmit direct de la Vim, pentru ca acesta să funcționeze, trebuie să lucrați la un fișier care este legat de o conexiune Transmitere și această conexiune trebuie să aibă activat" DockSend "."
Cu acest plugin, atunci când editați un fișier care are o conexiune Transmitere (fișier deschis prin Transmitere), trebuie doar să apăsați Control + U
pentru a împinge aceste actualizări înapoi la serverul de la distanță. Este un cinch!
Cu adevărat, ar trebui să încercați să adoptați un proces de construire / implementare mai bun. În acest fel, mai degrabă decât folosind FTP, puteți pur și simplu git push
.
Sigur - există o serie de motive pentru a nu utiliza Vim. Are o curbă abruptă de învățare și necesită o regândire completă a modului în care un editor de cod ar trebui să funcționeze. Acestea fiind spuse, există sute de motive pentru care tu ar trebui să utilizați Vim. Singura întrebare este: de ce nu esti tu?