VIで現在のシェルコマンドを編集する方法


31

Linuxマシンのブログで、ctrl-x、ctrl-eを押して、VIの現在のbashシェルコマンド(またはEDITORが設定されているもの)を編集できることを確認しました。

これは10.8では機能しないようです。デフォルトのエディターで現在のbashコマンドを編集する方法に関するアイデアはありますか?


これは 10.8で動作するはずです(少なくとも私にとってはうまくいきます)。FCEDITとEDITORの設定を解除しようとしましたか?
— nohillside

C-xC-eのドキュメントはこちらです - VISUAL変数には何が含まれていますか?
— グレンジャックマン

約10.8ではありません。私は10.8を使用していますが、問題なく動作します。これを有効にするために.bash_profileを変更しませんでした。
— ビンセント


1
Ctrl +(x、e)(ctrlを押しながらxを押し、eを押し、制御を解除する)を実行していることに気付きました。これがうまくいかなかった理由です。2つの明確なストロークCtrl-xを押すことに変更したとき、Ctrl、Ctrl-eを離すと、すべてが完全に機能し始めました!
— Dimitry K

回答:


32

あなたがしたいset -o vi(あなたのに追加します~/.bashrc)。次に、現在の行を編集するには、ヒットEscしてコマンドモードに入ります。

http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Modeを参照してください

フルスクリーンエディターで現在のコマンドを編集するには、VISUAL環境変数をvim(必要だと思いますvim)に設定し、現在のコメントのコマンドモードでを押しますv。


5
「v」を押すことは、私が行方不明だった秘密のソースでした。ありがとう。
— スコットウォルター

2
vemacs(非vi)モードでこのコマンドを取得することは可能ですか?
— アレックスカーン

10
Ctrl-Xを実行してからCtrl-Eを実行します。
— アルバパ

7

あなたedit-and-execute-commandはviモードに縛られないかもしれません。試してください:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

永続的にするには、その行を~/.inputrcファイルに追加します。

(この回答を介して ;リンクの@unforgettableidにクレジット)

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