GNU/Linux >> Znalost Linux >  >> Linux

Je možné vytvářet a používat nabídky v (terminálovém) Vimu?

Nastavuji virtualizované linuxové boxy (jako lokální vývojové servery) pro vývojáře ve společnosti, která je primárně založená na Windows, a někteří vývojáři mají negativní trhliny ohledně vim (mimo jiné). (Zdá se jim, že nějakým způsobem reprezentují Linux/Unix a dokazují, že použití prostředí je tupě obtížné.) Pamatuji si, když jsem byl poprvé nucen použít vim, (sysadmins odmítli nainstalovat emacs!) a obtížný počáteční křivka učení, takže jsem trochu soucitný. Napadlo mě, že spíše než jim představit nano (což by pravděpodobně nikdy nepřekonali) by možná bylo možné nastavit ve vimu nabídky podobné nano, aby byl přechod snazší. (Našel jsem soubor .vimrc, který je velmi vhodný pro začátečníky, ale nemá nic jako nabídky ve stylu nano.)

Jediný problém je jediná věc, kterou jsem byl schopen najít, která tvrdí, že je možné nastavit nabídky ve vim (nikoli v gvim), nefungovalo, a moje pokusy o nápravu problému mi zanechaly další problém k vyřešení. Než ztratím spoustu času, rád bych věděl, zda je to ve skutečnosti možné, protože se zdá, že existuje velmi málo informací o tom, jak to udělat.

Přijatá odpověď:

Ano, je to možné. Můžete načíst menu.vim (výchozí definice nabídky gvim), nebo můžete začít od nuly a vytvořit si vlastní a poté k nim přistupovat pomocí :emenu . To vám však nezíská vždy viditelná menu podobná nano; dává vám možnost procházet nabídky pomocí doplňování karet příkazového řádku.

Pokud uživatel nemá vimrc, budete chtít začít deaktivací kompatibility vi:

:set nocompatible

Povolte inteligentní dokončování příkazového řádku na <Tab> (umožněte výpis všech možných voleb a procházení výsledků pomocí <Up> , <Down> , <Left> , <Right> a <Enter> ):

:set wildmenu

Opakovaným stisknutím cyklujte mezi všemi odpovídajícími volbami:

:set wildmode=full

Načtěte výchozí nabídky (to by se stalo automaticky v gvim, ale ne v terminálovém vim):

:source $VIMRUNTIME/menu.vim

Po těchto čtyřech příkazech můžete ručně spustit dokončení nabídky vyvoláním dokončení karty v :emenu příkazem :emenu<space><tab>

Ve výsledcích se můžete pohybovat pomocí klávesy tabulátor a kláves se šipkami a klávesy Enter (obě rozbaluje podnabídky a vybírá položky). To si pak můžete usnadnit tím, že půjdete o krok dále a svážete mapování, aby se zobrazila nabídka, aniž byste museli psát :emenu pokaždé:

Související:Najít 2. výskyt řetězce z konce souboru?

Zajistěte, aby Ctrl-Z v mapování fungovalo jako stisknutí <Tab> interaktivně na příkazovém řádku:

:set wildcharm=<C-Z>

A vytvořte vazbu, která automaticky vyvolá :emenu dokončení pro vás:

:map <F4> :emenu <C-Z>

Linux
  1. Jak vytvořit a používat subdomény

  2. Jak pomocí Macu vytvořit Linux Live USB Stick a spustit jej

  3. Použijte .vimrc a .vim/ jiného uživatele

  1. Jak používat GParted ke snadnému vytváření a změně velikosti oddílů

  2. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  3. Jak nainstalovat a používat Vim-plug Plugin Manager v Linuxu

  1. Vytvořte novou databázi a použijte ji v MySQL/MariaDB

  2. V Linuxu je možné použít .dll

  3. Je možné vytvořit skript pro uložení a obnovení oprávnění?