Vim 301: Få Flinke på Vim

Hvis du har lest og jobbet med de to foregående tutorials på vim, er du sannsynligvis får rimelig komfortabel med redaktøren. På dette punktet, bør du være i stand til å komme seg rundt veldig pent. Denne gangen vil jeg gjerne se på noen mer avanserte funksjoner og demonstrere kort hvordan du setter opp et Vim konfigurasjonsfil, og for å få til skallet og bruke eksterne kommandoer innenfra Vim.

Som du skrelle bak lag av Vim løk, vil du fortsette å finne ny funksjonalitet. Noe av det kan være egnet for arbeidsflyten, noen ikke så mye. Hold hva som er nyttig og kast resten.

Folding i Vim

I den siste utgaven, vi dekket ved hjelp av visningsfeltene og faner for å gjøre det enklere å navigere lange dokumenter og flere dokumenter. Det er enda en funksjon som vi bør se på for å arbeide med virkelig lange dokumenter, og det er sammenleggbar
.

La oss si du har et dokument som er 1000 linjer lang. Du ønsker å være i stand til å se de første og siste 20 linjer samtidig. Du kan gjøre det med visningsfeltene, men det er en rask måte å gjøre det ved hjelp folding.

Folding kommandoer er innledet med z. La oss si at du ønsker å "kaste" 70 linjer. Du ville kjøre zf70j, som ville "kaste" alle disse linjene inn i en enkelt linje som effektivt skjuler disse linjene til du "åpner" folden. For å gjøre det, flytter du markøren til folden og kjøre zo. Å bryte ned kommandoen: zf forteller Vim du er i ferd med å gjøre en fold. 70 forteller Vim hvor mange linjer for å utføre handlingen på, og j er retningen kommando som forteller Vim å kaste seg nedover. Du kan også bruke k å kaste seg "oppover" i stedet.

Du kan legge merke til noen merkelige figurer satt inn i filen. Dette er markører som forteller Vim hvor foldene avslutte og begynne. Foldene vil fortsette å eksistere inntil de er slettet. For å gjøre det, kjøre zd på linjen der fold er eller Ze å slette alle folder i en fil

Ja, du kan ha flere folder i et dokument, og selv nestet folder -. Som er, folder i en annen fold. Jeg anbefaler at du tar en lengre tekstfil og leke seg med fold kommandoer for å se hva du kan gjøre. Den kan komme i utrolig hendig når du arbeider med lange filer.

  • zf n
    j skaper en fold fra markøren nedover n
    linjer.
    < li> zo åpner en fold på markøren.

    zj flytter markøren til neste brett.

    zk flytter markøren til forrige fold.

    zd sletter fold ved markøren.

    Ze sletter alle bretter i dokumentet.

    ZM lukker alle åpne folder.

    ZR åpner alle folder.

    Sette opp Vim Config

    Når du begynner å bruke Vim regelmessig, vil du ønsker å redigere Vim konfigurasjonsfil, den .vimrc under hjemmekatalogen, for å holde dine favorittinnstillinger på tvers av økter og å sette opp din favoritt kartlegginger, forkortelser osv Merk at de fleste Linux distroer leveres med en standard vimrc ligger i /etc /vimrc. Dette er hele systemet konfigurasjon, men det kan overstyres av din personlige .vimrc

    La oss se på en svært enkel Vim konfigurasjonsfil.

     ".vimrc - oppstartsfilen for Vim syntaks på settet viminfo = '1000, f1, \\ "500,: 100, /100 sett mus = en autocmd Filetype html, xml, xsl kilde ~ /.vim /scripts /closetag.vim 

    The Vim konfigurasjonsfilen er i utgangspunktet en samling av Vim kommandoer som blir lest ved oppstart. Den første linjen av prøven vimrc er en kommentar. Kommentarer er merket med anførselstegn (").

    syntaks kommando forteller Vim å aktivere syntax highlighting. Vim kan utføre syntax highlighting for alle typer filer som har en syntaksdefinisjon. Syntaks filer er vanligvis sendes som en del av vim eller Vim forbedrede pakker og kan bli funnet under /usr /share /vim katalogen For eksempel, på opensuse 11.2 de er under /usr /share /vim /vim72 /syntaks -. Dette vil trolig variere avhengig av distro s emballasje retningslinjer.

    Den neste kommandoen forteller Vim hvor mye historie og så videre for å lagre i viminfo filen. Dette gjør økten info vedvarende mellom øktene. Så hvis du avslutter Vim du vil fortsatt ha noen historie fra forrige . session Se:.. hjelp viminfo for mer om dette

    Settet mus = en kommando forteller Vim å aktivere musen overalt, selv når du kjører i en xterm Dette betyr at du kan blant annet bruke . musen for å plassere markøren eller dra feltene for å endre størrelsen på dem jeg sjelden bruker dette selv, men det kan vise seg nyttig for folk som ikke ønsker å måtte huske på at Ctrl-w 10 < er måten å gjøre de eksisterende vertikal Viewport 10 kolonner mindre.

    Den siste kommandoen forteller Vim å utføre en kommando når det åpner noen kildefilen som er XML, XSL, eller HTML. I dette tilfellet, kaller det closetag.vim manuset, som gjør det lett å "lukke" XML /HTML-koder, slik at du ikke trenger å skrive avsluttende kodene. Vi får inn skript i neste opplæringen.

    Hvis du vil redigere .vimrc, bare åpne filen i Vim og gjøre de nødvendige endringene. Du kan enten starte Vim å se endringene, eller bruk: source kommandoen for å re-lese config filen slik:

    : source ~ /.vimrc 

    Vim har langt, altfor mange alternativer til prøve å dekke alle eller de fleste av dem i en tutorial. Det viktigste å forstå her er at Vim er nesten uendelig passelig, og at hvis du kan tenke på noe som Vim bør gjøre (i forhold til redigering av tekst, minst) er det sannsynligvis mulig.

    In and Out of Vim

    Ingen mann er en øy, og ingen tekst editor er et operativsystem, selv om Emacs ikke prøver ganske hardt. Noen ganger må du jobbe med tekst ved hjelp av eksterne kommandoer eller få til et skall uten å avslutte Vim økten.

    Hvis du trenger for å få til et skall fra innsiden Vim, uten å avslutte økten, trykke Ctrl-z. Dette er standard shell oppførsel på Linux-systemer, forutsatt at du bruker Bash, som er å si at det fungerer med andre kommandoer som kjører under Bash også. For å gå tilbake til økten, traff fg på skallprompten

    En annen måte å få til skallet er å bare gå inn kommando-modus og bruk. Sh - som vil slippe deg til et nytt skall og lar deg kjøre jobbene dine og deretter gå tilbake til Vim ved å bruke exit.

    Du kan også filtrere tekst i Vim gjennom en kommando, og deretter bringe den tilbake i Vim, uten å måtte forlate Vim i det hele tatt. Et enkelt eksempel: La oss si du har en liste med navn i bufferen som du ønsker å sortere i alfabetisk rekkefølge slik:

     Jules Vincent Butch Mia Marsellus 

    Bruk Vim utvelgelse funksjonen (Ctrl-v) å markere listen, og skriv deretter denne kommandoen:

     :! sort 

    Det vil sortere navnene i alfabetisk rekkefølge.

    Du kan bruke dette med alle typer kommandolinje-verktøy. Du kan kalle FMT innenfra Vim å angi bredden av en fil, eller ring ryddig innenfra Vim å rydde opp crufty HTML.

    Merk at du ikke trenger å bruke valget kommandoen hvis du vet rekkevidden linjer du ønsker å operere på, eller hvis du ønsker å operere på hele filen. For å filtrere bestemte linjer, angir området og deretter kommandoen:

    :  x, y 
    ! kommandoen

    I dette tilfellet x ville være startstreken, y ville være den siste linjen for å sjekke, og selvfølgelig du vil erstatte kommandoen
    med kommandoen du vil liker å bruke. Så, for å filtrere linjer 34 gjennom 38 ved hjelp av slag, vil du kjøre:

    : 34,38! sort 

    For å gjøre dette globalt (hele buffer), bruk%, som forteller Vim å gjøre hele buffer:

    :%! sort 

    Mellomrommene er faktisk ikke nødvendig. Du kan haug alt opp så godt, men det er mer lesbar den andre veien.

    The Dot og andre nyttige tips

    Dette kan ikke være "avansert" per se Anmeldelser men jeg hadde ikke nevnt det før nå, og tenkte at det var verdt å ringe ut. Ønsker en rask og enkel måte å gjøre om den siste operasjonen? Hit punktum (.) I kommandomodus. For eksempel, gå til redigeringsmodus og skrive noen få linjer med tekst, og trykk Escape. Nå rammet. og Vim vil re-sette inn den samme teksten. Slett fem ord med 5DW i kommandomodus. Deretter slo. og det vil gjøre det samme igjen. Dette kan være svært nyttig når du arbeider med strukturert tekst og gjør gjentatte redigeringer.

    Trenger å vite hvor mange ord er i dokumentet, eller et utvalg dokument? Ingen svette. Å få ord teller for hele dokumentet, bruker du kommandoen g-Ctrl-g (det er g og deretter Ctrl-g) for å få en rapport for antall ord i dokumentet, samt antall linjer og bytes, og posisjonen til markøren. Du vil se en rapport som dette i statuslinjen nederst i Vim:

     Col ​​8 av 8; Linje 38 fra 38; Ord 577 av 577; Byte 3226 av 3227 

    For å få en rapport om et utvalg av tekst, bruke kommandoene fra Vim 101 guide for å velge den delen av teksten, og deretter bruke g-Ctrl-g for å oppsummere valget.
    < p> Som et eksempel, for å finne ut hvor mange ord er i en linje når markøren er på slutten av linjen, vil du bruke kommandoene v 0 g-Ctrl-g. Den v setter deg inn i valgmodus. 0 flytter valget til begynnelsen av linjen, og fremhever hele linjen. Og deretter g-Ctrl-g forteller Vim å rapportere statistikk for den markerte teksten.

    Det er alt for denne utgaven. Neste gang vil vi se på Vim GUI, Vim plugins og scripts og andre avanserte funksjoner. Anmeldelser