1

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

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

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

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

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

5 回答 5

6

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

set expandtab
autocmd FileType make setlocal noexpandtab

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

于 2013-02-16T18:54:57.937 回答
2

您需要使用 shiftwidth,例如,

:set shiftwidth=4
:set expandtab

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

:retab
于 2013-02-16T18:36:23.143 回答
2

Ctrl+V Tab将插入一个文字选项卡,即使expandtab已设置。如果您愿意,可以将其映射到Shift+ Tabwith :inoremap <s-tab> <c-v><tab>

于 2013-02-16T18:47:12.807 回答
0

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

于 2013-02-16T22:31:39.020 回答
0

虽然我通常更喜欢将所有内容都转换为空格,但我在 .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
于 2013-07-12T21:36:48.083 回答