bashで前/次の単語のショートカットを変更するにはどうすればよいですか?


20

Ctrl-LeftおよびCtrl-Rightをbash(現在はalt-bおよびalt-f)の前/次の単語のショートカットとして構成するにはどうすればよいですか?


ええと、この質問は鐘を鳴らしていませんか?
ジル 'SO-悪である停止

@Gilles-以前、似たような質問をしたと思いました、はい、ごめんなさい。元のユーザーを重複として閉じました(スーパーユーザーよりもここに属しているため)。
ripper234

回答:


26

正しい答えは、使用している端末によって異なります。

Gnomeターミナルまたはxtermの最新バージョンの場合、これを〜/ .inputrcに入れます。

"\e[1;5C": forward-word
"\e[1;5D": backward-word

PuTTYの場合、これを〜/ .inputrcに入れます。

"\eOC": forward-word
"\eOD": backward-word

rxvtの場合、これを〜/ .inputrcに入れます。

"\eOc": forward-word
"\eOd": backward-word

これらのすべてを〜/ .inputrcにまとめることで、おそらく逃げることができます。

いずれの場合も、これを〜/ .bashrc(または〜/ .zshrc)に入れる必要があります。

export INPUTRC=~/.inputrc

それでもうまくいかない場合、または別の端末を使用している場合は、端末に移動してCtrl+ V Ctrl+ と入力します->。次に、"\e[1;5C"それ"\eOC"以上の代わりにそれを使用します。Ctrl+ について繰り返し<-ます。

あなたが使用してキーボードのエスケープシーケンスを記述する必要があることに注意INPUTRC構文を、例えば

  • \C 制御を意味する
  • \eエスケープを意味します(^[上記のCtrl + Vを使用して入力すると表示されます)

Ctrl + V、Ctrl->は「^ [[1; 5C」を出力し、gnome-terminalを使用しています。
ripper234

2
だから試してみてください"\e[1;5C": forward-word。そして、Ctrl+のVためにCtrl+を行いLeft Arrowます。
ミケル

おかげで、魅力のように機能します。ゆっくりですが確実に、Linuxでの泳ぎ方を学びます。そもそもなぜ彼らはそれをそれほど直感的でないものにしなければならなかったのですか?(ctrl-left、ctrl-rightの方が適切な選択肢であることを認める必要があります)
ripper234

1
Linuxが最初は直感的でないと思われる場合は、FreeBSDまたはSolarisのデフォルトインストールを試してください。開始シェルとしてbashを持つことは夢です。また、キーボードには常に矢印キーが付いていなかったため、Emacs、およびbashはそのショートカットもサポートしています。しばらくCtrl-bとCtrl-fを使用してみてください。
ペンギン359

2
UNIX / Linuxシステムの利点は、設定を簡単に移動できることです。お気に入りのプログラムを好きなように設定したら、それをコピーしてください。実際には、.inputrc、.bashrc、.vimrcなどのホームディレクトリファイルにバージョン管理を使用しています。Mercurialを使用して、すべてのホームディレクトリ設定を複製し、コンピューター間で最新の状態に保ちます。また、ある時点でリポジトリを公開し、他の人がすべてのハードワークを共有できるようにする予定です。
ペンギン359

3

ZSHを使用している場合は、ArchLinuxのZSHガイドから関連する部分を引用するため、別の方法を取る必要があります。

Zshは、bash#のような#readlineを使用せず、代わりに独自のより強力なzleを使用します。

/ etc / inputrcまたは〜/ .inputrcを読み取りません。

そのガイドを読んだ後、私はこれを行う方法の一般的なアイデアを得るためにZSHのmodrenソースが必要だと思ったので、私は私が望んでいた動作を説明するこのoh-my-zshファイルを見つけました、私は関連する部分をコピーしました私の〜/ .zshrcに欲しかった:

bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top : 
# setopt interactive_comments

ctrl + rightarrowを試していましたが、Macで一言も
話せ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.