나는 조합 알고 Ctrl+는 A현재 명령의 시작 부분으로 이동하고, Ctrl+ E끝으로 이동합니다.
그러나 Cocoa 응용 프로그램에서 Alt+ ←/ 와 같이 단어별로 단어를 건너 뛸 수있는 방법 →이 있습니까?
ALT
바로 가기 최신의 OS X 버전의 터미널에 추가되었습니다.
나는 조합 알고 Ctrl+는 A현재 명령의 시작 부분으로 이동하고, Ctrl+ E끝으로 이동합니다.
그러나 Cocoa 응용 프로그램에서 Alt+ ←/ 와 같이 단어별로 단어를 건너 뛸 수있는 방법 →이 있습니까?
ALT
바로 가기 최신의 OS X 버전의 터미널에 추가되었습니다.
답변:
상자에서 상당히 기괴한 Esc+ F를 사용하여 다음 단어 의 시작으로 이동 하고 Esc+ B를 사용하여 현재 단어의 시작으로 이동할 수 있습니다.
Esc
+ 를 누르 F
거나 줄의 시작에서 다른 키 콤보를 입력하면 대신 문자가 삽입됩니다. 성가신!
~/.inputrc
.
Mac OS X의 경우 다음 키보드 단축키가 기본적으로 작동합니다. 터미널 탭의 키보드 탭 아래에있는 옵션 키가 메타 처럼 작동하도록 해야합니다.
간단한 텍스트 탐색을위한 기본 emacs 키 바인딩이 bash 쉘에서 작동하는 것으로 나타났습니다. 당신이 사용할 수있는
기본적으로 터미널에는 단어별로 이동 (왼쪽 및 오른쪽)하는 바로 가기가 있습니다.
alt+ 를 구성 ←하고 →해당 시퀀스를 생성 할 수 있습니다 .
⌥ ←
경우 두 번 클릭 하거나없는 경우 추가하십시오.\033b
(이 텍스트를 수동으로 입력 할 수 없음).\033f
)또는 textmate에서이 블로그 게시물을 참조 할 수 있습니다.
B
에 대해 다시 나 F
에 대한 기대 에 Esc+
필드
alt left
alt right
iTerm2로 전환 하십시오 . 평범한 오래된 터미널보다 무료이며 훨씬 좋습니다. 또한 키보드 단축키와 같이 사용자 정의를위한 훨씬 더 많은 옵션이 있습니다.
또한 cmd1-9를 사용 하여 탭 사이를 전환 할 수 있음을 좋아 합니다. 그것을 시도하고 당신은 일반 터미널로 돌아 가지 않을 것입니다 :)
iterm2에서 사용자 정의 키보드 환경 설정을 설정하는 방법
나는 종종 화살표 키로 잘못된 버튼 ( cmd/ control/ alt)을 누르기 때문에 그 버튼들과 화살표 키 조합이 모두 앞뒤 단어로 점프하도록 설정되어 있지만 가장 적합한 것을하십시오.
Ctrl + Arrow Left
또는 Right
- Up
와 Down
작동합니다 / 함께 기본적으로 새 프로파일 세트없이 시도
실제로 훨씬 더 나은 접근 방식이 있습니다. 홀드 option( alt일부 키보드에)하고 Enter 키를 눌러 화살표 키를 왼쪽이나 단어로 이동 맞아. 그렇게 간단합니다.
option←
option→
또한 ctrle줄의 끝으로 ctrla당신을 데려다 줄 것입니다.
[D
하고 [C
. 이 문제를 해결하려면 bind '"[D": backward-word'
및 bind '"[C": forward-word'
에 추가하십시오 .bashrc
.
.bashrc
했지만 작동하지 않았다. (나는 RubyMine을 사용한다)
.bashrc
터미널을 부팅 할 때 RubyMine이 읽는지 확실하지 않습니다 . 시도 echo "here"
하고 새 터미널을 열 때 메시지가 표시되는지 확인합니다. 또한 source ~/.bashrc
새 파일을 읽으려면 터미널을 닫았다가 다시 열거 나 실행 해야합니다.
I이 Alt+ ←/ →일 : 개방 환경 설정»설정»키보드 , 대한 항목 설정 옵션 커서 왼쪽 에 \ 033b : 쉘 문자열을 전송 하고, 세트 옵션 커서를 오른쪽 에 쉘 문자열을 보내 : \ 033f를 . 다른 Control 키 조합에도 사용할 수 있습니다.
Enable option as meta key
. 그건 그렇고, 그것은 매우 시원합니다. 열쇠는 Esc + B 또는 Esc + F와 비교하여 훨씬 편리하게 도달 할 수 있습니다
실제로 사용하는 쉘에 따라 다르지만 대부분의 쉘에는 비슷한 바인딩이 있습니다. 참조하는 바인딩 (예 : Ctrl+ A및 Ctrl+ E)은 다른 많은 프로그램에서 찾을 수있는 바인딩이며 연령대에 사용되며 BTW는 대부분의 UI 앱에서도 작동합니다.
Bash에 대한 기본 바인딩은 다음과 같습니다.
또한 사용자 정의 할 수 있습니다. 파일 이름을 원하는대로 만들어야합니다. 이름을 mine .bash_key_bindings로 지정하고 내 홈 디렉토리에 넣습니다. 여기에서 일반적인 bash 옵션을 설정하고 키 바인딩을 설정할 수도 있습니다. 파일이 적용되도록하려면 시작시 bash가 읽은 ".bashrc" 라는 파일을 수정하고 (존재하지 않는 경우 작성해야 함) 다음을 호출해야합니다.
bind -f ~/.bash_key_bindings
~는 위에서 언급 한 것처럼 bash의 홈 디렉토리를 의미하며 원하는대로 파일 이름을 지정하고 바인딩 할 올바른 경로 + 이름을 제공하는 한 원하는 곳에 배치 할 수도 있습니다.
내 .bash_key_bindings 파일의 일부를 보여 드리겠습니다.
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off
이것들은 몇 가지 옵션을 설정합니다 (예 : 종소리 비활성화; 이것은 bash 웹 페이지에서 모두 볼 수 있습니다).
"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert
이것들은 문자만으로 아무 것도하지 않고 문자가 "타이핑"되도록합니다 (쉘에 자신을 삽입합니다).
"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line
이것은 매우 흥미 롭습니다. Ctrl+ D만 누르면 (삭제를 위해 d를 선택) 아무 일도 일어나지 않습니다. 그러나 소문자 w를 입력하면 커서 왼쪽의 단어가 삭제됩니다. 그러나 대문자를 입력하면 커서 오른쪽의 단어가 죽습니다. 커서에서 시작하는 전체 줄에 대해 l과 L도 같습니다. "a"를 입력하면 전체 줄이 실제로 삭제됩니다 (커서 앞뒤에있는 모든 것).
나는에 한 단어 앞으로 점프 여겼다 Ctrl+ F에 후진 한 단어 Ctrl+B
"\C-f": forward-word
"\C-b": backward-word
보시다시피, 바로 가기를 만들면 즉시 동작으로 이어 지거나 문자 시퀀스를 시작한 다음 하나 이상의 문자를 입력하여 동작을 수행하도록 할 수 있습니다. 위의 예에 더 나와 있습니다.
따라서 기본 바인딩에 만족하지 않으면 원하는대로 자유롭게 바인딩을 사용자 정의하십시오. 여기의 bash는 설명서 링크 자세한 내용은.
command
키 코드는? 귀하의 예에서 control
is \C
입니다 command
.
Meta
는 bash ( \M
) 에 매핑되며 cmd + left는입니다 \M-\e[D
. 그러나 cmd + ...를 아무것도 매핑 할 수 없으며 모든 명령 바로 가기는 터미널 응용 프로그램 자체 (쉘로 전달되지 않음)에 의해 처리 (따라서 삼킨) 및 cmd + 왼쪽은 "이전 창"에 매핑됩니다 터미널 창이 열립니다. 터미널 앱으로는 불가능합니다.
자연스러운 텍스트 편집 사전 설정을 사용하십시오 !
본질적으로 다른 키 시퀀스 중에서 Option + LeftArrow를 ^[b
시퀀스에 바인딩 하고 Option + RightArrow를^[f
이것은 psql 터미널뿐만 아니라 fish 및 bash에서도 작동합니다.
Vim 사용자라면 bash의 vim 모드를 사용해 볼 수 있습니다. 이것을 실행하거나~/.bashrc
파일에 .
set -o vi
기본적으로 삽입 모드에 있습니다. 일반 모드 Vim에서와 마찬가지로 이스케이프 처리하고 이동할 수 있으므로 단어 별 이동은 w
또는 b
이며 일반적인 이동 키도 작동 합니다.
Use option as meta key
환경 설정의 키보드 탭 을 확인하면 각각 앞뒤 단어 및 ⌥F
( Alt+ F) 및 ⌥B
[ Alt+ B)에 대한 기본 emacs 스타일 명령이 표시 됩니다.
Bash에서 Z-Shell을 읽는 것이 좋습니다 . bash / zsh 실력을 높이고 싶다면!
아래 iterm2
의 환경 설정> 프로필> 키 , 당신은을 클릭 +
아래 키 매핑 하고 새로운 바로 가기를 기록합니다. 들어 액션 , 선택 Send Escape Sequence
및 입력 b
또는 f
뒤로 및 앞으로 각각.
( Ctrl+ ←)에 대해 하나를 기록하려고 할 때 키보드 바로 가기 필드에서 화살표가 나타나지 않았다는 것을 알았 습니다. iterm2의 기본 단축키보다 우선하기 때문에 기본 Mac의 시스템 환경 설정> 키보드> 단축키> 미션 컨트롤 단축키 를 비활성화 해야 작동합니다. 표준 터미널 앱에서도 마찬가지입니다.
iTerm2 Build 3.3.4 사용자를위한 새로운 답변 :
1 단계 : (macOS X) 시스템 환경 설정> 키보드> 단축키 탭> 미션 컨트롤 선택 (왼쪽 패널)> "공간 왼쪽으로 이동"및 "공간 오른쪽으로 이동"이라고 표시된 바로 가기를 선택 취소하십시오.
2 단계 : (iTerm2 빌드 3.3.4) 환경 설정> 프로파일> 선택 * 기본값 (왼쪽 패널)> 키 탭> "⌥->"및 "⌥ <-"항목 모두 삭제> "왼쪽 옵션 (⌥) 키 설정 : "및"오른쪽 옵션 (⌥) 키 : "를 Esc +로
쉘 프로파일로 혼란스럽지 않고 열등한 masOS (기본) 터미널로 혼란스럽지 않고 어색한 Esc + F / B가 없으며 헹굼 및 반복적 의미가 없습니다.
거래 완료 !!!
동료 프로그래머 여러분,이 팁을 즐기십시오!
이전에 대답, 당신은 추가 할 수 있습니다 set -o vi
귀하의 ~/.bashrc
사용 vi
/ vim
키 바인딩, 그렇지 않으면 당신의 부분에 다음을 추가 할 수 있습니다 .bashrc
로 이동하는 Ctrl
및 화살표 키를 :
# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
이러한 코드 줄의 효과를 시작하려면 source ~/.bashrc
새 터미널 세션을 시작하거나 시작하십시오.