[英]Python Script from Notepad++ Error in Emacs
我有一個大型的Python腳本庫,是用Notepad ++和Pycharm編寫的,我想開始用Emacs運行它們。 但是,有關這些文件的某些信息導致Emacs中出現語法錯誤。
作為最小的工作示例,我將以下內容保存在Notepad ++中:
print('hello world')
然后,我在Emacs 22.3.1中打開它,然后轉到Python-> Start Interpreter。 我鍵入Cc Cc,然后在解釋器屏幕中收到以下錯誤:
File "/tmp/py110681cL", line 1
print('hello world')
^
SyntaxError: invalid syntax
這使得它看起來像是在行的開頭正在讀取的一個縮進,但是我在Emacs文本編輯器窗口中看不到它。 我試圖清理空白無濟於事。
如果我在Emacs中創建一個新文件並手動鍵入相同的代碼,則按照此過程運行就可以了。
我不想手動重新輸入所有先前存在的腳本,那么如何刪除此幻像空間? Google沒有幫助...
更新:Notepad ++用[CR] [LF]代表了我的新行。 在Notepad ++中刪除回車符允許它在Emacs中運行。
問題似乎是notepad ++使用\\r\\n
(回車+換行)表示換行符,而Emacs將\\r
解釋為無效的縮進(因為它是空格)。
為了防止將來發生這種情況,可以轉到Settings -> Preferences... -> New Document -> Format (Line ending)
然后選擇Unix/OSX
。 \\r\\n
是Windows表示換行符的方式,在Unix / OSX / Linux中為\\n
。 (舊Mac只是\\r
)。
要修改現有文件,您可以執行以下操作:
find /path/to/py/files -type f -iname '*.py' -exec sed $'s/\r$//' "{}" +;
(在/path/to/py/files
查找所有.py
文件,並在它們上執行sed $'s/\\r$//'
(替換所有\\r
,然后在行尾沒有任何內容)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.