什么是(g)Vim中的"非标签"序列?

Owe*_*enP 14 vim indentation

这是我很长一段时间的烦恼.

(Nitpicky部分:我更喜欢4个空格字符来表示字符.输入"tab"而不是解释它更容易.当我说"tab"时,我指的是"当你按Tab键时发生的动作",这是可能更简单地称为"增加缩进".)

我在编辑文档时使用smartindent,其中缩进具有一定的意义.在"哑"窗口文本编辑器中,我可以按Shift + Tab删除选项卡,或者更恰当地说,减少当前行的缩进级别.我无法弄清楚如何在Vim中从编辑模式执行此操作; Shift + Tab似乎与Tab相同.

我知道在命令模式下<<会减少缩进.我想在编辑模式下等效.这些是我到目前为止找到的解决方案以及为什么我不喜欢它们,尤其可能是答案的关键.

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

也许我可以设置一个选项?也许我可以重新左转箭头?(如果需要重新绑定请详细解释;我从未钻研过重新配置(g)Vim.

小智 28

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

请注意,这些击键仅适用于插入模式(在命令模式下使用<<和>>作为等效项).

  • 很好,我也不知道那个:).无论如何,如果你真的想要,你现在也可以在插入模式下将<TAB>和<S-TAB>映射到那些笔画.将.vimrc(或windows上的_vimrc)放入两行,不带引号:"inoremap <TAB> <CT>"和"inoremap <S-TAB> <CD>". (2认同)