我有一个映射,用于在一行上打印突出显示.我从其他海报中得到了这个想法,谢谢你.这是我做的:
function! PrintSyntaxItem()
let l:colorsyntax = synIDattr(synID(line("."), col("."), 0), "name")
execute "highlight" l:colorsyntax
endfunction
Run Code Online (Sandbox Code Playgroud)
我像这样映射:
nnoremap <A-s> :call PrintSyntaxItem()<CR>
Run Code Online (Sandbox Code Playgroud)
然而,当我执行它时,我得到命令行回显以及我想要的输出,这导致获得"按ENTER"提示.即在输出中我看到:
:execute "highlight" synIDattr(synID(line("."), col("."), 0), "name")
vimBracket xxx links to Delimiter
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
我想丢失:execute线路,然后按ENTER线也会消失.有没有办法做到这一点?如果我放在silent前面execute我仍然打印出那条线但输掉了highlight输出(以及按ENTER键提示),但是为了得到我想要的输出我只是在它前面加上unsilent我得到它但是......
基本上我想要抑制:execute线的回声或者在事后清除它但是我不知道如何做,拖网文件以获取关于操纵消息的信息并没有结果.
谢谢.
这不是你应该沉默的命令,但正如你在问题的标题中写的那样,映射本身:
nnoremap <silent> <A-s> :call PrintSyntaxItem()<CR>
Run Code Online (Sandbox Code Playgroud)
也就是说,执行命令看起来不容易被静音.我会调查一下.
编辑
我已经尝试了所有可以找到的技巧,包括:redir =>十几种组合,[<]silent[>]但我无法获得所需的结果.要么得到提示,要么我什么也得不到.我非常抱歉!
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |