Inse det: varje gång du ser en person som använder Vim, anser du att de vet något du inte gör. Varför annars skulle de använda en redaktör som i ditt sinne är daterad, öppen källkod? Tänk vad du vill, men det finns en anledning till varför topputvecklare svär vid Vim.
Publicerad handledningVarje par veckor besöker vi några av våra läsares favoritinlägg från hela webbplatsens historia. Denna handledning publicerades först i februari 2011.
Innan du har spenderat åtminstone en månad som arbetar varje dag med redaktören, kommer du utan tvekan att hata det! Det är särskilt varför majoriteten av nykomlingar kommer att leka med Vim för en dag, bli avskynad och aldrig röra den igen. Vad är olyckligt är att om dessa utvecklare kunde komma bortom fallgroparna skulle de introduceras till otrolig fart och flexibilitet.
Det är sant: Vim är inte din standard kodredigerare (det är bättre). Övergång från, säger TextMate till Vim kommer att vara en helt annan process än att byta från TextMate till Espresso. Håll alltid det i åtanke när du befinner dig att riva vårt hår eftersom Vim tydligen vägrar att skriva in text när du skriver.
Även om det finns flera lägen i Vim, fokuserar vi på de tre viktigaste. Men innan vi fortsätter, notera att varje nyckel tjänar en annan funktion, beroende på vilket läge du befinner dig i. Ännu mer förvirrande - i början - en bokstav utlöser en annan åtgärd än en liten bokstav.
I kommandot läge, trycker du på små bokstäver "i" utlöses "Infogningsläge". En stor bokstav "I" flyttar dock markören till början av raden. Det här låter förvirrande, men det ger dig en otrolig kraft!
V
för att växla till visningsmodus och skriv sedan in 5j
till Välj fem rader ner. Slutligen skulle du trycka på d
, för radering. Jag vet att det här låter otroligt förvirrande först. Du kanske tänker på dig själv, "Allt som bara fungerar för att radera fem linjer?" Sanningen är dock att denna metod är betydligt snabbare.
Varför skulle du vända näsan på över tre decennier av utveckling?
Du kan höra dina vänner säga, "Är inte Vim en gammal kodredaktör?" Tja, du kan säga det; Det har funnits i över trettio år. Men ärligt talat, varför skulle du vända näsan på över tre decennier av utveckling? Det är längre än jag har levt! Ännu bättre än idag, Vim är under aktiv utveckling. Den senaste versionen, 7.3, gjordes tillgänglig i augusti 2010.
För det andra är det viktigt att komma ihåg att Vim inte är Vi. Om din enda erfarenhet är med den senare, ta lite tid att ladda ner den senaste versionen och leksaken runt med de nya funktionerna. Du kommer bli positivt överraskad!
Om Vim inte kan göra det, kan du satsa på att det finns ett plugin tillgängligt någonstans!
Du hittar det snabbt om Vim inte kan utföra en viss uppgift, är det troligt att ett plugin har utvecklats för att tillhandahålla den funktionen. Tänk på att TextMates utmärkta snippets-funktionen är överklagad. Medan Vim inte stöder detta här, kan du ladda ner snipMate-plugin, vilket skulle göra upplevelsen nästan identisk med vad du är van vid.
Ju mindre rörelse desto bättre.
För det första är detta inte sant. Det kan ha varit fallet med Vi, men du är fri att använda Vim på det sätt som känns mest bekvämt för dig. Använd piltangenterna till ditt hjärtans innehåll, men kom ihåg att det finns en anledning till att de flesta Vim-användare inte gör det.
De h, j, k, l
nycklarna till vänster, ner, upp och höger, betjänar två syften:
När allt är sagt och gjort, du är den person som använder redigeraren. Om du först känner dig bekvämare med piltangenterna, gör du det hela taget!
Det är okej! Vim är inte för alla. Som en person som åtminstone försöker att göra designarbete från tid till annan kan jag helt bevisa att Vim kanske inte är den bästa passformen för designers.
Utvecklare är inte designers; Det är bara naturligt att detta faktum kommer att återspeglas i sitt val av redaktörer.
Om du upptäcker att större delen av dina dagar spenderas med HTML och CSS, kanske är Vim inte för dig. Nu ska du inte säga att du inte borde ge det ett skott. men det är säkert förståeligt, om du bestämmer dig för att hålla fast vid en mer designvänlig redaktör, som Coda.
Vanligt och enkelt, det är skräp. Visserligen har varje redaktör sina starka punkter, men du kommer att upptäcka att Vim är oerhört kraftfull och, viktigare, flexibel. Det finns hundratals på hundratals plugins (gratis) som ger stöd för praktiskt taget alla typer av funktionalitet som du behöver.
Många nykomlingar citerar ofta det inbyggda "Change Inner" -kommandot som en stor försäljningsplats. Det var verkligen för mig! Låt oss säga att du har följande kod:
var joe = "rörmokare";
Om du antar att markören är i början av den linjen och du vill ändra värdet "rörmokare" till "svart", kan du använda pilknapparna eller musen för att välja och ändra texten. Med Vim är processen enormt förenklad. Skriv bara: ci'
. Detta står för "Ändra inre citat", eller hitta nästa uppsättning enkla citat och ändra värdet inuti.
ul> li Min textobjekttext.
. Detta var ett första grepp som jag hade med Vim också. När du startar, säg MacVim, kastas du in i vargpaketet! Ingen kod markering, ingen formatering, ingen smart indenting ... inget inget! Särskilt om du använder en anpassad Vim-redigerare, borde det åtminstone vara en basvimrc-fil för att komma igång. Det kan vara en skrämmande upplevelse som försöker räkna ut hur man ansöker dina egna preferenser.
För dem som inte är bekant med en vimrc-fil, är det i grunden en fil som låter dig ange dina inställningar för redigerare.
Använd detta som en startare (klicka på knappen Expandera nedan):
".vimrc File" Underhåll av: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Glöm kompatibilitet med Vi. Vem bryr sig. set nocompatible "Aktivera filtyp filetype på filtyp plugin på filetyp streck på syntax på" Skriv den gamla filen när du byter mellan filer. ställa in autowrite "Visa aktuell markörposition i nedre högra hörnet. set linjal" Vill du ha en annan kartläsare än \ "set mapleader =", ";" Har du någonsin märkt en liten eftersläpning efter att du har skrivit ledarknappen + kommandot? Detta sänker "timeouten. Set timeoutlen = 500" Växla mellan buffertar utan att spara inställt doldt "Ställ in färgschemat. Ändra det här till din preferens." Här är 100 att välja mellan: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme twilight "Ställ in typsnitt och storlek. Beroende på upplösningen. Större skärmar, föredra h20 set guifont = Menlo: h14" Tabsuppsättning tabstop = 3 set shiftwidth = 3 set softtabstop = 3 set expandtab "Visa kommandot längst ner till höger i skärmuppsättningen showcmd "Visa radenummer satt antal" Föreslår relativ radnummerering "" set relativenummer "" Innehållspunkter inställda smartindent set autoindent "Visa alltid statuslinjesetet sista status = 2" Föredrar en något högre linjehöjd set linepace = 3 "Better line wrapping uppsättning wrap set textwidth = 79 inställd formatoptions = qrn1" Ange inkrementell sökning "set inksearch" Markera sök set hlsearch "fall okänslig sök set ignorecase set smartcase" Dölj MacVim verktygsfält som standard set go- = T " Svåra stycken av text nnorem apq gqip "Aktivera kodfällningsuppsättning som kan läggas ihop" Dölj musen när du skriver in mousehide "Genväg för att vikta taggar med ledare (vanligtvis \) + ft nnoremap ft Vatzf "Skapa ordbok för anpassade expansions set dictionary + = / Användare / jeff_way / .vim / dict.txt" Öppnar en vertikal split och byter över (\ v) nnoremap v v l "Split windows under det aktuella fönstret. set splitbelow" session inställningar set sessionoptions = ändra storlek, winpos, winsize, buffers, tabpages, folds, curdir, hjälp "Skapa en HTML5 mall för alla nya .html-filer" autocmd BufNewFile * tyst! 0r $ VIMHOME / mallar /%: e.tpl "Ladda nuvarande buffert i Firefox - Mac specifikt. Abbrev ff:! Open -a firefox.app%: p "Karta en ändringskatalog till skrivbordet - Mac-specifik nmap d: cd ~ / skrivbordet : e. "Genväg för redigering av vimrc-fil i en ny flik nmap ev: tabedit $ MYVIMRC "Ändra zen kodnings plugin expansion nyckel för att skifta + e låt g: user_zen_expandabbr_key = ' '"Snabbare genväg för kommentering. Kräver T-Comment plugin map c "Sparar tid, kartlägger mellanslagstangenten till kolon nmap : "Ändra automatiskt den aktuella katalogen till den för filen i buffertautocmd BufEnter * cd%: p: h" Kodkomplettering till, + flik imap "Mer användbar kommandoradsfärdigställande uppsättning wildmenu" Auto-completion menyset wildmode = lista: längsta "http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE set completeopt = längsta menon inoremap pumvisible ()? "\ ":" \ u \ "inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Ner> ":" " 'inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Ner> ":" " '"Map escape key till jj - mycket snabbare imap jj "Ta bort alla buffertar (via Derek Wyatt) nmap ,da: exec "1". bufnr ('$'). "Bd" "Bubbla enkla linjer (sparkar rumpa)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Bubbla flera linjer vmap xkP '[V'] vmap xp '[V'] "Käll vimrc-filen efter att den har sparats. På så sätt behöver du inte ladda om Vim för att se ändringarna. om har (" autocmd ") augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~ /. vimrc augroup END endif "lättare fönsternavigering nmap h nmap j nmap k nmap l "------------------------" "NERDTREE PLUGIN INSTÄLLNINGAR" ------------------ ------ "" Genväg för NERDTreeToggle nmap nt: NERDTreeToggle "Visa dolda filer i NerdTree låt NERDTreeShowHidden = 1" autentiserad NERDTree och fokusera markören i nytt dokument autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p "Helpefula förkortningar i lorem Lorem ipsum dolor sitta amet, consectetur adipisicing elit, sed gör det snabbare för tillfället en dolore magna aliqua. iab llorem Lorem ipsum dolor sitta amet, consectetur adipisicing elit, sed gör det ojämnaste tillfället för att arbeta med en dolore magna aliqua. Utan minsta möjliga vänskap, det är otroligt att du utövar en ojämn utövning av det här exemplet. korrigerar. Bara till exempel. Lägg till dina nedan. iab teh iab The "Kom hemma dir lättare" hm är lättare att skriva än: cd ~ nmap hm: cd ~ / "Alfabetiskt sortera CSS-egenskaper i filen med: SortCSS: command! 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 "Sparar fil när Vim-fönstret förlorar fokus au FocusLost *: wa" Säkerhetskopierar set backupdir = ~ / .vim / tmp / backup // "säkerhetskopierad set directory = ~ / .vim / tmp / swap //" swap-filer ställa in säkerhetskopiering "aktivera säkerhetskopiering" Inte längre sträcka för att navigera filer "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l set showmatch" visa matchande fästen "skriv ut tom tagga karta! ; h 5hi
Mig heller - åtminstone inte mer än jag har också - det finns en mängd dedikerade Vim-redaktörer som ger en mer Windows / Mac GUI-liknande upplevelse.
Dessa redaktörer kommer att ge stöd för de olika tangenttryckningar som ingriper i din kropp, till exempel "Kommando + F
"att söka, eller"Kommando + W
"för att stänga det aktuella fönstret.
Kom ihåg hur, i skolan, ibland kunde studenten som satt bredvid dig förklara och hjälpa dig att förstå något svårt begrepp mer än läraren? Anledningen är att när du mästar ett hantverk är det svårt att komma ihåg vad du personligen gav dig mest problem med. Från september till oktober inledde jag en fyra veckors utmaning, som jag kallar "Venturing in Vim." Efter att ha hört otaliga extremt begåvade utvecklare berömmer den här till synes decennium gamla kodredaktören bestämde jag mig för att det var värt en månad att ta reda på varför så många anser Vim vara den bästa redaktören på planeten.
Självklart kan du visserligen inte vara så användarvänligt som Codas fjärrserverfunktion. Om du talar om Panic, kan du överväga att installera Transmit FTP-plugin om du är en överföringsanvändare.
"Med det här skriptet kan du ladda upp den aktuella filen via sändning direkt från Vim. För att den ska fungera måste du arbeta på en fil som är kopplad till en sändningsanslutning, och den här anslutningen måste ha" DockSend "aktiverad."
Med denna plugin, när du redigerar en fil som har en sändningsanslutning (öppen fil via sändning) behöver du bara trycka på Kontroll + U
för att driva uppdateringarna tillbaka till din fjärrserver. Det är en cinch!
Sanningsvis bör du försöka att anta en bättre bygg- / installationsprocess. På det här sättet, istället för att använda FTP, kan du helt enkelt git push
.
Visst - det finns en handfull anledningar att inte använda Vim. Den har en brant inlärningskurva och kräver en fullständig omprövning av hur en kodredigerare ska fungera. Det sagt, det finns hundratals anledningar till varför du skall använd Vim. Den enda frågan är: varför är du inte?