如何在没有错误格式的情况下将源代码粘贴到vim?

时间:2012-03-22 12:50:06

标签: vim indentation

当我复制python代码时,粘贴到vim。缩进都是错误。 但我粘贴到emacs或gedit中,它是对的。

难以描述,让我们看一下截图。 注意:蓝色和黄色线只是使用“缩进指南插件”。 the screenshot

这是源代码示例:

import threading
import time
class timer(threading.Thread): #The timer class is derived from the class threading.Thread
    def __init__(self, num, interval):
        threading.Thread.__init__(self)
        self.thread_num = num
        self.interval = interval
        self.thread_stop = False

    def run(self): #Overwrite run() method, put what you want the thread do here
        while not self.thread_stop:
            print 'Thread Object(%d), Time:%s/n' %(self.thread_num, time.ctime())
            time.sleep(self.interval)
    def stop(self):
        self.thread_stop = True


def test():
    thread1 = timer(1, 1)
    thread2 = timer(2, 2)
    thread1.start()
    thread2.start()
    time.sleep(10)
    thread1.stop()
    thread2.stop()
    return

if __name__ == '__main__':
    test()

2 个答案:

答案 0 :(得分:38)

自动缩进开始了。

禁用它的最简单方法是::set paste

:help paste

'paste'                 boolean (default off)      
                        global
                        {not in Vi}
    Put Vim in Paste mode.  This is useful if you want to cut or copy
    some text from one window and paste it in Vim.  This will avoid
    unexpected effects.
    Setting this option is useful when using Vim in a terminal, where Vim
    cannot distinguish between typed text and pasted text.  In the GUI, Vim
    knows about pasting and will mostly do the right thing without 'paste'
    being set.  The same is true for a terminal where Vim handles the
    mouse clicks itself.

答案 1 :(得分:11)

Karoly对paste选项的回答是正确的。

然后,您可以在.vimrc中添加映射,以快速启用/禁用“粘贴”选项:

例如,我使用 set pastetoggle=<F10>