GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist es möglich, Menüs in (terminalbasiertem) Vim zu erstellen und zu verwenden?

Ich richte virtualisierte Linux-Boxen (als lokale Entwicklungsserver) für Entwickler in einem Unternehmen ein, das hauptsächlich Windows-basiert ist, und einige Entwickler machen negative Witze über vim (unter anderem). (Es scheint ihnen in gewisser Weise Linux/Unix zu repräsentieren und zu beweisen, dass die Umgebung äußerst schwierig zu verwenden ist.) Ich erinnere mich, als ich zum ersten Mal gezwungen wurde, vim zu verwenden (die Systemadministratoren weigerten sich, Emacs zu installieren!) und den schwierigen Anfang Lernkurve, also bin ich etwas sympathisch. Es kam mir in den Sinn, anstatt sie mit nano bekannt zu machen (an dem sie wahrscheinlich nie vorbeikommen würden) könnte es möglich sein, Nano-ähnliche Menüs in vim einzurichten, um den Übergang zu erleichtern. (Ich habe eine sehr anfängerfreundliche .vimrc-Datei gefunden, die ich ihnen geben kann, aber sie hat nichts wie Menüs im Nano-Stil.)

Das einzige Problem ist das einzige, was ich finden konnte, das behauptet, es sei möglich, Menüs in vim (nicht gvim) einzurichten, funktionierte nicht, und meine Versuche, das Problem zu beheben, ließen mich nur mit einem weiteren Problem zurück, das es zu lösen gilt. Bevor ich viel Zeit verschwende, würde ich gerne wissen, ob es tatsächlich möglich ist, da es anscheinend sehr wenig Informationen darüber gibt, wie es geht.

Akzeptierte Antwort:

Ja, es ist möglich. Sie können menu.vim laden (die standardmäßigen gvim-Menüdefinitionen), oder Sie können einfach von vorne anfangen und Ihre eigenen erstellen und dann über :emenu darauf zugreifen . Dies gibt Ihnen jedoch keine Nano-ähnlichen, immer sichtbaren Menüs; Es gibt Ihnen die Möglichkeit, durch Menüs zu navigieren, indem Sie die Tab-Vervollständigung auf der Befehlszeile verwenden.

Wenn der Benutzer keinen vimrc hat, sollten Sie damit beginnen, die vi-Kompatibilität zu deaktivieren:

:set nocompatible

Aktivieren Sie die intelligente Befehlszeilenvervollständigung auf <Tab> (Aktivieren Sie das Auflisten aller möglichen Auswahlmöglichkeiten und das Navigieren in den Ergebnissen mit <Up> , <Down> , <Left> , <Right> , und <Enter> ):

:set wildmenu

Lassen Sie wiederholtes Drücken zwischen allen übereinstimmenden Optionen wechseln:

:set wildmode=full

Laden Sie die Standardmenüs (dies würde automatisch in gvim passieren, aber nicht in terminal vim):

:source $VIMRUNTIME/menu.vim

Nach diesen vier Befehlen können Sie die Menüvervollständigung manuell auslösen, indem Sie die Tabvervollständigung im :emenu aufrufen Befehl, indem Sie :emenu<space><tab> ausführen

Sie können durch die Ergebnisse navigieren, indem Sie die Tabulatortaste und die Pfeiltasten sowie die Eingabetaste verwenden (sie erweitert Untermenüs und wählt Elemente aus). Sie können dies dann bequemer machen, indem Sie einen Schritt weiter gehen und eine Zuordnung binden, um das Menü aufzurufen, ohne :emenu eingeben zu müssen jedes Mal:

Verwandt:Zweites Vorkommen der Zeichenfolge am Ende der Datei finden?

Machen Sie Strg-Z in einem Mapping-Akt wie das Drücken von <Tab> interaktiv auf der Kommandozeile:

:set wildcharm=<C-Z>

Und machen Sie eine Bindung, die automatisch :emenu aufruft Abschluss für Sie:

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

Linux
  1. So erstellen und verwenden Sie Subdomains

  2. So verwenden Sie GParted zum einfachen Erstellen und Ändern der Größe von Partitionen

  3. So erstellen Sie einen Alias ​​und verwenden den Alias-Befehl in Linux

  4. So installieren und verwenden Sie den Vim-Plug-Plugin-Manager unter Linux

  5. Es ist möglich, eine .dll unter Linux zu verwenden

Wie man den Befehl fuser unter Linux verwendet und optimal nutzt

Wie man Markierungen verwendet und eine Textauswahl in Vim durchführt

So erstellen Sie ein Amazon Machine Image (AMI) und verwenden es auf AWS

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

Farbschemata in Vim:Wie man sie ändert und verwendet

Bash-Scripting Teil 6 – Erstellen und Verwenden von Bash-Funktionen