Usare Ctrl o Alt AND backspace per eliminare l'ultima parola in Bash


17

In Linux sono abituato a premere Ctrl- Backspaceper eliminare l'ultima parola ma non so come farlo nel terminale Bash.

In OS XI uso Alt- Backspaceper fare la stessa cosa.

Esiste un modo per far riconoscere a Bash la combinazione di tasti Ctrl- o Alt- Backspaceper eliminare l'ultima parola?

In Linux utilizzo terminatorcome emulatore di terminale, in OSX utilizzo iTerm2.


1
Alt-⌫ aka Alt- ← aka Alt-Backspace funziona perfettamente per me. Sto usando Terminator 0.93.
Teddy

Risposte:


31

Puoi sempre usare Ctrl- W. Elimina la parola prima del cursore e funziona in ogni Bash.

Vedi qui per un elenco di scorciatoie da tastiera di Bash .


1
Wow, questo potrebbe aver cambiato il modo in cui uso il terminale per sempre. Grazie!
David

3
Questo non risponde alla domanda
Sel

5

Devi solo impostare Option come Meta key nelle preferenze di iTerm ( Profili »Chiavi ).

backward-kill-wordè associato a Meta-Rubout(ovvero Opt-Backspace) per impostazione predefinita.

La stessa opzione esiste (anche se meno flessibile) in Terminal.app di Apple.


2
In realtà, devi usare l'impostazione "+ Esc". Impostandolo solo su "agisce come: Meta" si ottiene la ?stampa anziché l'eliminazione della parola.
slhck,

@slhck Non per me. Ma poiché gli sviluppatori lo raccomandano comunque, non può essere una brutta cosa.
Daniel Beck

2

In terminator puoi usare il seguente " plugin ", insieme a

[keybindings]
    kill_word = <Control>BackSpace

nel tuo file di configurazione. Questo mapperà Ctrl- Backspacea ESCDEL, un'altra scorciatoia per eliminare l'ultima parola.


Purtroppo questo ha smesso di funzionare nel terminatore 1.9. Potresti fornire una soluzione per caso?
Sel

1
Siamo spiacenti,
ho

2

Puoi creare un file .inputrcnella tua home directory e aggiungere questo contenuto all'interno:

"\C-h": backward-kill-word

1
Nota che questa e C-wla risposta accettata differiscono da quella che è considerata una "parola". C-wverrà eliminato dalla posizione del cursore fino a quando non incontra caratteri non spaziali e quindi uno spazio (ovvero, "this is a/se=weird |test"dove |segna la posizione del cursore produrrà "this is test"). Al contrario, il C-hlegame qui (che può essere associato usando bind '"\C-h": backward-kill-word"in a .bashrc) produrrebbe "this is a/se= test", poiché sostanzialmente delimita le parole su ciò che una variabile bash avrebbe, non solo gli spazi.
jeremysprofile,

0

Puoi semplicemente usare Alt- DELinvece del normale Strg- DEL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.