대화식 쉘에서 경로의 일부를 삭제하는 방법?


19

bash 및 zsh에 경로의 한 구성 요소를 삭제하는 바로 가기가 있습니까? 예를 들어, 내가 입력 ls ~/local/color/하고 커서가 줄 color/의 끝에 있다면, 끝 을 삭제하는 바로 가기가 있습니까? 이상적으로는 vi 모드와 emacs 모드 모두에서 솔루션을 원합니다.

답변:


25

가장 많이 사용되는 키보드 에 대해 기본 bash emacs 모드 에서 가장 일반적으로 사용되는 명령 :

운동

  • Ctrl- p또는 Up: 이전 명령
  • Ctrl- n또는 Down다음 명령
  • Ctrl- b또는 Left: 이전 문자
  • Ctrl- f또는 Right다음 문자
  • Alt- b: 이전 단어
  • Alt- f: 다음 단어
  • Ctrl- a또는 Home명령 시작
  • Ctrl- e또는 End명령 끝

편집

  • BkSpc: 이전 문자 삭제
  • Ctrl- d또는 Del: 현재 문자 삭제
  • Alt- BkSpc: 왼쪽으로 단어 삭제
  • Alt- d: 오른쪽으로 단어 삭제
  • Ctrl- u: 명령 시작으로 삭제
  • Ctrl- k: 명령 끝까지 삭제
  • Ctrl- y: 마지막 컷 붙여 넣기

잡집

  • Cltr- /: 실행 취소
  • Cltr- r: 증분 후진 히스토리 검색

2
보완 : zshbindkey [key] vi-backward-kill-word
Vayn

감사. 이 파일을 ~ / .zshrc 파일에 추가했으며 Alt + Backspace를 누르면 잘 작동합니다. bindkey "^ [^?" vi-backward-kill-word. 이상적이지 않습니다.
팀 스튜어트

Alt-Bckspc와 Alt-d는 내가 시도한 파일 경로와 잘 작동합니다. (에 배쉬)
몸매

10

도 있습니다 unix-filename-rubout위해 Readline!

# in ~/.inputrc
# press ctrl-b to delete unix filename parts
# see: man bash | less -p 'unix-filename-rubout' and
#      http://www.calmar.ws/vim/vi-bash.html
set editing-mode vi
set keymap vi
"\C-b": unix-filename-rubout

2
IMHO unix-filename-rubout는 슬래시 나 공백을 지울 때 묻는 질문에 대한 정답입니다. 반면 Alt-BkSpc하이픈, 밑줄, 점 등과 같은 문자는 멈출 것입니다.
Steve

6

기본적으로 bash (및 zsh를 추측하고 있습니다)는 emacs 모드에 있습니다. 다음과 같이 시도해보십시오.

Esc + b커서를 한 단어 뒤로 되돌립니다. Ctrl + k줄 끝까지 삭제됩니다.

bash와 같은 대부분의 최신 쉘은 고급 명령 줄 편집 기능을 구현합니다. 이 명령은 emacs 편집에 가깝습니다 (줄 시작의 경우 Ctrl + A, 줄 끝의 경우 Ctrl + E, ...).

vi와 유사한 편집기를 사용하는 경우 vi 모드를 허용 할 수 있습니다.

set -o vi

쉘 vi와 유사한 모드를 제공하고 (명령 모드 / 삽입 모드) 표준 명령에 액세스 할 수 있습니다 (삭제의 경우 d, 교체의 경우 r, ...).

Vi 모드에서는 다음과 같이 설명합니다.

Esc (command mode); d; b.

1
"명령 줄 편집이 훨씬 강력하고 vi 모드에서 완벽합니다"라고 말하지 않을 것입니다. emacs 모드 에는 vi 모드 에서 수행 할 수있는 모든 작업을 수행하는 명령이 있습니다 .
enzotib

나는 조금 나아 졌다는 것을 인정한다. 이것을 다시 말하겠습니다.
rahmu

bash에 vi 모드가 있음을 상기시켜 주셔서 감사합니다 db.이 시나리오에서는 bash에서 사용할 수 있습니다 . 또한 vi-backward-kill-wordzsh에서 내가 원하는 것을 발견 했으며 bash에서 vi-mode를 설정하는 것보다 편리합니다. 그러나 나는 여전히 bash에서이 목적을위한 emacs 모드 단축키 를 찾고 싶다 .
Vayn

또는 "alt-bC". 이 방법은 후행 문자를 남기지 않으며 db경우에 따라 다릅니다.
와일드 카드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.