如何解决当人们期望用户输入时,如何链接vim命令
举一个最小的例子,说我想在当前缓冲区中搜索然后保存它。
类似/
[用户输入...]
然后w
如何将其链接到单个命令中?
在我的示例中没有意义,但是真正的假设是:
:GoRename [user input] <CR>
然后:GoBuildTags '' <CR>
类似的东西不起作用:
nnoremap <leader>rr :GoRename <bar> :GoBuildTags ''<CR>
解决方法
实际情况是:
:GoRename [user input] <CR>
然后:GoBuildTags '' <CR>
在这里,我的建议是创建一个新的用户命令,例如:GoRenameBuildTags
,该命令将执行两个命令,并将其参数传递给第一个命令。
您通常可以使用|
将命令链接在一起,但这需要使用:GoRename
声明-bar
命令,实际上并非如此……因此,您将需要将其包装在:execute
中,以便可以将其与第二个命令分开。
因此,您可以按以下方式定义命令:
command! -nargs=? -complete=customlist,go#rename#Complete
\ GoRenameBuildTags
\ execute "GoRename" <q-args>
\ | GoBuildTags ''
我在这里使用的是与原始-nargs
相同的-complete
和GoRename
,因为您要将传递的参数转发给该命令,所以匹配它很有意义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。