【问题标题】:How to set up vim allowing to use tabs and 4spaces如何设置 vim 允许使用制表符和 4 个空格
【发布时间】:2013-02-16 18:33:47
【问题描述】:

我通常希望始终使用四个空格来缩进代码。 不幸的是,例如 Makefiles 强制使用制表符作为分隔符。

我现在的想法是将 tab 键设置为四个空格,并为真正的 tab 设置一些额外的键(例如 tab + shift)。

我该如何设置这样的东西?

目前我的 ~/.vimrc 看起来像:

syntax on
:set tabstop=4
:set cindent
:set autoindent

【问题讨论】:

    标签: vim editor vi


    【解决方案1】:

    你可能也喜欢这样的东西:

    set expandtab
    autocmd FileType make setlocal noexpandtab
    

    这将始终将制表符转换为空格,除非您正在编辑 Makefile。

    【讨论】:

    【解决方案2】:

    Ctrl+V Tab 将插入文字标签,即使设置了expandtab。如果您愿意,可以使用:inoremap <s-tab> <c-v><tab> 将其映射到 Shift+Tab

    【讨论】:

      【解决方案3】:

      你需要使用shiftwidth,例如,

      :set shiftwidth=4
      :set expandtab
      

      您可能还需要使用此命令将现有制表符转换为空格:

      :retab
      

      【讨论】:

      • 我还能使用原生标签吗?
      • 我现在如何做一个真正的标签?
      • 您可以在插入模式下使用 来插入一个真正的标签。
      【解决方案4】:

      :filetype plugin on 应该足以让 tab 键始终在 makefile 中插入真正的制表符,使用文件类型检测。 见:help vimrc-filetype

      【讨论】:

        【解决方案5】:

        虽然我通常更喜欢将所有内容都转换为空格,但我在 .vimrc 中有一个特定的命令来防止在 makefile 中这样做。首先我激活 expandtab 并设置 shiftwidth,然后我关闭了 makefile 的 expandtab。顺序在这里很重要。

        set shiftwidth=4
        set expandtab
        if has('autocmd')
            autocmd FileType make set noexpandtab
        endif
        

        我还推荐以下内容,因为它们有些相关并且可能会有所帮助:

        set softtabstop=4
        set shiftwidth=4
        set smarttab
        set autoindent
        

        【讨论】:

          猜你喜欢
          • 2012-06-02
          • 1970-01-01
          • 1970-01-01
          • 2010-09-09
          • 2021-10-24
          • 2019-08-08
          • 2017-01-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多