首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在vim中仅使用制表符(而不是空格)

如何在vim中仅使用制表符(而不是空格)
EN

Stack Overflow用户
提问于 2010-09-10 14:13:49
回答 2查看 67.6K关注 0票数 90

white space相比,我更喜欢使用tab (可能与大多数其他语言略有不同)

但我发现,当我在行尾点击Enter时,它会添加一些空格,但不会添加标签。因此,我必须删除它们,然后按选项卡

我想知道如何将vim设置为:

tab to缩进行

  1. 制表符看起来像4个空格,但实际上是一个制表符
  2. 在行尾按enter时,新行开始时只有制表符

我已经在谷歌上搜索了一段时间,但没有找到一个好的答案。提前谢谢你

更新

@Alok提供的答案在大多数情况下都很有效。但我只是发现,有时,这取决于文件类型。例如,如果您正在编辑haml文件,并且vimfiles/indent/中有一个haml.vim,则所有选项卡都将转换为space。因此,如果您希望它仅为tab,则应该修改(或删除)相应的缩进文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-10 14:18:58

您要查找的设置包括:

代码语言:javascript
复制
set autoindent
set noexpandtab
set tabstop=4
set shiftwidth=4

作为单行:

代码语言:javascript
复制
set autoindent noexpandtab tabstop=4 shiftwidth=4

根据您的喜好,可以用smartindentcindent替换autoindent。还可以看看filetype plugin indent on

http://vim.wikia.com/wiki/Indenting_source_code

票数 121
EN

Stack Overflow用户

发布于 2021-09-08 08:50:08

讨论晚了一点,只针对那些努力强制使用标签的人。对于当前版本的vim (>8),需要设置:

代码语言:javascript
复制
:set noet ci pi sts=0 sw=4 ts=4

它扩展为:

代码语言:javascript
复制
:set noexpandtab
:set copyindent
:set preserveindent
:set softtabstop=0
:set shiftwidth=4
:set tabstop=4

我们还可以利用setlocal,将此设置仅用于特定的文件类型

代码语言:javascript
复制
autocmd FileType c,cpp,java,python setlocal noet ci pi sts=0 sw=4 ts=4

有关更详细的参考,请参阅:https://vim.fandom.com/wiki/Indent_with_tabs,_align_with_spaces

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3682582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档