代码硬包装。我已经将Vim配置为自动(当我键入)在80列上硬包装长行注释。效果很好。但是,它似乎不会自动包装代码。我认为添加set formatoptions+=t
(目前我有set formatoptions=c,r,q,a,n
)可以做到这一点,但事实并非如此。另外,在Vim Script中,如果由于硬包装而需要续行时,Vim可以自动反斜杠\
。那么有没有办法实现代码和这些高级功能的硬包装?
高级缩进/对齐。我喜欢使用gg=G
- 我甚至将它作为写入文件的预挂钩附加。我启用了cindent
。现在我想知道是否可以编写indentexpr
或者调整一些其他变量来实现Vim Script代码的以下内容,例如:
" Before gg=G
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{',
\'}', '<', '>', '''', '"']
" After gg=G
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{',
\'}', '<', '>', '''', '"']
我尝试将vim.vim
文件添加到~/.vim/after/ftplugin/
中,其中包含以下内容:
setlocal indentexpr=IndentExpression()
fun IndentExpression()
let indent = cindent(v:lnum)
let match = matchstr(getline(v:lnum - 1), '^\s*\S\+\s\+\S\+\s*=\s*\[\ze.*$')
if !empty(match)
let indent = len(match)
endif
return indent
endf
但我运气不好。
关于'formatoptions'
:当你在那里有a
时,没有必要使用t
;前者会在您键入时自动换行,因此无论如何都会在达到文本宽度时(后者执行)换行。造成问题的原因是c
,因为这会将自动格式限制为注释。 CP。 :help fo-table
:
a段落的自动格式化。每次插入或删除文本时,段落都将被重新格式化。见| auto-format |。当'c'标志出现时,这仅发生在已识别的注释中。
所以,一个:set fo-=c
应该做的伎俩。