나는 bash를 더 빠르게 만드는 많은 bash 단축키(Ca/Ce, Cu, Cw, Mf/Mb, Cr 등)를 사용하는 데 매우 능숙해졌습니다. 그러나 경로의 마지막 부분을 제거하려는 경우 일반적인 작업에 대한 좋은 지름길을 찾지 못했습니다.
내가 가지고 있다고 말해
ls ~/projects/arcaneweb/libraries
내 말이 무슨 뜻인지 깨달았어
ls ~/projects/arcaneweb/sources
libraries
많은 키 입력을 절약하면서 삭제하는 방법이 있습니까 ?
답변1
단일 단축키:M-backspace
Alt+←
답변2
대체 옵션이 있지만 경로가 매우 길지 않으면 실제로 키 입력을 저장하는지 확실하지 않습니다.
^abc^xyz
이는 abc의 첫 번째 발생을 xyz로 대체합니다.
[root~]# ls -l /var/log/messages
-rw------- 1 root root 850312 Dec 28 14:08 /var/log/messages
[root ~]# ^messages^secure
ls -l /var/log/secure
-rw------- 1 root root 652614 Dec 28 14:08 /var/log/secure
Bash 단축키 참조: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
답변3
Mb, Ck는 내가 찾은 것 중 가장 빠르며 ESC를 Meta로 사용해야 하기 때문에 약간 느립니다. Alt/Option을 메타로 바인딩하면 이에 대한 근육 기억이 발달하면 꽤 빨라질 것입니다.
답변4
문제 unix-filename-rubout
는 공백을 경로의 일부로 이해하지 못한다는 것입니다.
나는 다음과 같은 바인딩을 생각해냈습니다(Alt-w에 바인딩).
bind '"\ew":"\e[D\e\C-]/\e[C\e\C-d"'
논리는 간단합니다.
\e[D
-backward-char
\e\C-]/
-then ( 역 슬래시 character-search-backward
찾기 )/
\e[C
-forward-char
\e\C-d
-shell-kill-word
다양한 명령은 여기에 설명되어 있습니다.
https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html
특정 명령에 대한 바로가기를 쿼리하려면 다음을 사용하세요.
bind -q shell-kill-word