并非Vim中的每个命令都允许您添加行尾注释。有时"
作为参数有效,因此它是不明确的。 但是,如果您插入管道,该命令将结束,您可以插入注释。因此,您实际上可以在vim中实现可靠的行尾注释:
noremap ' ` |" Use single quote as alternate range key
干净吧?但syntax/vim.vim
文件并未将此识别为行尾注释。我如何告诉Vim识别这种语法?
我在syntax/vim.vim
中找到了这个:
syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
我尝试将这样的内容添加到我的~/.vimrc
,但没有任何效果。 VimScript很难。 :/
syntax match vimLineComment '|".*$+'
有什么想法吗?
答案 0 :(得分:5)
您不能对map
s
:h map-comments
你会看到:
*map-comments*
It is not possible to put a comment after these commands, because the '"'
character is considered to be part of the {lhs} or {rhs}.
我希望这能回答你的问题。
好的,你可能有充分的理由这样做。
仅定义syn match vimLineComment
是不够的,您必须覆盖vimMapRhs
语法。所以这两行将|"foo bar
突出显示为注释:
syn match vimMapRhs '.*\ze|\s*".*'
syn match vimLineComment '|\s*".*$'
这可能会改变“评论”的亮点,但我不建议这样做。
答案 1 :(得分:2)
vimscript语言支持注释,但行尾注释并不总是可预测的,因为行末注释可能被vim错误地解释为命令的一部分。
添加行尾注释在vimscript中是有问题的,因为它不适用于所有命令。
:help :bar
创建单独的Ex命令
:help :execute
):bar
):help :execute
)Vim帮助链接(直接将这些链接输入到vim Cmdline模式):
:help vim-script-intro | /comments for some commands
:help :bar
:help Command-line-mode
网络链接: