Linux에서 작업하고 C-shell을 사용할 때 프롬프트에서 입력의 일부를 어떻게 지울 수 있습니까?

Linux에서 작업하고 C-shell을 사용할 때 프롬프트에서 입력의 일부를 어떻게 지울 수 있습니까?

저는 Linux와 C-shell에서 일하고 있습니다. History 명령을 사용하여 역검색을 수행하여 얻은 프롬프트에 이미 있는 내용의 일부를 변경해야 하는 경우가 많습니다 CTRL+R. 나는 이런 일을 하고 싶지 않습니다 Backspace. 나는 본 적이superuser.com에 대한 이 질문이것은 bash를 위해 특별히 설계되었습니다. 이것답변이를 사용하면 CTRL+U현재 커서 위치 이전의 모든 내용이 지워짐을 나타냅니다. 하지만 백스페이스 키를 몇 번 눌렀고 지금은 프롬프트 텍스트 중간에 있지만 이로 인해 모든 것이 지워졌습니다. Linux에서 동일한 작업을 수행하는 C-shell 특정 방법이 있습니까?

답변1

(완전 마조히스트 가 tcsh아닌 경우 이것이 "C-Shell"이라고 부르는 것 같습니다) 모드(보통 기본 모드) 에서 emacs사용할 수 있습니다 Ctrl-W.kill-region표시( Ctrl-Space줄의 시작 부분으로 설정되지만 기본값은) 및 커서입니다.

Ctrl-W이러한 점에서 해당 동작은 bash(readline)/ksh/zsh emacs 모드보다 emacs에 더 가깝지만 이전 단어가 삭제되는( werase, middle ) 터미널 드라이버 내장 라인 편집기(표준 모드)에는 그렇지 않습니다 vi. 그 때 일반적인 터미널 동작을 선택하지만 emacsemacs에서 범용 매개변수이고 터미널의 -line 문자인 경우는 아닙니다.Ctrl-Ukill

Ctrl-U줄의 시작 부분까지 삭제 하려면 다음 을 수행할 수도 있습니다.

bindkey '^U' backward-kill-line

En vi모드, Esc명령 모드로 들어가서 d0줄의 시작 부분까지 삭제합니다(또는 c0삭제하는 대신 변경하려는 경우).

관련 정보