bashでVimの入力ファイル名でクリップボードを取得するには?

bashでVimの入力ファイル名でクリップボードを取得するには?

システムクリップボードへのアクセス権をインストールしました。xclip設定と一部の操作は次のとおりです。

➜  ~ cat .zshrc | grep xclip
alias c="xclip -selection c"
alias v="xclip -selection c -o"
➜  ~ which dict | c
➜  ~ v       
/usr/bin/dict
➜  ~ sudo vim ??  

/usr/bin/dictPythonスクリプトです。私が知りたいのは、??vimを使用してファイルを開くときに最後のコマンドの代わりに何を使用できるのかということ/usr/bin/dictです。

答え1

現在の設定を考えると

sudo vim "$(v)"

使用するコマンドの置き換えエイリアスを実行しvて実行する前に、実行したいコマンドラインにその出力を挿入すると、sudo vim /usr/bin/dict最終的に実行されます。引用符は単一の引数として表示され、$(...)コマンドの実行と出力のキャプチャを処理します。

エイリアスは他の場所では使用されないため、これは対話型シェルでのみ機能します。スクリプトからアクセスするには、PATH変数のどこかに小さなスクリプトを作成し、その中に同じコマンドを使用できます。


タグ付けしました。しかし、抜粋文が表示されるので、.zshrczshには「グローバルエイリアス”はどこにでも展開されます。

alias -g v='"$(xclip -selection c -o)"'

これでsudo vim v自由に走ることができます。グローバルエイリアスはほとんど常に値よりも問題が多いため、お勧めできませんが、使用パターンによって異なります。一部グローバルエイリアスが便利な場合があります(これにより、長くて珍しい名前をお勧めします。奇妙な句読点を置くと、誤って実行されるのを防ぐのに役立ちalias -g v# ...ます@v^v

関連情報