我正在编写一个向用户提供表单的插件。一切都运作良好,但是如果我能阻止对前两个列的编辑进行完全成功,那将会很棒。基本上,这等于:<Nop>
时col(".") < X
,但我不知道如何连接到插入模式下按下的每个键。我的方向是否正确,如何连接击键?
此外,我还想阻止从第一行7
行编辑选定的行。
答案 0 :(得分:1)
您可以在modifiable
自动命令中使用选项CursorMoved
,例如:
au CursorMoved * call CheckCursorPos()
function! CheckCursorPos()
" This code has to be improved, it's just an example:
if col('.') <= 2
set nomodifiable
else
set modifiable
endif
endf
您可以在函数内添加更复杂的测试(例如,处理7个第一行)。
要使其完整,您还必须根据自己的喜好处理CursorMovedI
自动命令,否则版本可能会进入编辑模式(例如,如果您按第4列上的i
,则可修改,然后回到行的开头,版本将是可能的)