vim和emacs初体验

这是emcas和vim的体验小结。
我是用emacs编辑的。

先说编辑器的使用,无论是那一种编辑器给人一上来的感觉都是,这命令简直多到记不住。不愧都是学习曲线非常陡峭的编辑器。跟着两个编辑器的指南都敲了一遍,现在唯一能记住的就是上下左右的移动,和保存按键。可以说这是一个漫长的道路。

vim的优点:

  • 1.按键组合比较少,对于我这样手指不太灵活的人是一个福音。
  • 2.大多数操作系统自带,不需要安装(装emacs就要把我装死了)-
  • 3.喜欢vim的上下左右jkhl,跟某些游戏的上下左右位置有点类似,右手控制比较舒服

vim的缺点:

  • 1.双模式的切换目前达不到流畅使用,觉得双模式阻碍了编辑速度。(不知道未来自己会不会对此有改观)

emacs的优点:

  • 1.编辑流畅,不用频繁切换模式。(虽然emacs也有主模式和副模式,但是一旦进入一个模式,不用频繁切换)
  • 2.体验到了多文件窗口的酷炫。可以一遍编辑一个文件,一遍滚动另一个文件,很舒服。
  • 3.缓存机制感觉会有很大用处,但是现在体会的不深刻。

emacs的缺点:

  • 1.安装过程简直让人崩溃,各种依赖库的安装折磨人。
  • 2.频繁使用ctrl键,我这手指不灵活的人很是绝望。但是可以更改键位(或者买个键盘),未来可能会缓解这个问题。
  • 3.不喜欢emacs的上下左右,放在两个手让人有些混乱。

小结:vim的双模式是我觉得他最不适合我的一点,他最适合我的一点就是组合键少(不会长时间使用ctrl产生疲劳感)
emcas的组合键频繁使用ctrl让我感到疲劳,这一点可能需要适应,或者放弃。他最适合的一点就是编辑流畅,不用切换模式,多窗口也很好用。


[编辑于2018年8月3日]

Emacs的再体验

诚然学习了emacs的默认组合键已经可以满足我们编辑文本的需求了。但是emacs相较于vim,最大的区别是放弃了双模式。vim想用双模式将编辑和控制分离,通过精简指令、组合指令实现文本的编辑;但emacs的哲学是用组合键完成你想完成的事情。在未来,默认的组合键不可能完成全部我想完成的事情,那么

怎样订制自己的emacs?

多数人选择的是google到一个合适的配置文件,配置上插件,万事大吉。没错,我现在肯定也是其中的一员。
但是有一天你想要的功能google不到,怎么办?

你想完成的事没有被别人做过,那说明你做的事可能是很有趣的事。

为了完成有趣的事,伴随着emacs的学习和使用,elisp也要一同学习。

关于elisp,它是lisp语言簇的一个方言版本,wiki百科上说道:
Emacs Lisp,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展他们的功能。它的直译器是以C语言来实作的。它受到Maclisp的影响很大,但是跟Common Lisp与Scheme有所不同。

没错,elisp就可以帮助我们实现灵光一闪的有趣的事。

对于elisp,我的学习路线是这样的,
1.了解lambda演算
2.了解lisp语言
3.入门elisp语言

了解lambda演算

λ演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义、函数如何被应用以及递归的形式系统。

Lambda演算包括了建构lambda项,和对lambda项运行归约的操作。在最简单的lambda演算中,只使用以下的规则来建构lambda项:

语法 名称 描述
a 变量 表示参数或数学/逻辑值的字符或字符串
(λx.M) 抽象化 函数定义(M是一个lambda项)。变量x在表达式中已被绑定。
(M N) 应用 将函数应用于参数。 M 和 N 是 lambda 项

lambda演算中,递归是通过悖论算子或不动点算子来实现,它被表示为Y – Y组合子:

Y = λg.(λx.g(x x))(λx.g(x x))

在lambda演算中,Y g是g的不动点,因为它展开为g(Y g)。现在,要完成我们对阶乘函数的递归调用,我们可以简单的调用 g(Y g)n,这里的n是我们要计算它的阶乘的数。

lamda演算与图灵机是等价的,也就是说用图灵机的可计算性问题,也就是可判定性问题也可以用lamda演算表示,也就表示用图灵机解决的可计算问题,也可以用lambda演算解决。

了解lisp语言

lisp语言是函数式编程语言,它基于lambda演算,但是它是一种非纯函数式编程语言。
函数式编程语言与结构化编程语言的区别是:

  • 函数式编程语言告诉机器,是“什么”,它最早应用于人工智能领域,其实函数式编程语言能在人工智能领域应用,我认为是函数就如同演绎规则;“知识”也可以用这样的函数来表示。那么机器就可以模仿人的思维来“推理”。
  • 结构化编程语言告诉机器,做“什么”,它将人类的思维用规定好的结构进行运行。

对于lisp我的深入了解不多,现在思考只能停留在这个阶段。

入门elisp语言

elisp语言作为lisp语言的方言,最主要的使用是emcas的插件的编写。
我的emacs lisp是根据这个教程学习的 http://smacs.github.io/elisp/

vim和emac体验相关推荐

  1. linux之Vim使用

    Vim同Emac是Linux世界下最为流行的两个文本编辑工具,集中精力学习一个就好了,暂定以Vim为学习对象.在本文中,一些基本的操作将不再介绍,只会介绍最为常用的命令以及设置,操作系统为Ubuntu ...

  2. 神级编辑器 Vim 使用-基础篇

    最近一段时间, 看了两本关于 vim 的书, 重新学了一遍 vim, 在感慨 vim 强大的同时, 也为从前的自满感到汗颜, 我拿起了从前做的关于 vim 的笔记, 重新梳理了一遍, 作为一个系列分享 ...

  3. 第3章 Linux系统介绍与虚拟环境的准备

    1.1 学习的知识点 1     什么是操作系统? 2     什么是Linux? 3     Linux的起源 4     UNIX操作系统的革命 5     Linux的诞生 6     Linu ...

  4. 第02课 操作系统及Linux 系统介绍

    1.操作系统介绍 操作系统(Operating System,简称OS),是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是管 ...

  5. Sublime Text 2 和 Verilog HDL

    Sublime Text 2 和 Verilog HDL Date  Fri 04 July 2014 Tags Sublime Text / Vivado Sublime Text 代码编辑器之于程 ...

  6. chrome 插件 vimium 介绍

    chrome 插件 vimium 介绍 vimium是一个chrome插件,用于在chrome中提供像vim这样的纯键盘的快捷操作方式. chrome webstore 链接 该插件是开源的,使用co ...

  7. Clojure CLR 入门

    看过"黑客与画家"之后,你是不是对Lisp心动不已?然后翻了几页ACL(Ansi Common Lisp)又望而却步?叹息:如果有一天可以再.Net CLR 上写Lisp代码那就好 ...

  8. Linux都应用在哪些领域?发展如何?

    与Windows操作系统软件一样,Linux也是一个操作系统软件.但与Windows不同的是,Linux是一套开放源代码程序的,并可以自由传播的类UNIX操作系统软件,随着信息技术的更新变化,Linu ...

  9. 00.硬件加速设计方法 ——概述

    本文基于MOOC课<芯动力--硬件加速设计方法>课程整理所得.如有需要,请前往MOOC观看 文章目录 重点提纲--本文核心内容 半导体产业概述 产业链 1. Foundry 2. Fabl ...

最新文章

  1. 一文读懂jar包的小秘密
  2. newman api
  3. 【Linux 内核】进程管理 ( 进程与操作系统 | 进程与程序 | 进程与线程 | 虚拟地址空间 )
  4. 《Spring Boot官方文档》16. 自动配置
  5. ubuntu eclipse java_搭建Ubuntu Java Eclipse开发环境
  6. 2021普通高考重庆成绩查询平台,2021年重庆高考成绩查询时间及查分方式
  7. 4月10日下午学习日志
  8. vue可视化拖拽生成工具_GitHub - 1260215278/dragUI: 基于vuedraggable.js + uni 的可视化拖拽编程,自动生成项目,自动生成代码,自行导入第三方组件...
  9. zabbix邮件报警功能的验证
  10. VC++鼠标、键盘的模拟操作
  11. React Native 微博登陆
  12. MySQL - 基于ibd文件恢复表数据
  13. OD使用经验【转载】
  14. 【学习日记】Dom基础
  15. Thingworx自定义扩展开发(三)- echarts集成
  16. iVMS-4200 Vs区别_古典占星学和现代占星学的区别
  17. 【降价提醒】,您关注的商品已降价!
  18. Java教程:如何对接自定义钉钉机器人并实现群聊消息发送
  19. 空旷的室外如何安装摄像头?室外线缆布置十项细则
  20. dreamspark 注册,免费微软序列号授权,wp7 app hub微软手机开发者帐号

热门文章

  1. 注册微信公总号的方法与种类
  2. 巴别鸟10个使用小技巧,提高你的工作效率
  3. 计算机二级第一次考试不及格有没有影响,计算机二级还没有过吗?
  4. 数字语言,简历的“含金量”
  5. Python逐行读取tsv文件
  6. Win10亮度调节无效
  7. win10亮度无法调节,怎么处理
  8. 微信小程序:uni-app云开发的网盘助手
  9. 2月14日快到了, 把 ChatGPT 调教成了情诗王子, 为你守护你的爱情
  10. android usb micro,朝夕相伴不知芳名? 来补补USB接口知识