Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用多个引号将shell输出插入到vim中_Vim - Fatal编程技术网

使用多个引号将shell输出插入到vim中

使用多个引号将shell输出插入到vim中,vim,Vim,整合此shell命令时遇到问题: uuidgen | tr -d '\n' | awk '{printf("\"%s\"", $0);}' 输入如下脚本: :command UUID execute "normal! \"=system('...')\<CR>p" :命令UUID执行“正常!\”=system(“…”)\p 我目前的尝试是: :command UUID execute "normal! \"=system('uuidgen | tr -d \'\n\' | aw

整合此shell命令时遇到问题:

uuidgen | tr -d '\n' | awk '{printf("\"%s\"", $0);}'
输入如下脚本:

:command UUID execute "normal! \"=system('...')\<CR>p"
:命令UUID执行“正常!\”=system(“…”)\p
我目前的尝试是:

:command UUID execute "normal! \"=system('uuidgen | tr -d \'\n\' | awk \'{printf(\"\"%s\"\", $0);}\'')\<CR>p"
:命令UUID执行“正常\“=系统('uuidgen | tr-d\'\n\'\awk\'{printf(\“\%s\”,$0);}\'')\p”

当我运行命令时,它返回
Unknown mark
。我想我最终逃脱了地狱,不知道如何恢复。

我觉得使用
systemlist()

逃离地狱…;-]

escape('uuidgen | tr -d ''\n'' | awk ''{printf("\"%s\"", $0);}'')','\\/.*$^~[]')  
注意第一部分中的双单引号。第二部分是用于转义的通用代码段

escape('string','\\/.*$^~[]')

从这里开始应该很容易

这太棒了。您知道为什么put命令仍然将其插入新行吗?
:put
与大多数(所有?)ex命令一样是按行的。请参见
:h行
:put
是“强制”寄存器按行的一种常用方法。通过键映射,它工作得非常好。我很好奇,是否有另一个命令可以输入,这样如果我只输入:UUID,我会得到与只按键相同的行为?命令是基于行的,因此使
:UUID
字符明智将是“奇怪的”。您可以使用
:normal
,例如
命令来执行此操作!UUID执行“normala\='\'”.systemlist('uuidgen')[0].\''\'”
,然后我将继续使用这个习惯用法。
escape('uuidgen | tr -d ''\n'' | awk ''{printf("\"%s\"", $0);}'')','\\/.*$^~[]')  
escape('string','\\/.*$^~[]')