8 Vim-tips en -trucs die u tot een professionele gebruiker zullen maken

Brief : In dit artikel laat ik je enkele van mijn favoriete Vim-tricks zien met praktische voorbeelden. Als je Vim niet gebruikt, geven deze tips mogelijk geen reden om Vim te gebruiken, maar als je het al gebruikt, word je zeker een betere Vim-gebruiker.

Zelfs als ik onlangs Atom meer en meer ben gaan gebruiken, kan ik nauwelijks een dag voorbijgaan zonder Vim te gebruiken. Niet omdat ik gedwongen ben. Maar omdat ik me comfortabel voel.

Ja, comfortabel . Een heel vreemd woord als je het over Vi of een van zijn kloon hebt, is het niet? En ik ben het ermee eens, het is zeker niet de meest intuïtieve teksteditor.

Maar met wat oefenen en door een klein beetje je geheugen te trainen, kun je ogenschijnlijk complexe bewerkingstaken uitvoeren in slechts een paar toetsaanslagen. Iets dat ik nooit echt heb gevonden met andere teksteditors van de commandoregel voor Linux.

Maar in plaats van het schrijven van nog een andere vi-introductie, koos ik vandaag om je de echte kracht achter Vi (m) te laten aanraken door je enkele trucs voor te stellen die ik echt gebruik - en mis ik in de meeste, zo niet alle andere editors. Ik zal je niet de volledige uitleg van al die trucjes geven, maar ik moedig je sterk aan om te proberen en ermee te experimenteren totdat je enig inzicht hebt in hoe ze werken.

Als je Vim leuk vond en het volledig wilt beheersen, kun je je ook inschrijven voor de online Vim-cursus die wordt aangeboden door Linux Training Academy.

8 Vim-tricks om er meer uit te halen

Laat me herhalen: ik moedig u sterk aan om die voorbeelden zelf te proberen. Helaas hoeft WordPress geen goed werk te doen om de exacte inhoud van mijn voorbeelden en opdrachten te behouden - vooral met betrekking tot lege regels of aanhalingstekens. Voor uw gemak kunt u de hier gebruikte voorbeelden downloaden via de onderstaande link:

Download de Vim-voorbeelden voor oefenen

Elk voorbeeld wordt geleverd met de originele tekst (.orig) en een Bash-script (.sh) die Vim oproepen met de opdracht die in dit artikel wordt geïllustreerd.

1. Het hoofdlettergebruik in Vim wijzigen

Ben ik de enige die deze functie gebruikt? Of is dit omdat ik gedoemd ben samen te werken met mensen die geloven dat SCHRIJVEN VAN ALLE HOOFDSTUKKEN COOL IS?

Hoe dan ook, bij het programmeren, bij het toevoegen van een copyright-melding, of zelfs na een copy-paste, is het niet ongewoon om het hoofdlettergebruik van de tekst te veranderen. In dat opzicht is Vim veel meer geëvolueerd dan de originele Vi. En ik zegen elke dag Bram Moolenaar voor zijn geweldige werk:

Originele tekst
copyright (c) door

Gebruik van de werken is toegestaan ​​mits dit instrument bij de werken wordt bewaard, zodat elke entiteit die de werken gebruikt op de hoogte wordt gesteld van dit instrument.

Disclaimer: de werken zijn zonder garantie.

commando's
~Schakel van hoofdletter
: $ norm gUUZet de laatste regel om in hoofdletters {niet in Vi}
Gewijzigde tekst
C auteursrecht (c) door

Gebruik van de werken is toegestaan ​​mits dit instrument bij de werken wordt bewaard, zodat elke entiteit die de werken gebruikt op de hoogte wordt gesteld van dit instrument.

DISCLAIMER: DE WERKEN ZIJN ZONDER GARANTIE.

2. Vim zoekt en vervangtips

Deze gebruik ik elke dag. Waarom is dit nog steeds niet aanwezig in alle teksteditors? Natuurlijk hebben de meeste editors een soort zoekvervangingsfunctie. Maar hoeveel hebben echt de kracht van regex- en substitutiepatronen? Natuurlijk is dit ingewikkelder om te beheersen dan basissnaarensubstituties. Maar ik kon gewoon niet leven zonder die functie. Op dat moment zie ik mezelf soms kopiëren / plakken van sommige GUI-editors in een terminal die sed en back draait. Maar Vi heeft dat sinds 40 jaar of zo ingebed ...

Originele tekst
Krijgt een jongen de kans om elke dag een hek zwart te schilderen? Dat zette het ding in een nieuw licht. Ben Rogers stopte met aan zijn appel te knabbelen. Tom veegde zijn penseel op en neer, deed een stap terug om te merken dat het effect - hier en daar een beetje extra wordt toegevoegd - het effect opnieuw bekritiseerde - Ben keek elke beweging na en raakte steeds meer geïnteresseerd, steeds meer opgeslorpt.
commando's
: S / zwart / wit /Vervang de eerste instantie van de tekenreeks 'zwart' door 'wit'
: s / Ben \ (Rogers \) \ @! / Ben Rogers / gVervang elke reeks van de string 'Ben' door 'Ben Rogers' behalve wanneer 'Rogers' al aanwezig was
: S /.*/

\ R & \ r /

Wikkel de lijn ertussen

en

: -1S / - / \ - / gVervang elke regel van de reeks '-' door '-' in de voorgaande regel
Gewijzigde tekst

Krijgt een jongen de kans om elke dag wit een hek te schilderen? Dat zette het ding in een nieuw licht. Ben Rogers stopte met aan zijn appel te knabbelen. Tom veegde zijn penseel over en weer glad - deed een stap terug om het effect te merken - voegde hier en daar een vleugje toe - bekritiseerde het effect opnieuw - Ben Rogers keek elke beweging na en raakte steeds meer geïnteresseerd, steeds meer opgeslorpt.

Die piketomheiningen herinneren me aan ViM ...

3. Dingen in een handomdraai verplaatsen

Ja, copy-paste en drag-n-drop zijn geweldige hulpmiddelen. Maar soms is het gewoon te saai om door een heel document te bladeren om te vinden waar ik mijn tekst moet plakken, en dan in de tegenovergestelde richting te scrollen om de cursor terug te brengen naar de oorspronkelijke locatie.

Originele tekst
Voors:

* Snel

* Krachtig

* Betrouwbaar

* Niet gebruikersvriendelijk.

* Draagbaar

* Verslavend

commando's
/ Macht /Ga naar de eerste regel met de string 'Power'
ddpWissel de huidige regel met de volgende
: / User-friendly / m $Verplaats de volgende regel met de tekenreeks 'gebruiksvriendelijk' naar het einde van het bestand
g;Breng de cursor terug naar de vorige positie
: / Cons / + 1m-2Verplaats twee regels hoger na 'Cons'
Gewijzigde tekst
Voors:

* Snel

* Betrouwbaar

* Krachtig

* Draagbare tegens:

* Verslavend

* Niet gebruiksvriendelijk

4. Toepassen van opdrachten op een adresbereik

GUI-editors kunnen u toestaan ​​sommige opdrachten toe te passen op het volledige bestand of alleen op de huidige selectie. Soms hebben we meer opties, zoals vóór of na de cursor. Maar Vi (m) laat een veel expressievere beschrijving toe van het bereik waarop een gegeven commando moet worden toegepast:

Originele tekst

Naam van de penEchte naam
Mark TwainSamuel Clemens
Lewis CarrollCharles Dodgson
Richard BachmanStephen King

Veel schrijvers hebben ervoor gekozen om onder een pseudoniem te schrijven.

commando's
: / /, // g / ^ $ / d
Verwijder lege regels tussen regels die en
: / ^ $ /, / ^ $ / - 1m1Verplaats tekst tussen de volgende twee lege regels na regel 1 (let op het gebruik van een puntkomma hier)
: 2, $ - 1>Verhoog de inspringing van de tekst tussen regel 2 en de voorlaatste regel
Gewijzigde tekst

Veel schrijvers hebben ervoor gekozen om onder een pseudoniem te schrijven.

Naam van de penEchte naam
Mark TwainSamuel Clemens
Lewis CarrollCharles Dodgson
Richard BachmanStephen King

5. Voorbeelden van voorbeelden van VIM piping

Deze is absoluut een metafick in de directe geest van de Unix-filosofie. Met Vi kun je een deel van je buffer verwerken via een extern commando. Dit is geweldig als je dingen nodig hebt die niet direct in Vi kunnen worden uitgevoerd - of voor dingen die niet gemakkelijk te doen zijn in Vi. Mijn favoriete use-case voor deze functie is om gegevens te sorteren - maar het heeft vrijwel onbeperkte kracht:

Originele tekst
tee> (echo $ (wc -l) meest recente gegevens) << EOT

Aug. 2016 2.11%

Sep. 2016 2.23%

Okt 2016, 2, 18%

Nov. 2016 2.31%

December 2016 2.21%

Jan, 2017 2.27%

Maart 2016 1.78%

April 2016 1.65%

1 mei 2017 1, 79%

Jun, 2016 2, 02%

Jul, 2016 2, 33%

EOTLinux Market Share op het bureaublad

bron: //www.netmarketshare.com

commando's
: 2, / ^ EOT / -1! Sort -k2n -k1MSorteer gegevens op jaar en maand
: $ R! datum "+ Gegevens verkregen de \% c"Voeg de uitvoer van het datumcommando toe aan het einde van het bestand
: 1, / ^ EOT / bashVoer het ingesloten script uit en vervang het door het resultaat
Gewijzigde tekst
Maart 2016 1.78%

April 2016 1.65%

1 mei 2017 1, 79%

Jun, 2016 2, 02%

Jul, 2016 2, 33%

Aug. 2016 2.11%

Sep. 2016 2.23%

Okt 2016, 2, 18%

Nov. 2016 2.31%

December 2016 2.21%

Jan, 2017 2.27%

11 meest recente gegevens Linux Market Share op desktop

bron: //www.netmarketshare.com

Gegevens verkregen do Thu 09 Feb 2017 11:07:34 PM CET

6. Typen minder

Bij het schrijven van formele documentatie zijn er altijd ongewoon lange en gecompliceerde termen die u moet herhalen. Het kan een merk- of productnaam zijn. Een locatie. Een copyright-melding. Enzovoorts. Uiteraard moet elke instantie van die grote woorden correct worden gespeld en exact hetzelfde hoofdlettergebruik en interpunctie worden gebruikt. De afkortingfunctie van Vim is daar een must.

commando's
: ab apple Apple Computer, Inc.Introduceer een nieuwe afkorting
ikSchakel over naar de invoegmodus
apple werd opgericht in 1977.

Het apple-logo is een appel ^ V.

Getypte tekst

(^ V betekent controle-V )

Resultaat
Apple Computer, Inc. werd opgericht in 1977.

Het Apple Computer, Inc.-logo is een appel.

7. Hulp krijgen in Vim

Ok, er is Intenet. Maar mensen die de man zoals ik nog steeds gebruiken, zullen de inline- hulp waarderen. U kunt hulp krijgen op onderwerp. Of op bevel. Altijd handig als je de exacte syntaxis of opties voor Vim-commando's niet meer weet - of als je niet zeker weet of het commando dat je nodig hebt, een normale opdracht of een opdracht ex: is .

Probeer dit!
:Help help
: help m
: help: m

8. Scripten in Vim

Als je Vi (m) gebruikt, gebruik je in principe een visuele frontend voor een andere onderliggende editor genaamd ex . Misschien heb je gemerkt hoeveel commando's in bovenstaande voorbeelden begint met een dubbele punt (:)? Dat komt omdat dat ex- opdrachten zijn. En dit is nog een ander voordeel van Vi (m) voor zoveel teksteditors: je kunt het niet alleen interactief gebruiken, maar je kunt het ook scripten .

Waarom zou iemand dat willen doen? Voor mijzelf gesproken, vind ik dat een geweldige manier om tekstverwerking te automatiseren. Daarnaast zie je een typisch voorbeeld rechtstreeks van mijn harde schijf.

Er zijn waarschijnlijk een aantal mysterieuze commando's in dat ex-script, maar ik kan je vertellen dat dit elke (eventueel aanwezige) header uit een script zal verwijderen en deze zal vervangen door een andere die gelezen wordt uit het bestand NEW.HEADER - een # toevoegen voor elke toegevoegde regel . Het lijdt geen twijfel dat ik dat had kunnen doen met andere hulpmiddelen dan ex. Inderdaad, dat was zelfs het onderwerp van een van onze vorige Bash Challenge. Maar ex is zeker een optie.

Hoe mysterieus ...
ex some.script << EOT

0pu_

1, / ^ [^ #] / - 1d

0r NIEUW.HEADER

1, .s / ^ / # /

wq

EOT

Zoals ik het in eerste instantie al zei, was dit artikel absoluut geen tutorial, noch een inleiding tot Vi (m). Slechts enkele Vim-tips om u te laten zien waarom iemand nog steeds van die editor zou kunnen houden, ondanks alle moderne moderne codebewerkers voor Linux die vandaag beschikbaar zijn. In zekere zin heb ik enkele van mijn favoriete spreuken met je gedeeld. Maar in de grote traditie van tovenarij heb ik niet onthuld hoe ze precies werken.

Dus, beste leerlingen, aarzel niet om de commentaarsectie hieronder te gebruiken om je eigen bezweringen of countercharms te delen - of, als je durft, om die trucjes uit te leggen!

Aanbevolen

Installeer en gebruik 'Go For It!' To Do App In Linux
2019
Gebruik LaTeX in Ubuntu en andere Linux met Texmaker
2019
6 Op Linux gebaseerde mini-pc die u vandaag kunt kopen
2019