emacs问题求助

Vim、Emacs配置和使用
头像
tpli
帖子: 250
注册时间: 2007-01-16 16:14
来自: 郑州
送出感谢: 4 次
接收感谢: 0
联系:

emacs问题求助

#1

帖子 tpli » 2010-12-29 17:38

有好多问题要问,干脆都在这一个帖子里吧。


===
如何根据扩展名不同选择不同的加亮方式: 已解决

代码: 全选

(add-to-list 'auto-mode-alist '("\\.extension\\'" . your-favorite-mode))
===
目前问题,安装cedet后
配置文件里面设置为以下

代码: 全选

(setq semanticdb-project-roots
      (list
       (expand-file-name ".")))
(global-set-key [C-tab] ' senator-completion-menu-popup)
但是 C-tab 时只有有些函数能够自动补全,变量和一些函数都不能自动补全,请问是什么问题:已解决
这个问题已经想明白了,emacs下的这个补全是和程序架构有关的,但是vim下面的 C-p 或者 C-n 是关注的单词本身,可以从当前文件中选择匹配,或者从系统定义的头文件里选择匹配(个人猜测,应该是这样),也就是说一串字符,不是什么变量,也不是什么函数,先输入几个字符,然后用vim的C-p就能匹配出来,但是emacs却不能补全。emacs只能找到变量的定义、函数的定义才能补全。
当然,emacs也肯定可以补全当前文本中匹配的字符串而不考虑程序的结构,谁给指导一下怎么才能实现好吗。已解决可以选择 auto-complete
另外有个小问题,比如一个结构体里面有两个 char buf_a[100]; char buf_b[100]; 此时 C-tab 就会弹出一个窗口,选择的话只能通过鼠标吗?感觉太不方便了,google了不少,没说可以用什么快捷键啊。

===




















[del]这个对于一般的通用的文件倒是正常的,比如.c .sh 或者别的文件,emacs都会选择适合的加亮规则。
但是有时候会自己定义一个自己用的扩展名,类似备忘什么的,里面的有些东西会和c的语法很相似,这个时候emacs启动,但是因为扩展名不是通用的扩展名,所以emacs就不会加亮,我还要手动 m-x c-mode 运行一下才行。
我想让emacs默认启动编译这些文件的时候也选择c模式加亮。文件的扩展名有自己来定。

一句话总结就是让emacs根据扩展名(不是通用的扩展名)的选择加亮方式 :em06 [/del]

thx
上次由 tpli 在 2010-12-31 20:32,总共编辑 5 次。
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs如何根据后缀名设置不同的加亮模式

#2

帖子 anewbie » 2010-12-29 19:33

代码: 全选

(add-to-list 'auto-mode-alist '("\\.extension\\'" . your-favorite-mode))
头像
tpli
帖子: 250
注册时间: 2007-01-16 16:14
来自: 郑州
送出感谢: 4 次
接收感谢: 0
联系:

Re: emacs如何根据后缀名设置不同的加亮模式

#3

帖子 tpli » 2010-12-29 22:57

谢谢楼上 :em01

请问你是怎么找到的啊。
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs如何根据后缀名设置不同的加亮模式

#4

帖子 anewbie » 2010-12-30 10:11

tpli 写了:谢谢楼上 :em01

请问你是怎么找到的啊。
怎么找到的,真忘了。

用这玩意儿好些年了,无论换作是谁,都会知道的,经验而己。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: emacs如何根据后缀名设置不同的加亮模式

#5

帖子 eexpress » 2010-12-30 10:26

按照扩展名识别,太假了。
● 鸣学
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs如何根据后缀名设置不同的加亮模式

#6

帖子 anewbie » 2010-12-30 11:15

eexpress 写了:按照扩展名识别,太假了。
自然可以按照文件内容识别,magic-mode-alist 之类,但有些人就喜欢用扩展名来区分。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: emacs如何根据后缀名设置不同的加亮模式

#7

帖子 eexpress » 2010-12-30 11:39

vim的招数那么多。还可指定路径。
● 鸣学
头像
tpli
帖子: 250
注册时间: 2007-01-16 16:14
来自: 郑州
送出感谢: 4 次
接收感谢: 0
联系:

Re: emacs如何根据后缀名设置不同的加亮模式

#8

帖子 tpli » 2010-12-30 11:45

谢谢。

另外,怎么继续上面的设置 c-mode-style呢
因为如果把c-mode-style 'bsd 写到配置文件的话,当启动的文件不是 c-mode时,emacs会报错,如何让emacs选择c-mode后,再自动设置 style?

thx
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs如何根据后缀名设置不同的加亮模式

#9

帖子 anewbie » 2010-12-31 9:03

eexpress 写了:vim的招数那么多。还可指定路径。
可以按文件名,文件内容,时间,属主,路径,大小……及其任意组合来选择 mode.
tpli 写了:谢谢。

另外,怎么继续上面的设置 c-mode-style呢
因为如果把c-mode-style 'bsd 写到配置文件的话,当启动的文件不是 c-mode时,emacs会报错,如何让emacs选择c-mode后,再自动设置 style?

thx
c-mode-hook
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs问题求助

#10

帖子 anewbie » 2010-12-31 12:12

tpli 写了: 这个问题已经想明白了,emacs下的这个补全是和程序架构有关的,但是vim下面的 C-p 或者 C-n 是关注的单词本身,可以从当前文件中选择匹配,或者从系统定义的头文件里选择匹配(个人猜测,应该是这样),也就是说一串字符,不是什么变量,也不是什么函数,先输入几个字符,然后用vim的C-p就能匹配出来,但是emacs却不能补全。emacs只能找到变量的定义、函数的定义才能补全。
当然,emacs也肯定可以补全当前文本中匹配的字符串而不考虑程序的结构,谁给指导一下怎么才能实现好吗。未解决
另外有个小问题,比如一个结构体里面有两个 char buf_a[100]; char buf_b[100]; 此时 C-tab 就会弹出一个窗口,选择的话只能通过鼠标吗?感觉太不方便了,google了不少,没说可以用什么快捷键啊。
你 google 用的关键词太矬,使用 auto-complete 解决所有问题。
头像
pocoyo
论坛版主
帖子: 25878
注册时间: 2008-03-25 15:49
来自: 谁知道?
送出感谢: 5 次
接收感谢: 9 次
联系:

Re: emacs问题求助

#11

帖子 pocoyo » 2010-12-31 12:19

让emacs根据扩展名(不是通用的扩展名)的选择加亮方式
看不懂。lz能上个图给小鸟 解释解释不?
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: emacs如何根据后缀名设置不同的加亮模式

#12

帖子 lilydjwg » 2010-12-31 12:57

anewbie 写了: 可以按文件名,文件内容,时间,属主,路径,大小……及其任意组合来选择 mode.
能按随机数或者当前时间之类的选择 mode 不? :em04
头像
tpli
帖子: 250
注册时间: 2007-01-16 16:14
来自: 郑州
送出感谢: 4 次
接收感谢: 0
联系:

Re: emacs如何根据后缀名设置不同的加亮模式

#13

帖子 tpli » 2010-12-31 13:09

anewbie 写了:
eexpress 写了:vim的招数那么多。还可指定路径。
可以按文件名,文件内容,时间,属主,路径,大小……及其任意组合来选择 mode.
tpli 写了:谢谢。

另外,怎么继续上面的设置 c-mode-style呢
因为如果把c-mode-style 'bsd 写到配置文件的话,当启动的文件不是 c-mode时,emacs会报错,如何让emacs选择c-mode后,再自动设置 style?

thx
c-mode-hook
谢谢。 hook稍微查了一下:
emacs以mode来组织各种不同的编辑环境,通常每种文件类型都有一个独立的 major-mode,比如 c-mode
定制某个特定的mode除了通过设置快捷键和修改一些mode提供的变量之外,还可以有一个方法。通常major-mode都会提供一个hook,mode名字加上 -hook,在进入这个major-mode之后会调用对应的hook里加入的函数。
头像
tpli
帖子: 250
注册时间: 2007-01-16 16:14
来自: 郑州
送出感谢: 4 次
接收感谢: 0
联系:

Re: emacs问题求助

#14

帖子 tpli » 2010-12-31 13:12

pocoyo 写了:
让emacs根据扩展名(不是通用的扩展名)的选择加亮方式
看不懂。lz能上个图给小鸟 解释解释不?
水牛不要嘲笑我。。
anewbie
帖子: 159
注册时间: 2009-02-24 19:39
送出感谢: 0
接收感谢: 0

Re: emacs如何根据后缀名设置不同的加亮模式

#15

帖子 anewbie » 2010-12-31 13:23

lilydjwg 写了:
anewbie 写了: 可以按文件名,文件内容,时间,属主,路径,大小……及其任意组合来选择 mode.
能按随机数或者当前时间之类的选择 mode 不? :em04
这是相声还是认真的?
好吧,能,在 after-*-hook 后挂个函数,能用敲 lisp 代码确定的条件都能。
前提:不考虑伪随机与“随机”的差异,不考虑获取“当前时间”的指令执行时的“当前时间”与执行具体任务的指令执行时的“当前时间”的细微差异。
回复

回到 “Vim和Emacs”