2016-03-24 8 views
0

ユーザーが何かを入力したかのように、テキストを現在のbashユーザー入力プロンプト(情報表示プロンプトではなく、$または#の後に入力)に追加できますか?例えばBashユーザープロンプトデフォルト入力テキスト

、(愚かな例)

は私が押した後、次のプロンプトに「sudoを」追加するコマンドをしたいと言う元に戻します

[email protected] ~$ runAsSudo # ENTER PRESSED 
[email protected] ~$ sudo █ # █ is the cursor 

このための私の実際のアプリケーションを持っているのコマンドを入力します。何か、例えばコピーではなく、それを実行するかy/nを求めるのではなく、ユーザーが何でもできる入力プロンプトに単に追加するだけです。

[email protected] ~$ cp myFile /some/long/path/  # ENTER PRESSED 
[email protected] ~$ undo       # ENTER PRESSED 
[email protected] ~$ cp /some/long/path/ myfile █ # █ is the cursor 
+0

私はあなたがこれを行うことができるとは思わない。あなたはそれを実行するために '!!'を使うことができる逆のコマンドで履歴エントリをプッシュすることができますが、それは私が考えることができるのはプロンプトでもなく単に実行しているということだけです。 –

+1

質問:ユーザーがbackspaceを繰り返し押すと半入力コマンドが消えると思われますか? – mauro

+0

@mauro本当に重要な問題ではありません。 編集します。あなたの質問を読み返して、私の目標は半コマンドを通常のテキストにすることです。例えば、貼り付けられたか、ユーザによって入力されたかのように、はい、私はそれが通常のテキストとして振る舞うことを期待していました – francium

答えて

2

(参考のために、あなたはその組み込みのラインエディタ、それを持っている、zshをチェックアウトする場合がありますが)Readlineライブラリは、この機能を持っていません。ただし、この場合は、undoコマンドの代わりに履歴拡張を使用できます。たとえば、!!と入力すると、設定に応じてMeta- ^(通常はAlt- ^、しかし場合によってはEsc- ^)を押すと、実際にコマンドを実行することなく履歴拡張が展開され、ユーザーはコマンドを編集できます。

関連する問題