Mac 터미널에서 명령 행 명령의 이전 부분으로 건너 뛸 수있는 방법이 있습니까?


9

나는 종종 bash 쉘에서 많은 인수, 웹 주소, 경로 등을 가진 긴 명령을 작성한다는 것을 알게 될 것입니다. 나는 종종 명령의 시작 부분에 "번들 exec"를 넣거나 무언가를 잘못 입력하거나 따옴표를 잊어 버렸다는 것을 잊었을 것입니다. 또는 단순히 "vim"대신 "cd"를 넣는 것과 같은 것입니다.

따라서 명령 시작 부분으로 돌아갈 때까지 왼쪽 화살표 키를 누르는 지루한 프로세스가 시작됩니다.

줄의 시작 부분으로 다시 이동할 수있는 방법이 있습니까?


2
당신은 기본 터미널 응용 프로그램을 제거하고 iTerm
Clement Herreman을

왜? 방금 확인했는데 거의 동일하게 작동합니다. (홈 키는 지금 작동하지만 실제로 중요하지 않은 다른 키가 있기 때문에). 모든 설정, 구성 및 작업을 다시 실행할 가치가있는 것은 무엇입니까?
GlyphGryph

이것은 .inputrc로 설정할 수있는 것 같습니다
Rob

또한 한 번에 한 단어 씩 점프하려면 ⌥B 및 ⌥F를 사용하여 각각 앞뒤로 이동하십시오.
fideli

@fideli, 그러나“옵션을 메타 키로 사용”을 활성화 한 경우에만 해당됩니다. Mac OS X Lion 10.7부터 터미널의 기본 키보드 설정은 Option- 왼쪽 화살표 / 오른쪽 화살표를 Esc-b / f에 매핑하므로 구성이 필요하지 않습니다.
Chris 페이지

답변:


12

^ A 및 ^ E 외에도

  • Esc- b한 단어 뒤로 이동
  • Esc- f한 단어 앞으로 이동
  • Ctrl- b한 캐릭터 뒤로 이동
  • Ctrl- f한 캐릭터 앞으로 이동

이동 명령 은 bash 매뉴얼을 참조하십시오 .


참고 사항-이것은 Emacs에서 emacs가져온 것이며 , 옵션을 shellopts 에 추가하면 더 많은 것을 얻을 수 있습니다.
TC1

6

다음과 같은 Emacs 명령을 사용할 수 있습니다.

  • ctrl-A 명령 행의 시작으로 이동
  • ctrl-E 명령 행의 끝으로 이동

이것은 Mac에만 국한되지 않는 bash입니다.


3
set -o vi

그런 Esc다음

^줄의 시작 줄의 $b한 단어 뒤로 w한 단어 앞으로


저는 Vim을 매우 좋아합니다. 그래서 당신의 대답의 원칙은 나에게는 위대하지만 모달 커맨드 라인 편집은 OP에 약간 혼란 스러울 수 있습니다. 특히 입력 할 수있는 방법에 대한 언급이 없다면 OP! i커서 앞에 입력하려면 (삽입)을 사용 하고 커서 a뒤에 입력하려면 (추가)를 사용하여 삽입 모드로 돌아갑니다 .
Cascabel

나는 vi를 수십 년 동안 기본 텍스트 편집기로 사용해 왔지만 여전히 쉘에 대한 emacs 키 바인딩을 선호합니다.
Keith Thompson

실제로 OP는 모든 텍스트 편집에 vim을 사용하므로 vi 표준을 설정할 수 있다는 것을 알면 매우 유용합니다. 많은 감사합니다!
GlyphGryph

@ 키스 톰슨 : 나는 같은 생각을했습니다. 방금 쉘 이이 모드 전환과 잘 섞이지 않는다고 생각 v했습니다 (vi 모드 의 자극 키 와 같은 ). P하십시오 난 그냥 가지고있는 동안 정력 때문에 감염 후하지만 난 당신이 그것을 시도 줄 제안
kizzx2

1

이것은 귀하의 질문에 대답하지 않지만 경우에 따라 문제를 해결할 수도 있습니다.

에서 토큰 이전 명령으로 대체됩니다. 따라서 명령의 시작 부분에 (예 :)를 추가하는 것을 잊어 버린 경우 다음과 같이 할 수 있습니다bash!!sudo

# ./super_secret_command --with-args
=> ACCESS DENIED

# sudo !!
sudo ./super_secret_command --with-args
=> ACCESS GRANTED

0

Ctrl/Opt+Left/Right터미널에서 사용할 일반 바로 가기를 구성 할 수 있습니다 . 그렇게하면 터미널을 사용할 때 모든 것을 다시 배울 필요가 없습니다.

터미널»기본 설정…»설정»(프로필 선택)»키보드를 엽니 다 .

다음 단축키를 지정하십시오.

  • Control + Cursor Left: 문자열 \033[1~을 쉘로 보내기
  • Control + Cursor Right: 문자열 \033[4~을 쉘로 보내기
  • Option + Cursor Left: 문자열 \033[5D을 쉘로 보내기
  • Option + Cursor Right: 문자열 \033[5C을 쉘로 보내기

나는 또한 다음을 좋아한다 ( Fn + Left/Right) :

  • Home: 문자열 \033[1~을 쉘로 보내기
  • End: 문자열 \033[4~을 쉘로 보내기

여기에 이미지 설명을 입력하십시오


사자에 ⌥ ←과 ⌥ →에 바인딩 M-b하고 M-f기본적으로. 그리고 ⌃ ← 및 ⌃ →는 공백을 변경하기위한 기본 바로 가기입니다.
Lri

0

Mac이 아닌 Cygwin에서 이것을 필요로했지만 다음을 추가하면 ~/.inputrc도움 이 될 수 있습니다.

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

0

저는 Mac 사용자는 아니지만 Home키는 어떻습니까? 그것은 리눅스 터미널에서 잘 작동합니다.


1
아니요, 터미널 창의 맨 위로 스크롤됩니다.
GlyphGryph

기본적으로 홈 및 종료는 표준 Mac 동작 인보기를 스크롤합니다. 기본적으로 Shift-Home 및 Shift-End는 각각 "ESC [H"및 "ESC [F"를 보냅니다. 이들은 모두 터미널> 환경 설정> 설정> [프로필]> 키보드 에서 사용자 정의 할 수 있습니다 .
Chris 페이지

0

Mac Os X에서 명령 줄을 이동하는 가장 좋은 방법은 내 프로필을 사용하는 것입니다 : https://github.com/lingtalfi/mac-terminal-shortcuts

다음과 같은 (직관적 인) 바로 가기를 제공합니다.

ALT-left: move one word backward
ALT-right: move one word forward
CTRL-left: move to the beginning of the line
CTRL-right: move to the end of the line
ALT-backspace: kill one word backward
ALT-del: kill one word forward
ALT-up: set word after cursor to uppercase
ALT-down: set word after cursor to lowercase
home: move to the beginning of the line
end: move to the end of the line    
CTRL-backspace: Same as ALT-backspace
CTRL-del: Same as ALT-del
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.