1. ホーム
  2. vim

[解決済み] Ctrl+AとCtrl+Shift+Aを異なる方法でマッピングするには?

2022-12-23 11:42:25

質問

端末では Ctrl + A Ctrl + シフト + A というように、どちらも同じキーコードを出力するので、Vimでできないのはわかります。しかし、X アプリケーションである gVim は Ctrl + A Ctrl + シフト + A . この2つを別の方法でマッピングする方法はないでしょうか?

とりあえず、以下のようなことをやってみたいと思っています。クリップボードからの貼り付けを Gnome 端末のように動作させ、同時に Ctrl + V をビジュアルモードにする。

:nmap <C-S-V> "+gP

どのように解決するのですか?

Gvimがそれをしないのは、vimが(通常の状況では)それをすることができないからです。 申し訳ありませんが、そういうものなのです。


しかしながら...

いくつかのターミナル (xterm や iterm2 など) では、任意のキーの組み合わせに対して任意のエスケープシーケンスを送信するよう設定できます。

例えば、以下を .Xresources xterm が送信するために <Esc>[65;5u のために Ctrl シフト A . これをVimでマッピングすると <C-S-a> . (65 は shift-a の 10 進数の Unicode 値で、5 は ctrl 修飾のビットです。 この場合の u は "unicode" を表します)。

! .Xresources
XTerm*vt100.translations: #override Ctrl ~Meta Shift <Key>a: string(0x1b) string("[65;5u")

iTerm と [u]rxvt もこのように設定することができます (例は提供されていません)。

より詳細な情報は http://www.leonerd.org.uk/hacks/fixterms/