Qual é o atalho para deletar uma palavra “forward” em um terminal unix?

6

Eu faço Ctrl+W no mac terminal para deletar uma palavra (apaga de onde o cursor está para o começo da palavra)

Como faço o oposto - exclui de onde o cursor está para o final da palavra?

    
por Glide 25.09.2017 / 19:20

3 respostas

10

Isso depende do seu shell e de seu modo de edição de linha de comando ativo.

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 razão, mas imprime o caractere , use Esc d em seu lugar).

Para um shell com o modo de edição de linha de comando do Vi ( set -o vi em alguns shells), use Esc dw (isso faz funcionar macOS também).

    
por 25.09.2017 / 19:34
1

Para a disciplina de linha tty, ^W exclui a palavra delimitada por espaço em branco anterior.

No editor vi no modo de inserção, ^W é excluído para o início da primeira seqüência de alnums ou não-alnums (em foo-+-bar.. baz , ele primeiro exclui baz , depois .. , em seguida bar , depois -+- , depois foo ).

No editor emacs , ^W apaga da posição do cursor para a marca (aquela que você definiu com Ctrl + Espaço ).

Alguns editores de linha como readline (usado por bash , gdb ...), zle (usado por zsh ), pdksh quando estão no modo vi , se comportam como vi a esse respeito e quando no modo emacs se comportam como a disciplina de linha tty (não emacs ).

libedit (usado por shells BSD ou (opcionalmente) dash ), tcsh , AT & T ksh , no modo emacs , comporta-se como emacs em que ^W é excluído do < em> mark (inicialmente no início do buffer).

Para deletar uma palavra para frente, no editor vi , você faria no modo ( normal ) com dw para apagar até o começo da próxima seqüência de alnums ou não-alnums (ou o fim da linha) e dW para excluir a próxima sequência de não-brancos (o pingente da ^W da disciplina de linha tty).

No editor de linha emacs , Meta-D excluiria o fim da próxima seqüência de caracteres alnum. Os operadores de movimento de palavras ( Meta-B , Meta-F ) se comportam de maneira semelhante.

editores de linha de comando, quando no modo vi , se comportam como vi , mas no modo emacs , você tem duas escolas principais: a tcsh school e a ksh school.

O ksh school ( readline , ksh , yash ) se comporta principalmente como emacs ( fish tem um comportamento ligeiramente diferente no tratamento de caracteres não-alnum e não brancos em emacs e vi mode).

Na tcsh school ( tcsh , libedit , zsh ), os movimentos das palavras baseiam-se em palavras delimitadas por espaço em branco, portanto, são consistentes com a disciplina de linha tty ^W a 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 school (e ter Meta-D para excluir o mesmo tipo de palavra que Ctrl-W ) adicionando para o 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 com os outros widgets de movimento de palavra (se comportem como Meta-Backscape ) com:

set keymap emacs
"\C-W": backward-kill-word

Quanto ao que é a chave Meta , veja .

    
por 25.09.2017 / 23:57
-2

No Linux, tente Ctrl+k para excluir de onde o cursor está até o final da palavra.

Existem alguns outros atalhos listados abaixo (trabalhando no Linux):

  1. Ctrl+e - > Leva cursor no final da palavra.
  2. Ctrl+t - > Inter-altere a posição dos alfabetos.
  3. Ctrl+y - > adiciona postfix "hh" à palavra atual.
  4. Ctrl+u - > Exclui toda a linha.
  5. Ctrl+o - > Funciona da mesma forma que a tecla Enter.
  6. Ctrl+p - > Funciona da mesma forma que o botão de seta para cima.
  7. Ctrl+a - > Traz o cursor para a posição inicial do comando.
  8. Ctrl+d - > Fecha o terminal.
  9. Ctrl+f - > Move o cursor para frente por um caractere.
  10. Ctrl+h - > Funciona da mesma forma que a tecla Backspace.
  11. Ctrl+j - > Funciona da mesma forma que a tecla Enter.
  12. Ctrl+m - > Funciona da mesma forma que a tecla Enter.
  13. Ctrl+b - > Funciona da mesma forma que a tecla de seta para a direita. 14 Ctrl+4 - > Exclui a palavra
por 25.09.2017 / 19:50

Tags