在此命令中,“@”符号有什么作用?
:exec '!python' shellescape(@%, 1)
如果我删除它,Vim说:
E15: Invalid expression: %, 1)
E116: Invalid arguments for function shellescape(%, 1)
E15: Invalid expression: shellescape(%, 1)
修改
回应:
这是%寄存器(当前文件名)的内容。
当我输入:h@
时,帮助文件会显示:
@ {0-9A-Z”。= * +}
执行寄存器{0-9a-z“。= * +} [...]的内容。注意不能使用寄存器'%'(当前文件的名称)[...]
这两个引号似乎不一致,shellescape
行为似乎与之前的引用一致。
新观察:
以下似乎相同:
:exec '!python' shellescape(@%, 1)
:exec '!python %'
:!python %