マウスを使わずにコマンド出力をどのように使用できますか?

マウスを使わずにコマンド出力をどのように使用できますか?

コマンドを実行し、find結果出力の1行を引数として使用しようとしていることを想像してください。

$ find ..
fileA
fileB
$ vi <CURSOR>   # now do what to achive:
$ vi fileB      

現在の解決策: ダブルクリック文書B(選択項目の自動展開)を選択し、マウスの中央ボタンを押します(Xに貼り付け)。動作しますが、マウスを使用する必要があります。

考えられる解決策:

  1. タブ補完 - ほとんどのシェルで動作しますが、ファイルにのみ適用されます。
  2. シェルに掛ける - はいscm_breeze;これは私が探しているものとほぼ同じですが、gitに制限されています。
  3. 使用screen- 非常に近いですが、まだ多くのキーストロークがあります。そしてそれはscreen
  4. bash変数(GMaster)に出力を保存する - findコマンドが1行を出力する場合にのみ機能します。例のように、2番目の行にどのようにアクセスできますか?
  5. エディタにコマンドを送信する(jasonwryan) - 動作しますが、コマンドを2回実行します。これは時間がかかったり、不可能かもしれません。
  6. emacs Dynamic Abbrev Expansionの使用(Arkadiusz Drabczyk、Michael Vehrs) - これは私が探しているものですが、emacsで始めたくありません。

私のための解決策: 「動的略語の拡張」。今私が探しているこの関数の名前がわかりました。他のソフトウェアから「dabbrev-expand」を取得する方法についての新しい質問を始めましょう。

https://unix.stackexchange.com/questions/281298/list-of-sofwares-inspired-by-emacs-dabbrev-expand

私に最適なソリューションのビジョン: プロンプトモードなどまたは移動が容易Vimは現在の端末の出力からテキストを抽出します。

答え1

を使用してemacs無効なシェルを起動し、コマンドを実行します。出力はシェルバッファで使用でき、通常のコマンドを使用して選択できます。または、

select file in $(find <whatever>); do vi $file; break; done

emacsこの方法は、編集者を既に知っている場合はより実用的です。Emacs任意の「劣ったプロセス」を実行できます。入力と出力が emacs バッファに接続された対話型コマンドです。したがって、M-x shell-mode誤ったシェルを起動した場合は、コマンドを入力し、findそのコマンドの出力をバッファーで使用することができます。

$ find .. -name "*.sh"
../self.sh
../scheme/random.sh
../scheme/sample.sh

次に、目的のファイルにカーソルを移動して入力して、M-x find-file-at-point別のバッファ内のファイルを編集します。

答え2

出力が必要なコマンドを再実行しても問題ない場合は、次のファイルを追加してください.zshrc

# Load completion menu feature.
zmodload zsh/complist

# `fc -e :` re-runs the last history entry.
# ${(f)…} splits the string on newlines.
copy-output() compadd ${(f)"$( fc -e : 2> /dev/null )"}

# Create a completion menu widget & bind it.
zle -C copy-output menu-select copy-output 
bindkey '^[!' copy-output

を押して前のAlt!コマンドを再実行し、新しいコマンドラインに挿入する内容を選択できるメニューを表示できます。

したがって、あなたの例は次のとおりです。

% find ..
fileA
fileB
% vi <ALT-!>
fileA  fileB

出力はコマンドラインの下に表示されるか、Tab矢印キーを使用して目的の出力を選択できます。複数を選択するにはAltA

答え3

あなたの要求を具体的に行うためにZshプラグインを作成しました。https://github.com/psprint/ztrace

関連情報