Emacs是伪装成编辑器的操作系统
有句夸张的话说:Emacs是伪装成编辑器的操作系统。细细想来,这句话并不夸张。
Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。 Lisp是什么东西,这同样是种很有生命力的编程语言。在C语言还没有发明的年代,MIT的人工智能实验室写ITS操作系统时,一部分用的是汇编语言,还有一部分就是用的Lisp。现在,Lisp仍在人工智能研究领域广泛使用着。
有这么牛逼的扩展语言,注定Emacs向着无所不能的方向发展。渐渐地,人们用Emacs不再限于写程序,写文档,而且在Emacs里管理文件系统,运行终端,收邮件,上网,听音乐……,真是一发不可收拾。甚至,有人用Emacs控制咖啡机煮咖啡。
这种大而全的扩展,背离了“一个程序只做一件事并做好它”的 Unix哲学,被Unix的忠诚用户所诟病。可是真的背离了吗? Emacs说过自己是一个编辑器吗?
正是因为Emacs的无敌的可扩展性,人们才分不清Emacs到底是不是一个编辑器了。但,就是有人喜欢这种All-in-One的哲学,喜欢在Emacs中完成每件事。所以才会有人写《生活在Emacs中》,所以, Emacs才会成为一种信仰。
Vim不只是Vi
Vim是Vi最受欢迎的变种之一,除了继承了Vi迅捷的编辑方式, Vim的功能已经比原始的Vi强大得多。这也得益于它可以用Vim脚本无限地扩展。 上已经有数千个脚本了,给Vim增加各种各样的特性和功能。
为了证明Vim的可扩展性不输于Emacs,也有用户写了在Vim中玩游戏、运行Shell、和集成GDB在Vim内部调试的插件。客观地讲,Vim的脚本语言与Emacs的ELisp相比,略显逊色,但这丝毫不妨碍它把Vim扩展成非常优秀的编辑器。
说到底,Vim的前身Vi和Emacs的设计采用了不同的哲学, Vi更符合Unix传统,它通过管道机制和系统内各种积木工具打交道,它讲究的是和系统内的工具程序协作来完成用户的任务。和Emacs相比,它的定位很明确,就是要做一个强大的编辑器。因此Vim的绝大部分扩展,都是为了更好地完成编辑文本的任务。
海纳百川,有容乃大。Emacs和Vim通过别的编辑器无法比肩的可扩展性,不断吸收广大用户的智慧,是它们能成为“神器”的原因之一
————除了vim, 还有哪些常用的牛逼的编辑器,
@ emacs
Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全
功能的操作系统中,在基于编辑器的功能基础上,Emacs自行开发了一个“bourne-shell-like”的shell: EShell。
特点:
(1)交互式编辑器(2)实时编辑器(3)高级编辑器(4)自文档化(5)可定制性(6)可扩展性(集成Lisp语言)(7)支持X Window环境
emacs和vim的区别:
(1)vim更偏向于简单中的复杂。
(2)而emacs则是复杂中的简单。
(3)emacs可扩展性极强
(4)vim他的快捷键很有特色。键盘上的各种符号键也是利用的很广。
(5)vim内置脚本语言有局限性,emacs的lisp语言更加强大。
(6)功能上来讲emacs可以做编辑器以外的很多事情。比如很多软件都可以使用emacs作为前端。
(7)一般来说vim只用作编辑器,或者是一个繁琐的IDE。
@ vim与nano的区别。
nano:
直接在命令行中敲入nano newfile即可打开文件或新建文件。
vim:
vim是老式的文字处理器vi的升级版,相对于较为简单的nano,其功能已经很齐全。
vim有常用 三种模式:命令模式、插入模式、底行模式。
命令模式:以vim打开或新建一个文件就可以直接进入一般模式,在此模式中,你可以使用上下左右来进行光标的移动,可以删除字符或整行,可以复制粘贴文件数据。
插入模式:顾名思义,就是可以编辑文本的模式,在一般模式下,按下“i,I,o,O,a,A,r,R”这些字母可进入编辑模式,进入编辑模式后在左下方会有INSERT或REPLACE的字样。
在编辑模式下按下ESC键会退出到一般模式下。
底行模式:在一般模式下,输入” :, / , ? “这三个字符中的任意一个会将光标移动到当前页面最下面的一行,在这个模式中可以进行数据查找、替换、保存、离开vim等操作。
————————————————————————————————
编译器
除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台).
EGCS(Experimental/Enhanced GNU Compiler System) 一个编译系统,包括了C/C++/Obj-C/Fortran等编译器。
————————————————————————————————
注意:调试的时候需要编译选项中添加 -g. 加选项-g是为了能够调试。不加可以运行,但不能调试
—————————————————————————————————— ——————————————————————————————————
Linux下软件安装的几种方式(源码安装, rpm安装, yum安装). 重点要理解rpm安装和yum安装的区别.
(1)安装包都是以rpm结尾的。
(2)yum是从网络安装源(例如网易镜像,可以自己配置)上下载rpm,如果存在依赖关系会把依赖的rpm同时下载安装。
(3)rpm是安装本地存在的rpm包,如果存在依赖也需要安装上,如果某个rpm是自己修改编译的,那么只能用rpm安装了