Bash : 커서보다 먼저 단어를 삭제


76

다음 bash 명령 행을 고려하십시오. 여기서 ^는 커서 위치를 나타냅니다.

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

같은 메시지로 다른 파일을 커밋하고 싶습니다. 커서 위치에서 다음 공간으로 현재 단어를 어떻게 삭제합니까? 뒤로 삭제 바로 가기가 있습니까? 커서를 첫 번째 공백 뒤로 형성하십시오.

업데이트 : ctrl +는 w뒤로 지워지지 만 어느 바로 가기가 한 단어 앞으로 지워 집니까?


2
Ctrl u는 커서 위치에서 시작으로 지우는 옵션입니다.
nutty about natty

23
시도 alt + d이맥스 편집 모드가 설정되어있을 때, 유용 할 수 있습니다 그.

@Mik 어떻게 emacs 모드를 활성화합니까?
Adam Matan

@AdamMatan이이를 set -o emacs활성화하지만 일반적으로 기본값입니다. 그렇지 않은 경우 해당 행을 .bashrc또는 .bash_aliases에 넣은 다음 파일을 소싱하거나 터미널을 다시로드하십시오. 그러나 ctrl + c와 같은 단축키는 Bash 단축키가 아니기 때문에 vi 모드에서 사용되는 단축키는 사용할 수 없습니다.

답변:


56

unix.stackexchange.com에서 비슷한 질문 답변 했습니다 .

Bash에는 기본적으로 바인딩되지 않은 readline 명령이 있습니다. http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands 에서 참조하십시오 .

찾고있는 명령을 "shell-backward-kill-word"라고합니다. 바로 가기를 먼저 선택해야합니다. Crtl + p는 "이전 명령"이므로 위쪽 화살표와 동일하므로 사용합니다.

bind '"\C-p": shell-backward-kill-word'

유일한 차이점은 앞으로 삭제하기 때문에 "shell-kill-word"명령을 대신 사용해야한다는 것입니다.

Meta+ d단축키 가있는 "kill-word"명령도 있습니다 (메타 키가없는 경우 Esc+ 시도 d). 한 번에 경로의 한 부분 만 삭제합니다.


31
Alt-d는 저에게 효과적입니다
ricab

8
일반적으로 Meta가 존재하지 않는 키보드 세계에서는 Alt = Meta입니다.
네이트 CK

나는 당신이 많은 다른 키보드를 가지고있는 세계에서 편리하고 상당히 유용한 사실은 접두사로 Esc가 메타 역할을한다는 것입니다.
tripleee

1
: 즉,을 $ HOME / .inputrc 파일에 예를 들어이 추가 "\ew": shell-kill-word CTRL-w 거꾸로 단어를 삭제 훨씬처럼 Alt 키 w 단어를 삭제 전진 할 것, (Alt 키-D는 달리 앞쪽으로 삭제되는하지만 예에서 중지 / 또는-및 기타 문자)
user964970

7

OSX Mavericks 에서 esc+ dalt/ opt+ d를 테스트했으며 거기에서도 작동합니다.


12
Option + d는 OSX에 ∂를 준다
Ivan Balashov

4
-1 OSX는 우분투가 아닙니다. 의견을 자유롭게 추가하십시오. 그러나 이것은 답변이 아닙니다.
wjandrea

터미널 환경 설정 (프로필-> 키보드 탭-> 확인란)에서 "메타 키로 옵션 사용"확인란을 활성화해야합니다.
nils petersohn

control + d맥 시에라
mfink

2
@term을 사용하는 경우 @ opt 키를 esc +로 설정하십시오. 프로필에서> 키
tessie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.