Innrøm det: Hver gang du ser en person som bruker Vim, vurderer du muligheten for at de vet noe du ikke gjør. Hvorfor ellers ville de bruke en redaktør som i ditt sinn er datert, åpen kildekode? Tenk hva du ønsker, men det er en grunn til at topputviklere sverger ved Vim.
Publisert opplæringNoen få uker besøker vi noen av leserens favorittinnlegg fra hele historien til nettstedet. Denne opplæringen ble først publisert i februar 2011.
Inntil du har brukt minst en måned til å jobbe hver dag med redaktøren, vil du utvilsomt hate det! Dette er spesielt hvorfor de fleste nybegynnere vil leke med Vim for en dag, bli forferdet, og aldri røre den igjen. Det er uheldig at hvis disse utviklerne kunne komme seg utover fallgruvene, ville de bli introdusert til utrolig fart og fleksibilitet.
Det er sant: Vim er ikke din standard kodeditor (det er bedre). Overgang fra, si, TextMate til Vim kommer til å være en helt annen prosess enn å bytte fra TextMate til Espresso. Vær alltid oppmerksom på det når du finner deg selv å rive håret ditt fordi Vim tilsynelatende nekter å skrive inn tekst når du skriver.
Selv om det er flere moduser i Vim, fokuserer vi på de tre viktigste. Men før vi fortsetter, merk at hver tast tjener en annen funksjon, avhengig av hvilken modus du er i. Enda mer forvirrende - i begynnelsen - utløser et hovedbrev en annen handling enn en liten bokstav.
I kommandomodus, vil trykke på små bokstaver "i" utløse "Sett inn modus". En stor bokstav "I" vil imidlertid flytte markøren til begynnelsen av linjen. Dette kan høres forvirrende, men det gir deg utrolig kraft!
V
å bytte til visningsmodus, og skriv deretter inn 5J
til å velge fem linjer nede. Til slutt vil du trykke d
, for sletting. Jeg vet at dette høres utrolig forvirrende først. Du kan kanskje tenke på deg selv, "Alt som fungerer bare for å slette fem linjer?" Sannheten er, men denne metoden er betydelig raskere.
Hvorfor ville du skru opp nesen din på over tre tiår med utvikling?
Du kan høre dine venner si: "Er ikke Vim en gammel kodeditor?" Vel, det kan du si Det har eksistert i over tretti år. Selv om det er ærlig, hvorfor ville du skru opp nesen din på over tre tiår med utvikling? Det er lengre enn jeg har levd! Enda bedre, til og med i dag, er Vim under aktiv utvikling. Den nyeste versjonen, 7.3, ble gjort tilgjengelig i august 2010.
For det andre er det viktig å huske på at Vim ikke er Vi. Hvis din eneste erfaring er med sistnevnte, ta litt tid å laste ned den nyeste utgivelsen og leketøy rundt med de nye funksjonene. Du vil bli hyggelig overrasket!
Hvis Vim ikke kan gjøre det, kan du satse på at det er et plugin tilgjengelig et sted!
Du vil raskt finne ut at hvis Vim ikke kan utføre en bestemt oppgave, er det sannsynlig at et plugin har utviklet seg for å gi den funksjonaliteten. For eksempel, bør du vurdere TextMates utmerkede utdragsfunksjon. Mens Vim ikke støtter dette innfødt, kan du laste ned snipMate-pluginet, som burde gjøre opplevelsen praktisk talt identisk med det du er vant til.
Jo mindre bevegelse, jo bedre.
For det første er dette ikke sant. Det kan ha vært tilfelle med Vi, men du er fri til å bruke hvordan Vim på den måten som er mest behagelig for deg. Så bruk piltastene til ditt hjerte innhold - men husk at det er en grunn til at de fleste Vim-brukere ikke gjør det.
De h, j, k, l
nøkler kartlegging til henholdsvis venstre, ned, opp og høyre, tjener to formål:
Når alt er sagt og gjort, du er personen som bruker redaktøren. Hvis du i utgangspunktet føler deg mer komfortabel med piltastene, så gjør du det!
Det er ok! Vim er ikke for alle. Som en person som i det minste forsøker å gjøre designarbeid fra tid til annen, kan jeg fullt ut bekrefte at Vim kanskje ikke passer best for designere.
Utviklere er ikke designere; Det er bare naturlig at dette faktum vil bli reflektert i deres valg av redaktører.
Hvis du finner ut at hoveddelen av dagene dine er brukt sammen med HTML og CSS, så er kanskje Vim ikke for deg. Nå, det er ikke å si at du ikke bør gi det et skudd; men det er sikkert forståelig, bør du bestemme deg for å holde fast med en mer designer-vennlig redaktør, for eksempel Coda.
Vanlig og enkel, det er søppel. Sikkert, hver redaktør har sine sterke poeng, men du vil oppdage at Vim er utrolig kraftig, og enda viktigere, fleksibel. Det finnes hundrevis av hundrevis av plugins tilgjengelig (gratis) som vil gi støtte for nesten hvilken som helst form for funksjonalitet du trenger.
Mange nykommere nevner ofte den innebygde "Change Inner" -kommandoen som et stort salgsargument. Det var sikkert for meg! La oss si at du har følgende stykke kode:
var joe = 'rørlegger';
Forutsatt at markøren er i begynnelsen av linjen, og du ønsker å endre verdien "rørlegger" til "svart", kan du bruke piltastene eller musen til å velge og endre teksten. Med Vim er prosessen enormt forenklet. Bare skriv inn: ci'
. Dette står for "Change Inner Quotes," eller, finn det neste settet med enkelt anførselstegn, og endre verdien på innsiden.
ul> li Min liste element tekst.
. Dette var en første gripe som jeg hadde med Vim også. Når du først starter, sier MacVim, blir du kastet inn i ulvspakken! Ingen kode markering, ingen formatering, ingen smart inntasting ... nei ingenting! Spesielt hvis du bruker en tilpasset Vim-editor, bør det i det minste være en grunnleggende vimrc-fil for å komme i gang. Det kan være en skremmende opplevelse som prøver å finne ut hvordan du bruker dine egendefinerte preferanser.
For de som ikke er kjent med en vimrc-fil, er det egentlig en fil som lar deg spesifisere dine redigeringsinnstillinger.
Bruk dette som startbilde (Klikk på Utvid-knappen nedenfor):
".vimrc File" Vedlikeholdt av: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Glem kompatibilitet med Vi. Hvem bryr seg. sett nocompatible "Aktiver filtyper filetype på filetype plugin på filetype innrykk på syntaks på" Skriv den gamle filen ut når du skifter mellom filer. sett autowrite "Vise nåværende markørposisjon i nedre høyre hjørne. sett linjal" Ønsker en annen kartleder enn \ "sett mapleader =", ";" Legg merke til et svakt lag etter at du har tastet opp lederkoden + kommandoen? Dette reduserer "timeout". Set timeoutlen = 500 "Bytt mellom buffere uten å lagre sett skjult" Angi fargeskjema. Endre dette til dine preferanser. "Her er 100 å velge mellom: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme twilight "Angi skrifttype og størrelse. Avhenger av oppløsningen. Større skjermer, foretrekker h20 sett guifont = Menlo: h14" Tab stuff set tabstop = 3 sett shiftwidth = 3 sett softtabstop = 3 sett expandtab "Vis kommando i nederste høyre del av skjermsettet showcmd "Vis linjer nummer satt nummer" Foretrukker relativ linje nummerering? "sett relativnummer" "Indent ting sett smartindent sett autoindent" Vis alltid statuslinjesettet siststatus = 2 "Foretrekker litt høyere linjehøyde sett linjeplass = 3 "Sett inn linjeskift sett inn tekstwidth = 79 sett formatoptions = qrn1" Angi inkrementell søking "angi inkSearch" Marker søk satt hlsearch "tilfelle ufølsomt søk sett ignorecase sett smartcase" Skjul MacVim verktøylinje som standard sett go- = T " Hard-wrap avsnitt av tekst nnorem apq gqip "Aktiver kollapsesett som kan foldes" Skjul musen når du skriver inn mousehide "Snarvei for å kaste koden med leder (vanligvis \) + ft nnoremap ft Vatzf "Opprett ordbok for tilpassede utvidelser sett ordbok + = / Brukere / jeff_way / .vim / dict.txt" Åpner en vertikal deling og bytter over (\ v) nnoremap v v l "Split windows under det nåværende vinduet. sett splitbelow" sesjonsinnstillinger sett sessionoptions = resize, winpos, winsize, buffere, tabpages, folds, curdir, help "Sette opp en HTML5-mal for alle nye .html-filer" autocmd BufNewFile * silent! 0r $ VIMHOME / maler /%: e.tpl "Last inn gjeldende buffer i Firefox - Mac spesifikk. Abbrev ff:! Open -a firefox.app%: p "Kart en endringskatalog til skrivebordet - Mac-spesifikk nmap d: cd ~ / skrivebord : e. "Snarvei for redigering av vimrc-fil i en ny tab nmap ev: tabedit $ MYVIMRC "Endre zen koding plugin utvidelse nøkkel for å skifte + e la g: user_zen_expandabbr_key = ' '"Raskere snarvei for å kommentere. Krever T-Comment plugin-kart c "Sparer tid, karter mellomromstasten til kolon nmap : "Endre automatisk gjeldende katalog til den for filen i bufferautocmd BufEnter * cd%: p: h" Kodekomplettering til, + tab-bilde "Mer nyttig kommandolinje ferdigstillelse satt wildmenu" Automatisk ferdigstillelse meny sett wildmode = liste: lengste "http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE sett completeopt = lengste meny inoremap pumvisible ()? "\ ":" \ u \ "inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Ned> ":" " 'inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Ned> ":" " '"Kartflyktnøkkel til jj - mye raskere imap jj "Slett alle buffere (via Derek Wyatt) nmap ,da: exec "1,". bufnr ('$'). "Bd" "Boble enkeltlinjer (sparker rumpa)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Boble flere linjer vmap xkP '[V'] vmap xp '[V'] "Kilde vimrc filen etter å lagre den. På denne måten trenger du ikke å laste Vim på nytt for å se endringene. hvis har (" autocmd ") augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~ /. vimrc augroup END endif "enklere vindunavigasjon nmap h nmap j nmap k nmap l "------------------------" "NERDTREE PLUGIN INNSTILLINGER" ------------------ ------ "" Snarvei for NERDTreeToggle nmap nt: NERDTreeToggle "Vis skjulte filer i NerdTree la NERDTreeShowHidden = 1" autentisk NERDTree og fokus markør i nytt dokument autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p "Helpeful forkortelser iab lorem Lorem ipsum dolor sitten, consectetur adipisicing elit, sed gjør eiusmod tempor incididunt ut labore et dolor magna aliqua. Iab llorem Dette er et viktig spørsmål, og det er viktig at du ikke er i stand til å utvide deg, og at du ikke har noen mulighet til å utnytte dette. Du trenger ikke å utnytte dette arbeidet, og det er derfor ikke noe å gjøre. korrigerer. Bare for eksempel. Legg til din nedenfor. iab teh iab Teh "Kom hjem dir lettere" hm er lettere å skrive enn: cd ~ nmap hm: cd ~ / "Alfabetisk sorter CSS egenskaper i fil med: SortCSS: kommando! 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 "Lagrer fil når Vim-vinduet mister fokus au FocusLost *: wa" Sikkerhetskopier satt backupdir = ~ / .vim / tmp / backup // "sikkerhetskopiert sett directory = ~ / .vim / tmp / swap //" swap-filer sett sikkerhetskopi "aktiver backup" Ikke lenger strekker for å navigere filer "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l sett showmatch" vis matchende braketter "skriv ut tom tag kart! H 5WI
Jeg heller ikke - i hvert fall ikke mer enn jeg har også - det er en rekke dedikerte Vim-redaktører som gir en mer Windows / Mac GUI-lignende opplevelse.
Disse redaktørene vil gi støtte til de forskjellige tastetrykkene som inngår i kroppen din, for eksempel "Kommando + F
"å søke, eller"Kommando + W
"for å lukke det nåværende vinduet.
Husk hvordan i skolen, iblant, var studenten ved siden av deg i stand til å forklare og hjelpe deg å forstå noe vanskelig konsept mer enn læreren? Årsaken er at når du har mestret et håndverk, er det vanskelig å huske det som personlig ga deg mest mulig trøbbel. Fra september til oktober startet jeg en fire ukers utfordring, som jeg kaller "Venturing into Vim." Etter å ha hørt utallige ekstremt talentfulle utviklere roser denne tilsynelatende tiår gamle kodeditoren bestemte jeg meg for at det var verdt en måned på min tid å finne ut hvorfor så mange anser Vim å være den beste redaktøren på planeten.
Selvfølgelig kan du selvfølgelig ikke helt like brukervennlig som, for eksempel, Coda's eksterne serverfunksjon. Når du snakker om panikk, kan du vurdere å installere Transmit FTP-plugin hvis du er en overføringsbruker.
"Dette skriptet lar deg laste opp den nåværende filen via Send direkte fra Vim. For at den skal fungere, må du jobbe med en fil som er bundet til en overføringsforbindelse, og denne tilkoblingen må ha" DockSend "aktivert."
Med dette pluginet, når du redigerer en fil som har en overføringsforbindelse (åpen fil via overføring), trenger du bare å trykke på Kontroll + U
å skyve disse oppdateringene tilbake til den eksterne serveren din. Det er en cinch!
Sannferdig, skjønt, bør du prøve å vedta en bedre bygge / distribusjonsprosess. Denne måten, i stedet for å bruke FTP, kan du enkelt git push
.
Sikker - det er en rekke grunner til ikke å bruke Vim. Den har en bratt læringskurve, og krever en fullstendig revurdering av hvordan en kodeditor skal fungere. Når det er sagt, er det hundrevis av grunner til hvorfor du bør bruk Vim. Det eneste spørsmålet er: hvorfor er du ikke?