我想在命令行中使用寄存器值,在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>
答案 0 :(得分:1)
使用execute
:exec 'your command'.@x
x
是reg .
连接cmd字符串答案 1 :(得分:0)
您的方法使用:syntax match
;这可能会干扰现有语法(因此有时,您的突出显示将与现有语法不匹配,或者它会阻止现有语法正确突出显示该文件)。为了更强大的突出显示,:match
/ matchadd()
更好(但管理起来更复杂)。
如果您愿意安装插件,我的Mark plugin会提供此功能。 (插件页面包含指向其他插件的链接。)