Czy w trybie bash emacs można usunąć aż do poprzedniego znaku ukośnika? Na przykład, jeśli wprowadziłem polecenie cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path
i chcę po prostu usunąć reallylongincorrectfolder
.Czy jest jakiś skrót? To jest dla mnie bardzo powszechny scenariusz. Coś jak dF<char>
w vi?
15
~/.inputrc
, dodać taką linię do tego pliku:"\C-b": unix-filename-rubout
. Aby zobaczyć efekt, musisz uruchomić nową powłokę bash (lub uruchomić inny program korzystający z biblioteki readline GNU).Alt- Backspacei Ctrl- wsą zwykle mapowane
backward-kill-word
, co czyni to. Jeśli chcesz dowiedzieć się, na co jest mapowane w systemie (jeśli w ogóle), uruchombind -P | grep '^backward-kill-word'
.Jak wyjaśniono @Barmar , różni się to od
unix-word-rubout
, która usuwa poprzednią granicę przestrzeni.źródło
unix-word-rubout
: Zabij słowo za punktem, używając białej spacji jako granicy słowa.unix-filename-rubout
jest nieco lepsze, ponieważ zatrzyma się na spacji i ukośniku.Włóż to do swojego
.inputrc
i uruchom nową powłokę:C-b:unix-filename-rubout
Ctrl- bteraz usuwa wstecz do następnego ukośnika.
Nirwana!
Nie zapomnij Ctrl- XCtrl- Euruchomi edytor, abyś mógł wygodnie edytować skomplikowaną linię poleceń.
źródło