VIM开放式url插头抓线

VIM开放式url插头抓线,vim,Vim,所以我对VIM还是一个新手,到目前为止我很喜欢它,但是现在我正在尝试为这个插件添加一个自定义命令,所以现在看起来像下面这样 nnoremap <C-i> :OpenURL http://localhost...?grep=<cword><CR> 现在它抓住了我站在上面的一个单词,所以它应该是“grep=something”,但我需要单引号之间的全文。所以,我要回答这个问题 如何使自定义命令的“awesome”行在单引号之间获取全文?Vim仅提供和;对于其他任

所以我对VIM还是一个新手,到目前为止我很喜欢它,但是现在我正在尝试为这个插件添加一个自定义命令,所以现在看起来像下面这样

nnoremap <C-i> :OpenURL http://localhost...?grep=<cword><CR>
现在它抓住了我站在上面的一个单词,所以它应该是“grep=something”,但我需要单引号之间的全文。所以,我要回答这个问题

如何使自定义命令的“awesome”行在单引号之间获取全文?

Vim仅提供
;对于其他任何事情,你都需要一种不同的方法

“正确”的方法是使用
matchstr(getline('.'),“'\\zs[^']\\\+\\ze')提取单引号内的文本。为了更好地模拟内置函数,您还需要确保光标实际位于引号内(使用
\%\\\code>原子在光标位置与
search()匹配)。如果没有带引号的字符串,则应打印错误消息。所有这些都需要多行代码,因此我们现在讨论的是一个自定义的
:函数,它将由映射调用。我会走这条路来实现一个健壮的插件

像my这样的库可以简化这一点,在本例中,使用
ingo#text#frompattern#GetAroundHere()

捷径 如果您不介意删除默认寄存器,我们可以让内部引号文本对象(
i'
)完成大部分工作。使您的映射首先适应
yi'
,然后通过
以命令行模式直接插入寄存器内容:

it('should do something ... test', function() {
nnoremap <C-i> yi':OpenURL http://localhost...?grep=<C-r>"<CR>
nnoremap <C-i> yi':execute 'OpenURL http://localhost...?grep=' . @"<CR>