abbr -a gc git commit
gc
を押して展開し、魚の殻を押して元に戻したいとspace
思います。ctrl+space
どうすればいいですか?
答え1
Fish でキーをバインドするには、次を使用します。
bind sequence thing-to-bind-to
または
bind -k keyname thing-to-bind-to
順序を見つけるには、fish_key_reader
目的のキー[0]を使用して押します。
したがって、これを行うと、次のような結果が得られます。
キーを押してください:バインディング-k nul '何かをしてください'
したがって、キー名 "nul" を "undo"[1] にバインドします。
bind -k nul undo
注:デフォルトでは、ctrl-spaceは省略形を拡張せずにスペースを挿入するように既にバインドされているため、これは悪い考えです。ここで、略語を展開して元に戻し、スペースバーをもう一度押して略語を再び拡張する必要があります。
拡張せずにスペースを挿入するには、別のキーをバインドする必要があります。たとえば、ctrl-gに次のように指示します。
bind \cg 'commandline -i " "'
代わりに、ctrl-zを使用してデフォルトでバインドされた操作を元に戻し、ctrl-spaceを押して略語を拡張せずにスペースを挿入できます。
[0]:fish_key_readerが何も印刷しない場合、端末はキーの組み合わせに対して何も送信しないことを意味します。たとえば、端末がそれ自身のバインディングにそれを使用している場合、これが発生する可能性があります。
さらに、基本的に、鍵の組み合わせを送信するために使用されるプロトコル端末は、やや劣り、多くの組み合わせを表現することができない。たとえば、ctrl-i と tab または ctrl-shift-X と ctrl-X を区別することはできません。他のオプションもありますが、広く知られているものはありません。
[1]:vi-modeを使用している場合、bind
vi-normalモードに設定されるモードはありません。たとえば、挿入モードで何かを設定するには、ビジュアルモードにを-M insert
追加します。-M visual