como passar por uma palavra na linha de comando no tcsh?

como passar por uma palavra na linha de comando no tcsh?

digamos que o comando seja "ls word1 word2 word3"

Quero mover o cursor do final da linha para “Word2”, mas não quero limpar “Word3” no processo. Basta voltar duas palavras e chegar ao início de "palavra2"

existe algum atalho de teclado para pular a palavra para frente e para trás sem excluí-la na linha de comando?

Responder1

Quando o editor de linha do tcsh estiver configurado no emacsmodo (que é o padrão, use bindkey -epara voltar a ele se você tiver habilitado vio modo anteriormente):

% 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

Então ESCe então b/ f(ou B/ F), que são as sequências que os terminais costumam enviar ao pressionar Alt+ b/ f( Alt+ Shift+ b/ fpara as maiúsculas).

É o mesmo que você faria no emacseditor.

No vimodo (após bindkey -v), você usaria os vicomandos de movimento usuais no modo de comando vi ( back, word, end e seus equivalentes em maiúsculas para movimentos WORD (palavras separadas por espaços em branco)).

Responder2

"Alt+b" para trás e "Alt+f" para frente. Além disso, "Alt+backspace" deve excluir uma palavra ao contrário.

Responder3

Adicionando os atalhos conforme esperado por um usuário do Windows (basta colocá-los no seu ~/.cshrcou colar no seu shell):

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

Também existe a opção de usar outros atalhos de teclado para estes, por exemplo:

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

informação relacionada