Unix VIM textwidth没有效果
这感觉像是一个愚蠢的问题,但我在互联网(或VIM帮助)上找不到答案。我在Mac OS X上使用VIM 7.2。我只想把我的行换行为72个字符,但是Unix VIM textwidth没有效果,unix,vim,text-editor,neovim,Unix,Vim,Text Editor,Neovim,这感觉像是一个愚蠢的问题,但我在互联网(或VIM帮助)上找不到答案。我在Mac OS X上使用VIM 7.2。我只想把我的行换行为72个字符,但是 :set textwidth=72 没有效果。textwidth设置正确(我可以看到,当我只是查询“:set textwidth”时),但设置textwidth后键入的现有行和新行都不会被包装。如果我开始新的生产线,仍然没有包装。打开并关闭文件,无更改。我也尝试过:设置wrapmargin=72(textwidth=0),但没有效果 我在这里遗漏
:set textwidth=72
没有效果。textwidth设置正确(我可以看到,当我只是查询“:set textwidth”时),但设置textwidth后键入的现有行和新行都不会被包装。如果我开始新的生产线,仍然没有包装。打开并关闭文件,无更改。我也尝试过:设置wrapmargin=72(textwidth=0),但没有效果
我在这里遗漏了什么?什么
:set formatexpr?
:set indentexpr?
:set cindent?
:set filetype?
:set paste?
:filetype
印刷品
其中至少有一个(我认为所有这些)将覆盖textwidth
的设置
例如,如果您正在编辑一个C源文件,C缩进规则覆盖
textwidth
除非请求,否则Vim不会执行任何操作<如果在formatoptions
中有t
(仅限非注释)、c
(仅限注释)或两者都有,则code>textwidth将对当前编辑的行产生影响(如果a
不存在,则仅当您达到textwidth
设置的边距时才会自动换行),或者如果您使用gq
重新格式化文本。如果我没有弄错,您可以设置这样的formatexpr
或formatprg
,这样textwidth
将被忽略。尝试gggqG
将新的文本宽度应用于整个缓冲区
表示:转到缓冲区的开头gg
意思是:重新格式化议案中包含的文本gq
表示:转到缓冲区的末尾G
modeline
来显示宽度为72个字符的现有文本。请参见:help modeline
类似于
vim:tw=72
的东西应该会起作用。我在寻找同一个问题的答案,在找到vim文档中的解决方案之前,我不得不四处奔波。所以,我想我会更新线程,节省其他人的时间
我的问题是默认的ftplugin是禁用textwidth
仅仅用(:set tw=79&&:set formatoptions+=t
)更新.vimrc是不起作用的,因为fplugins是在vimrc之后生成的
以下是我遵循的步骤:
1) 了解您当前的格式选项(在vim中)
2) 按照vimdocs()的建议创建filetype.vim文件
3) 在该文件中添加行:set formatoptions+=t
&&&:set textwidth=79
瞧!下次打开文件时,它会将textwidth设置为所需的字符
作为调试帮助,您可以通过在命令前面加上verbose来检查哪个文件覆盖了vimrc设置。例如,如果我想检查谁最后更新了formatoptions,我会键入
:verbose set formatoptions?
formatoptions=croqlt
Last set from ~/.vim/after/ftplugin/fortan.vim
可能会帮助您我遇到了完全相同的问题,并发现以下方法足以很好地解决这个问题:
autocmd FileType python setlocal textwidth=79 formatoptions+=t
请随意更改python
作为您选择的文件类型(例如*
或逗号分隔列表python、ruby、go、sh、javascript
)
有关格式选项的详细信息,请参见:h fo table
我正在使用Neovim,也遇到了这个问题。在我的init.vim
中将textwidth
设置为80后,打开文件时文本文件的内容不会改变。对于现有文本,我们必须使用gggqG
手动设置其格式
当您在一行中键入新字符时,textwidth
选项将起作用(如果字符数达到80,您将自动获得换行符)。还可以尝试:设置粘贴?
。那一个也会干扰。对我来说,它是:set paste
,我已经映射到一个前导序列。谢谢你@patrickvacekNice!你让我很开心。这是解决老年退休金问题的办法。答案是更新不遵守textwidth的文件的最佳方法,但它不会使文件类型开始遵守textwidth。
:verbose set formatoptions?
formatoptions=croqlt
Last set from ~/.vim/after/ftplugin/fortan.vim
set formatoptions+=t
autocmd FileType python setlocal textwidth=79 formatoptions+=t