wie bewege ich mich in tcsh wortweise in der Befehlszeile?

wie bewege ich mich in tcsh wortweise in der Befehlszeile?

sagen wir, der Befehl lautet "ls word1 word2 word3"

Ich möchte den Cursor vom Zeilenende zu „Wort2“ bewegen, dabei aber „Wort3“ nicht löschen. Springe einfach zwei Wörter zurück und erreiche den Anfang von „Wort2“.

Gibt es eine Tastenkombination, um in einem Wort vor- und zurückzuspringen, ohne das Wort in der Befehlszeile zu löschen?

Antwort1

Wenn der Zeileneditor von tcsh im emacsModus konfiguriert ist (das ist die Standardeinstellung. Verwenden Sie , bindkey -eum dorthin zurückzukehren, falls Sie viden Modus zuvor aktiviert haben):

% bindkey | grep word | egrep 'for|back'
"^[^H"         -> backward-delete-word
"^[B"          -> backward-word
"^[F"          -> forward-word
"^[b"          -> backward-word
"^[f"          -> forward-word
"^[^?"         -> backward-delete-word

So ESCund dann b/ f(oder B/ F). Dies sind die Sequenzen, die Terminals normalerweise senden, wenn sie Alt+ b/ drücken f( Alt+ Shift+ b/ ffür die Großbuchstaben).

Dies entspricht dem, was Sie im emacsEditor tun würden.

Im viModus (nach bindkey -v) verwenden Sie die üblichen viBewegungsbefehle im vi-Befehlsmodus ( back, word, end und ihre Entsprechungen in Großbuchstaben für WORD-Bewegungen (durch Leerzeichen getrennte Wörter)).

Antwort2

„Alt+b“ für rückwärts und „Alt+f“ für vorwärts. Auch „Alt+Rücktaste“ sollte ein Wort rückwärts löschen.

Antwort3

Hinzufügen der Verknüpfungen wie von einem Windows-Benutzer erwartet (geben Sie diese einfach in Ihre ~/.cshrcShell ein oder fügen Sie sie ein):

# Use CTRL + left/right to move a word at a time:
bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word

Es besteht auch die Möglichkeit, hierfür andere Tastaturkürzel zu verwenden, zum Beispiel:

# Use ALT + left/right to move a word at a time:
bindkey '^[[1;3D' backward-word
bindkey '^[[1;3C' forward-word

verwandte Informationen