주로 VIM을 사용한 퍼티에서는 다음을 수행 할 수 있습니다.
- Page Up / Down : 기본 Page Up / Down 키를 사용합니다. Mac에서 대안은 터미널에서 작동하지 않는 Fn + Up / Down입니다 (vim 파일 내부에서는 스크롤하지 않지만 터미널 버퍼는 스크롤 함)
- 마찬가지로 Fn + 오른쪽 / 왼쪽 키는 줄의 시작 / 끝으로 이동하지 않습니다.
Mac OS X에서이 기능을 어떻게 에뮬레이트합니까?
주로 VIM을 사용한 퍼티에서는 다음을 수행 할 수 있습니다.
Mac OS X에서이 기능을 어떻게 에뮬레이트합니까?
답변:
이것은 특별히 Mac 질문이 아닙니다. 이것은 실제로 vi 질문입니다.
탐색 모드에서 ctrl-f는 페이지를 아래로 스크롤하고 ctrl-b는 페이지를 위로 스크롤합니다 ( "F"또는 "B"ack 생각). Ctrl-d는 페이지의 절반을 아래로 스크롤하고 ctrl-u는 페이지의 절반을 스크롤합니다.
^는 줄의 시작 부분으로 가고 $는 끝 부분으로 이동합니다. 나는 알고 있지만, 그에 대한 역사적인 이유가 있습니다.
여기 에 vi 컨트롤에 대한 좋은 치트 시트가 있습니다. vi는 다소 간결하지만, 일단 내부화하면 세계에서 가장 빠르고 매끄러운 텍스트 편집기입니다.
터미널의 기본 설정은지도 Shift- Page Up및 Shift- Page Down스크롤 (정력과 이맥스 같은 프로그램에게 문자 시퀀스 ESC [ 5 ~
와 ESC [ 6 ~
).
이러한 키가 Shift수정 자 없이 문자 시퀀스를 터미널에 보내 려면 키보드 맵을 사용자 정의 할 수 있습니다.
터미널> 기본 설정> 설정> [프로필]> 키보드
이 작업을 수행하는 경우 Shift, 이동 및 이동되지 않은 키에 대한 맵핑을 교체하여 대체 작동을 계속 사용할 수 있도록 이러한 키 수정 자의 의미를 바꾸는 것이 좋습니다 . 또한 터미널 키보드 맵과 상관없이 사용할 수 있도록 수정자를 사용하는 스크롤 명령이 포함 된 보기 메뉴를 참조하십시오 Command.
마찬가지로 Shift- Home및 Shift- End는 현재 줄의 시작 / 끝으로 이동하도록 매핑됩니다 ( ESC [ H
및 ESC [ F
). 이 시퀀스는 Bash에 의해 이해되지만 Vim을 이해하기 위해 Vim을 사용자 지정하거나 Vim에 대한 매핑을 편집해야 할 수도 있습니다. 빔, 이맥스, 그리고 몇몇 다른 프로그램은 홈 / 엔드 키를 보내 "응용 프로그램 커서 모드"로 터미널을 넣어 이스케이프 시퀀스를 전송 ESC O H
하고 ESC O F
, 그러나 (10.9 현재) 터미널이 동작을 구현하지 않습니다. 따라서 키보드 맵을 변경하여 다른 코드를 대신 보낼 수도 있습니다 (Bash도 이해합니다). (다른 OS들에 Home그리고 End단말이 그들을 제공하므로, 라인의 시작 / 종료에 사용되는 Shift대칭 개질제).
Control- Left Arrow그리고는 Control- Right Arrow또한이 사람에서 왔어요 다른가에 매핑 불구하고, "시작 이동 / 라인의 끝"기본적으로 시퀀스에 매핑됩니다 Shift- Home및 Shift- End. 대신 Emacs 및 Bash 호환 시퀀스 ESC [ 5 D
및에 매핑됩니다 ESC [ 5 C
. 이것들이 Vim에 의해 사용되고 있지 않다고 가정하면, 가장 간단한 방법은 ~ / .vimrc를 사용하여 Vim이 이것을 받아들이도록 사용자 정의하는 것입니다.
참고 맥 OS의 더 최근의 버전, 터미널은 더 이상 명시 적 매핑이 없다고 Home과 End기본적으로 환경 설정에서입니다. 대신, 대체 화면이 활성화 될 때 (예 : emacs, vim, screen 또는 tmux와 같은 전체 화면 응용 프로그램을 사용하는 경우) 키가 자동으로 시작 / 끝 라인에 매핑되는 동적 동작이 있습니다. 기본 화면에서 쉘과 같은 행 지향 프로그램을 사용하는 경우 기본적으로 터미널보기를 계속 스크롤합니다. Shift수정은 동작을 반전시킵니다.
\033[5~
PageDown / Up 에 (및 ... 6.) 을 추가해야했습니다 .
Mac에서 지원하지 않는 삽입 모드 (Windows에서 사용하고 Linux에서 사용)에서 줄의 시작과 끝으로 안내하는 Home / End에 익숙했습니다. 원격 시스템에서 vim을 사용할 때 쉽게 할 수 없기 때문에 이것은 특히 성가신 일입니다. 고통스러운 시행 착오 끝에 .vimrc
같은 일을하는 줄을 생각해 내고 결국 비슷한 해결책을 찾은 사람을 찾았습니다.
https://coderwall.com/p/fd_bea
즐겨.
:inoremap <C-e> <C-o>$
:inoremap <C-a> <C-o>0