호스팅 공급자 서버 중 하나에 로그인 한 후 GNU 화면의 쉘 프롬프트에서 ALT + left 및 ALT + right가 단어간에 이동하는 것을 알았습니다.
iTerm2에서 실행중인 로컬 OS X zsh에 어떤 종류의 키 바인딩을 구성하고이 동작을 수행 할 위치는 무엇입니까?
답변
https://coderwall.com/p/h6yfda 에서 해결책을 찾았습니다 . 링크가 다운되는 경우 가장 중요한 부분을 복사합니다.
- 환경 설정, 프로필, 키로 이동하십시오.
- 왼쪽 ⌥ 키를 이스케이프 문자로 설정하십시오.
- 다음 설정을 사용하여 ⌥ ←의 현재 바로 가기를 찾거나 새 바로 가기를 만듭니다.
- 키보드 단축키 : ⌥ ←
- 액션 : 이스케이프 시퀀스 보내기
- Esc + : b
- 다음 설정으로 ⌥ → 키보드 단축키를 반복하십시오.
- 키보드 단축키 : ⌥ →
- 액션 : 이스케이프 시퀀스 보내기
- Esc + : f
답변
당신은 키워드를 찾고 있습니다 backward-word
와 forward-word
. 따라서 키 바인딩이 작동하지 않는 쉘에 bindkey -L | grep backward-word
있으면 구성되어 있는지 확인하십시오. zshzle (1) 에 이에 대한 자세한 정보가 있습니다 .
다음과 같이 입력하여 키 바인딩을 수동으로 설정할 수 있습니다.
바인드 키 ‘ Ctrl+ v Alt+ Right‘정방향 단어
바인드 키 ‘ Ctrl+ v Alt+ Left‘하위 단어
키 바인딩에도 문제가 있었으며 거의 항상 Option / Alt 키가 예상되는 Meta / Escape와 다른 것을 보냈습니다.
답변
iTerm에 대해 말할 수는 없지만 Fedora 19의 GNOME Terminal에서 Oh-my-zsh와 함께 ZSH 5.0.7을 실행하여이 문제를 해결하는 데 사용한 키 바인딩입니다.
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
여기서 \e
== 이스케이프 키 순서 ( 섹션 4.1.1에 설명되어 있음 )
경우에 따라 [
== O
(대문자 O; 섹션 4.2.1에 문서화 됨 ). 아래의 예를 들어 tmux
이 대체 그러나없이, 나에게 필요 tmux
가없는 대체가 이루어지지 할 필요가있다 [
==[
시퀀스의 키 코드 cat
는 원하는 시퀀스를 사용 하고 눌러서 얻을 수 있습니다 . 예를 들어, 프레스 결과는 <Alt+Right>
다음과 같이 해석되어야합니다.
$ cat
^[[1;3C
^[
== \e
== 이스케이프 키 순서
[
== [
없이 tmux
OR
[
== O
(대문자 o)tmux
1;3
== 나는 이것에 대해 확실하지 않지만 논리적으로 의미해야합니다. <Alt>
C
== 오른쪽 화살표 키
그런 다음이 시퀀스는 첫 번째 인수로 지속성 bindkey
을 위해 ~/.zshrc
파일에 제공되며 바인딩됩니다 . 즉, 인수 1의 키 입력 은 첫 번째의 위젯에 대해 특정 편집기 명령 (또는 zsh 용어로 위젯)을 실행합니다. 위 예제의 줄은입니다 forward-word
.
는 ~/.zshrc
이 두 명령은로 추가 한 후 다시 공급해야한다 :
$ source ~/.zshrc
이제 내 시스템에서 한 가지 성가신 점은이 특정 조합으로 인해 명령이 실행될 때마다 터미널 에뮬레이터에서 경고음을 냈다는 것입니다.
'Edit'->'Profile Preferences'->'Terminal Bell'
확인란.
답변
iTerm2의 명령 줄 탐색을보다 직관적으로 만드는 것과 관련하여 나에게 가장 효과적인 것은 (명령 줄에서 자라지 않았지만 텍스트 편집기 및 IDE에서 많은 시간을 보냈습니다) 에:
- 환경 설정-> 프로파일-> 키로 이동하십시오.
- 키 매핑 목록 아래에 사전 설정을 추가 / 제거 또는로드 할 수있는 상자가 있습니다 (콤보 상자).
Natural Text Editing
사전 설정 드롭 다운에서 옵션을 선택하십시오 .
모든 옵션을 개별적으로 수정하지 않고도 편집기의 키를보다 표준적인 배열로 기본 설정합니다.
답변
zkbd
키 바인딩을 구성 하는 데 사용 하는 것이 좋습니다 . 나는 그것을 사용하고 iTerm2에서 Alt+ Left/ Alt+ Right가 잘 작동합니다. zshcontrib(1)
zkbd에 대한 자세한 내용을 참조하십시오 .