代码硬包装。我已经将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
但我运气不好。
答案 0 :(得分:1)
关于'formatoptions'
:当你有a
时,就不需要t
;前者会在您键入时自动换行,因此无论如何都会在达到文本宽度时(后者执行)换行。导致问题的是c
,因为这会将自动格式限制为注释。 CP。 :help fo-table
:
自动格式化段落。每次插入文本或 删除该段将被重新格式化。见| auto-format |。 当'c'标志出现时,这仅在识别时发生 评价。
所以,:set fo-=c
应该可以解决问题。