Готин Bash хак за изтриване на път

Забелязъл съм нещо интересно, което може да се прави в csh, но работи по друг начин в bash.
Да речем че съм написал някакъв дълъг път:

/mnt/storage/mp3/Manowar

… и се сетя че всъщност не съм имал предвид “Manowar” като последна директория, а “rammstein”. Единия начин да оправя това е като набия 7 backspace-а и да изтрия всяка буква поотделно, докато стигна до наклонената черта. Ами ако се сетя че “rammstein” не е в “mp3″, а в “/mnt/storage/Music”? Тогава чаткането по backspace става още повече.
В csh това става елементарно с CTRL-W – комбинацията изтрива всичко от командния ред до предната наклонена черта.
Така

/mnt/storage/mp3/Manowar

става

/mnt/storage/mp3/

с един CTRL-W. Следващия CTRL-W ще махне “mp3/”, следващия ще махне “storage/” и т.н.
Гугъл върна един резултат на това търсене – тук в Shallow Thoughts.
На кракто решението е следното:
Това отива в ~/.inputrc:

set bind-tty-special-chars Off

А това отива в ~/.bash_profile:

bind '\C-w:backward-kill-word'

Шела се рестартира (logout -> login) и трябва да работи.
Обяснение на дълго защо се случва това – в горния линк.

Tags: , ,

Leave a Reply