3

さまざまなGNUReadlineベースのCLIで作業しており、入力時に角かっこと引用符を自動的に閉じる方法があれば、劇的にスピードアップします。

したがって、Bash(または他のCLI)でa'またはを入力すると、実際には終了引用符または角かっこが追加されるか、書き込みのためにカーソルが間に置かれます。(''()

私はかなり長い間、関連するもの(~/.inputrc設定など)を見つけようとしていましたが、何も見つかりませんでした。それはまったく達成可能かどうか疑問に思います。コメントをいただければ幸いです。

4

2 に答える 2

3

少し注意が必要ですが、実行可能です。bashコマンドとして:

bind '"(" "\C-v()\e[D"'
bind '"\"" "\C-v\"\C-v\"\e[D"'

の設定として.inputrc(したがって、を使用するすべてのプログラムreadlineが動作を取得します):

"(": "\C-v()\e[D"
"\"": "\C-v\"\C-v\"\e[D"

自動クローズ動作をトリガーせずに、各キーの前にControl-vを付けて、「プレーン」引用符と左括弧を入力できます。

上記はEmacsのキーバインディングを前提としています。viバインディングには、

bind '"(": "\C-v()\ei"'
bind '"\"" "\C-v\"\C-v\"\ei"'

また

"(": "\C-v()\ei"
 "\"": "\C-v\"\C-v\"\ei"

[D基本的に、をi;に置き換えるだけです。エスケープシーケンスを送信してカーソルを左に移動する代わりに\e、括弧/引用符を挿入した後、送信してコマンドモードに戻り、挿入モードに戻ります。これにより、入力した文字の内側にカーソルが配置されます。

于 2012-07-26T02:54:47.400 に答える
0

やりたいことを正確に行うことは不可能ですが、回避策があります。これをinputrcに入れます:

"\C-x\"": "\"\"C-b"

走る:

info readline "comm" "readline init" "sample"

サンプル全体。

于 2012-07-25T16:10:29.660 に答える