修改VIM恶心的注释自动格式化
我复制一段代码,里面有// 只有一行,但是复制到vim中就下面全部都有//了。我要取消这个功能
vim ~/.vimrc
set nu!
"set formatoptions=croql 这句就是问题的一句话
set formatoptions=tcpmM
好像 还有问题,他会自动添加croql,不知道是在那个文件中添加的。我都在~/.vimrc添加的代码了,为什么不放到最后执行呢??
其含义是什么呢?
选项 formatoptions 确定了跟文本格式化有关的基本选项,常用的数值有:
- t:根据 textwidth 自动折行;
- c:在(程序源代码中的)注释中自动折行,插入合适的注释起始字符;
- r:插入模式下在注释中键入回车时,插入合适的注释起始字符;
- q:允许使用“gq”命令对注释进行格式化;
- n:识别编号列表,编号行的下一行的缩进由数字后的空白决定(与“2”冲突,需要“autoindent”);
- 2:使用一段的第二行的缩进来格式化文本;
- l:在当前行长度超过 textwidth 时,不自动重新格式化;
- m:在多字节字符处可以折行,对中文特别有效(否则只在空白字符处折行);
- M:在拼接两行时(重新格式化,或者是手工使用“J”命令),如果前一行的结尾或后一行的开头是多字节字符,则不插入空格,非常适合中文
上面提到的注释,可以是 C/C++ 中的“//”和“/*”,也可以是邮件中引用原文使用的“>”等字符(具体由 comments
选项控制;参见“:help 'comments'”)。Vim
在遇到这些字符时,能够相当智能地进行处理,足以完成日常编辑源代码和邮件的需要。在使用一些处理纯文本不够强大的邮件客户端时,我通常使用 Vim
编辑邮件(特别是英文邮件),然后把结果贴回到邮件编辑窗口中进行发送。
Vim 中 formatoptions 的缺省值是“tcq”,一般我会在 .vimrc 文件中加入一行“set formatoptions+=mM”来确保 Vim 能在中文字符之间折行而不要求空格的存在,并且在大部分情况下可以正确地处理中文重新格式化。
参考:
http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129794.shtml
http://vim.wikia.com/wiki/How_to_stop_auto_indenting
http://blog.chinaunix.net/uid-11278770-id-148575.html
http://if.ustc.edu.cn/~xbzhou/blog/archives/vimmanual/options.html
http://www.baidu.com/s?ie=UTF-8&wd=vim+formatoptions
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。