如果我在寄存器中有完整路径(例如@a="/dir/file.txt")并且我想以 Ex 模式打开文件。
我尝试:e @a这样做,但它不起作用。
我也尝试过,:e echo @a但它也不起作用。
显然我可以 :e CTRL-R a在 Ex 模式下打字,它可以工作。
但我想知道是否有一种方法可以在 Ex 模式下获取寄存器的内容而不使用 CTRL-R。
该:edit命令采用文件规范。有某些特殊字符(例如%当前文件名;cp. :h cmdline-special),但该@reg符号在这里不起作用。
Vim 的评估规则与大多数编程语言不同。您需要使用:execute来计算变量(或表达式);否则,就按字面意思理解;即 Vim 使用变量名本身作为参数。
所以,解决你的问题的方法是
:execute 'edit' @a
Run Code Online (Sandbox Code Playgroud)
如果您不希望特殊字符应用于寄存器内容,则更可靠(但更长)的方法是
:execute 'edit' fnameescape(@a)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |