Syntax 将行末注释添加到vim语法中
并非Vim中的每个命令都允许添加行末注释。有时,Syntax 将行末注释添加到vim语法中,syntax,comments,vim,Syntax,Comments,Vim,并非Vim中的每个命令都允许添加行末注释。有时,“作为一个参数是有效的,因此它是不明确的。但是,如果插入管道,则命令结束,您可以插入注释。因此,您实际上可以在vim中获得可靠的行尾注释: noremap ' ` |" Use single quote as alternate range key 整洁,对吗?但是syntax/vim.vim文件没有将此识别为行尾注释。我如何告诉vim识别此语法 我在syntax/vim.vim中找到了这个: syn match vimLineComment
“
作为一个参数是有效的,因此它是不明确的。但是,如果插入管道,则命令结束,您可以插入注释。因此,您实际上可以在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 '|".*$+'
有什么想法吗?您不能对
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*".*$'
这可能会改变“评论”的突出显示,但我不建议这样做。Background
- vim 7.3所有平台
- vimscript语言(用于vim文件)
- 1) 使用管道字符
创建单独的Ex命令:help:bar
- 这是@sidewaysmilk列举的解决方案
- 2) 只需在下一行的相关vimscript命令下面添加注释
- 3) 使用execute命令(请参见
):help:execute
- 解决方案1)是对管道的非常规使用(又名
):bar
- 并非所有命令都支持管道字符(请参见例如
):help:execute
- 解决方案2)对于vimscript的可读性可能不理想,并且它不能直接解决OP中的问题
- 在internet上搜索此功能很棘手,因为它会在通用编程上下文中找到与注释相关的链接,而与vimscript无关
:帮助vim脚本介绍|/一些命令的注释
:帮助:条形图
:帮助命令行模式
\|“foo
case,因为它可能是rhs
中的文字管道,为什么这不是真正的重点。我的问题是如何在Vim的VimScript语法中添加行末注释标记。这些信息对于任何试图以任何语法添加/修复注释标记的人都很有用。如果你只是好奇的话,那是因为我的~/.vimrc中有一长串命令,所以我想用这种方式进行评论。这只是一种偏好。syn匹配
。。。只有当我使用Neovim将行放入~/nvim/after/syntax/vim.vim
时,行才对我有效。@Daniel我已经为我的主题创建了一个repo。我的主题细节:顺便说一句,我使用的终端是urxvt。但这个答案中的vim是GVIM