Geef toe: elke keer als je een persoon ziet die Vim gebruikt, overweeg je de mogelijkheid dat ze iets weten wat je niet weet. Waarom zouden ze anders een editor gebruiken die volgens jou gedateerde open-source rommel is? Denk wat je wilt, maar er is een reden waarom topontwikkelaars bij Vim zweren.
Opnieuw gepubliceerde zelfstudieOm de paar weken bekijken we enkele van onze favoriete lezers uit de geschiedenis van de site. Deze tutorial werd voor het eerst gepubliceerd in februari 2011.
Totdat je ten minste een maand lang elke dag met de redacteur hebt gewerkt, zul je het ongetwijfeld haten! Dit is met name de reden waarom de meerderheid van de nieuwkomers een dag lang met Vim spelen, walgen en nooit meer aanraken. Wat jammer is, is dat, als deze ontwikkelaars de valkuilen zouden kunnen overstijgen, ze zouden worden voorgesteld aan ongelooflijke snelheid en flexibiliteit.
Het klopt: Vim is niet je standaard codebewerker (het is beter). Overstappen van, laten we zeggen, TextMate naar Vim gaat een heel ander proces zijn dan overstappen van TextMate naar Espresso. Houd dat altijd in gedachten wanneer je merkt dat je je haar verscheurt, omdat Vim schijnbaar weigert om tekst in te voeren wanneer je typt.
Hoewel er in Vim meerdere modi zijn, concentreren we ons op de drie belangrijkste. Maar voordat we verder gaan, merk je op dat elke toets een andere functie heeft, afhankelijk van de modus waarin je je momenteel bevindt. Nog verwarrender - in eerste instantie - veroorzaakt een hoofdletter een andere actie dan een kleine letters.
In de commandomodus activeert het indrukken van de kleine letter "i" de invoegmodus. Een hoofdletter "I" verplaatst de cursor echter naar het begin van de regel. Dit klinkt misschien verwarrend, maar het geeft je ongelofelijke kracht!
V
om over te schakelen naar de visuele modus en typ vervolgens 5j
naar kiezen vijf regels naar beneden. Ten slotte zou je op drukken d
, voor verwijderen. Ik weet dat dit in het begin ongelooflijk verwarrend klinkt. Je zou bij jezelf kunnen denken: "Alles werkt alleen om vijf regels te verwijderen?" De waarheid is echter dat deze methode aanzienlijk sneller is.
Waarom zou je je neus draaien voor meer dan drie decennia van ontwikkeling?
Je kunt je vrienden horen zeggen: "Is Vim geen oude code-editor?" Nou, dat zou je kunnen zeggen; het bestaat al meer dan dertig jaar. Maar eerlijk gezegd, waarom zou je je neus opdraaien voor meer dan drie decennia van ontwikkeling? Dat is langer dan ik heb geleefd! Beter nog, zelfs tot op de dag van vandaag is Vim in actieve ontwikkeling. De meest recente release, 7.3, is beschikbaar in augustus 2010.
Ten tweede is het belangrijk om in gedachten te houden dat Vim niet Vi is. Als je enige ervaring hebt met de laatste, neem dan even de tijd om de nieuwste uitgave te downloaden en speel wat rond met de nieuwe functies. Je zult aangenaam verrast zijn!
Als Vim het niet echt kan doen, kun je er zeker van zijn dat er ergens een plug-in beschikbaar is!
Je zult snel merken dat, als Vim een bepaalde taak niet kan uitvoeren, het waarschijnlijk is dat er een plug-in is ontwikkeld om die functionaliteit te bieden. Overweeg bijvoorbeeld de uitstekende snippetsfunctie van TextMate. Hoewel Vim dit niet native ondersteunt, kun je de snipMate-plug-in downloaden, waardoor de ervaring vrijwel identiek zou zijn aan wat je gewend bent.
Hoe minder beweging, hoe beter.
Ten eerste is dit niet waar. Het kan het geval zijn geweest met Vi, maar je bent vrij om Vim te gebruiken op de manier die jij het prettigst vindt. Dus gebruik de pijltjestoetsen naar hartelust - maar onthoud dat er een reden is waarom de meeste Vim-gebruikers dit niet doen.
De h, j, k, l
toetsen toewijzen aan links, omlaag, omhoog en rechts, dienen respectievelijk twee doelen:
Als alles achter de rug is, u zijn de persoon die de editor gebruikt. Als je je in eerste instantie prettiger voelt met de pijltjestoetsen, doe dat dan in ieder geval!
Dat is goed! Vim is niet voor iedereen. Als een persoon die op zijn minst van tijd tot tijd probeert om ontwerpwerk te doen, kan ik volledig bevestigen dat Vim misschien niet de beste pasvorm voor ontwerpers is.
Ontwikkelaars zijn geen ontwerpers; het is niet meer dan normaal dat dit feit wordt weerspiegeld in hun keuze van redacteuren.
Als je merkt dat het grootste deel van je dagen wordt besteed aan het werken met HTML en CSS, dan is Vim misschien niets voor jou. Dat wil niet zeggen dat je het geen kans moet geven; maar het is zeker begrijpelijk, als je besluit om bij een meer ontwerpervriendelijke editor te blijven, zoals Coda.
Eenvoudig en simpel, dat is onzin. Zeker, elke editor heeft zijn sterke punten, maar je zult merken dat Vim ongelooflijk krachtig en, nog belangrijker, flexibel is. Er zijn honderden honderden plug-ins beschikbaar (gratis) die ondersteuning bieden voor vrijwel elke gewenste functionaliteit.
Veel nieuwkomers noemen de ingebouwde "Change Inner" -opdracht vaak als een enorm verkoopargument. Het was zeker voor mij! Laten we zeggen dat je het volgende stuk code hebt:
var joe = 'loodgieter';
Ervan uitgaande dat de cursor aan het begin van die regel staat en u de waarde "loodgieter" naar "zwart" traditioneel wilt wijzigen, kunt u de pijltjestoetsen of de muis gebruiken om de tekst te selecteren en te wijzigen. Met Vim is het proces enorm vereenvoudigd. Type gewoon: ci'
. Dit staat voor 'Binnencitaten wijzigen' of zoek de volgende reeks enkele aanhalingstekens en verander de waarde erin.
ul> li Mijn tekst met lijstitems.
. Dit was ook een eerste kwelling die ik met Vim had. Bij de eerste lancering, zeg MacVim, word je in het wolvenpakket gegooid! Geen codering, geen opmaak, geen slimme inspringen ... niets! Vooral als je een aangepaste Vim-editor gebruikt, zou er tenminste een basis-vimrc-bestand moeten zijn om je op weg te helpen. Het kan een intimiderende ervaring zijn die probeert uit te vinden hoe u uw aangepaste voorkeuren kunt toepassen.
Voor degenen die niet bekend zijn met een vimrc-bestand, is het in wezen een bestand waarmee je je editorvoorkeuren kunt opgeven.
Gebruik dit als een starter (klik op de knop Uitbreiden hieronder):
".vimrc-bestand" Onderhouden door: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Vergeet compatibiliteit met Vi. Wie kan het schelen. nocompatible instellen "Filetype bestandstypen op filetype plugin inschakelen op bestandstype in syntaxis op" Schrijf het oude bestand weg bij het schakelen tussen bestanden. stel autowrite in "Toon huidige cursorpositie in rechterbenedenhoek. stel liniaal in" Wilt u een andere kaartleider dan \ "set mapleader =", ";" Heeft u ooit een lichte vertraging opgemerkt na het typen van de leidertoets + opdracht? Dit verlaagt "de time-out. Set timeoutlen = 500" Schakelen tussen buffers zonder set opslaan verborgen "Stel het kleurenschema in. Verander dit naar uw voorkeur." Hier is 100 om uit te kiezen: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme schemering "Stel lettertype en -grootte in Afhankelijk van de resolutie. Grotere schermen, liever h20 set guifont = Menlo: h14" Tabdingen set tabstop = 3 set shiftwidth = 3 set softtabstop = 3 set expandtab "Tonen commando in rechteronderdeel van de schermset showcmd "Nummer regels setnummer weergeven" Liever relatieve regelnummering? "stel relativenummer in" "Spatiebalk set set smartindent set autoindent" Toon altijd de statusregel set laststatus = 2 "Geef de voorkeur aan een iets hogere regelhoogte set linespace = 3 "Betere regel wrapping set wrap set textwidth = 79 set formatoptions = qrn1" Zet incrementeel zoeken "set incarcheren" Markeer zoekset set hlsearch "hoofdletter ongevoelig zoekset ignorecase stel smartcase in" Verberg MacVim werkbalk standaard ingesteld go- = T " Hard-wrap alinea's van tekstnorem apq gqip "Inschakelen code vouwset foldenable" Verberg muis bij typen set mousehide "Snelkoppeling om tags samen te vouwen met leader (meestal \) + ft nnoremap ft Vatzf "Maak een woordenboek voor aangepaste uitbreidingen set woordenboek + = / Gebruikers / jeff_way / .vim / dict.txt" Opent een verticale splitsing en schakelt over (\ v) nnoremap v v l "Split vensters onder het huidige venster. set split achter" sessie-instellingen set sessionoptions = resize, winpos, winsize, buffers, tabpages, folds, curdir, help "Stel een HTML5-template in voor alle nieuwe .html-bestanden" autocmd BufNewFile * silent! 0r $ VIMHOME / templates /%: e.tpl "Laad de huidige buffer in Firefox - Mac-specifiek abbrev ff:! Open -a firefox.app%: p "Breng een veranderingsdirectory op de desktop - Mac-specifieke nmap d: cd ~ / Desktop : e. "Snelkoppeling voor het bewerken van vimrc-bestanden in een nieuwe tabblad nmap ev: tabedit $ MYVIMRC "Verander de uitbreidingstoets van de zen-coderingsplugin om te schuiven + e laat g: user_zen_expandabbr_key = ' '"Snellere sneltoets voor commentaar. Vereist T-Comment plugin map c "Spaart tijd, wijst de spatiebalk toe aan nmap met dubbele punt : "Wijzig automatisch de huidige map naar die van het bestand in de buffer autocmd BufEnter * cd%: p: h" Kaartcode aanvullen tot, + tab imap "Meer nuttige opdrachtregel voltooiing set wildmenu" Auto-aanvullen menu set wildmode = lijst: langste "http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE set completeopt = langste, menuone inoremap pumvisible ()? "\ ":" \ U \ "inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Omlaag> ":" " 'inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Omlaag> ":" " '"Map escape-toets naar jj - veel snellere imap jj Msgstr "Verwijder alle buffers (via Derek Wyatt) nmap ,da: exec "1,". bufnr ('$'). "Bd" "Bubble-enkele regels (kicks butt)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Bubble multiple lines vmap xkP '[V'] vmap xp '[V'] "Bron van het vimrc-bestand na het opslaan.Hierdoor hoeft u Vim niet opnieuw te laden om de wijzigingen te zien. if heeft (" autocmd ") augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~ /. vimrc augroup END endif "eenvoudiger vensternavigatie nmap h nmap j nmap k nmap l "------------------------" "NERDTREE PLUGIN-INSTELLINGEN" ------------------ ------ "" Snelkoppeling voor NERDTreeToggle nmap nt: NERDTreeToggle "Toon verborgen bestanden in NerdTree laat NERDTreeShowHidden = 1" autopen NERDTree en focuscursor in nieuw document autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p "Helpeful afkortingen iab lorem Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. iab llorem Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "Spelling corrigeert. Gewoon bijvoorbeeld. Voeg de jouwe hieronder toe. iab de iab Teh De "Get to home dir easy" hm is gemakkelijker te typen dan: cd ~ nmap hm: cd ~ / "Sorteer CSS-eigenschappen in het alfabet in alfabetisch sorteren met: 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 "Slaat bestand op wanneer Vim-venster focus verliest au FocusLost *: wa" Backups set backupdir = ~ / .vim / tmp / backup // "backups set map = ~ / .vim / tmp / swap //" verwisselen bestanden back-up instellen "backup inschakelen" Geen uitrekking meer voor het navigeren in bestanden "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l set show laten weergeven" tonen bijpassende haakjes "print empty kaart van de tag! ; h 5HI
Ik ook niet - althans niet meer dan ik ook - er zijn een aantal toegewijde Vim-editors die een meer Windows / Mac GUI-achtige ervaring bieden.
Deze editors bieden ondersteuning voor de soorten toetsaanslagen die ingebakken zijn in uw lichaam, zoals "Command + F
"om te zoeken, of"Command + W
"om het huidige venster te sluiten.
Weet je nog dat, op school, de student naast je in staat was om meer uitleg te geven en je een moeilijk begrip te helpen begrijpen dan de leraar? De reden is dat, als je eenmaal een ambacht onder de knie hebt, het moeilijk is om je te herinneren aan wat je persoonlijk de meeste problemen gaf. Van september tot oktober begon ik aan een uitdaging van vier weken, die ik 'Venturing into Vim' noem. Nadat ik talloze o zo getalenteerde ontwikkelaars had horen prijzend deze schijnbaar tien jaar oude code-editor, besloot ik dat het een maand van mijn tijd waard was om erachter te komen waarom zoveel mensen Vim beschouwen als de beste redacteur ter wereld.
Natuurlijk kun je wel zeggen dat het niet zo gebruikersvriendelijk is als bijvoorbeeld de externe serverfunctie van Coda. Over Paniek gesproken, als je een Transmit-gebruiker bent, zou je kunnen overwegen om de Transmit FTP-plug-in te installeren.
"Met dit script kun je het huidige bestand via Transmit rechtstreeks vanuit Vim uploaden. Om het te laten werken, moet je werken aan een bestand dat verbonden is met een Transmit-verbinding, en deze verbinding moet" DockSend "ingeschakeld hebben."
Met deze plug-in hoeft u bij het bewerken van een bestand met een Transmit-verbinding (bestand openen via Transmit) alleen maar op te drukken Controle + U
om die updates terug te sturen naar uw externe server. Het is een makkie!
Eerlijk gezegd, zou je moeten proberen om een beter proces voor bouwen / inzetten aan te nemen. Op deze manier, in plaats van het gebruik van FTP, kunt u eenvoudig git push
.
Natuurlijk - er zijn een paar redenen om Vim niet te gebruiken. Het heeft een steile leercurve en vereist een volledige heroverweging van hoe een codebewerker zou moeten werken. Dat gezegd hebbende, er zijn honderden redenen waarom jij moeten gebruik Vim. De enige vraag is: waarom ben jij niet??