【发布时间】:2011-08-01 22:53:43
【问题描述】:
当我在 Vim 中编辑 haskell 文件时,我的编辑器会自动将超过 80 个字符的 cmets 换行到下一行。我希望 Vim 对 python 文件(和文本文件)使用相同的行为,但我在 ~/.vim/syntax 文件夹或 vimrc 的任何地方都找不到执行此操作的设置。
这是我的 .vimrc 的相关行:
set wrap
set textwidth=80
【问题讨论】:
当我在 Vim 中编辑 haskell 文件时,我的编辑器会自动将超过 80 个字符的 cmets 换行到下一行。我希望 Vim 对 python 文件(和文本文件)使用相同的行为,但我在 ~/.vim/syntax 文件夹或 vimrc 的任何地方都找不到执行此操作的设置。
这是我的 .vimrc 的相关行:
set wrap
set textwidth=80
【问题讨论】:
设置textwidth 将设置您的最大行长。这将在该字符点放置一个新行(尽管空白可以精确地播放 80 位)。 (这会影响文件的实际格式)。
wrap 确实是您想要的拆分/包装。
确保您的 .vimrc 在您的主目录中。
【讨论】:
formatoptions 中添加“c”有助于解决问题。
我在我的 vimrc 中使用以下脚本自动包装 .txt 文件。这可能会给你一些提示。
if has('autocmd')
au BufRead,BufNewFile *.txt set wm=2 tw=80
endif
【讨论】:
textwidth != 0 则wordmargin 被忽略。
如果在插入模式启动时一行已经比 textwidth 长,即使在该行中添加了文本,该行也可能不会被换行。如果formatoptions 包含“l”,则添加文本时不会换行。如果需要,可以像这样删除“l”:
:set fo-=l
您可以通过以下方式检查格式选项的值:
:set fo?
您可以通过here 或通过以下方式了解这些字母的含义:
:he fo-table
【讨论】: