Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
mbant
- Beiträge: 30
- Registriert: 19.02.2005 18:07:21
Beitrag
von mbant » 27.01.2010 16:34:16
Ich verwende die zsh mit vi keybindings (bindkey -v). Ein Feature, das ich seitdem vermisse ist das zurueckholen des letzten arguments, welches im emacs-mode mit ESC-. passiert. Beispiel:
hier wird bla.txt zurueckgeholt. Allerdings ist ja ESC im vi-modus dazu da, in den command-mode zu wechseln -- ich haette das zurueckhol-feature trotzdem gerne. Jemand eine Idee?
Zuletzt geändert von
mbant am 17.03.2010 10:54:14, insgesamt 1-mal geändert.
Hm-Dedelede-Bap-Du-Bap
-
Meillo
- Moderator
- Beiträge: 9254
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 27.01.2010 18:20:14
btw: Im Emacs-Mode ist <Alt-.> das gleiche wie <Esc-.>. Das ändert aber nichts daran, dass es im vi-Mode nicht funktioniert.
Ich selbst bin vor ein paar Monaten komplett auf den vi-Mode umgestiegen und hatte zuvor <Alt-.> sehr oft verwendet, verstehe dein Problem also *sehr* gut. Eigentlich war es das größte Problem beim Umstieg.
Jetzt verwende ich die ksh. Dort holt _ im Commandmode das letzte Wort (d.h. bis zum letzten Whitespace).
Die bash kennt _ auch; dort wird jedoch das letzte Wort aus Shell-Sicht geholt (d.h. Quotes werden berücksichtigt).
Das entspricht jeweils dem Verhalten bei <Alt-.>.
Die zsh kennt aber kein _ im vi-Mode.
Aber durchsuche die Manpage zu zshzle(1) mal nach ``insert-last-word'', dann wirst du fündig. Das kann man sicher irgendwie binden. (Nur kenne ich mich mit der zsh nicht aus.)
Use ed once in a while!
-
teerer
Beitrag
von teerer » 27.01.2010 22:24:18
woll
Zuletzt geändert von teerer am 11.03.2013 22:58:05, insgesamt 1-mal geändert.
-
Meillo
- Moderator
- Beiträge: 9254
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 27.01.2010 23:33:35
teerer hat geschrieben:$_ loest dein Problem.
Nein, da $_ erst bei der Ausführung durch den Wert ersetzt wird. D.h. man dann das Argument nicht bearbeiten. Jedenfalls wollte ich das oft.
Beispiel:
Code: Alles auswählen
touch eine-datie
mv [Alt-.]
mv eine-datie [Alt-.]
mv eine-datie eine-datie [edit]
mv eine-datie eine-datei [enter]
(Beim mv habe ich die verschiedenen Bearbeitungsschitte in einzelne Zeilen geschrieben.)
Use ed once in a while!
-
chrisbra
- Beiträge: 122
- Registriert: 19.10.2005 09:36:09
- Wohnort: Sachsen-Anhalt
-
Kontaktdaten:
Beitrag
von chrisbra » 02.02.2010 08:27:21
mbant hat geschrieben:Ich verwende die zsh mit vi keybindings (bindkey -v). Ein Feature, das ich seitdem vermisse ist das zurueckholen des letzten arguments, welches im emacs-mode mit ESC-. passiert. Beispiel:
Da ist man ein paar Tage nicht da und schon verpasst man die interessantesten Threads.
bindkey -M vicmd '\M.' insert-last-word
oder
bindkey -M vicmd "\e." insert-last-word
-
mbant
- Beiträge: 30
- Registriert: 19.02.2005 18:07:21
Beitrag
von mbant » 17.03.2010 10:53:41
Hi chrisbra,
und danke!
Ich habe das noch hinzugefuegt:
Die zsh ist--mal wieder--schlau genug, um in diesem Fall im Insert-Mode zu bleiben.
Hm-Dedelede-Bap-Du-Bap
-
AopicieR
- Beiträge: 81
- Registriert: 05.02.2009 09:52:53
Beitrag
von AopicieR » 22.03.2010 11:47:55
Meillo hat geschrieben:teerer hat geschrieben:$_ loest dein Problem.
Nein, da $_ erst bei der Ausführung durch den Wert ersetzt wird. D.h. man dann das Argument nicht bearbeiten. Jedenfalls wollte ich das oft.
$_ kenne ich nicht, aber !$<tab> funktioniert so, wie Du es willst. Die zsh-completion ist da recht cool, auch z.B. wilcards kann man ja durch <tab> expanden lassen und dann bearbeiten. Aber jetzt hast Du ja eine für Dich wahrscheinlich bessere Lösung gefunden.