vi与vim如何修改tab为4个空格方法示例
答案:1 悬赏:80 手机版
解决时间 2021-11-15 17:25
- 提问者网友:回忆在搜索
- 2021-11-15 09:14
vi与vim如何修改tab为4个空格方法示例
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-11-15 10:36
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 expandtabvim 将按 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 每次启动都生效。
: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 expandtabvim 将按 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 每次启动都生效。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯