将某些类型的线条换行成不同宽度的文本?

将某些类型的线条换行成不同宽度的文本?

我已将文本设置为 80 个字符后换行。

编辑某一类型的行时,是否可以将文本换行到 50 个字符?

例如,我编写 Ruby 程序,我希望 Ruby 注释可以换行到 50 个字符,而其他内容保持 80 个字符。

是否可以?

答案1

包装由选项控制'textwidth':help 'textwidth'显示它是本地缓冲区,因此可以设置不同的值,例如通过手动

:setlocal textwidth=50

为了使此功能自动应用于所有 Ruby 文件,你可以使用 Vim 的内置文件类型检测和文件类型插件. 将上述命令输入~/.vim/after/ftplugin/ruby.vim. (这要求您有:filetype plugin on; 使用目录允许您覆盖由 完成的任何默认文件类型设置$VIMRUNTIME/ftplugin/ruby.vim。)或者,您可以:autocmd FileType ruby ...直接在 中定义一个~/.vimrc,但一旦您进行了许多自定义,这往往会变得难以处理。

内置功能到此结束,在缓冲区范围内。要仅将不同的文本宽度应用于评论(或任何其他语法元素),需要动态适应。这可以使用 来实现:autocmd,挂接到CursorMoved事件中。我的OnSyntaxChange 插件提供实用函数来简化设置(再次放置在~/.vim/after/ftplugin/ruby.vim):

call OnSyntaxChange#Install('Comment', '^Comment$', 1, 'a')
autocmd User SyntaxCommentEnterA setlocal textwidth=50
autocmd User SyntaxCommentLeaveA setlocal textwidth=80

相关内容