繁体   English   中英

Vim缩进(Python编程)

[英]Vim indentation (Python programming)

我对Vim并不陌生,但现在已经使用了一个月或两个月了。 我正在使用几个不同的插件,但现在陷入了一个问题......

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

def foo(self):
   pass

   def __init__(self):
      var = 42

然后在'42'之后点击Vim中的'Enter',然后我的自动注册将自动制作两个标签缩进,我已经自动转换为6个空格(我不记得是否是:set tabstop=3或者它是:set shiftwidth=3就可以了。 但是,让我们说,我对新行感到后悔,并想删除它。 我已经习惯了其他IDE(比如Eclipse或Dreamweaver,我可以只退一次,这将删除新行并将我带到上面的行尾。

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

哦,神圣的Vim-masters在天空中! 听我的祈祷,并帮助我增强Vim力学!

这是我使用的选项:

  • Ctrl + D:Dedent一级(不删除行的内容)
  • 0,Ctrl + D:全部取消(不删除行的内容)
  • Ctrl + U:删除光标之前(左侧)的所有字符,然后将光标移至行首。

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

取消过早的Enter键是一个简单的任务,因此您不应该被迫退回到正常模式。 falsetru所建议的功能是可行的,但我更喜欢使用<cw><cw> (持有ctrl的'ww'),它表示删除您键入的最后一个单词(光标左侧的单词)。 可以<cw>映射到在空行上执行<cw><cw>的函数,但是坦率地说,我不认为避免简单的双击是不值得的。

您可以使用insert-normal模式,该模式将您带入一个命令的普通模式,然后立即回到insert模式。

  • Co (正常插入)
  • dd或d $

如果您想重复使用线路...

  • Cr “(从默认寄存器粘贴)

你也可以使用insert-normal来处理很多其他事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM