Vim - `=`(equalprg)没有使用expandtab。

时间:2016-09-16 04:54:53

标签: vim

我是一名python开发人员,我在一家公司工作,其中缩进的python约定是两个空格而不是四个空格。

当我从vim粘贴代码时,我注意到了这个问题:

这是我要粘贴的文字:

def four_spaces():
    print "hello"

使用<cmd> c从Chrome复制此文本。请注意,我在Mac OS X的iTerm中使用vim

以下是我使用mac:

在vim中粘贴此内容的步骤
  1. :set paste
  2. 上启用粘贴模式
  3. a 追加模式
  4. <Cmd> v 在Mac中粘贴
  5. Snippet 4 中显示的结果。 请注意,它有4个空格
  6. v kk *可视模式选择上述
  7. = 修复缩进
  8. Snippet 7 中显示的结果。 请注意^ I
  9. 代码段4(列表模式开启)

    def four_spaces():$
        print "hello"$
    

    代码段7(列表模式开启)

    def four_spaces():$
    ^Iprint "hello"$
    

    对于那些感兴趣的人来说,这就是我的.vimrc文件: https://gist.github.com/anonymous/20b2a1f43125c0d39932bf430c8137dc

    问题:

    我现在面临的问题是,当我使用=时,我有一个制表符而不是2个空格。这是有问题的,因为python依赖于制表符缩进,并且它不允许制表符和空格共存在一起。我想知道怎么来=不使用expandtab。

    问题: 如何使用<Cmd> v粘贴以及:

    1. Vim将我的代码正确格式化为2个空格
    2. 如何让vim的equalprg(=)使用expandtab

0 个答案:

没有答案