Wäre es möglich, iTerm 2 so zu konfigurieren, dass mit einer Tastenkombination ein Wort im aktuellen Text in der Befehlszeile vor- und zurückgespult wird?
Wäre es möglich, iTerm 2 so zu konfigurieren, dass mit einer Tastenkombination ein Wort im aktuellen Text in der Befehlszeile vor- und zurückgespult wird?
Antworten:
Ctrl-[ b
springt ein Wort zurück. Sie können Esc
stattdessen auch oder Ctrl-[
und verwenden f
, um fortzufahren.
Das ist Ctrl
+ [
loslassen und dann b
oder f
. Oder Esc
und b
oder f
.
Weitere Informationen finden Sie in dieser anderen Diskussion zu AskDifferent.
Eine Fliege mit einer Kanone töten:
Dann können Sie ein Wort bewegen rückwärts mit Option ⌥+ ←und einem Wort vorwärts mit Option ⌥+ →, an den Anfang der Zeile bewegen Sie mit fn+ ←und bis zum Ende der Leitung mit fn+ →. Sie können ein Wort auch rückwärts mit Option ⌥+ ⌫und die gesamte Zeile mit Command ⌘+ löschen ⌫.
Wenn die Voreinstellung nicht angezeigt wird, installieren Sie iTerm2 neu. Wenn Sie es mit Homebrew + Cask installiert haben:
brew cask reinstall iterm2
Ich mag das folgende Setup.
bewege dich ein Wort vorwärts
option+right
send escape sequence
f
gehe ein Wort zurück
option+left
send escape sequence
b
Löschen zum Wortanfang ( Gutschrift )
option+delete
send hex code
0x1B 0x08
bis zum Wortende löschen
fn+option+delete
send escape sequence
d
(Ich erinnere mich nicht sicher, aber ich glaube, ich habe diese Antwort von Herrnans Antwort unten kopiert und sie erweitert. Ich hätte die zusätzlichen Informationen in Kommentaren oder Änderungsvorschlägen zu dieser Antwort hinzufügen sollen. Ich weiß nicht, wie ich sie verbessern soll die Situation, aber jetzt ist es bekannt.)
Dies funktioniert zumindest für Bash. Für zsh gibt es andere Navigationsmöglichkeiten.
Ähnlich wie bei anderen Antworten, aber für Zsh habe ich eine Weile gebraucht, um Folgendes zu finden:
Wenn Sie Zsh wie Oh My Zsh in iTerm verwenden, gehen Sie zu: Untermenü Einstellungen> Profile > Schlüssel
Klicken Sie auf + Zeichen
Fügen Sie Ihre Verknüpfungskombination hinzu und wählen Sie "Escape-Sequenz senden".
Eingänge für links und rechts unten.
links:
[1;5D
richtig:
[1;5C
Öffnen Sie die Einstellungen
Konfigurieren Sie die linke (und / oder rechte) Wahltaste, um Esc + zu senden
Wenn Sie Ihre Voreinstellungen durcheinandergebracht haben, müssen Sie möglicherweise die Standardvoreinstellung laden (Vorsicht, dies könnte Ihre benutzerdefinierten Tastenkombinationen löschen!).
Wenn Sie danach seltsame Zeichen sehen, müssen Sie möglicherweise ~ / .inputrc oder / etc / inputrc konfigurieren
Fügen Sie dies zu Ihrer ~ / .inputrc hinzu:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
Vollständiges Beispiel für inputrc:
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
Sie können Ihr Terminal in den vi-Modus set -o vi
versetzen, um die üblichen vi-Bewegungsbefehle verwenden zu können (fügen Sie die Zeile hinzu .bash_profile
, um die Einstellung dauerhaft zu speichern.)
Wie in vi können Sie also drücken Esc
, b
um ein Wort rückwärts ( w
vorwärts) zu bewegen , zum Zeilenanfang zu gehen 0
oder ein Zeichen mit F
dem Zeichen + rückwärts zu suchen .
Drücken Sie i
, um zum normalen Modus zurückzukehren und einzufügen.
Wer sich mit vi auskennt, kann noch viel mehr. Ein Spickzettel finden Sie hier .
Esc
dann I
nur einmal an den Zeilenanfang gehen, ist dies etwas weniger praktisch als Ctrl-a
- dieser Anwendungsfall tritt häufig auf, wenn Sie nur den Befehlsnamen ändern möchten. Daher verwende ich den vi-Modus mit einigen Änderungen an der Tastenkombination in iTerm2 zum Abbilden Ctrl-A
und ähnlich der Escape-Sequenz Esc+0
. Auf diese Weise sind diese Fälle noch schneller, da sie im Bearbeitungsmodus enden.
Mit iTerm2 3.1.4 konnte ich Folgendes einrichten, ohne einzelne Tastenzuordnungen hinzuzufügen.
Mit einer neuen Terminal-Sitzung können Sie jetzt Folgendes verwenden:
Option ⌥+ fum vorwärts zu kommen
Option ⌥+ bum vorwärts zu kommen
Option ⌥+, Delete ⌫um ein Wort zu löschen