Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1176246
  • 博文数量: 115
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 1734
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-08 20:46
文章分类

全部博文(115)

文章存档

2015年(5)

2014年(28)

2013年(42)

2012年(40)

分类: LINUX

2013-05-29 15:19:49

在修改实际代码中,产生的diff文件在不同的工具上浏览时候会出现各种对齐问题,看着很是丑陋。

于是会直接在.vimrc中指定"set expandtab" 选项来把tab直接换成tabstop或者是shiftwidth指定的4个字节

原本这个世界就没有一劳永逸的事情,这样指定后,在某些场合就会不适应,比如makefile中的命令语句就指定要以table键开始,否则他不认识。如此便有以下:

1. 设定 tab 的位置

:set tabstop=4

2. 输入 tab 时自动将其转化为空格

:set expandtab

如果此时需要输入真正的 tab,则输入 Ctrl+V, tab,在 Windows 下是 Ctrl+Q, tab(在ubuntu中大写或者小写的v都可以)
或者是直接”:set noexpandtab"重新设置

3. 将已存在的 tab 都转化为空格

:retab
这里转化时候使用的规则目前测试来看是以“tabstop”的设置值为准,即一个tab键转化为“tablstop”个空格

4. 设定编辑模式下 tab 的视在宽度

:set softtabstop

这不改变 tabstop,但让编辑的时候 tab 看起来是指定的宽度,输入 tab 时会插入的 tab 和空格的混合,比如?tabstop=4softtabstop=10,那么插入 tab 时会将光标移动 10 个字符,可能会是两个 tab 加两个空格(实际中会有对齐现象,所以说是可能,而非一定),这对 backspace 也有效。

5. 解决 shiftwidth 和 tabstop 不等时的麻烦

:set smarttab

在行首输入 tab 时插入宽度为 shiftwidth 的空白,在其他地方按 tabstop 和 softtabstop 处理

6. 将 tab 显示为可见字符

:set list listchars=tab:>-

tab 将被显示为 >—- 的形式

7. 只在编辑特定类型的文件时展开 tab

将如下代码加入 ~/.vimrc

autocmd FileType * set tabstop=4|set shiftwidth=4|set noexpandtab
autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab
这里的FileType可以识别的c, cpp, make, ruby, python。其他的目前暂没有试验,不置可否,须自行测试


---------------------------------------
Ref:
http://www.cnblogs.com/panliang188/archive/2010/04/20/1715836.html

阅读(2519) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~