我是emacs的新手(使用版本23.3),我想設置默認的tab鍵,以在verilog模式下插入3個空格而不是tab字符。我在堆棧溢出中找到了許多關於這個的帖子。其中一些是: -如何在verilog模式下設置emacs使用3個空格而不是製表符?
How To Force spaces instead of tabs regardless of major mode
Why might my Emacs use spaces instead of tabs?
Emacs global configuration of tabs
但他們似乎並不用Verilog模式下工作。這是我的.emacs文件看起來像
(custom-set-variables
'(tab-stop-list ('(3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120)))
'(verilog-case-indent 3)
'(verilog-indent-level-directive 0)
'(verilog-indent-level 3)
'(verilog-tab-always-indent nil))
(custom-set-faces
)
(add-hook 'after-change-major-mode-hook
'(lambda()
(setq-default indent-tabs-mode nil)
(setq tab-width 3)))
(setq-default indent-tabs-mode nil)
(setq-default tab-width 3)
(setq-default standard-indent 3)
如果我嘗試編輯一個文本文件,安裝完美的作品,並插入3個空格,而不是一個標籤。但是,當我嘗試編輯verilog文件(.v)時,它仍會插入製表符。我可以選擇整個文本,並做M-x unabify以獲得所需的結果,但有沒有另一種直接的解決方案?
感謝Alex,但我仍然有問題。通過不同的選項瀏覽,我找到了4個選項,名爲1)Verilog auto hook,2)Verilog在自動掛鉤之前3)verilog刪除自動掛鉤,4)verilog在刪除自動掛鉤之前。我應該改變這些值使它工作嗎?\ – Pulimon
這很奇怪 - 我只是再次檢查這個函數(從bzr gnu emacs 24),當我設置'indent-tabs-mode'爲't',那麼我得到源代碼中的標籤,但是當我將它設置爲'nil',然後我得到空間... 你可以檢查 - 也許你有一些鉤子,這是Emacs init代碼的一部分? 'verilog-mode-hook'中列出了哪些函數? –
好吧,我檢查了'verilog-mode-hook',它說'my-verilog-hook'問題依然存在。 Btb我使用emacs 23.3版,從[emacs官方網站](http://www.gnu.org/s/emacs/)下載。可能是一個在版本24中得到修復的bug。是的,我確實得到了一個臨時工作[在這裏](http://www.veripool.org/issues/345-Verilog-mode-can-t-get-untabify-保存到工作)這似乎工作正常。當我保存文件時,製表符將被轉換爲空格 – Pulimon