在autocmd
中是否有vim
的事件是由指定列以外的输入触发的?
我无法找到我需要的活动。
如果事件不存在,我可以自定义autocmd
的事件吗?
我想执行一个命令当我的输入字符超过指定的列号时。
此命令:match Underlined /.\%>81v/
可以指定81
以外的字符样式,现在我想运行命令而不是更改样式。
答案 0 :(得分:1)
当光标移动时(由于键入,移动等),在插入模式中触发CursorMovedI
事件。可以通过virtcol('.')
查询当前屏幕列; col('.')
函数返回字节索引,当有制表符,双宽字符或任何非ASCII字符时,它会有所不同。
因此,您可以通过
:autocmd CursorMovedI * if virtcol('.') > 80 | ... | endif
但是,如果您在某个列之后自动插入换行符之后,则会内置该功能。请参阅:help 'textwidth'
(或'wrapmargin'
}和:help fo-table
。以下内容将在80列之后中断文本:
:set textwidth=80 formatoptions+=t