2012-12-07 32 views
5

如果我的.emacs是空的,或者如果它僅包含線在Emacs Java的@覆蓋的壓痕的正確處理

(require 'cc-mode) 
(add-to-list 'c-offsets-alist '(annotation-top-cont .0)) 

(add-hook 'java-mode-hook 
      '(lambda() (c-set-offset 'annotation-top-cont 0))) 

然後,而不是用@覆蓋

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

保護帶有受保護對齊出現而不是相對於@Override縮進

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

我應該對我的.emacs做些什麼改變,所以t上面的頂部樣品出現壓痕?

+0

我認爲你應該考慮使用Eclipse或其他IDE;它會極大地提高你的生產力。我使用emacs很多,但從來沒有用於Java。 –

+0

我同意Eclipse非常棒。我在Eclipse和emacs之間來回切換(而這個問題是兩者之間縮進的唯一區別)。此時我發現兩者都是必要的,因爲emacs擁有Eclipse缺乏的強大功能。 – Calaf

回答

0

請看annotation-top-cont樣式爲c-offsets-alist的定義。要使不識別,您需要將其設置爲0.更多信息,請參閱CC-mode manual

+0

對不起,Alex,你能再檢查一次嗎? annotation-top-cont不足以解決問題。 – Calaf

+0

我認爲問題在於您在全局設置了c-offset-alist,但是在文檔中指出,如果以任何方式設置此變量,則該變量將變爲本地。你需要在'java-mode-hook'函數中使用'(c-set-offset'annotation-top-cont 0)'... –

+0

它還在工作中。我修改了問題以包含您的建議。 – Calaf