12

私は最近、tcsh から bash への非常に長い間延期されていた切り替えを行いました。私が見逃しているのは tcsh のESC+p機能だけです: コマンドの入力を開始してから + を押すとESC(p実際には同等の ctrl-[p の方が入力しやすいことがわかりました)、これまでのコマンドで始まる履歴の最新のコマンドにジャンプします。ここまで入力。

Ctrlおそらく最善の答えは、bash の+に慣れることrですが、今のところあまり好きではありません。コマンドを入力し始めると、それを以前に発行したことがあることに気がつくことがよくあります。tcsh の機能を使用すると、ESC+ p+Enterを実行して再発行できます。とても速いので、通常、2 つ以上前のコマンドには上向き矢印を使用しません。

私が特に素晴らしいと思った例: 長いコマンドはドットで始まることがよくあります。

./myprogram.pl -lots -of -args -and -switches

tcsh では、ls、less、tail などのようなコマンドを発行してから、ドット、エスケープ、p、エンターの 4 つのキーの長いコマンドを再発行します。

どうすればBashでそれを行うことができますか? または、具体的に言うと、bash で「ドットで始まる最後のコマンドを繰り返す」と言うキーストロークの最小数は何ですか? tcsh の 4 に匹敵するか、または打ち負かすことができますか?

4

4 に答える 4

11

私はあなたと同じ船に乗っていて、tcsh から bash に切り替える必要がありました。

次のように新しい ~/.inputrc ファイルを作成したところ、すべてうまくいきました!

$ 猫 ~/.inputrc
"\ep": 履歴検索後方
"\en": 履歴検索フォワード
于 2010-06-21T18:09:28.090 に答える
10

~/.inputrcこれをファイルに追加します。

"\e[5~": history-search-backward
"\e[6~": history-search-forward

これによりPageUp、tcsh のEsc+pのように動作PageDownし、リストを進めます。

代わりにバインドでき\epます。PageUp/を使用する場合PageDown、キーボード/端末が生成する文字シーケンスを確認する必要がある場合があります。Ctrl+Vを押すだけで、 と同じかどうかPageUpがわかります。^[[5~\e[5~

于 2010-06-21T17:36:25.330 に答える
3

個人的に私はctrl-rが好きです-それは歴史を通してのインタラクティブな検索です-それをチェックしてください、おそらくあなたはそれを好きになるでしょう。後続のctrl-rを押すと、次の一致にジャンプします。

于 2010-06-21T21:29:06.497 に答える
2

さて、あなたはすることができます

!.

これは 3 文字 (Enter を含む) です。もちろん、一般的なケースでは、ドットを選択した一意の識別プレフィックスに置き換えることができます。

于 2010-06-21T17:18:19.540 に答える