GNU/Linux >> Znalost Linux >  >> Linux

Díky těmto skvělým funkcím je Vim ještě úžasnější

Vim je nedílnou součástí každé distribuce Linuxu a nejužitečnějším nástrojem (samozřejmě po terminálu) pro uživatele Linuxu. Alespoň u mě tato teorie platí. Lidé mohou namítat, že pro programování nemusí být Vim dobrou volbou, protože existují různá IDE nebo jiné sofistikované textové editory jako Sublime Text 3, Atom atd., které práci s programováním značně usnadňují.

Moje myšlenky

Ale co si myslím, je, že Vim funguje tak, jak chceme, od samého začátku, zatímco ostatní editory nás nutí pracovat tak, jak byly navrženy, ne tak, jak ve skutečnosti chceme, aby fungovaly. O ostatních editorech toho moc říct nemůžu, protože jsem je moc nepoužíval (jsem zaujatý vůči Vimu).

Každopádně, pojďme z Vima udělat něco, co dělá Jobovi zatraceně dobře.

​Vim pro programování

Spuštění kódu

Zvažte scénář, Co děláme, když pracujeme na kódu C++ na Vimu a potřebujeme jej zkompilovat a spustit.

(A). Zpět do terminálu se dostaneme buď pomocí (Ctrl + Z), nebo to prostě uložíme a ukončíme (:wq).

(b). A problém není u konce, nyní musíme na terminálu napsat něco, jako je toto { g++ fileName.cxx }.

(c). A poté jej spusťte zadáním { ./a.out } .

Určitě bylo potřeba udělat spoustu věcí, aby náš C++ kód běžel přes shell. Ale nezdá se, že by to byl způsob Vimu (protože Vim má vždy tendenci držet téměř vše pod jedním nebo dvěma stisky kláves). Takže, jaký je způsob, jakým Vim dělá tyto věci?

Cesta Vim

Vim není jen textový editor, je to jakýsi programovací jazyk pro úpravu textu. A tím programovacím jazykem, který nám pomáhá rozšiřovat funkce Vimu, je „VimScript“. S pomocí VimScriptu tedy můžeme snadno automatizovat naši úlohu kompilace a spouštění kódu pouhým stisknutím klávesy.

Nahoře je úryvek z mého konfiguračního souboru .vimrc, kde jsem vytvořil funkci nazvanou CPP().

Vytváření funkcí ve VimScriptu

Syntaxe pro vytvoření funkce ve VimScriptu je docela snadná. Začíná klíčovým slovem „func ” a za ním následuje název funkce [Název funkce musí ve VimScriptu začínat velkým písmenem, jinak Vim ohlásí chybu]. A konec funkce je označen klíčovým slovem „endfunc “. V těle funkce můžete vidět exec příkazu, cokoli napíšete po klíčovém slově exec, se provede v příkazovém režimu Vimu (pamatujte na věc začínající:ve spodní části okna Vimu). Řetězec, který jsem předal exec, je –

Co se stane, když je tato funkce zavolána, nejprve vymaže obrazovku terminálu, takže váš výstup budete prohlížet pouze vy, poté spustí g++ nad názvem souboru, na kterém pracujete, a poté spustí soubor a.out vytvořený kvůli kompilace. Mapování Ctrl+r ke spuštění kódu C++
————————————————————-
Namapoval jsem příkaz :call CPP() na kombinaci kláves (Ctrl+r), abych nyní mohl stisknutím Ctrl+r spustit svůj kód C++, aniž bych musel ručně psát :call CPP() a poté stisknout Enter.

Konečný výsledek

Nakonec se nám podařilo najít způsob Vim, jak to udělat. Takže teď stačí stisknout tlačítko a výstup vašeho C++ kódu je na vaší obrazovce, nemusíte psát všechny ty dlouhé věci. Šetří to i váš čas.

Tento druh funkčnosti můžeme dosáhnout i pro jiné jazyky.

Takže pro Python:Nyní můžete stisknout pro interpretaci kódu.

Pro Java:Nyní můžete stisknout , nejprve zkompiluje váš kód Java, poté interpretuje váš soubor třídy Java a zobrazí výstup.

Obraz není u konce, postupujeme o úroveň hluboko

Takže tohle bylo všechno o tom, jak můžete manipulovat s věcmi, aby fungovaly podle vašich představ ve Vimu. Nyní přijde na to, jak to vše implementujeme ve Vimu. Tyto úryvky kódu můžeme použít přímo ve Vimu a naopak pomocí AutoCommands ve Vimu (autocmd’s). Krása autocmd spočívá v tom, že tyto příkazy nemusí být volány uživateli, spouštějí se samy za určitých podmínek, které uživatel poskytne.

Co chci s touto věcí [autocmd] udělat, je to, že místo použití různých mapování k provádění provádění kódů v různých programovacích jazycích bych chtěl jediné mapování pro provádění pro každý jazyk.

Zde jsme udělali to, že jsem napsal automatické příkazy pro všechny typy souborů, pro které jsem měl funkce pro spouštění kódu.

Co se stane je, že jakmile otevřu jakýkoli buffer kteréhokoli z výše uvedených typů souborů, Vim automaticky namapuje můj (Ctrl + r) na volání funkce a představuje klávesu Enter, takže není třeba mačkat klávesu „Enter“ pokaždé, když stisknu a tuto úlohu udělá pouze .

K dosažení této funkce stačí přidat fragmenty funkcí do vašeho [tečka]vimrc a poté vložit všechny tyto autocmds. A díky tomu, až příště otevřete Vim, bude mít Vim všechny funkce pro spuštění všech kódů se stejnými klíčovými vazbami.

Závěr

To je prozatím vše. Doufám, že díky této věci budete milovat svého Vima ještě více. Momentálně prozkoumávám věci ve Vimu, čtu Dokumenty atd. a doplňuji soubory [.vimrc] a znovu se vám ozvu, až budu mít něco úžasného, ​​o co se s vámi všemi podělím.

Pokud se chcete podívat na můj aktuální soubor [.vimrc], zde je odkaz na můj účet Github: MyVimrc.


Linux
  1. Základy Linuxu:Průvodce pro začátečníky k úpravám textu pomocí vim

  2. Jak přimět Vim, aby správně spolupracoval s Tmux?

  3. Proč se nové terminály v Awesome vytvářejí s Shlvl>1?

  1. Díky Linuxu budou počítače dostupnější a udržitelnější

  2. vim výukový program s příklady příkazů

  3. E-mailový klient s úpravou Vim

  1. Udělejte z historie Bash užitečnější pomocí těchto tipů

  2. Linux Mint 19 – datum vydání, nové funkce a další

  3. Vim:Vytvořit soubor pomocí +x Bit?