在我的.vimrc
中,有这一行:
map <F4> :w<cr>:!python %<cr>
当我使用vim /home/debian/rd.py
编辑python文件并在写入文件后按 F4 时,我收到此错误:
/bin/bash: /home/debian/rd.py: Permission denied
shell returned 126
Press ENTER or type command to continue
1 gphoto2 --get-all-files
1 0x670x700x680x6f0x740x6f0x320xc20xa00x200x2d0x2d0x670x650x740x2d0x610x6c0x6c0x2d0x660x690x6c0x650x730xa
2 gphoto2 --get-all-files
2 0x670x700x680x6f0x740x6f0x320x200x200x2d0x2d0x670x650x740x2d0x610x6c0x6c0x2d0x660x690x6c0x650x730xa
Press ENTER or type command to continue
结果是对的,为什么Permission denied
我得到了结果?
编辑:
我经常使用gphoto2 --get-all-files
将数码相机照片放到我的电脑上,总有一天命令
gphoto2 --get-all-files
无法运行。我对这种现象感到困惑,当我擦除它并再次输入它时,它可以工作。我将两个看起来相同的命令粘贴到一个文件中,请从here下载
并将其另存为\tmp\compare.txt
,
档案内容
gphoto2 --get-all-files
gphoto2 --get-all-files
当我打开vim在python上写一个小代码来查看原因时,
rd.py的内容
myfile=open("/tmp/compare.txt","rb")
for x,line in enumerate(myfile.readlines()):
print x+1,line,
str1=""
for char in line:
str1=str1+hex(ord(char))
print x+1,str1
完成后按 F4 ,我得到输出,原因是命令中的 
。
1 0x670x700x680x6f0x740x6f0x320xc20xa00x200x2d0x2d0x670x650x740x2d0x610x6c0x6c0x2d0x660x690x6c0x650x730xa
2 0x670x700x680x6f0x740x6f0x320x200x200x2d0x2d0x670x650x740x2d0x610x6c0x6c0x2d0x660x690x6c0x650x730xa
str1为0xa0
,其中 
超过str2
答案 0 :(得分:1)
从该错误消息的外观来看,似乎Vim和Python都不对此问题负责。此外,你的python脚本似乎调用了第四个程序,gphoto2,所以此时一切都有点混乱。
在不了解rd.py
的内容的情况下,此处的任何人都可以真正帮助您做出疯狂的推测。我建议您将其内容粘贴到您的问题中,或者找到一种方法让我们可以使用它。
答案 1 :(得分:0)
您是否有权为现有登录信息写入rd.py
?我怀疑:w
失败,因为你没有写权限,但是下一个命令!python rd.py
会运行,给出结果。
尝试$ sudo vim /home/debian/rd.py
并保存在vim
另一种可能性是rd.py
上没有设置可执行位。