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.org 上已经有数千个脚本了,给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安装了

Linux的编辑器、编译器、配置文件、及其安装方法的理解相关推荐

  1. LINUX下tar.gz包的安装方法

    LINUX下tar.gz包的安装方法 在tar.gz的东西不多了---- ======================================== 大多以tar.gz 和tar.bz2打包软件 ...

  2. oracle8ir2,Oracle8iR2(oracle8.1.6)在redhat linux 7.1上的简易安装方法

    Oracle8iR2(oracle8.1.6)在redhat linux 7.1上的简易安装方法 时间:2006/7/19 2:15:17 作者:佚名 人气:78 安装oracle我也走了许多弯路,前 ...

  3. linux系统 插优盘安装xvidcap,Linux屏幕录像软件xvidcap的安装方法

    原创内容,转载请注明出处:https://www.myzhenai.com/thread-15675-1-1.html https://www.myzhenai.com.cn/post/1184.ht ...

  4. Linux 系统下各种包的安装方法

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  5. Linux下PCI转串口卡驱动安装方法

    Linux下PCI转串口卡驱动安装方法 ----------------------------------- 由于公司产品要做行业市场,而产品与行业用户间PC的通讯为RS232串口方式.而行业用户那 ...

  6. linux中的httpd源码安装方法

    对于源码我们应该知道所谓源码就是用特定语言写成的文本,如C语言.其次源码安装 的好处是我们可以使用最新的版本和最新的功能,可以加入各种选项来个性配置,也可 以自定制使其更符合自己的习惯,而且在任何平台 ...

  7. linux下的摄像头驱动怎么安装方法,linux下良田摄像头驱动怎么装?

    2011-07-28 回答 下载驱动精灵更新一下就行了 追问: 驱动精灵是在windows下运行的 看题目linux下 我下载了libland_10018_linux.tar.gz的驱动 怎么命令来装 ...

  8. linux安装包文件格式,linux多种安装包格式的安装方法

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  9. 夏普linux电视软件,夏普电视第三方软件安装方法,使用教程和攻略

    原标题:夏普电视第三方软件安装方法,使用教程和攻略 作为智能电视老牌企业,夏普电视近两年被富士康收购之后,重新焕发第二春,在各大电商平台的销量都是名列前茅,但是很多买了夏普电视的朋友不知道如何给夏普电 ...

  10. linux kernel 开发详细文档 安装方法

    1.首先进入相应的内核目录下输入以下命令#是在内核根目录下生成一个.config 配置文件1.make oldconfig && make prepare 2.make pdfdocs ...

最新文章

  1. 科研指导:机器学习与自然语言处理
  2. 4.3.6 无分类编址CIDR
  3. 形式参数内存在哪java_深入浅出Java中JVM内存管理
  4. Oracle KFED 和 KFOD 工具说明
  5. rtmp推流直播流程
  6. 08年1月Gartner商务智能平台魔法四分区
  7. java ee的小程序_在Java EE应用程序中实现自动重试
  8. kubernetes精华问答 | Swarm和K8S的共同点有哪些?
  9. 外媒曝iPhone 13 CAD渲染图:对角后置摄像头布局
  10. mybatis延迟加载(lazy)配置生效的陷阱
  11. js控制css 加载,CSS样式表的加载对于DOM解析,渲染,JS执行的阻塞问题
  12. NonComVisibleBaseClass Exception
  13. VS2012错误之 warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”规范)
  14. C语言深入学习系列 - 字节对齐内存管理
  15. 一场农业“人机”对战,能否凿开农村致富新门路呢?
  16. WPS Office 2005的评议
  17. 为什么标签天线振子长度小于半个波长?
  18. pathrewrite不生效_Vue使用Proxy代理后仍无法生效的解决
  19. 关于容器和容器运行时的那些事
  20. 惊了!这里竟然有你的生日和银行卡密码?

热门文章

  1. linux渗透后清除日志,后渗透阶段清理痕迹方式总结
  2. php输出熊猫图案,熊猫特殊符号
  3. 计算机特殊的标点符号教案,《标点符号的输入》教学设计
  4. 计算机英语口语900句,日常英语口语900句
  5. python 某江文学城小说标题爬虫+简单数据分析+词云可视化
  6. xp每天定时关机命令
  7. java.sql.SQLException: Cannot create com.liqi.entry.User: com.li.entry.User Query: SELECT * from u
  8. BeyondCompare4破解最佳实践
  9. Cocos Studio images文件与CSB的路径相对关系
  10. 时间的质量:为什么时光飞逝