vim - 用许多引号将 shell 输出插入 vim
问题描述
我在整合这个 shell 命令时遇到了麻烦:
uuidgen | tr -d '\n' | awk '{printf("\"%s\"", $0);}'
像这样进入 Vimscript:
:command UUID execute "normal! \"=system('...')\<CR>p"
我目前的尝试是:
:command UUID execute "normal! \"=system('uuidgen | tr -d \'\n\' | awk \'{printf(\"\"%s\"\", $0);}\'')\<CR>p"
Unknown mark
当我运行命令时返回。我想我最终逃离了地狱,不知道如何恢复。
解决方案
我觉得这可以更简单地完成systemlist()
command! UUID put='\"'.systemlist('uuidgen')[0].'\"'
nnoremap <key> "='"'.systemlist('uuidgen')[0].'"'<cr>p
inoremap <key> <c-r>='"'.systemlist('uuidgen')[0].'"'<cr>
如果您不介意'
,那么您可以使用string()
更容易的功能。
如需更多帮助,请参阅:
:h systemlist()
:h string()
推荐阅读
- c# - 使用 ASP.NET Core Web 应用程序和 .NET Core API 进行 ADFS 单点登录
- java - Apache PDFBox 合并错误 - java.io.IOException:预告片中缺少根对象规范
- nlp - 从非正式文本中识别产品名称
- c - 多维数组作为函数参数的衰减
- javascript - 材料设计精简版复选框检查属性未定义
- javascript - 将电话号码格式化为美国手机无格式
- css - 如何为固定的孩子实现 100% 的父宽度?
- javascript - 来自 default_popup 的数据未通过后台脚本传递给 content_scripts
- git - 无法推送提交
- python - 如何使用 Numpy 更快地最小化这个距离?(找到两个信号彼此接近的移位索引)