私はCTRL、左矢印キーと右矢印キーを使用するときに、キーを使用してより速く移動することに慣れています(一度に1文字ではなく、単語の終わりに移動します)。
どういうわけかbashでそれを行うことはできますか?
私はおそらくそれをコーディングすることができましたが、もっと簡単な/すでに行われた何かがあるかどうか疑問に思いました。
回答:
デフォルトのreadlineキーバインディングでは、ALT+Bは1ワード戻り、ALT+Fは1ワード進みます。
デフォルトのUbuntuセットアップはCTRL、あなたが慣れているように+矢印を追加で提供します。これらは/etc/inputrc
次のように指定されています。
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
なぜ3つ必要なのかわかりません...
~/.inputrc
代わりに編集して行う方がよいでしょう
$include /etc/inputrc
するとシステムinputrcファイルもロードされます。
Thomasが説明したように、バインディングをに追加できます/etc/inputrc
。
ログインするたびに読み込まれるようにする別の方法は、次のように入力することです~/.bashrc
。
#use ctl keys to move forward and back in words
bind '"\eOC":forward-word'
bind '"\eOD":backward-word'
cat > /dev/null
キーボードが送信している文字を確認するために使用できることを学びました。たとえば、CTRL +右矢印は次のように表示されます。
^[OC
ここ^[
で、は同じです。コマンドの\e
コードのbind
出所です。
次のようなバインディングを検索することもできます。
bind -p | grep forward-word
このすべてはかなりすごいです、そして私は私がバッシュのもう少しの力を見つけてうれしいです。
inputrc
ソリューションは、Pythonインタープリター、他のほとんどのシェルなど、readlineを使用する他のプログラムにも適用されます。~/.inputrc
rootがない場合、またはすべてのユーザーにコマンドを適用したくない場合は、コマンドを挿入することもできます。
I learned that you can use cat > /dev/null to look at the characters that your keyboard is sending
。の場合は+1 。#TIL
read
入力してEnterキーを押すだけで、と同じ効果を得ることができcat > /dev/null
ます。私は怠け者なので、タイピングの少ないソリューションが好きです。:)
ホームディレクトリに.inputrcがあると、ctrl + leftがUbuntuで機能しなくなります(たとえば)。
すべてを機能させるには、〜/ .inputrcに以下を追加します。
# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc
f.kowalのクレジット
^[OC
は、あなたと同じものを私に与えます。ではxterm
I取得^[[1;5
トーマスのと同じです。