Excluindo entrada de volta para a última barra

Excluindo entrada de volta para a última barra

Muitas vezes estarei alternando entre vários arquivos em um servidor. Executarei os seguintes comandos de exemplo em sequência:

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

Para ir de um nanocomando para o próximo, pressiono atualmente Upe Backspacepara substituir o último segmento do caminho. O problema com isso é que estou realmente,realmentepreguiçoso.

Existe um atalho de teclado (ou Bashism) que pode:

  • Seja substituído pelo último caminho usado (com um bit extra no final)
  • Excluir na linha atual (por exemplo, após pressionar Up) de volta ao último/

Responder1

Acho que você está procurando o atalho Alt+ Backspace.

Depois de pressionar Upisto deve apagar de volta ao caractere /ou anterior space.

Responder2

Para detectar a ligação readline que elimina uma palavra de trás para frente como desejar, você pode usar o seguinte comando em seu terminal:

bind -p | awk '/kill/ && /word/ && /backward/'

Em uma instalação padrão do Ubuntu, a saída poderia ser:

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

A segunda linha parece sem importância neste momento, então vamos tentar ver o que significa a primeira linha. Pelo que entendi, obackward-kill-wordfunção readline que de fato exclui todos os caracteres até que o caractere especial anterior ( /,, ;etc. ,) seja vinculado à \e\C-hsequência de teclas. Agora, nesta sequência\e representaa Escchave, \C- a Ctrlchave, e \C-hsignifica Ctrl+ hqueé equivalente neste casocom Backspacechave.

Então, você está procurandoEsc+ Ctrl+hatalho de teclado que é equivalente aEsc+Backspacee qual,por causa do comportamento do xterm que faz com que Alta chave atue como um meta-caractere e os meta-caracteres são convertidos em uma sequência de dois caracteres com o próprio caractere precedido por Esc(consulte man xterm), é equivalente aAlt+Backspace.

Agora, se você não gosta e continua esquecendo, você pode usar o seguinte comando para criar um novo atalho, digamos Esc+ w, para o seu propósito:

bind '"\ew": backward-kill-word'

Para tornar este novo atalho persistente o tempo todo para todos os comandos que usam readline, adicione a seguinte linha ao seu ~/.inputrcarquivo:

"\ew": backward-kill-word

Veja help -m bind | sensible-pagerpara mais informações.

Responder3

Outra combinação de teclas é:

Alt+ Bentão Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ Bentão Alt+D

Isso remove a última palavra sem excluir caracteres especiais entre as palavras.

informação relacionada