목표는 Ubuntu에 설치된 Vim에서 CapsLock을 Esc로 다시 매핑하는 것입니다.(콘솔만 해당, 데스크탑 환경 없음).
이 Ubuntu 시스템은 가상 개인 서버에 설치됩니다. 저는 Putty를 사용하여 Windows 10이 설치된 가정용 노트북에서 이 서버에 로그인하고 있습니다.
모두가 이 CapsLock 키를 Vim의 Esc에 매핑하는 것에 대해 이야기하지만 $HOME/.vimrc 파일에 2를 써야 하는 실제 줄을 찾을 수 없습니다.
내가 직접 시도한 내용은 다음과 같습니다. 하지만 첫 번째 줄에 줄 번호를 추가하는 것 외에는 아무 것도 작동하지 않습니다.
set number
inoremap <Caps> <Esc>
inoremap <Caps_Lock> <Esc>
inoremap <CapsLock> <Esc>
목표는 전체 Ubuntu 서버가 아닌 Vim에서만 CapsLock을 Esc로 다시 매핑하는 것입니다.
확인해 보니 CapsLock이 Vim에서 잘 작동하고 잠겨 있으면 대문자로 표시됩니다.
나는 다음과 같은 많은 장소를 검색했습니다. https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-지도 시간(1 부) 이 가이드의 3개 부분 모두여기게다가.
"ii", "jj", "jk", "jw" 다양한 Ctrl 및 Shift 조합 매핑 등 모든 것이 거기에 기록된 것과 같습니다. CapsLock을 제외한 모든 항목은 Esc로 다시 매핑됩니다.
???왜? ? ?
Vim에서 CapsLock을 Esc로 다시 매핑하는 것이 왜 그렇게 어려운가요? 이것은 거의 내 문제이지만 불행히도 Windows OS에서는 그렇습니다.
내 질문 아래의 설명을 통해 Vim에서만 CapsLock을 Esc에 매핑하는 것이 불가능하다는 것을 이해합니다.
나는 또한 이 스레드를 읽었습니다.Vim에서 Escape 대신 CapsLock을 사용하는 방법은 무엇입니까?
허용되는 답변은 다음 과 같습니다. "콘솔에서 다시 매핑하려면 systemd
배포판에서 사용하는 경우 사용자 정의 키보드 레이아웃을 사용할 수 있습니다./etc/vconsole.conf
아치스 위키".
우분투가 사용하는 것 같아요 systemd
.따라서 VPS에 설치된 Ubuntu 전체에서 CapsLock을 Esc 키에 매핑하는 답변을 수락할 준비가 되었습니다.내 집 Windows 컴퓨터에 대한 키 매핑 제공은 변경되지 않습니다.
나는 이것을 실행했습니다 :
michal@localhost:~$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
다음에 무엇을 해야 합니까?
/etc/vconsole.conf
내 Ubuntu VPS에 이 파일이 없는 것 같습니다. 직접 만들어야 합니까, 아니면 기본적으로 있어야 합니까?
답변1
간단한 대안은 이것을 vimrc 파일에 추가하는 것입니다.
imap ii <Esc>
여기서는 Escape 대신 ii( 2 'i's )를 사용하여 일반 모드로 돌아갑니다.
영어에서는 두 개의 연속된 ii가 있는 단어를 거의 접하지 않을 것이므로 실수로 일반 모드에 빠지는 일이 없습니다.
원하는 경우 ii를 다른 키로 바꿀 수도 있지만 제가 알고 있고 시도해 본 한 특정 Some 키를 제공하려면 다른 키가 필요하기 때문에 Caps Lock, Shift, Ctrl 및 Alt와 같은 키에서는 작동하지 않습니다. 기능은 의미가 있습니다.