gpt4 book ai didi

Emacs 中 Notepad++ 中的 Python 脚本错误

转载 作者:行者123 更新时间:2023-12-01 03:36:00 24 4
gpt4 key购买 nike

我有一个用 Notepad++ 和 Pycharm 编写的大型 Python 脚本库,我想开始使用 Emacs 运行它们。但是,这些文件的某些内容导致 Emacs 中出现语法错误。

作为最小工作示例,我在 Notepad++ 中保存了以下内容:

print('hello world')

然后,我在 Emacs 22.3.1 中打开它,然后转到 Python --> Start Interpreter。我输入 C-c C-c,然后在解释器屏幕中出现以下错误:

File "/tmp/py110681cL", line 1
print('hello world')
^
SyntaxError: invalid syntax

这使得它看起来像是在行的开头读取了一个缩进,但我在 Emacs 文本编辑器窗口中没有看到它。我尝试清理空白但无济于事。

如果我在 Emacs 中创建一个新文件并手动键入相同的代码,则按照此过程它运行得很好。

我不想手动重新输入所有预先存在的脚本,那么如何删除这个幻像空间呢?谷歌没有帮助...

更新:Notepad++ 用 [CR][LF] 代表我的新行。删除 Notepad++ 中的回车符可以使其在 Emacs 中运行。

最佳答案

问题似乎是 notepad++ 使用 \r\n (CARRIAGE RETURN + LINE FEED) 来表示换行符,而 Emacs 将 \r 解释为无效缩进(因为它是空格)。

为了防止将来发生这种情况,您可以转到设置 -> 首选项... -> 新文档 -> 格式(行结尾) 并选择 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 替换为空)

关于Emacs 中 Notepad++ 中的 Python 脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40387871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com