Gvim,在命令中使用寄存器

时间:2013-12-06 13:03:48

标签: vim highlight cpu-registers

我想在命令行中使用寄存器值,在GVIM中使用函数。

更具体地说,我的目标是减轻我的日志文件的即时高度。我希望能够通过一个简单的命令来强调所选的字符串,如* touch do。

目前我在vimrc中有这些行

hi Hi1 guifg=#FFD000
hi Hi2 guifg=#FA0020
hi Hi3 guifg=#A5BB00

我要在命令行中写一下:

:syntax match Hi1 /MON_STRING/

我得到了我想要的东西。我想要一个像

这样的命令
noremap ,H1 :syntax math Hi1 "0

更容易做同样的事情,但我找不到写“0

的正确方法

有什么想法吗?

EDIT => 感谢答案,我创建了我正在寻找的功能:

let g:hicounter = 0
function TT(incr)
   if a:incr == 1
      let g:hicounter = g:hicounter + 1 
      let g:hicounter = g:hicounter % 18
   endif
    :exec 'syntax match Hi' . g:hicounter .'  /'.@/.'/'
    :echo "falue de incr a:incr " . a:incr . " :let  g:hicounter ="
endfunction

noremap <F3> *#:call TT(1)<CR>
noremap <s-F3> *#:call TT(0)<CR>

2 个答案:

答案 0 :(得分:1)

使用execute

:exec 'your command'.@x
  • x是reg
  • .连接cmd字符串

答案 1 :(得分:0)

您的方法使用:syntax match;这可能会干扰现有语法(因此有时,您的突出显示将与现有语法不匹配,或者它会阻止现有语法正确突出显示该文件)。为了更强大的突出显示,:match / matchadd()更好(但管理起来更复杂)。

如果您愿意安装插件,我的Mark plugin会提供此功能。 (插件页面包含指向其他插件的链接。)