使ってきた
sudo find / -iname '*foo*' 2>/dev/null | vim
含まれているディレクトリ/ファイルのリストをインポートし、foo
このリストを確認して編集し、vimにいくつかの新しいコマンドを作成します。
vimにコマンドを作成したら、作成した内容をコピーしてvimを終了し、新しいコマンドラインに貼り付けます。
Vimは私のCx Ceコマンドラインエディタです。
:wq
このvimセッション内でコマンドラインをバッファで自動的に入力することはできますか?
vimを起動する代わりにCx Ceを使用するからですvim
。
パイプ入力を使用してCx Ce vimセッションを開始するには?
答え1
vipe
(from)は次のように使用できますmoreutils
。
sudo find / -iname '*foo*' 2>/dev/null | vipe | "$SHELL"
ここでvipe
パイプ入力を編集し、必要なシェルに提供できます。
または:
sudo find / -iname '*foo*' 2>/dev/null | vipe | xclip -sel c
編集したパイプラインをCLIPBOARD X11選択に保存します。
vipe
に保存されているエディタを実行する$VISUAL
か、設定されていない$EDITOR
場合、$VISUAL
またはvi
その両方を実行します。
その編集内容をシェル履歴に直接プッシュするには、zsh
次のようにします。
print -rs -- "$(sudo find / -iname '*foo*' 2>/dev/null | vipe)"
(そしてキーを使って呼び出されますUp)。
シェルの編集バッファに直接置くにはzsh
まだ。print -rs
print -rz
またはない場合vipe
:
(){vim $1 && print -rz -- "$(<$1)"} =(sudo find / -iname '*foo*' 2> /dev/null)
たとえば、次のような関数を作成できます。
vif sudovif() {
() {
vim $1 &&
print -rz -- "$(<$1)"
} =(${0%vif} find "$@")
}
vif / -iname '*foo*'