No modo bash emacs, existe alguma maneira de excluir até o caractere de barra anterior? Por exemplo, se eu inseri o comando cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path
e quero excluir apenas o reallylongincorrectfolder
. Existe algum atalho? Este é um cenário muito comum para mim no bash. Algo como dF<char>
no vi?
15
~/.inputrc
, adicione uma linha como esta para o arquivo:"\C-b": unix-filename-rubout
. Para ver o efeito, você terá que iniciar um novo shell bash (ou executar outro programa que utilize a biblioteca GNU readline).Alt- Backspacee Ctrl- wsão comumente mapeados para
backward-kill-word
, o que faz isso. Se você quiser descobrir para o que ele está mapeado no seu sistema (se houver), executebind -P | grep '^backward-kill-word'
.Conforme explicado por @Barmar , isso é diferente de
unix-word-rubout
, que remove para o limite de espaço anterior.fonte
unix-word-rubout
: Mate a palavra por trás do ponto, usando o espaço em branco como um limite de palavra.unix-filename-rubout
é um pouco melhor, pois para no espaço em branco e barra.Coloque isso no seu
.inputrc
e inicie um novo shell:C-b:unix-filename-rubout
Ctrl- bagora apaga para trás para a próxima barra.
Nirvana!
Não se esqueça Ctrl- XCtrl- Einiciará seu editor para que você possa editar confortavelmente uma linha de comando complicada.
fonte