vim - (g)Vim 中的 "un-tab"序列是什么?

标签 vim indentation

这是我长期以来的烦恼。

(挑剔的部分:我更喜欢 4 个空格字符而不是制表符。输入“制表符”比解释要容易得多。当我说“制表符”时,我的意思是“按下制表符键时发生的操作” ”这可能更简单地表述为“增加缩进”。)

我在编辑缩进具有一定意义的文档时使用 smartindent。在“哑”Windows 文本编辑器中,我可以按 Shift+Tab 来删除选项卡,或者更恰本地说,减少当前行的缩进级别。我不知道如何在 Vim 的编辑模式下执行此操作; Shift+Tab 似乎与 Tab 的计数相同。

我知道在命令模式下<<将减少缩进。我想要编辑模式下的等效内容。这些是我迄今为止找到的解决方案以及我不喜欢它们的原因,其中一个可能是答案的关键。

  1. 使用 Notepad++ 或其他一些愚蠢的编辑器。我这样做已经有几年了,但我真的很想念 Vim。
  2. 退出编辑模式,使用<<,进入编辑模式。这只是将光标置于第 0 列;如果我想要这个,我就不会尝试 smartindent。
  3. 停止使用智能缩进。我不会经常减少缩进,因为我需要保持相同的缩进级别;这将导致生产力的损失。
  4. 左箭头键似乎可以将缩进减少一级。我宁愿做一些不用离开主排就能做的事。这是最有前途的选择。

也许我可以设置一个选项?也许我可以将左箭头重新绑定(bind)到某个东西? (如果需要重新绑定(bind),请详细解释;我从未深入研究过重新配置 (g)Vim。

最佳答案

您可以使用 Ctrl+D 备份一个制表位。这实际上将整行移动到左侧一个制表位; Ctrl+T 向右执行相同的操作。

请注意,这些击键仅在插入模式下有效(在命令模式下使用 << 和 >> 等效)。

关于vim - (g)Vim 中的 "un-tab"序列是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874415/

相关文章:

Python:如何将制表符转换为空格?

vim - 使用变量设置 Vim 选项

ruby-on-rails - 如何在 VIM + Rails.vim + Ubuntu 中运行当前的 RSpec 测试?

vim - 如何使用<leader>\打开或关闭NERDTree和标签栏?

android - 如何在 Android 应用程序上为 ImageButton 添加效果?

reactjs - 为什么 'create-react-app' 总是给我 2 个而不是 4 个缩进空间?

java - 如何在 Netbeans 中自动缩进?

python - 意外的缩进错误,但缩进看起来是正确的

vim - 我不小心将 'n' 命令映射到 'N',反之亦然。我做了什么,我该如何扭转它?

vim - 添加行的快捷方式