Подтвердить что ты не робот

Как вставить исходный код в vim без формата ошибки?

Когда я копирую код 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()
4b9b3361

Ответ 1

Автоматический отступ вступил.

Самый простой способ отключить его: :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.

Ответ 2

Ответ Karoly правилен относительно опции paste.

Затем вы можете добавить сопоставление в свой .vimrc, чтобы быстро включить/отключить параметр "вставить":

Например, я использую set pastetoggle=<F10>