シェルのviコマンドモードで数字(例:8)をクリックするたびに、「(arg:8)」が行の先頭に表示されます。このようなことが起こらないようにする方法を知っている人はいますか?私が入力している行を動かすと注意が気になります。
変える:
(arg: 8) somecmd --itslong --reallylong
これ:
somecmd --itslong --reallylong
答え1
コマンドモード(実際のエディタまたはBashモード)のときにvi
数字を押すと、引数(したがって「arg」)が入力され、通常、次のコマンドが繰り返される回数を設定するために使用されます。これを防ぐには、i数字を押す前に入力モード(たとえば、を押すなど)にする必要があります。
デモ:
viモードでない場合は、次のコマンドを使用して入力できます。
set -o vi
(emacsモードに入り、viモードを終了できますset -o emacs
。)
次に、vi 入力モードで次のコマンドを入力します。
echo abcdefghijk4
上記のように、最後に数字「4」が表示されます。
今押してくださいEsc。カーソルが1文字左に移動し、コマンドモードになります。
数字を押して「3」と言います。これで、次のようになります。
(arg: 3) echo abcdefghijk4
今大文字Xを押してください。あなたは見なければなりません:
echo abcdefgh4
Readline(Bashのコマンドライン入力エディタ)に3文字を「削除」するよう指示したため、3文字(「ijk」)が削除されました。
今、i任意の番号を押してください。数字はコマンドラインのカーソル位置に挿入されます。
答え2
問題のコードは次の場所にあります。lib/readline/misc.c
109行と241行を削除すると、メッセージが削除されます。