【问题标题】:How to enable line wrap only for certain filetypes in Vim?如何仅对 Vim 中的某些文件类型启用换行?
【发布时间】:2013-03-13 07:50:55
【问题描述】:

我在 vim 中关闭了line wrap,方法是在我的 vimrc 中添加这个:

set nowrap

但是,我想在编辑*.tex 文件时自动打开换行。所以,我将它添加到我的 vimrc 中:

augroup WrapLineInTeXFile
    autocmd!
    autocmd FileType tex set wrap
augroup END

当文件类型被检测为 TeX 时,这应该启用换行。这对 tex 文件按预期工作,但如果我在同一个 Vim 会话中打开一个非 tex 文件,它会打开换行!

Enabling and disabling word wrap automatically on different file extensions on Vim 建议改用 BufRead。但是,即使这样也有同样的效果:如果我先打开一个 TeX 文件,然后再打开一个非 TeX 文件,则非 TeX 文件会打开换行。

如何正确启用仅针对特定文件类型的换行?

【问题讨论】:

    标签: vim word-wrap


    【解决方案1】:

    您可以为此使用setlocal。它只会影响当前缓冲区。

    augroup WrapLineInTeXFile
        autocmd!
        autocmd FileType tex setlocal wrap
    augroup END
    

    这将应用于每个新的 TeX 缓冲区。

    【讨论】:

      【解决方案2】:

      'wrap' 选项窗口本地。当您使用:set 时,它也将适用于任何新打开的窗口。你想使用:setlocal

      此外,尽管您的 :augroup WrapLineInTeXFile 可以工作,但它很麻烦,并且不能扩展到许多设置。如果您的~/.vimrc 中有:filetype plugin on,您可以在~/.vim/after/ftplugin/tex.vim 中放置特定于文件类型的设置(如:setlocal wrap)(使用after 目录允许您覆盖任何默认文件类型设置由$VIMRUNTIME/ftplugin/tex.vim完成)。

      【讨论】:

      • Ingo:虽然在这种情况下我不需要它,但如果我继续在我的 vimrc 中积累设置,你的建议很有用:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2021-07-07
      • 2015-01-24
      • 2011-11-04
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多