加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 教程文章 > Linux

vim中tab的设置技巧

时间:2014-07-18 10:58:42  来源:  作者:

在使用vim进行编写代码时,下面的tab键设置是非常有用的:

 

1. 设定 tab 的位置

:set tabstop=4

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

:set expandtab

如果此时需要输入真正的 tab,则输入 Ctrl+V, tab,在 Windows 下是 Ctrl+Q, tab

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

:retab

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

参考文章:

  1. VIM Tip#12
  2. :help tabstop

 

缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的。在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活。

首先来看如何设定 tab 的宽度以及如何确定用 tab 制表符还是空格来表示一个缩进:

set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab

说明:

其中 tabstop 表示一个 tab 显示出来是多少个空格的长度,默认 8。

softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。

shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。

当设置成 expandtab 时,缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。

根据文件类型来设置 tab:

有些时候想为某些类型的文件设置不同的 tab 表现,如 python 用四个空格来表示一个缩进,在我们的 javascript 约定中也是用四个空格来表示缩进,而 HTML 和 CSS 则喜欢用 tab 制表符来缩进,那么可以做如下设置:

if has("autocmd")
    autocmd FileType javascript setlocal ts=4 sts=4 sw=4 expandtab
    autocmd FileType python setlocal ts=4 sts=4 sw=4 expandtab
endif

这样当开打的文件是 .js .py 的,都会用四个空格来缩进。

用特殊符号来表示 tab 制表符:

在 Vim 中可以用特殊的符号来表示一个 tab 制表符,这样 tab 制表符和空格就可以很容易的区分看来了,如下图:

vim tab

在 vimrc 中加入就可以了:

set list
set listchars=tab:▸ ,eol:¬
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
在CentOS下搭建Android 开发环境
在CentOS下搭建Androi
轻松搭建属于自己的Ubuntu发行版
轻松搭建属于自己的Ub
利用SUSE Studio 打造自己的个性化Linux发行版
利用SUSE Studio 打造
那些采用PHP技术的IT大企业
那些采用PHP技术的IT大
相关文章
    无相关信息
栏目更新
栏目热门