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