我通常在emacs中編寫python。python程序如何判斷它是否在emacs中運行?
我經常想要重新評估我的文件,我可以使用Ctrl-C Ctrl-C做到這一點,這會導致解釋器重新載入整個文件,然後我可以繼續播放。
,所以如果我正在寫一個程序,它輸入,我通常會用兩行發現自己:
lines = open("/home/jla/inputfile").readlines()
#lines = fileinput.input()
,第一行是「同時發展做什麼」(從已知例如閱讀輸入文件) 第二個是(從標準輸入讀取,或提供的文件名)
顯然,這是不好的「在命令行運行時做什麼」,所以我想:
if in_emacs():
lines = open("/home/jla/inputfile").readlines()
if run_from_shell():
lines = fileinput.input()
else:
oops()
我知道如何寫oops()
,但我有點卡住in_emacs()
和run_from_shell()
,我不知道你聰明的人可以幫忙。
就這樣,在很多語言裏,我已經有些煩人的東西已經過時了。很簡單。非常感謝你! – 2012-03-24 09:08:25
使用'Mx shell-command'時不起作用,只需要嘗試'M-!',然後輸入命令'python -c「import os; print [k for k in os.environ.keys ()如果k.startswith('EMACS')]「'。對我來說,結果是'['EMACSPATH','EMACSLOADPATH','EMACSDOC','EMACSDATA']'。變量'EMACSPATH'(在我的答案中提到)被設置在shell和一次性命令中,因此可能比'EMACS'更好。 – sanityinc 2012-03-25 19:01:22