Respostas:
Isso depende do seu shell e do modo ativo de edição da linha de comando.
Para um shell com o modo de edição de linha de comando do Emacs ( set -o emacs
em alguns shells), use Alt+D(isso não funciona no macOS por qualquer motivo, mas imprime o caractere ∂
, use-o Escd).
Para um shell com o modo de edição de linha de comando do Vi ( set -o vi
em alguns shells), use Escdw(isso também funciona no macOS).
Para a disciplina tty line, ^W
exclui a palavra anterior delimitada por espaço em branco .
No vi
editor no modo de inserção, ^W
exclui para trás o início da primeira sequência de alnums ou não-alnums (ativado foo-+-bar.. baz
, ele exclui primeiro baz
, depois ..
, depois bar
e -+-
depois foo
).
No emacs
editor, ^W
exclui da posição do cursor até a marca (a que você definiu Ctrl+Space).
Alguns editores de linha como readline
(usado por bash
, gdb
...), zle
(usado por zsh
), pdksh
são quando no vi
modo, se comportam como vi
nesse sentido e quando no emacs
modo se comportam como a disciplina da linha tty (não emacs
).
libedit
(usado pelos shells BSD ou (opcionalmente) dash
), tcsh
AT&T ksh
, no emacs
modo, se comporta como emacs
onde é ^W
excluído da marca (inicialmente no início do buffer).
Para excluir uma palavra para a frente, no vi
editor, você faria isso no modo de comando ( normal ) com dw
para excluir o início da próxima sequência de alnums ou não-alnums (ou o final da linha) e dW
excluir o próxima sequência de não espaços em branco (o pingente da ^W
disciplina tty line).
No emacs
editor de linha, excluiria Meta-Daté o final da próxima sequência de caracteres de alnum. A palavra operadores de movimento ( Meta-B, Meta-F) se comporta de maneira semelhante.
Os editores de linha de comando, quando no vi
modo, se comportam como vi
, mas no emacs
modo, você tem duas escolas principais: a tcsh
escola e a ksh
escola.
A ksh
escola ( readline
, ksh
, yash
) se comporta principalmente como emacs
( fish
's comportamento é ligeiramente diferente na forma como ele trata não alnum, caracteres não-espaço em branco em ambas emacs
e vi
mode).
Na tcsh
escola ( tcsh
, libedit
, zsh
), movimentos de palavras são baseadas em palavras delimitados por espaços e por isso são consistentes com a tty linha disciplina ^W
da esse respeito.
Em zsh
, o comportamento é personalizável com diferentes estilos de palavras para todos os widgets de movimento de palavras.
Para readline
, você pode obter a tcsh
escola (e Meta-Dexcluir o mesmo tipo de palavra que o Ctrl-Wfaz) adicionando ao seu ~/.inputrc
:
set keymap vi-move
"\e[EMACS~": emacs-editing-mode
set keymap emacs
"\e[VI~": vi-movement-mode
"\ed": "\e[VI~dW\e[EMACS~"
"\ef": vi-fWord
"\eb": vi-bWord
Ou, por outro lado, alinhe ^W
aos outros widgets de movimento de palavras (se comportam como Meta-Backscape) com:
set keymap emacs
"\C-W": backward-kill-word
Quanto à Metachave, veja lá .
No Linux, tente Ctrl+k
excluir de onde o cursor está até o final da palavra.
Existem alguns outros atalhos listados abaixo (trabalhando no Linux):
Ctrl+e
-> Pega o cursor no final da palavra.Ctrl+t
-> Inter-mudar a posição dos alfabetos.Ctrl+y
-> adiciona o postfix "hh" à palavra atual.Ctrl+u
-> Exclui toda a linha.Ctrl+o
-> Funciona da mesma forma que a tecla Enter.Ctrl+p
-> Funciona da mesma forma que o botão de seta para cima.Ctrl+a
-> Traz o cursor para a posição inicial do comando.Ctrl+d
-> Fecha o terminal.Ctrl+f
-> Move o cursor para frente em um caractere.Ctrl+h
-> Funciona da mesma forma que a tecla Backspace.Ctrl+j
-> Funciona da mesma forma que a tecla Enter.Ctrl+m
-> Funciona da mesma forma que a tecla Enter.Ctrl+b
-> Funciona da mesma forma que a tecla de seta para a direita. 14 Ctrl+4
-> Exclui a palavraCtrl+k
exclui até o final da linha . Ctrl+u
exclui a linha inteira (se o cursor estiver no final). Ctrl+d
envia EOF. Ctrl+e
vai para o final da linha , etc.
bash
novi
modo, você pode usardW
para eliminar aqueles