Excluindo entrada para a última barra invertida

14

Muitas vezes eu vou flitting entre vários arquivos em um servidor. Eu executarei os seguintes exemplos de comandos em seqüê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 comando nano para o próximo, atualmente pressiono Up e Backspace para substituir o último segmento do caminho. O problema com isso é que eu sou realmente realmente preguiçoso.

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

  • Substitua pelo último caminho usado (com um bit extra no final)
  • Excluir na linha atual (por exemplo, depois de pressionar Para cima ) de volta para o último /
por Oli 20.10.2014 / 17:19

3 respostas

19

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

Depois de pressionar Acima , isso deve excluir o caractere / ou space anterior.

    
por Sylvain Pineau 20.10.2014 / 17:25
9

Para detectar a ligação readline que mata uma palavra para trás, você pode usar o seguinte comando no seu terminal:

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

Em uma instalação padrão do Ubuntu, a saída pode 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 primeira linha. Pelo que entendi, a função backward-kill-word readline que, na verdade, exclua todos os caracteres até que o caractere especial anterior ( / , ; , , etc.) esteja vinculado à sequência de teclas \e\C-h . Agora, nesta sequência \e representa a tecla Esc , \C - the < Tecla kbd> Ctrl , e \C-h significa Ctrl + h que é equivalente neste caso com a tecla Backspace .

Então, você está procurando o atalho de teclado Esc + Ctrl + h que é equivalente a Esc + Backspace e que, por causa do comportamento do xterm que faz a tecla Alt atuar como meta-caractere e meta-caracteres são convertidos em uma sequência de dois caracteres com o próprio caractere precedido por Esc (veja man xterm ) , é equivalente a Alt + Backspace .

Agora, se você não gostar e continuar a esquecê-lo, 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 esse novo atalho persistente o tempo todo para todos os comandos que usam readline, adicione a seguinte linha de linha ao seu arquivo ~/.inputrc :

"\ew": backward-kill-word

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

    
por Radu Rădeanu 20.10.2014 / 21:39
0

Outra combinação de teclas é:

Alt + B e depois Ctrl + K

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

Alt + B entao Alt + D

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

    
por αғsнιη 10.11.2014 / 12:14