Re: [emcs] emacs新手的幾個問題

作者: YuiHirasawa (平澤 唯)   2015-03-24 02:46:36
※ 引述《ireullin (raison detre)》之銘言:
: 標題: [emcs] emacs新手的幾個問題
: 時間: Sun Mar 22 14:42:31 2015
:
: 因為是新手,所以很多東西還不熟悉
: 請多多包涵
: 我使用的是emacs24.4
: 都是在-nw狀態下執行
: 以下是我的問題
:
: 1.設定tab為四個空格
: 不管開啟甚麼檔案
: 都希望按下tab鍵之後是四個空格
: 網路上google了很多
: 可是每個人的解法都不一樣
: 我試了好像也不行
:
這個要求有點麻煩,因為每種程式語言的major-mode可能都會自己自訂他的tab
會有怎樣的功能(精確的說,是該major-mode會在自己的map中把tab給bind到
哪個function),像是內建的python-mode按多次tab會來回indent。這是沒辦
法的,你只能手動覆蓋預設的binding。
所以要達到你的要求,你必須手動明確明確指定哪些major-mode的map要讓tab
綁到「插入四個空格」。然後...學點Elisp吧XD
按C-h v 輸入 major-mode 可以查看目前的major-mode實際叫做什麼名子,
mode名稱-map就是該mode的map名稱:
(defun my-tab-insert-space ()
(interactive)
(insert " "))
(mapc (lambda (mode-name)
(define-key (symbol-value mode-name) (kbd "<tab>")
'my-tab-insert-space))
'(emacs-lisp-mode-map
lisp-interaction-mode-map
cperl-mode-map
python-mode-map
;; 繼續加上你要的mode
))
不過在這個設定之前,必須先加上(require '你要的mode)不然他會說沒有
這個map之類的錯誤。
: 2. 我在xwindow下面的console按著shift加上方向鍵
: [email protected]/*
作者: ireullin (raison detre)   2015-03-24 11:47:00
謝謝您熱心的回答,我開始在看lisp了在這之前我第一個問題已經自己寫出功能解決掉了其他問題也在努力嘗試中話說我最近還真的在看k-on 剛看到了簽名檔還心虛了一下=,,=
作者: letoh (我)   2015-04-05 14:14:00
其實要看是單純 tab 還是縮排,設 tab 寬度就是 tab-width縮排就複雜了,簡單來說 indent-tabs-mode 有一點影響但`按下 tab 鍵'的自動縮排行為,得看各語言的風格設定並不是單純調整 tab 或 4空白 設定就能搞定像 cc-mode 裡就預設提供多種風格,每一種縮排都是不同的我個人其實不建議暴力把 tab 換成單純的「插入空白」在編輯程式碼的情況,tab 也可能是將程式碼移動到正確縮排「移動」包含往前移與往後移,而單純插入空白只有一種如果你喜歡一切自己調整就另當別論,但就喪失 emacs 優點了
繼續閱讀

Links booklink

Contact Us: admin [ a t ] ucptt.com