Vim wie Terminal

Ich habe kürzlich die Funktion des Terminals entdeckt, Sie können den Stil der Tasten emacs oder vi festlegen

Ich bevorzuge das zweite. also wenn ja

set -o vi

Sie können die kjlh-Tasten verwenden, um in der Befehlszeile zu navigieren. Und Sie können wie in vim zwischen den Modi „Normal“ und „Einfügen“ wechseln.

Es gibt jedoch keine Möglichkeit, einen Modus visuell von einem anderen zu unterscheiden, selbst der Cursor ändert sich nicht. Das macht vi-style ziemlich nutzlos. Gibt es eine Möglichkeit, es wirklich vim-artig zu machen?

Sie können in die ZLE-Einstellungen schauen (es ist der ZSH-Zeileneditor). Es erlaubt, jede Befehlszeile in einem externen Editor zu bearbeiten.

Antworten (1)

  • Sie können von bashzu wechseln zsh. Ich werde hier nicht beschreiben, wie man die Modusanzeige in Z-Shell einrichtet – es gibt viele Howtos über das Internet, zB: [ 1 ], [ 2 ].
  • Wenn Sie GNU Bash Version 4.3 verwenden (höchstwahrscheinlich nicht, es wurde letzten Monat veröffentlicht, also müssten Sie ein Upgrade durchführen), können Sie die Readline-Option festlegen show-mode-in-prompt.

So:

set show-mode-in-prompt On

in deinem .inputrcbzw

bind 'set show-mode-in-prompt On'

als Shell-Befehl. Dies fügt am Anfang der Eingabeaufforderung ein Zeichen hinzu, das den Bearbeitungsmodus anzeigt: @für Emacs :und +für vi normal bzw. vi insert.

I. e. Ihre Eingabeaufforderung sieht +agzam@pc:~$im Eingabemodus und :agzam@pc:~$im normalen Modus aus. Soweit ich weiß, kann dies in keiner Weise angepasst werden, aber es ist immer noch besser als nichts.