
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 emacs
modo (que é o padrão, use bindkey -e
para voltar a ele se você tiver habilitado vi
o 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 emacs
editor.
No vi
modo (após bindkey -v
), você usaria os vi
comandos de movimento usuais no modo de comando vi ( b
ack, w
ord, e
nd 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 ~/.cshrc
ou 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