Bash와 동등한 Windows 셸 이스케이프 키 (전체 줄 삭제) 단어에 대한 작업을 수행 할 수 있습니다. 나는

Windows 명령 줄 (powershell 및 cmd)에서 Esc줄에있는 동안 키 를 누르면 프롬프트에 입력 한 내용이 모두 제거됩니다.

Escbash 프롬프트에서 키 를 눌러도 아무런 효과가 없다는 것을 알았습니다 . 누르면 Esc다음과 것은 backspace단어를 삭제하지만, 이것은 각 단어에 대한 작업을 수행 할 수 있습니다.

나는 배쉬를 점차적으로 배우고 때로는 때로는 중간에 바보 같은 것을 입력하고 처음부터 다시 입력하는 것이 낫다고 생각합니다. 이렇게하려면 누르는 backspace것이 지금까지 내가 찾은 유일한 방법입니다.

너 뭐하니?

clear명령과 Ctrl-L바로 가기를 알고 있지만 전체 터미널을 지우는 것에 대해서는 이야기하지 않습니다. 그냥 라인.



답변

당신은 원 kill-whole-line하지만 이것은 bash에서 기본적으로 바인딩되지 않습니다. backward-kill-line( CtrlX Backspace) 및 unix-line-discard( CtrlU)는 모두 현재 지점에서 줄 시작으로 지워 지므로 줄 끝으로 이동하여 둘 중 하나를 사용하십시오.


답변

Ctrl+ C를 사용 하여 입력 한 내용을 버리고 비어있는 새 명령 줄을 얻을 수 있습니다. Ctrl + C를 사용하여 명령 줄로 돌아가는 것이 잘못 되었습니까?를 참조하십시오 . .


답변

Ctrl+a줄의 시작으로 이동하고 줄 Ctrl+k의 끝으로 삭제


답변

Ignacio Vazquez-Abrams의 답변을 약간 확장하려면 다음 명령으로 to 를 Esc바인딩하여 bash 의 키에서 거의 (거의) Windows와 같은 동작을 얻을 수 있습니다kill-whole-lineEsc

bind '"\e":kill-whole-line'

~/.inputrc파일에 행을 추가하면 세션간에 바인딩이 지속됩니다.

그러나 bash는 실제로 다른 비 지속적 Alt 또는 Ctrl과 같은 키를 다른 수정 키로 사용하기 때문에 이것은 매우 비표준 Esc입니다. 기존 키 바인딩 목록 (을 사용하여 bind -P)을 보면 “\ e”로 시작하는 키 조합에 바인딩 된 여러 명령이 표시 될 수 있습니다 (예 :

"\eb": backward-word

조합 위로하는 세트 Esc+ B커서 뒤로 이동하려면 가장 최근의 단어 – 시작 – 오히려처럼 Ctrl+ , 당신은 방출 유지해야한다는 점을 제외 Esc(뿐만 아니라 B, 물론) 당신이 행에 한 번 이상을 수행하려는 경우 ).

그리고 이것이 내가 얻는 행동이 거의 Windows와 같다고 말한 이유를 설명합니다 .을 누르면 Escbash는 다른 키와 함께 사용하는지 확인합니다. 따라서에 바인딩하면 눌림 kill-whole-line(또는 해제) Esc과 bash가 줄을 지울 때 까지 약간의 지연이 있습니다.

그러나 그중 하나라도 신경 쓰지 않고 다른 키 입력으로 자신을 재교육하는 것보다 지연으로 살고 싶다면 그렇게 할 수 있습니다.

(참고 : 이 답변 의 내용을 읽고 링크를 통해 얻은 결과 대부분의 정보 입니다.)