インターネットで検索してみるとこんな質問をする方がいませんでした。右に移動してオートコンプリートがautosuggest-accept
同じキーバインディングであることは面倒です。私の最終的な推測は
bindkey -v '<C-Right>' autosuggest-accept
そして
bindkey '\xffe4' autosuggest-accept
しかし、彼らは仕事を持っていません。これを行う方法を確認するにはどうすればよいですか?
答え1
簡単に言えば:あなたはおそらくできないでしょう
もっと長い:あなたが言うことは0xffe4
次のとおりです<X11/keysymdef.h>
。
/* Modifiers */
#define XK_Shift_L 0xffe1 /* Left shift */
#define XK_Shift_R 0xffe2 /* Right shift */
#define XK_Control_L 0xffe3 /* Left control */
#define XK_Control_R 0xffe4 /* Right control */
#define XK_Caps_Lock 0xffe5 /* Caps lock */
#define XK_Shift_Lock 0xffe6 /* Shift lock */
しかしこれだけは注意してください修飾子。通常、このキーのみ調整Xの他のキーバインディングは単独では機能しません。 zsh、bash、または他のシェルの場合は、別々に実行するものが必要です。使用またはxmodmap
パッチを適用できます。xkb、キーに1つ以上の文字を送信させる方法を発明しましたが、これがなければシェルは何も見えません。
答え2
私の考えではこれはできないと思います。すべてのソフトウェア/プログラムを含む端末内で実行しますzsh
。
または、少なくともどのソフトウェアでも何かにRight Ctrl (alone)バインドまたはバインドする方法がマニュアルに記載されているLeft CtrlかRight Ctrl。このオプションがある(すべての端末で動作する)ソフトウェアを知っている場合は、お知らせください。私が構成したソフトウェアには、、、、、、、、、、およびが
含まれており、そのどれも望むことを言わない。したがって、一部のソフトウェアが端末でこれを行うことができる場合、これは少なくとも非常にまれです。私が見たものと似ているのは、押すことです。つまり、通常のキーボードに上/下のキーがない場合もあります。vim
zsh
lf
fzf
tmux
htop
less
most
visidata
C-Left, C-Right
man tmux
any Ctrlleft or right arrowLeft or Right CtrlC-Up, C-Down
Ctrl
できませんzsh
(zsh
マニュアルが正しいと仮定)。
検索後man zshall
(man zsh
不完全)ショートカットがあることを確認しましたCtrl + v。
quoted-insert (^V) (unbound) (unbound)
Insert the next character typed into the buffer literally. An interrupt character will not be inserted.
今、またはany Ctrl + vLeft Ctrl + a、any Ctrl + vRight Ctrl + a両方を表示します^A
。これはどちらも同じ文字を入力することを意味しvim
ますga。したがって、との間に違いはないかもしれません。ascii
0x01
zsh
Left CtrlRight Ctrl
を押すとany Ctrl + vRight Ctrl (alone)何も起こりません。
どちらも私に同じことを言いますvim
。zsh
端末を使用して意味を識別できます。Ctrl
Ctrl + vF1^[OP
zsh
<F1>
vim
F1
このようなシェルはzsh
内部的に実行することtmux
ができ、tmux
関数とsend-keys
。これは通常、望むことができないことを意味します。Left CtrlRight Ctrl
確かに、私はまたtmux
ソースコード(私が使用したgit clone tmux
もの)を検索し、キーrgrep -i "ctrl\|control" | grep -i "right\|ctrl.\?r\|r.\ctrl"
について話すたびに何が起こるのかを確認しようとしましたが、私が見つけたRight Ctrlものは次のとおりです。
tty-keys.c:134: { "\033Oc", KEYC_RIGHT|KEYC_CTRL },
tty-keys.c:405: { TTYC_KRIT5, KEYC_RIGHT|KEYC_CTRL },
tty-keys.c:406: { TTYC_KRIT6, KEYC_RIGHT|KEYC_SHIFT|KEYC_CTRL },
tty-keys.c:407: { TTYC_KRIT7, KEYC_RIGHT|KEYC_META|KEYC_IMPLIED_META|KEYC_CTRL },
CHANGES:2395: control the maximum length of left and right components of the
status bar.
CHANGES:2550: C- for ctrl keys (^ is still accepted as an alternative).
status.c:1168: case KEYC_RIGHT|KEYC_CTRL:
したがって、ほとんどの内容が議論され、残りCtrl + Rightは関係ありません。
一部の端末では、次のようになります。インシ(すべてのキーを設定できます)上に次config.h
のコードが表示されます。
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
Ctrl + Endを押すか、何かが完了すると、Shift + End左右の間に違いはありませんCtrl。ただ一つControlMask
、ただ一つしかありませんShiftMask
(したがってキーに関するものであれば、私の答えは同じでしょうShift)。
また、ソースコードrgrep
に対してコマンドを試しましたが、st
再びCtrl + Right。
他の端末エミュレータでもこれを行うことができます。一般的なケースではできないことを考えれば十分だと思います。実際にこの動作を達成してオンにする方法がありますが、zsh
非常に難しいです。エディタのソースコードzsh
、端末エミュレータのソースコード、およびxorg
。
Right Ctrl動作を変更するには、Right Ctrl各ソフトウェアのバインディングが必要です。キーボード構成の詳細については、およびを
参照してくださいman xmodmap
。man setxkbmap
man xkeyboard-config
通常、Ctrlキーは修飾子です。これは、他のキーを押したときにのみ特定の操作を実行する必要があることを意味します。
メモ:まれに、キーは修飾子またはキーとして機能します。たとえば、次のようになります。
- 一部のソフトウェア(付属
libreoffice
)では、キーを押すと下線付きの文字が表示されますAlt。 xev
はイベントテスト用のツールなので、任意のキーを押すことを含むすべてを認識します。- デュアルファンクションキーは次のとおりです。QMK特定のキーをすばやく入力すると、「通常キー」のように機能し、別のキーを押すと修飾キーのように機能します。
emacs
一つあるチューニングコード特徴。これは正式な修飾子(ShiftまたはControlなど)に関するものではありませんがAlt、他のキーと一緒に特定の遅延時間内に押すと、通常のキーが修飾子として機能する可能性があります。emacs
端末の外部で実行できますemacs
。したがって、次のことができます。- どこでもキーをRight Ctrl何か(私たちが呼ぶ
foo
)に使用するか、再マップします。setxkbmap
xmodmap
- 内部では、一部の部品で使用するために再
emacs
マップしますが、実行中の場所には使用できません。foo
right control
key-chord
zsh
- 私はこれをテストしておらず、可能であれば簡単ではないかもしれませんが、私が
emacs
知っている唯一の「ターミナルエミュレータ」です(実際にはテキストエディタと呼ばれていますが、多くの機能があります)、シェル実行を含む)は「修飾子キーであり一般キーである」近い機能を持っています。
- どこでもキーをRight Ctrl何か(私たちが呼ぶ