繁体   English   中英

如何在命令行模式下打印 vim 寄存器值?

[英]how can i print vim register value in command line mode?

Hey i want to print javap java.lang.Object in vim terminal but not for only 'Object' class but any class that i yanked in particular register.

let say i yanked word Integer with "kyaw in vim so i want to print output of javap java.lang.Integer .

为此,我尝试了这个命令,但这不起作用。

:term javap "java.lang.${echo @k}"

但在 vim 终端中,它给了我类似的错误

zsh:1: bad substitution

我认为echo @k"中不起作用,所以我要如何扩展特定的关键字,例如ObjectInteger

我认为将命令构建为字符串然后使用:execute运行它更容易:

:execute 'term javap \"java.lang.'..@k..'\"'

或者

:execute printf('term javap \"java.lang.%s\"', @k)

请注意, "使用反斜杠进行转义,而..是字符串连接运算符。

在命令行中,使用:help c_ctrl-r插入寄存器的内容。 在你的情况下:

:term javap java.lang.<C-r>k<CR>

这可以很容易地变成一个简单的映射:

nnoremap <key> :term javap java.lang.<C-r>k<CR>

并通过直接使用 cursor 下的单词进行改进,而不是在单独的步骤中拉动某些东西:

nnoremap <key> :term javap java.lang.<C-r><C-w><CR>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM