0

ときどき、私の Python スクリプト内の ID が突然、破損していると言えます。ID が突然変更され、プログラムが失敗します。

cat を使用してファイルを見ると、識別が間違っていることがわかります。しかし、VIM内では問題なく表示されます。ここに出力と設定があります。

何か案は ???

「cat -e」経由

              validate_hostname = RegexValidator(regex=r'[a-zA-Z0-9-_]*\.[a-zA-Z]{2,6}',message="Enter a valid hostname.")$
           validate_hostname(host_input)$
   except ValidationError, e:$
               print type(e)$
       print str(e[0])$
       error = str(e)$

else:$
       error = "Please complete all fields."       $
   $
   print error$
   return [error,host_input,record_input]$

VIM内で

                   validate_hostname = RegexValidator(regex=r'[a-zA-Z0-9-_]*\.[a-zA-Z]{2,6}',message="Enter a valid hostname.")
                   validate_hostname(host_input)
           except ValidationError, e:
               print type(e)
               print str(e[0])
               error = str(e)
       else:
           error = "Please complete all fields."

       print error
       return [error,host_input,record_input]

私の.vimrcは次のようになります。

syntax on
se bg=dark
set tabstop=4      " insert 4 spaces when a tab is pressed
set shiftwidth=4   " change the number of space characters inserted for indentation
set expandtab      " insert spaces whenver a tab key is pressed
4

2 に答える 2

3

スペースとタブが混在しているようです。コードはvimと でcat -e(または単にless) 異なって見えますset tabstop=4

vim問題ないように見える場合は、:retab修正する必要があります。これにより、タブ文字が表示されているスペースの量に置き換えられます。結果は同じように見えますが、すべてのタブ文字がなくなります。

tabstop実行する前に、適切な値を取得することが重要ですretab。たとえば、逆の問題が発生した場合、コードは では正しいように見えますが、lessでは壊れているように見え、その状態で実行すると、Python スクリプトが壊れますvim:retab

vim のタブに関する次の素晴らしい記事をご覧ください。

http://vimcasts.org/episodes/tabs-and-spaces/

特に、これらの設定をに追加する必要があると思います.vimrc:

set softtabstop=4
set smarttab
于 2013-09-21T08:19:45.783 に答える