Ich richte virtualisierte Linux-Boxen (als lokale Entwicklungsserver) für Entwickler in einem Unternehmen ein, das hauptsächlich auf Windows basiert, und einige Entwickler machen (unter anderem) negative Risse in Bezug auf vim. (Sie scheinen Linux / Unix in irgendeiner Weise darzustellen und zu beweisen, dass die Umgebung äußerst schwierig zu bedienen ist.) Ich erinnere mich, als ich zum ersten Mal gezwungen war, vim zu verwenden (die Sysadmins weigerten sich, Emacs zu installieren!) Und die schwierige Initiale Lernkurve, also bin ich etwas sympathisch. Mir ist der Gedanke gekommen, dass nano
es möglich sein könnte, nanoskalige Menüs in vim einzurichten, um den Übergang zu erleichtern , anstatt sie vorzustellen (woran sie wahrscheinlich niemals vorbeikommen würden). (Ich habe eine sehr anfängerfreundliche .vimrc-Datei gefunden, die sie enthält, aber keine Menüs im Nano-Stil.)
Das einzige Problem ist, dass ich feststellen konnte, dass das Einrichten von Menüs in vim (nicht in gvim) nicht funktioniert hat, und meine Versuche, das Problem zu beheben, ließen mich nur ein weiteres Problem lösen. Bevor ich viel Zeit verschwenden möchte ich wissen, ob es tatsächlich möglich ist, da es anscheinend nur sehr wenige Informationen darüber gibt, wie man es macht.
:h console-menus
.Antworten:
Ja, es ist möglich. Sie können laden
menu.vim
(die Standarddefinitionen für das gvim-Menü), oder Sie können einfach von vorne beginnen und Ihre eigenen erstellen und dann über darauf zugreifen:emenu
. Dadurch erhalten Sie jedoch keine Nano-ähnlichen, immer sichtbaren Menüs. Es gibt Ihnen die Möglichkeit, durch Menüs zu navigieren, indem Sie die Befehlszeilenregisterkarte ausfüllen.Wenn der Benutzer keinen vimrc hat, sollten Sie zunächst die vi-Kompatibilität deaktivieren:
Aktivieren Smart Befehlszeile Abschluss auf
<Tab>
(aktivieren Sie alle möglichen Optionen Auflisten und die Navigation , die Ergebnisse mit<Up>
,<Down>
,<Left>
,<Right>
, und<Enter>
):Durch wiederholtes Drücken können Sie zwischen allen übereinstimmenden Optionen wechseln:
Laden Sie die Standardmenüs (dies würde in gvim automatisch passieren, aber nicht in terminal vim):
Nach diesen vier Befehlen können Sie die Menüvervollständigung manuell auslösen, indem Sie die Tabulatorvervollständigung für den
:emenu
Befehl aufrufen:emenu<space><tab>
Sie können mit der Tabulatortaste, den Pfeiltasten und der Eingabetaste durch die Ergebnisse navigieren (es werden sowohl Untermenüs erweitert als auch Elemente ausgewählt). Sie können dies bequemer gestalten, indem Sie einen Schritt weiter gehen und eine Zuordnung binden, um das Menü zu öffnen, ohne
:emenu
jedes Mal Folgendes eingeben zu müssen :Machen Sie Strg-Z in einem Mapping so, als ob Sie
<Tab>
interaktiv auf die Befehlszeile drücken :Und machen Sie eine Bindung, die automatisch die
:emenu
Vervollständigung für Sie aufruft :quelle
Ich selbst hatte das Problem, dass ich mir nicht alle Befehle und Tastenkombinationen für die von mir verwendeten Plugins merken kann. Außerdem wollte ich einfache Möglichkeiten haben, um Befehle schnell auszuführen, ohne neue Tastenzuordnungen festlegen oder Befehle erfinden zu müssen, um darauf zuzugreifen.
Vim-Venu
Ich habe ein kleines VIM-Menü-Plugin geschrieben , mit dem Sie Menüs für jeden Dateityp definieren können, den Sie mit VIM bearbeiten können. Auf diese Weise können Sie die Menüoption 'Kompilieren' für verschiedene Dateitypen definieren und die richtigen Anweisungen zum Kompilieren des Codes einleiten, je nachdem, welche Datei Sie bearbeiten (.py, .c, .c ++, ...). Oder erstellen Sie ein Untermenü für die Plug-in-Befehle "Tabelle" in einer Abschriftendatei.
Schau es dir hier an: https://github.com/Timoses/vim-venu
Als Randnotiz: Ich denke, jeder sollte seinen eigenen bevorzugten Texteditor wählen. Vim hat eine kleine Barriere (die es sich zu lernen lohnt!). Wenn jemand nicht bereit ist zu lernen, wird vim für diese Person nicht von großem Nutzen sein.
quelle