Vim缩进(Python编程)

时间:2014-09-20 11:44:12

标签: python vim

我对Vim相当新,但现在已经使用了一两个月。我使用了几个不同的插件,但现在遇到了问题...

每当我使用Python进行编码时,我都希望:set autoindent开启,因此每当我创建新行时,我都不必进行所有缩进。但! ...例如,如果我写下这段代码:

def foo(self):
   pass

   def __init__(self):
      var = 42

点击“输入”#39;在Vim之后' 42',然后我的自动注册将自动制作两个标签缩进,我已经自动转换为6个空格(我不记得它是{{1}或者如果它是:set tabstop=3那么做的话。但是,让我们说,我对这条新行感到后悔,并想删除它。我已经习惯了其他IDE(比如Eclipse或Dreamweaver,我可以只退一次,这将删除新行并将我带到上面一行的末尾。

我知道,我可以按下' dd',然后删除该行...但是当我这样做时,我会进入'插入模式'所以为了做到这一点,我必须退出插入模式,按“dd'”,然后再次进入插入模式,在我看来,对于这样一个简单的操作来说是非常麻烦的。

天啊,神圣的Vim-masters!听听我的祈祷,帮助我增强我的Vim力学!

3 个答案:

答案 0 :(得分:5)

我使用的以下选项:

  • Ctrl + D:Dedent一级(不删除该行的内容)
  • 0,Ctrl + D:Dedent all(不删除该行的内容)
  • Ctrl + U:删除光标前(左)的所有字符,并将光标移动到行的开头。

尝试:help i_ctrl-d / :help i_0_ctrl-d / :help i_ctrl-u

答案 1 :(得分:1)

撤消过早输入按下是一项简单的任务,您不应该被迫退回到正常模式。假的建议有用,但我更喜欢做<c-w><c-w>('ww'持有ctrl),它代表删除你输入的最后一个单词(光标左边的单词)。您可以<c-w>映射到在空行上执行<c-w><c-w>的函数,但坦率地说,我不相信这样做只是为了避免简单的双击。

答案 2 :(得分:1)

您可以使用insert-normal模式,使一个命令进入正常模式,然后立即返回插入模式。

  • C-o(insert-normal)
  • dd或d $

如果你想重新使用这条线......

  • C-r&#34; (从默认寄存器粘贴)

您也可以将insert-normal用于许多其他事情。