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

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

コマンドを実行し、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別のバッファ内のファイルを編集します。

おすすめ記事