Bash의 키와 동일한 Windows 셸 Esc 키(전체 줄 삭제)

Bash의 키와 동일한 Windows 셸 Esc 키(전체 줄 삭제)

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

EscBash 프롬프트에서 키를 눌러도 아무 일도 일어나지 않는 것으로 나타났습니다 . 단어를 누르고 삭제 Esc하세요 . 단, 각 단어에 대해 이 작업을 수행해야 합니다.backspace

Bash를 차근차근 배워나가는 중이고 가끔은 줄 중간에 엉뚱한 말을 쳐도 처음부터 다시 치는 게 낫다는 생각이 들 때가 있습니다. 이렇게 하려면 누르는 것이 backspace지금까지 제가 찾은 유일한 방법입니다.

당신의 직업은 무엇입니까?

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

답변1

당신이 원하는kill-whole-line, 그러나 이는 bash에서는 기본적으로 제한되지 않습니다.backward-kill-line( CtrlX Backspace) 그리고unix-line-discard( CtrlU) 둘 다 현재 지점부터 줄의 시작 부분까지 지우므로 줄의 끝 부분으로 가서 둘 중 하나를 사용하면 됩니다.

답변2

Ctrl+를 사용하면 C입력 중인 내용을 모두 취소하고 새 명령줄을 비어 있게 만들 수 있습니다.CTRL+C를 사용하여 명령줄로 돌아가는 것이 올바르지 않습니까?.

답변3

Ctrl+a줄의 처음으로 이동하여 Ctrl+k줄의 끝까지 삭제

답변4

Ignacio Vazquez-Abrams의 답변을 약간 확장하려면 다음을 사용하여 Escbash의 키에 바인딩하여 (거의) Windows와 유사한 동작을 얻을 수 있습니다.kill-whole-lineEsc

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

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

하지만 이건 참고해주세요매우EscBash는 실제로 이 키를 다른 수정자 키(예: 비영구 Alt 또는 Ctrl)로 사용하기 때문에 비표준입니다 . 기존 키 바인딩 목록( )을 보면 bind -P"\e"로 시작하는 키 조합에 바인딩된 여러 명령을 볼 수 있습니다(예:

"\eb": backward-word

Esc+ 조합을 설정하여 B커서를 가장 가까운 단어의 시작 부분으로 다시 이동합니다. Ctrl+와 유사하지만 이 작업을 연속해서 여러 번 수행하려면 (물론) 계속 놓아야 합니다 .EscB

이것은 내가 당신이 얻는 행동이 다음과 같다고 말한 이유를 설명합니다.거의Windows와 유사합니다. 를 누르면 Escbash는 이를 다른 키와 결합하는지 확인합니다. 따라서 이를 바인딩한 다음 누르고(또는 손을 떼면) bash를 지우는 kill-whole-line사이에 약간의 지연이 있습니다. .Esc

그러나 이에 대해 신경 쓰지 않고 다른 키 입력을 사용하도록 재교육하는 것보다 지연을 감수하고 싶다면 그렇게 할 수 있습니다.

(참고: 저는 다음 링크를 읽고 클릭하여 여기에서 대부분의 정보를 얻었습니다.이 답변.)

관련 정보