如何在 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/dict是一个Python脚本。我想知道的是??我的最后一个命令可以用什么来替代可以使用 vim 打开文件/usr/bin/dict

答案1

鉴于您当前的设置

sudo vim "$(v)"

将使用命令替换运行您的别名v并将其输出插入到要运行的命令行中,然后再执行它,这样它sudo vim /usr/bin/dict最终会运行。引号确保它作为单个参数出现,并$(...)处理运行命令并捕获其输出。

这只适用于您的交互式 shell,因为别名不在其他地方使用。如果您想从脚本访问它,您可以在PATH变量中的某个位置创建一个小脚本,并在其中使用相同的命令。


您已标记此但随后显示了摘录.zshrc,因此还要注意 zsh 有“全局别名” 扩展到任何地方:

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

然后就sudo vim v可以免费运行了。全局别名几乎总是比它们的价值更麻烦,所以我不建议这样做,但这取决于您的使用模式一些全局别名可能会很方便(如果您这样做,我会推荐一个更长且更不寻常的名称:放入一些奇怪的标点符号可以帮助避免错误地运行它,所以alias -g v# ...或或@v^v什么)。

相关内容