我有几个运行良好的python脚本,但是如果我尝试从bash运行它,一个脚本(截至今天上午)开始给我这个错误:
: 无此文件或目录
我可以通过运行“破损”脚本python script_name.py并四处查看后,发现我的总体思路是,我的hashbang的行尾已更改(无提示),因此我查看了工作脚本的行尾并通过:set listVI中的选项破坏了脚本,如该问题所示->在文本文件中查看行尾 两个文件似乎都以相同的字符(a $)结尾,因此我对如何从此处继续感到困惑。具体来说,如果set list不是正确的方法,如何实际“看到”行的结尾。
python script_name.py
:set list
$
set list
PS:该脚本是可执行文件,而shebang就在其中。我说过,正是这个1个脚本在周末之前运行良好,但是从今天早上开始,我就收到了这个错误消息。
-编辑:-
通过运行脚本dos2unix确实可以使其再次正常工作,但是我想知道以任何方式可视化VI(M)中的行尾,或者为什么Geany首先以某种方式转换了行尾(因为我从未从事过dos / Windows系统)。
dos2unix
从上面的注释中,您看起来好像有dos行的结尾,因此hashbang行未得到正确处理。
:set listVim中不显示行尾样式,因为该选项仅在读/写文件时使用。在内存中,行尾始终是行尾。用于文件的行尾样式保留在Vim per- file选项中,这个名字很奇怪fileformat。
fileformat
要从Vim中查看/更改行尾样式,可以使用以下命令:
:set fileformat :set ff
它会显示dos或unix。您unix当然要;-)。
dos
unix
要快速更改它,可以使用以下方法保存文件:
:w ++ff=unix
或者,如果您喜欢:
:set ff=unix
然后正常保存文件。
因此,请查看所有血腥细节:help fileformat,:help file-formats然后:help fileformats
:help fileformat
:help file-formats
:help fileformats