8
emacs中的ESS/Stata模式錯誤地縮進緊跟在操作符後面的行後面的行。它似乎錯誤地將這些行解釋爲多行命令。修復ESS/Stata中令人討厭的EMACS標籤行爲
例如:
gen foo = 1
/* generate another variable */
gen bar = 1
線 「根棒= 1」 不應被縮進。它看起來像EMACS解釋註釋中作爲操作符的尾部斜槓,並認爲這行代碼跨越兩行。
實際上,stata中的多行命令有3個尾部斜線,而沒有3個尾部斜槓的換行符表示語句結束。例如下面的縮進將是正確的:
gen bar = 1
gen ///
foo = 1
有什麼我可以放在我的.emacs來糾正這種行爲?我不想完全放棄自動Tab鍵 - 除了/ *看起來像這樣的* /以外的所有內容,它都可以很好地工作。
感謝,
PNJ
['defadvice'](http://www.gnu.org/software/emacs/elisp/html_node/Advising-Functions.html)可能是這裏更清潔的替代。 – jfs
泰勒,我將你的代碼複製到我的.emacs中,但行爲沒有改變。我的*消息*緩衝區中沒有錯誤或任何明顯的錯誤。任何進一步的建議或我可以做的事情來幫助診斷? – pnj
如果將doc-string添加到重新定義的函數中,則可以檢查它是否已用「C-h f ess-continued-statement-p」加載。如果您沒有看到文檔字符串,則修改後的代碼不會被評估。這表明有些東西是用'eval-after-load'命令運行的,比如引用了錯誤的模式。我將在上面添加一個文檔字符串。 – Tyler