vim 中的制表符和空格 [英] Tabs and spaces in vim

查看:34
本文介绍了vim 中的制表符和空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当自动缩进打开时,如何防止 vim 用制表符替换空格?

How do I prevent vim from replacing spaces with tabs when autoindent is on?

示例:如果我在行首有两个制表符和 7 个空格,并且 tabstop=3,然后按 Enter,则下一行开头有四个制表符和 1 个空格,但我不想那样...

An example: if I have two tabs and 7 spaces in the beginning of the line, and tabstop=3, and I press Enter, the next line has four tabs and 1 space in the beginning, but I don't want that...

推荐答案

完全不使用制表符也许是个好主意.

It is perhaps a good idea not to use tabs at all.

:set expandtab

如果要将文件中的所有制表符替换为 3 个空格(看起来与 tabstop=3 非常相似):

If you want to replace all the tabs in your file to 3 spaces (which will look pretty similar to tabstop=3):

:%s/^I/   /

(其中 ^ITAB 字符)

(where ^I is the TAB character)

来自 VIM 在线帮助:

From the VIM online help:

'tabstop' 'ts'      number  (default 8)
        local to buffer
Number of spaces that a <Tab> in the file counts for.  Also see
|:retab| command, and 'softtabstop' option.

Note: Setting 'tabstop' to any other value than 8 can make your file
appear wrong in many places (e.g., when printing it).

There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
   (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
   will use a mix of tabs and spaces, but typing <Tab> and <BS> will
   behave like a tab appears every 4 (or 3) characters.
2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
   'expandtab'.  This way you will always insert spaces.  The
   formatting will never be messed up when 'tabstop' is changed.
3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
   |modeline| to set these values when editing the file again.  Only
   works when using Vim to edit the file.
4. Always set 'tabstop' and 'shiftwidth' to the same value, and
   'noexpandtab'.  This should then work (for initial indents only)
   for any tabstop setting that people use.  It might be nice to have
   tabs after the first non-blank inserted as spaces if you do this
   though.  Otherwise aligned comments will be wrong when 'tabstop' is
   changed.

这篇关于vim 中的制表符和空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆