datentraeger

geistige Umweltverschmutzung

bash vi-mode / zsh ?

December 25, 2017 cli Debian/GNU Linux git vim

Bash vi-Mode

und dann noch so einfach, einfach mit folgender Ergänzung in .bashrc ?

set -o vi

ja, und das klappt auch tadellos (zb. b / w, etc). Eigentlich doch recht angenehm, wenn man sowieso sonst mit vim arbeitet…

Hier verlässt man dann, wie in vi, mit esc den Input-Mode bei der Eingabe von normalen Commands….

Da sitzt man doch täglich stundenlang vor Terminals und findet sowas per Zufall mal so nebenbei raus… und vorallem geht das ja nicht nur in bash, wenn man’s ins .inputrc schmeisst (was ich noch nicht selbst probiert hab).

set editing-mode vi

Einige Basic-Features, die man dadurch erreicht:

  • ^ – zum Start der Zeile
  • $ – zum Ende der Zeile
  • b – ein Wort zurück
  • w – ein Wort vorwärts
  • e – zum Ende des nächsten Worts
  • v – visual Mode; öffnet $Editor und mehrere Zeilen können geschrieben werden
  • Löschen/yanking/einfügen wie unter vim
  • history kann mit j/k durchgescrollt werden

Das ganze lässt sich auch noch “weiterausbauen”

bind 'set show-mode-in-prompt on

Damit wird beim Prompt ein (cmd) oder (ins) angezeigt, je nach Modus.

Das lässt sich jedoch auch nach eigenem Gusto anpassen, indem man den String definiert

bind 'set vi-ins-mode-string [i]'
bind 'set vi-cmd-mode-string [n]'

Hiermit würde anstatt (cmd) und (ins) einfach ein [n] oder [i] anzeigt.

Mir persönlich gefällt aber diese Variante am besten

bind 'set vi-ins-mode-string \1\e[6 q\2'
bind 'set vi-cmd-mode-string \1\e[2 q\2'

Dies ändert lediglich den Cursor, so wie etwa auch in vim selbst. Das Prompt bleibt unverändert.

Die Codes können auch angepasst werden, indem die Nummer nach \e[ angepasst wird (siehe Stackoverflow-Thread):

Ps = 0  -> blinking block.
Ps = 1  -> blinking block (default).
Ps = 2  -> steady block.
Ps = 3  -> blinking underline.
Ps = 4  -> steady underline.
Ps = 5  -> blinking bar (xterm).
Ps = 6  -> steady bar (xterm).

zsh / Powerlevel

naja, irgendwie hab ich das Gefühl, das ganze ist derzeit sehr hip und alle Screenshots, die man sieht, haben alle nur noch solche Shells. Das finde ich nicht sooo sympathisch (Hipster ?!). Aber angeschaut hab ich’s mir trotzdem. Und ich muss gestehen, wenn man in einem git-Repo ist, dann ist das ganze schon recht angenehm…. (ansonsten sehe ich den Sinn jetzt nicht so sehr, bis jetzt zumindest).

Aber in git sieht man gleich, ob es neue Files gibt, ob commits noch nicht gepusht wurden etc. Schon irgendwie angenehm. Aber es geht auch ohne, ist derzeit noch meine Meinung….irgendwie viel zu farbig… (einen git status und so muss ich ja auch hier trotzdem machen, wenn ich mehr wissen möchte).

Powerlevel9k ist aber recht anpassbar, wie man das ganze dargestellt haben möchte.

 

Auf terminalsare.sexy gibt es etliche Varianten, die versuchen git in die Bash (und zsh) zu integrieren. Hier hat es bestimmt noch einige sehenswerte Ansätze mit dabei.

Zudem wurde vor einiger Zeit einiges Powerline-Zeugs grad auch ins Debian-Repo aufgenommen (natürlich genau nachdem ich alles (also eigentlich nur die Powerline-Fonts und vim-airline) in ein kleines Shellscript gebastelt hab…d’oh… die Powerline Fonts benötigte ich derzeit aber nur für die Symbole in meinen i3-Workspaces).

Heisst das jetzt, dass ich aus reinen Bequemlichkeitsgründen auf zsh umsteige oder das bash-powerline-script anpasse ? Oder bleib ich oldschool bei dem, was ich schon seit Jahren verwende ? Ich weiss es selbst noch nicht. Werde wohl ein bisschen länger damit arbeiten müssen… generell ist es mir einfach etwas zu “hipster”…. (oder bin ich einfach langsam zu alt ?!)

Powerlevel-Alternative für die Bash

Es gibt da auch eine Bash-Variante, aber die musste ich erst mal selber kosmetisch bearbeiten und die sieht etwas weniger schick aus…(beim Namen könnte man ja meinen, Powerline Fonts würden verwendet, ist aber nicht so…). Aber “schick” ist auch reine Ansichtssache…. und “getestet” habe ich es etwa ganze 2 Minuten…

Agoster-Bash

Agnoster-Bash scheint ganz passabel für die Bash, zumindest auf den ersten Blick… ist wesentlich weniger umfangreich als Powerlevel9k, jedoch für meine Bedürfnisse komplett ausreichend… Beispielsweise ist hier die rechte Zeile komplett nicht unterstützt, aber das ist mir sowas von egal…

Edit 12.01.:

Fancybash

Es gibt noch eine weitere Bash-Variante, die vielversprechend aussieht, hab’s aber selbst noch nicht getestet: fancybash. Aber warum alle Datum, Zeit und sonstiges in jeder Shell sehen wollen, ist (und bleibt) mir schleierhaft. Vorallem wenn man einen tiling window manager verwendet und etliche terminals offen hat, was bringt das ganze ?! Generell gefällt mir fancybash aber sowieso nicht so…

Edit 07.04.:

Powerline-Shell

Powerline-Shell scheint die echte Alternative für Powerlevel9k in Bash zu bieten. Ist aber nicht nur bash, kann bei Bedarf auch für zsh, tcsh oder fish verwendet werden. Ich bin das ganze grad ein bisschen am testen, glaube aber, dass ich hier bleiben werde. Agnoster ist eher minimalistisch (was ich ja auch sehr gern mag), hier sind schon etwas mehr Optionen verfügbar. Muss nur noch die Farben meinen Wünschen entsprechend anpassen (defaults gefallen mir nicht wirklich):

Symbole:

Die basics sind recht schnell angepasst – dazu erstellt man erst mal ein “basic” configuration file

powerline-shell --generate-config > ~/.powerline-shell.json

Dieses File kann man dann entsprechend anpassen (ich will z.B. keinen Usernamen und Hostnamen in der Shell haben, macht das ganze schon etwas kürzer…

Edit 08.04.:

Powerline

Das ganze geht auch einfacher mit dem Debian-Package powerline – hier sind bereits themes für bash, tmux, vim etc. enthalten, habs aber noch nicht genauer angeschaut. Das ganze überschneidet sich auch etwas mit vim-airline. Dokumentation ist recht umfangreich vorhanden.

Ranger: Musik für den V70er (I)

GNU Screen

1 thought on “bash vi-mode / zsh ?”
  1. Peter V. Beck, I.
    December 25, 2017 at 2:56 am

    bash vi-mode / zsh ? http://blog.datentraeger.li/?p=800

Comments are closed.

Search
Posts
  • tt-rss update
  • freerdp ERRCONNECT_TLS_CONNECT_FAILED
  • Windose – kein Internet
  • Rechner ohne IP
  • Goodbye Nvidia
Archives
Categories
Tags
3D-Printing Android Apple Arch BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE fvwm git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.