目標は、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
アーチスウィキ」。
Ubuntuが使用していると思います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)を使用して通常モードに戻ります。
英語では、2つの連続したiiを持つ単語にほとんど触れないので、誤って通常モードに入ることはありません。
必要に応じてiiを別のキーに置き換えることもできますが、私が知っていて試してみた特定のSomeキーを提供するには別のキーが必要なため、Caps Lock、Shift、Ctrl、Altなどのキーでは機能しません。機能は意味があります。