최근에 일반 모드에서 입력할 때Ctrl-i(명령어는도약) "혼란스럽다"상표열쇠. 특히 다음과 같은 매핑이 있습니다.
nnoremap <Tab> :tabnext<Enter>
답변1
터미널 I/O 응용 프로그램은 터미널에서 보낸 조합 문자만 볼 수 있습니다., 그리고특정 키와 코드를 구별할 수 없습니다, GUI 애플리케이션은 가능합니다. GUI는 키 누르기 및 놓기 메시지를 기반으로 작동하는 경향이 있기 때문입니다.
대부분의 터미널과 터미널 에뮬레이터는 ⇥ Tab또는 + 키를 누르면 (가상) 라인을 통해 ␉(U+0009) 문자를 호스트 시스템으로 보냅니다. 이것은 아니다 . 이것이 터미널이 작동하는 방식이며 이를 시뮬레이션하는 에뮬레이터가 작동하는 방식입니다.⎈ ControlIvim
⎋ Esc또한 + 또는 +를 누르면 ⎈ Control이러한 터미널과 터미널 에뮬레이터가 (가상) 와이어를 통해 호스트 시스템에 ␛(U+001B) 문자를 보내는 사실 을 종종 잊어버립니다 .[
답변2
불행하게도 오늘날에는 키보드 입력이 내부적으로 처리되는 방식으로 인해 이것이 불가능한 경우가 많습니다. Ctrl+ 알파벳이 아닌 조합 과 같은 특정 키 조합은 매핑될 수 없으며 Ctrl+ 문자는 Ctrl+ + 문자와 구별될 수 없습니다. Shift(단말기가 다른 메시지를 보내지 않는 한용어 모자코드를 사용하지만 대부분은 그렇지 않습니다. ) 삽입 또는 명령줄 모드에서 키 조합을 입력해 보세요. /insertion이 발생하지 않으면 키 조합을 사용할 수 없습니다. 이는 <Tab>
/ <C-I>
, <CR>
/ <C-M>
/ <Esc>
/ 등에 대해서도 적용됩니다. <C-[>
(유일한 예외는 <BS>
/ 입니다 <C-H>
.) 이것은 알려진 문제점이자 vim_dev 및 #vim IRC 채널에서 다양한 논의의 주제입니다.
어떤 사람들(처음에는 Paul LeoNerd Evans)이 이 문제를 해결하기를 원했고(이 기능을 지원하는 터미널의 Vim 콘솔의 경우에도) 다양한 제안을 했습니다.https://groups.google.com/forum/#!topic/vim_dev/Ym6D-kWIsyo
그러나 많은 사람들이 Vim의 향후 버전에서 이 기능을 제공하겠다는 의사를 표명했지만 현재로서는 패치나 자원 봉사자가 등장하지 않았습니다.