vi与vim如何修改tab为4个空格方法示例

 我来答
hqxz556
2018-08-17 · TA获得超过2831个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:576万
展开全部

1. 如果你只是看别人写的代码,而别人设置的缩进非常宽,那么设置

:set tabstop=4

可以让文件里的 tab 看上去占 4 个空格的宽度。这条命令只是修改 vim 的显示样式,不改变文本内容本身。(但通常你不应该修改这个选项的值)

2. (不喜欢看长文的,可以直接跳到底下看总结。)如果你是想编辑文本的时候按 4 个空格的幅度缩进代码,设置

:set shiftwidth=4

可以让代码的缩进量为 4。这个设置影响 vim 的自动缩进,但手动输入 tab 还是会插入一个 tab 字符(看上去是 'tabstop' 指定的长度)。

设置

:set softtabstop=4

可以使手动输入 tab 时看上去缩进量是 4 个空格。基于你 tabstop 和 shiftwidth 的设置,vim 会混合地插入空格或 tab 字符。这三个设置联合使用,可以使 vim 编辑出来的文件体积尽可能小,因为连续出现的 8 个空格(tabstop 指定)会被替换为一个 tab 字符。只要别人也设置 tabstop=8,文件看上去就不会变乱。设置此值也自然地影响退格键删除空格或 tab 字符的行为。传统的程序员会比较喜欢这样的搭配。

设置 softtabstop 的值为 -1,即是按 shiftwidth 的值取值。这是正确的,因为如果此两个值不同,会有很多麻烦。

设置

:set expandtab

vim 将按 shiftwidth 的指定量插入空格,而不再真正插入 tab 字符。 当你的 tabstop 不为 8 时,通常要加上这个设置,否则你编辑的文本别人打开看上去就是乱缩进的。

设置

:set smarttab

会让 vim 在行首根据 tabstop 和 shiftwidth 的值来插入缩进,而在其它地方按 tabstop 和 softtabstop 指定的行为来插入。根据 expandtab 设置与否,插入的内容可能是空格或 tab 字符的混合,也可能只是空格。

3. 之前说的是你看别人代码,和自己写代码时的设置情景。但有时也可能你要修改别人的代码。执行:

:retab

会按你当下 vim 对缩进的设置重新缩进一次代码。这会修改文本的内容,所以你必须确定你确实需要这么做。修改前记得另存一个备份是个不错的习惯。

4. 总结:缩进代码本身是个挺复杂的主题,因此 vim 的配置也比较丰富,以满足各种需求。个人的建议是设置 tabstop=8, shiftwidth=4(或者其它你喜欢的值), softtabstop=-1。如果你根本不喜欢用 tab 字符缩进,就再加上 expandtab 的设置。

调整好之后,要把这些设置写到 vimrc 里,以便让 vim 每次启动都生效。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式