慢慢将emacs 配置成极其强大的web IDE开发环境

Vim、Emacs配置和使用
gy619
帖子: 237
注册时间: 2011-10-11 10:16

慢慢将emacs 配置成极其强大的web IDE开发环境

#1

帖子 gy619 » 2012-06-14 11:26

EmEditor-->Notepad++--->geany--->vim--->emacs,这是我使用编辑器的过程。EmEditor和Notepad++是我在windows下面最喜欢的编辑器。
特别是Notepad++,我用的时间最长,免费,代码折叠是我最喜欢的功能,我进行web开发的时候,代码折叠是用得最多的,用鼠标一点,可以把div折
叠起来,看代码非常方便。

全面投向linux 后,一度尝试过各种各样的编辑器和IDE,
尝试过的文本编辑器:jEdit,gedit,geany,Sublime Text
尝试过的IDE:komodo-IDE7,NetBeans,ompoZer,Eclipse

我主要的工作是进行html+php+js+css方面的编辑。在Windows下面无法离开Notepad++和Dreamweaver CS这两样工具。
Dreamweaver CS 有两个优点:写css非常方便,有提示功能,可以一键格式化css格式,也可以一键格式化html格式。

转向linux后,对linux下面各种IDE基本失望(仅仅对komodo稍微有点好感)。IDE 基本很笨重,可定制的东西太少,用起来非常不方便。
文本编辑器方面,仅仅对geany情有独钟,说geany是linux最优秀的文本编辑器一点不过分。我需要的东西,geany基本具备,速度也很快。
基本Notepad++有的功能,geany也有。
geany 下面如下功能,我非常喜欢:
1. 代码折叠,默认支持,非常出色。在linux下面遇到唯一一款代码折叠这么出色的。
2. 虚拟终端。这个非常舒服。
3. snippets,写代码太方便了。
4. tags,写代码太方便了。将那个standard.css.tags和php-tags放进去,进行web开发非常爽。
5. tree browser
6. 代码提示和代码自动完成也有。

如果在linux还没有找到好用文本编辑器的朋友,并且也不想用vim或者eamcs,推荐试用下geany,这个应该不会使你失望。我曾经一度认为没有比geany更好的编辑器了。

不过随着使不断的使用,geany留给我以下遗憾:
1. 没有格式化源代码的功能。格式化不了html,php,css,一度需要我开vbox,用dw完成。
2. 智能注释,反注释。
3. 可定制的功能还是少。好用的插件,还不是很多。

我认为将emacs 配置成强大的web IDE开发环境,需要达到功能才可以。

1. 改造emacs里面不适应和不习惯的地方,看看能不能改造
2. 需必备功能:代码折叠。
3. 需必备功能:代码snippets,代码片段快速输入
4. 需必备功能:代码高亮
5. 需必备功能:代码自动补充和完成
6. 需必备功能:一键格式化html、php、css、js文件,使得源码格式化,符合规范。
7. 需必备功能:智能注释,反注释,写代码的时候,可以快速按一个键,快速注释或反注释,或添加注释。
8. 需必备功能:html、php、css、js 代码缩进美观
9. 需要必备功能:可以使用代码auto complete,可以使用zencoding
10. 更高级更能:比如可以使用tidy
11. 比如js,css,html压缩功能。比如css可以将多行压缩成一行。。。。js压缩(可以减少体积)
12. 强大的帮助系统,比如可以查询php语法,w3c方面的帮助,语法提示
13. php tag
14, php调试,编译


emacs 越来越有感觉,下面总结一下将emacs 配置成强大的web IDE开发环境所需要的插件。
1. 改造emacs里面不适应和不习惯的地方,看看能不能改造
通过如下插件,可以将emacs改造成ide环境
1.1 sr-speedbar(经过几个月的使用,emacs不用这个一样方便)
1.2 tabbar 标签功能
1.3 cedet (经过几个月的使用,emacs不用这个一样方便),web开发,没有必要使用)
1.4 ecb(经过几个月的使用,emacs不用这个一样方便),web开发,没有必要使用)
1.5 dired+
1.6 其他方便性功能:比如让光标指到某个括号的时候显示与它匹配的括号;用来显示当前光标在哪个函数;显示行号。。。。
2. 需必备功能:代码折叠。
2.1 这个试过很多,效果不是太好。以后再试试有无更好的插件。
3. 需必备功能:代码snippets,代码片段快速输入
3.1 yasnippet
4. 需必备功能:代码高亮
4.1 emacs默认高亮一般有问题,不过如果html语法混杂有js,css,php等代码的时候,代码高亮要配置才可以。
这个比较麻烦。
5. 需必备功能:代码自动补充和完成
5.1 auto-complete
6. 需必备功能:一键格式化html、php、css、js文件,使得源码格式化,符合规范。
6.1 内置indent-region函数本身就支持格式化,可以绑定一个键。一键格式化html代码(可能包含js,css,php代码)。
6.2 利用flush-lines删除所有空行,whitespace-cleanup删除所有空格,也可以编个自定义函数,绑定个键
7. 需必备功能:智能注释,反注释,写代码的时候,可以快速按一个键,快速注释或反注释,或添加注释。
7.1 M-,emacs最聪明的注释。
8. 需必备功能:html、php、css、js 代码缩进美观
8.1 其实和第4点一样,比较好的解决方法
mmm-mode+nxml-mode+php-mode+js3-mode
如果这几个模式没有配置好,缩进和格式化、高亮,都有问题。
9. 需要必备功能:可以使用代码auto complete,可以使用zencoding
9.1 auto complete
9.2 zencoding
10. 更高级更能:
比如js,css,html压缩功能。比如css可以将多行压缩成一行。。。。js压缩(可以减少体积)

另外,可以使用如下插件
rainbow-mode 自动显示css颜色,对经常写css很方便。
flymake-css,flymake-php。。。。。。。。
less-css-mode。。。。。。

帮助系统: 查看php语法, 语法提示.........


目前除了代码折叠,其他插件基本满意。使用了以上插件,基本可以把emacs配置成强大的web IDE开发环境。。
比geany 强大太多,dw的格式化代码功能也有,已不再想用其他编辑器。更重要的是,emacs可个定制性太强了,在慢慢的学习中,你的emacs
会慢慢根据你的改变而改变。

以上插件,可以通过google搜索(不用用baidu),emacs好的资料都在gg上面,一般都是英文的。
网上介绍emacs c++ 的插件比较多,web方面的插件介绍比较少。。。如果有更好的插件或者web配置,大家可以交流下。。
上次由 gy619 在 2012-09-22 17:03,总共编辑 2 次。
头像
reverland
帖子: 1317
注册时间: 2011-11-26 15:57
系统: windows xp
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#2

帖子 reverland » 2012-06-15 22:20

:em11 vim党友情顶,zencoding是个好东西
托在github上的jekyll博客
Always Look on the Bright Side of Life
头像
jobinson99
帖子: 1169
注册时间: 2007-04-28 15:14
系统: NixOS+虚拟机各种系统
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#3

帖子 jobinson99 » 2012-06-23 22:26

建议楼主使用一个swank-js,哈哈,基本上浏览器编程就安逸了……


另外,indent-region并不智能,比如下面这段,就没有好好的格式化了

代码: 全选

 <CODE><B>ACONS</B></CODE>, which lets you write this:</P><PRE>(acons 'new-key 'new-value alist)</PRE><P>Like <CODE><B>CONS</B></CODE>, <CODE><B>ACONS</B></CODE> is a function and thus can't modify the
	  place holding the alist it's passed. If you want to modify an alist,
	  you need to write either this:</P><PRE>(setf alist (acons 'new-key 'new-value alist))</PRE><P>or this:</P><PRE>(push (cons 'new-key 'new-value) alist)</PRE><P>Obviously, the time it takes to search an alist with <CODE><B>ASSOC</B></CODE> is 
就缩进,没有把里面的元素分级别显示出来……
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
gy619
帖子: 237
注册时间: 2011-10-11 10:16

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#4

帖子 gy619 » 2012-07-02 11:45

jobinson99 写了:建议楼主使用一个swank-js,哈哈,基本上浏览器编程就安逸了……


另外,indent-region并不智能,比如下面这段,就没有好好的格式化了

代码: 全选

 <CODE><B>ACONS</B></CODE>, which lets you write this:</P><PRE>(acons 'new-key 'new-value alist)</PRE><P>Like <CODE><B>CONS</B></CODE>, <CODE><B>ACONS</B></CODE> is a function and thus can't modify the
	  place holding the alist it's passed. If you want to modify an alist,
	  you need to write either this:</P><PRE>(setf alist (acons 'new-key 'new-value alist))</PRE><P>or this:</P><PRE>(push (cons 'new-key 'new-value) alist)</PRE><P>Obviously, the time it takes to search an alist with <CODE><B>ASSOC</B></CODE> is 
就缩进,没有把里面的元素分级别显示出来……
swank-js--------打算近期试试。不知道用来做什么的?我要搜索下。

另外,indent-region并不智能,比如下面这段,就没有好好的格式化了---------“你有更好的代码格式化方法推荐吗?”
gy619
帖子: 237
注册时间: 2011-10-11 10:16

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#5

帖子 gy619 » 2012-07-04 12:46

<CODE><B>ACONS</B></CODE>, which lets you write this:</P><PRE>(acons 'new-key 'new-value alist)</PRE><P>Like <CODE><B>CONS</B></CODE>, <CODE><B>ACONS</B></CODE> is a function and thus can't modify the
place holding the alist it's passed. If you want to modify an alist,
you need to write either this:</P><PRE>(setf alist (acons 'new-key 'new-value alist))</PRE><P>or this:</P><PRE>(push (cons 'new-key 'new-value) alist)</PRE><P>Obviously, the time it takes to search an alist with <CODE><B>ASSOC</B></CODE> is

这段乱七八糟的代码,可以格式化了。。。各个标签完美缩进。。。。。

但是新发现,语法检查,又有点小问题。。。。。。
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#6

帖子 redhatlinux10 » 2012-07-04 12:54

曾经折腾了vim很久,也给vim写了自己的插件,现在看明白了,东西还是简单的好。
别太折腾。
头像
reverland
帖子: 1317
注册时间: 2011-11-26 15:57
系统: windows xp
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#7

帖子 reverland » 2012-07-04 14:17

redhatlinux10 写了:曾经折腾了vim很久,也给vim写了自己的插件,现在看明白了,东西还是简单的好。
别太折腾。
在理 :em11 kiss
托在github上的jekyll博客
Always Look on the Bright Side of Life
ryebread
帖子: 74
注册时间: 2005-10-23 23:06

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#9

帖子 ryebread » 2012-08-21 18:07

同好,现在用emacs 写点WEB方面的,可以共享下你的emacs 配置参考下吗?主要是HTML+JS不太处理得好
头像
noble_out
帖子: 150
注册时间: 2012-04-20 15:58
系统: ubuntu12.04+windows8
来自: 中华人民共和国
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#10

帖子 noble_out » 2012-08-21 18:51

reverland 写了::em11 vim党友情顶,zencoding是个好东西
用过zencoding插件,蛋疼的ctrl+y+,操作,之后发现snipMate才是真正的好东西,自己定制,Tab键补全多好,谁用谁知道!!!!!!!!
头像
noble_out
帖子: 150
注册时间: 2012-04-20 15:58
系统: ubuntu12.04+windows8
来自: 中华人民共和国
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#11

帖子 noble_out » 2012-08-21 18:59

redhatlinux10 写了:曾经折腾了vim很久,也给vim写了自己的插件,现在看明白了,东西还是简单的好。
别太折腾。
玩vim将近一年了,虽然不经常用,但是写一般小程序啊,编辑文本啊都用它,玩vim会周期性的发疯,每隔一段时间就会去来回闹腾,实际已经配置得相当顺手了,但还是感觉不完美,手贱,来回折腾,最终发现好像又回到了原点~
头像
reverland
帖子: 1317
注册时间: 2011-11-26 15:57
系统: windows xp
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#12

帖子 reverland » 2012-08-21 22:26

noble_out 写了:
reverland 写了::em11 vim党友情顶,zencoding是个好东西
用过zencoding插件,蛋疼的ctrl+y+,操作,之后发现snipMate才是真正的好东西,自己定制,Tab键补全多好,谁用谁知道!!!!!!!!
嗯,snipmate太方便了
托在github上的jekyll博客
Always Look on the Bright Side of Life
头像
oldfeel
帖子: 134
注册时间: 2011-08-09 20:46

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#13

帖子 oldfeel » 2012-09-20 22:26

能不能把你配置文件给我发一套啊?我也想用emacs开发web。。(hyt5926@163.com
头像
jobinson99
帖子: 1169
注册时间: 2007-04-28 15:14
系统: NixOS+虚拟机各种系统
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#14

帖子 jobinson99 » 2012-09-22 14:36

noble_out 写了:
reverland 写了::em11 vim党友情顶,zencoding是个好东西
用过zencoding插件,蛋疼的ctrl+y+,操作,之后发现snipMate才是真正的好东西,自己定制,Tab键补全多好,谁用谁知道!!!!!!!!
我zencoding都是自己定义的f11,f12是yakuake的,tab是其他的,绑在tab上的东西太多了

回楼上,我的emacs配置还有很多bug,所以现在还不打算共享,呵呵。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
头像
jobinson99
帖子: 1169
注册时间: 2007-04-28 15:14
系统: NixOS+虚拟机各种系统
联系:

Re: 慢慢将emacs 配置成极其强大的web IDE开发环境

#15

帖子 jobinson99 » 2013-05-09 7:32

可以试试这个模式:
web-mode
刚刚发现的,混合编程方面整合的较好。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
回复