`
jzy996492849
  • 浏览: 128161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

我也说说Emacs吧(1) - Emacs和Vi我们都学

 
阅读更多
摘要: 好友幻神的《Emacs之魂》正在火热连载中,群里人起哄要给他捧捧场。 作为一个学习Emacs屡败屡战的用户,这个场还是值得捧一下的。至少我是买了HHKB键盘的。。。

好友幻神的《Emacs之魂》正在火热连载中,群里人起哄要给他捧捧场。
作为一个学习Emacs屡败屡战的用户,这个场还是值得捧一下的。至少我是买了HHKB键盘的。。。

从我的键盘说起 - 有模式和无模式
下面是我的HHKB键盘的局部图:
hhkb

与其他常规的键盘不同,我的键盘的Control键的位置,是常规布局的大小写锁定键的位置。为什么这么布局呢?

我们看看幻神在emacs人界用法中所介绍的emacs最常的快捷键吧:

C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾

C-x C-f "find"文件, 即在缓冲区打开/新建一个文件
C-x C-s 保存文件
C-x C-w 使用其他文件名另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-z 挂起emacs
C-x C-c 关闭emacs

其中,C表示Ctrl键,M表示Alt键,C-f表示按住Ctrl然后按f,
C-x C-s表示先按Ctrl+x,再按Ctrl+s,
C-x b表示先按Ctrl+x,再按b。
Ctrl键之常用,可见一斑。
这就引出一个著名的段子:因为emacs中大量使用Ctrl键,而普通键盘的Ctrl键位于小指管但是比较费力的键位下,emacs会导致左手小指容易损伤的段子层出不穷。为了提高效率,改键盘布局是最常用的办法之一。不信您试试,按Caps lock是不是比按Ctrl要容易,手指稍微移动一下就可以了。
另外,emacs对于Alt或者Esc的需求也不少,这两个键也是小指的管辖范围。

有模式和无模式
为什么emacs会如此大量地使用Ctrl和Alt组合键呢?原因很简单,emacs是个无模式的编辑器。相对而言,vi是个有模式的编辑器,分为命令模式和编辑模式。在命令模式下,j是向下移一行,k是向上移一行,h是左移,l是右移,手在基本键位上不动就可以快速移动。
由于命令模式下,大部分键都被当成命令了,输入这些键代表的字符怎么办?这就需要通过i命令,o命令等切换到编辑模式,在编辑模式下,可以正常输入字符。但是,在编辑模式下,大部分命令又没法使用了。使用命令的时候,还需要输入Esc来切回命令模式。

于是,emacs和vi的宗教战争,在有模式和无模式这一战场打了几十年。

emacs lisp和vimscript
做为编辑器圣战的双雄,除了基本功能之外,emacs和vim都有自己的扩展语言:emacs是emacs lisp,而vim是vimscript.
这两门都是不那么现代的语言。emacs lisp没有common lisp那么强大复杂,但是爱好者如云,至今不断有新的粉丝加入进来。而vimscript的爱好者几乎没有,有用perl写vim扩展的,也有用python写vim扩展的。。。

在宗教战争的两个分战场中,lisp占优势,emacs的平台有优势。而在模式之争上,vi的快捷键的优势使得它的用户数相对更多一些。

evil - emacs上模拟vi的模式
那么,emacs和vim真的是一直水火不融地宗教战争下去吗?对于emacs用户来讲,从来不是这样。emacs用户以emacs的可扩展性为武器,开发出了模拟vi模式方案的插件, evil就是其中最流行的一种。
vi用户还有一种有效的输出方式,就是采用leader键,把命令用leader键组合起来。

spacemacs
emacs的插件很多,配置起来也复杂,所以学习使用emacs最好的方式就是借鉴高手已经配好的配置方案。目前,比较流行的方案就是spacemacs.
spacemacs默认使用evil来模拟vi的模式,并且以空格space键作为leader key。

下面是spacemacs的界面抓图:
spacemacs

在默认模式下,输入空格键,就会弹出下一个键代表的命令,例:空格,然后f,显示的界面如下:

spacemacs f

spacemacs的安装非常简单,只有一条命令:

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
至此,我们的emacs学习之旅正式开始。我们既学emacs,也学习vi的模式和leader key。同时,我们使用spacemacs,已经为我们默认配好了很多强大的插件,比普通版本要方便。

唯一不足的是,我们学的知识可能比幻神讲得人界方式更多一些,毕竟vi就是学习曲线比较陡的编辑器。但是,只要坚持下来,您会觉得值得的!
分享到:
评论

相关推荐

    emacs-25.1-x86_64-w64-mingw32

    emacs和vi孰优孰劣争论几十年至今无定论(有定论就怪了)。 很多人认为emacs很难学,其实这是误解,emacs的常用命令一般通过把界面首页的“Emacs快速指南”走几遍就能熟练掌握了。虽然入门不难,但要用emacs煮咖啡...

    Emacs教程-极好.pdf

    Emacs和vi都是在UNIX早期就已出现,并在随后的发展中不断吸收新技术,依然在现代开发中扮演重要角色。 Emacs的多功能性和可扩展性使其成为UNIX和Linux世界中不可或缺的工具。它不仅是一个高效的代码编辑器,还是一...

    emacs-vim-modeline:在Emacs中处理VIM modeline

    与Emacs的文件局部变量一样,VIM(及其他)也具有称为modeline相似功能(不幸的是,VIM出于自身目的使用modeline ,这与Emacs的modeline截然不同。)例如: /* vim: set nu: */ // vi:nu:sw=3 该软件包为处理文件...

    emacs-21.3 rpm

    eamcs是Linux下的交互界面编辑器,既有Vi的强大功能,又有易操作的界面。 配合emacs-common一起安装。 #rpm -ivh emacs-common* #rpm -ivh emacs-21.3.19* 装好后输入emacs便可打开界面,或是在菜单里找到。

    EMACS 的 VIPOR 模式命令卡片

    在文本编辑领域,Emacs 和 Vim(源自 Vi)都是极为强大的编辑器。对于习惯了 Vim 的快捷键而又想利用 Emacs 强大功能的用户来说,VIPOR 模式提供了一个很好的解决方案。VIPOR 是一个 Emacsen 的模式,它模拟了 Vim ...

    vi emacs 命令手册

    ### vi和emacs命令手册知识点详解 #### 一、vi编辑器概述 - **vi编辑器简介**:vi(visual editor)是一种广泛使用的文本编辑器,它最初是在UNIX系统上开发的,现在几乎所有的类Unix系统(包括Linux)都内置了vi...

    Emacs教程初步1.pdf

    * 在Unix文化里,Emacs是黑客们关于编辑器优劣之争的两大主角之一,它的对手是vi。 * Emacs在程序员和其他以技术为主的计算机用户中广受欢迎。 Emacs是一种强大的文本编辑器,具有丰富的扩展功能和高效的编辑能力。

    Linux操作实验-练习用pico 、vi、emacs 编辑器编辑文本文件

    ### Linux操作实验——掌握pico、vi与emacs编辑器 #### 实验背景及目标 Linux作为一款开源且功能强大的操作系统,被广泛应用于服务器管理、软件开发等场景之中。熟悉Linux环境下的文本编辑器对于提高工作效率至关...

    linux-Evil是Emacs的可扩展vi层

    而 Evil 是一个为 Emacs 设计的插件,它的全称是“Emacs Vi Layer”,顾名思义,它是将 Vim 编辑器的操作模式移植到 Emacs 中的一个扩展层。 Evil 的目标是尽可能地模仿 Vim 的操作方式,让习惯于 Vim 的用户在使用 ...

    oracle man vi vim emacs收集

    Oracle数据库管理是IT行业中至关重要的技能之一,而与之紧密相关的文本编辑器——man、vi、vim和emacs,则是每一个数据库管理员和系统管理员必备的工具。这些编辑器在Linux和Unix环境中尤其常见,它们提供了高效、...

    emacs23安装包(最新)

    Emacs是一款历史悠久、功能强大的文本编辑器,尤其受到程序员和高级用户的喜爱。它不仅是一个编辑器,更是一个可扩展的、可定制的工作平台。标题提到的"emacs23"是Emacs的一个较新版本,发布于2010年,相较于早期...

    emacs用法和实用命令

    相比vi等其他编辑器,Emacs提供了更多丰富的特性,支持多种编程语言,拥有高度可定制性,并且具备强大的扩展能力。 #### 二、核心功能与常用命令详解 ##### 1. 文件操作 Emacs提供了多种用于文件管理的命令,方便...

    vi+Emacs+GCC+Make+GDB+Bash经典书籍3

    这些书籍涵盖了从vi,emacs(编辑器), gcc(编译器), make(工程项目管理), gdb(调试),bash(使用最广泛的shell)等unix环境下开发所需的大部分工具的基本使用和高级功能等.基本上是某方面最经典最权威的著作.(还有一本是...

    vi+Emacs+GCC+Make+GDB+Bash经典书籍8

    这些书籍涵盖了从vi,emacs(编辑器), gcc(编译器), make(工程项目管理), gdb(调试),bash(使用最广泛的shell)等unix环境下开发所需的大部分工具的基本使用和高级功能等.基本上是某方面最经典最权威的著作.(还有一本是...

    vi+Emacs+GCC+Make+GDB+Bash经典书籍6

    这些书籍涵盖了从vi,emacs(编辑器), gcc(编译器), make(工程项目管理), gdb(调试),bash(使用最广泛的shell)等unix环境下开发所需的大部分工具的基本使用和高级功能等.基本上是某方面最经典最权威的著作.(还有一本是...

    Emacs Beginner‘s HowTo(Emacs入门指南英文版)

    ### Emacs入门指南中文版 #### 1. 引言 Emacs是一款强大的、高度可定制的文本编辑器,被广泛认为是所有文本编辑器中最强大且功能最丰富的之一。它不仅仅是一个文本编辑器,更是一个完整的开发环境,支持多种编程...

    vi+Emacs+GCC+Make+GDB+Bash经典书籍

    这些书籍涵盖了从vi,emacs(编辑器), gcc(编译器), make(工程项目管理), gdb(调试),bash(使用最广泛的shell)等unix环境下开发所需的大部分工具的基本使用和高级功能等.基本上是某方面最经典最权威的著作.如Debugging+...

    Linux_Emacs_Dilligence

    通过以上总结,我们可以看到Emacs不仅是一款强大的文本编辑器,还拥有丰富的自定义选项和扩展功能。对于开发者来说,熟练掌握Emacs能够极大地提高工作效率。此外,Emacs还提供了详尽的帮助文档和社区支持,使得初学...

    Ubuntu16.04环境上安装常用软件的方法(20220212173635).pdf

    sudo apt-get install sudo apt-get purge emacs emacs-snapshot-common emacs-snapshot-bin-common emacs-snapshot emacs-snapshot-el emacs-snapshot-gtk emacs23 emacs23-bin-common emacs23-common emacs23-el ...

    Emacs 编辑器1

    作为 vi 编辑器的一个有力竞争者,Emacs 提供了丰富的功能和高度可定制性,使其成为程序员、系统管理员和文本处理爱好者的首选工具。 启动 Emacs 编辑器非常简单。在终端中,你可以直接输入 `emacs`(版本号可能为 ...

Global site tag (gtag.js) - Google Analytics