在VIM中将空间还原为TAB的最快方法

ski*_*ppr 38 vi vim

我一直是用V空间(通常为4)替换VIM中的TAB的人.我在.vimrc配置文件中几乎总是使用的四行是:

set tabstop=4 

set shiftwidth=4

set expandtab

syntax on
Run Code Online (Sandbox Code Playgroud)

基本上,有些时候我需要使用单个TAB(例如Makefile),除了离开文件,编辑我的.vimrc,然后重新加载感兴趣的文件,我不知道如何解决这个问题.

也就是说,最快的方式(从VIM内部)恢复使用TABS,然后恢复到原来的设置是什么?我正在寻找最麻烦,最少击键的解决方案.

ski*_*ppr 48

假设您将其命名为"makefile"而不是"Makefile",VIM将自动为生成文件启用TAB.不确定为什么VIM仍然没有检测到具有较低大写差异的类型,但这就是生命.(@Sedrik)

除此之外,其他替代解决方案是:

文件类型绑定(@ThorstenS @tungd):

autocmd FileType make setlocal noexpandtab

实时交换机(@ThorstenS):

假设问题中提到的.vimrc配置,请执行以下操作:

:set noet (从空格切换到TAB)

:set et(转回)

  • 你的意思是`:set noet`和`:set et`,我猜(这是关于冒号的位置). (2认同)
  • 唔。“makefile”和“Makefile”(Ubuntu 16.04 上的 Vim 7.4.1689)的行为对我来说是相同的。无论如何,`.vimrc` 中的 `autocmd` 行工作得很好。 (2认同)

小智 21

只需使用插入模式下可用的魔法转义键即可.

在*NIX上,当您处于插入模式时,它默认为^ V. 在Windows上,你需要找出神奇的逃脱角色是什么 - ^ V取其他东西; 我想它可能是^ Q或^ S?

所以!在你的makefile中:

this: this.c
<C-V><Tab>cc this.c
Run Code Online (Sandbox Code Playgroud)

适用的通常含义:

意味着命中ctrl-V(你应该看到^隐藏在光标下面) - 点击tab键.答对了.

适合我.

注意:如果您在阅读文件时使用vim设置或启动代码打破标签,这显然是一个短期修复.我更喜欢学习如何使用retab命令来确保文件是标签清理的,因为除非我有意识地选择这样做,否则我不喜欢触摸文件.


Tho*_*enS 11

只需输入set noexpandtab.也许你将它绑定到一个功能键.

  • 或者更好,将其绑定到文件类型:`autocmd FileType make setlocal noexpantab` (6认同)