从0开始学习emacs

本文是我从安装到学习的一步步走来的记录,希望能帮到和我一样的初级者.


* emacs安装篇:


首先说明一下本人的环境:

    Windows XP系统+ Emacs 24.3.1

    D:\emacs-24.3(这个是本人的emacs安装路径)



1,修改emacs的home路径.(自动生成的.emacs.d目录和.emacs文件会生成在home
目录下)
     设置注册表:HKEY_LOCAL_MACHINE/SOFTWARE/GNU/Emacs 添加 字符串值:
     HOME=D:\emacs-24.3(这个是本人的emacs安装路径)
2,自动生成.emacs.d目录和.emacs文件
     打开emacs options菜单随便修改一个选项,然后save option.发现
     D:\emacs-24.3目录下生成.emacs.d目录和.emacs文件.
3,下载emacs24-starter-kit
     网址:https://github.com/eschulte/emacs24-starter-kit
4,安装emacs24-starter-kit
     a,作者说:don't add ~/.emacs.d/ to load-path user src subdir
     Very new versions of Emacs now complain about adding the base of
     the~/.emacs.d/ directory to the load path.  Since the starter-kit
     suggests placing source files into ~/.emacs.d/src/ instead of
     directly in ~/.emacs.d/, we may as well remove ~/.emacs.d/ from
     the load path as the new Emacs warnings recommend.


     I apologize if this change breaks anyone's existing config,
     although it should be an easy fix, simply move all required .el
     files in to the src/ subdirectory.
    
     b,在.emacs.d目录下创建目录src,把下的emacs24-starter-kit解压后的文
     件,全部拷进D:\emacs-24.3\.emacs.d\src


     c,经过实践发现好像这个扩展包没有安装OK,因为我看到配置文件中有提到
     "C-+"是增大字体的快捷键.但是我按这个键却提示undefined.


     d,于是晚上搜资料,发现有前辈的指示:
     **************************************************************
     .emacs.d是emacs的配置目录,第一
     次打开emacs后会自动生成的吧,还有.emacs。它们都是在home目录下的。
     像楼下说的一样,你可以删掉.eamcs然后在.emacs.d中新建个init.el文件,
     作用是一样的,eamcs会去找配置,.eamcs优先于init.el起作用。建议使
     用init.el的方式,因为这个文件是在.emacs.d目录中的,方便集中管理。
     一般人用emacs也就是找找牛人的现成配置,或者网上抄一段有用的放
     到.emacs或者init.el中就能起作用,当然,报错了就不成了。
     **************************************************************


     e,于是把.emacs文件删除了,把emacs24-starter-kit目录下的所有文件拷
     贝到D:\emacs-24.3\.emacs.d目录下,而不是D:\emacs-24.3\.emac.d\src
     下.再次启动,发现启动速度变慢了好多,成功了!


到此,我们算是有一个能够进行EMACS操作和学习的基本平台了.


* EMACS快捷键学习:

   网上有大量的快捷键列表,但是太多反而给初学的我带来巨大的压力,通过我
   自己的实际需要我只记住了下面的这些快捷键:
    
    C = Control 
    M = Meta = Alt | Esc 
    Del = Backspace 
      
    基本快捷键(Basic) 
    C-x C-f "find"文件, 即在缓冲区打开/新建一个文件 
    C-x C-s 保存文件 
    C-x C-w 使用其他文件名另存为文件 
    C-x C-v 关闭当前缓冲区文件并打开新文件 
    C-x C-b 显示缓冲区列表 
    C-x k 关闭当前缓冲区 
    C-z 挂起emacs 
    C-x C-c 关闭emacs 
      
    光标移动基本快捷键(Basic Movement) 
    C-f 后一个字符 
    C-b 前一个字符 
    C-p 上一行 
    C-n 下一行 
    M-f 后一个单词 
    M-b 前一个单词 
    C-a 行首 
    C-e 行尾 
    C-v 向下翻一页 
    M-v 向上翻一页 
    M-< 到文件开头 
    M-> 到文件末尾 
      
    编辑(Editint) 
    C-u 重复执行后一个命令4次 
    C-d 删除(delete)后一个字符 
    M-d 删除后一个单词 
    Del 删除前一个字符 
    M-Del 删除前一个单词 
    C-k 移除(kill)一行 
    C-Space 设置开始标记 (例如标记区域) ;;这个快捷键是废的
    C-@ 功能同上, 用于C-Space被操作系统拦截的情况 
    C-w 剪切
    M-w 复制
    C-y 粘贴
    C-x C-t 交换两行的位置 


    重要快捷键(Important) 
    C-g 停止当前运行/输入的命令 
    C-/ 撤销前一个命令 
      
    搜索/替换(Seach/Replace) 
    C-s 向后搜索 
    C-r 向前搜索 
    M-% 询问并替换(query replace) 
      
    窗口命令(Window Commands) 
    C-x 1 关闭除了光标所在窗格外所有窗格 
          
    宏命令(Macro-commands) 
    C-x ( 开始定义宏 
    C-x ) 结束定义宏 
    C-x e 运行最近定义的宏 
    M-x name-last-kbd-macro 给最近定义的宏命名(用来保存) 
    M-x insert-kbd-macro 将已命名的宏保存到文件 


* 定制我的emacs:

   说明一下,由于我的.emacs文件被删除了.我自己的配置都放在
   D:\emacs-24.3\.emacs.d\custom.el中.


** 定制1: 制作了拷贝至行首,至行尾,拷贝整行的快捷方式:
   介绍一下制作宏的方法:
     VI中有一个指导理念:Never type it twice,遵循该理念可以使VI编辑文
     件速度很快。
Emacs中同样也可以做到这一点。例如很多重复性的工作都可以通过使
用宏来替代.
        下面是Emacs中使用宏的简要介。
        1)开始录制宏,用C-x (;
        2)输入你的动作 
        3) 结束录制宏,用C-x );
        4) 用C-x e来使用宏。


        你还可以对已定义的宏命名并保存到文本中,以便下次再用:
        1) 按照上面的过程定义一个宏;
        2) M-x name-last-kbd-macro;
        3) 按提示输入你所要定义的宏名称;
        4) 打你的.emacs文件并把光标跳转到特定的位置;
        5) M-x insert-kbd-macro;
        6) 输入你刚刚取的名字。
   所以我的操作是:
        1) 开始录制宏,用C-x (
        2) 输入我的动作: C-@  C-a M-w  ;;动作为标记,跳至行首,复制
        3) 结束录制宏,用C-x )
        4) M-x name-last-kbd-macro  RET
        5) 输入名称:cta ;;至此我创建了一个名为cta的宏,它的操作是从光标
           处开始拷贝到行首.
        6) 将宏保存到custom.el:输入C-x C-f 找到custom.el并打开.
        7) 输入:M->跳至最末尾的位置,再输入M-x insert-kbd-macro RET
        8) 输入:cta
        9) 此时,在custom.el中可以看到:(fset 'cta "\C-@\C-a\367")
        10)仅仅只有这个宏还不够,我为它分配一个快捷键C-c C-a,在后面添
        加:(global-set-key "\C-c\C-a" 'cta);
        11)这时custom.el中有下面这两行语句:
             (global-set-key "\C-c\C-a" 'cta);
             (fset 'cta "\C-@\C-a\367")
             这样我们就将这样一个宏绑定到一个快捷键C-c C-a上了,在任意
             行上输入C-c C-a就会复制至行首了.
        12)重启emacs.
   同样的道理我又制作了复制至行尾和复制整行的快捷键,配置如下:
        ;;cte copy from cursor position to end
        (global-set-key "\C-c\C-e" 'cte);
        (fset 'cte "\C-@\C-e\367")


        ;;cwl copy whole line
        (global-set-key "\C-c\C-w" 'cwl);
        (fset 'cwl "\C-a\C-@\C-e\367")




** 定制2: 实现在buffer间切换
   在custom.el中添加如下两句,即可,M-p上一个buffer,M-n 下一个buffer:
   (global-set-key "\M-p"  'bs-cycle-previous)
   (global-set-key "\M-n"  'bs-cycle-next)


** 定制3: 给文件加密
   由于我开始使用org-mode记日记,但是由于越写越觉得隐私,不想总是被我家
   的婆娘偷看(女人的通病,没有办法),如果你也面临这样的问题,下面这个玩意

   负责给你的日记上锁,妥妥的,很安全:


*** 用emacs加密文件(使用ccrypt)
   
   简介
   比较流行的方法其实是使用easypg作文gungp的前端来进行加密 ,而且也同时支
   持了win和linux而且加密的功能也更为的强大,唯一比较麻烦的问题是gpg2之后
   的版本没办法保存密码缓冲,导致每次按保存文件都要进行一次算法选择,一次密
   码输入非常的烦人.所以好不容易又找到一个方法,就是使用ccrypt,它也有
   cygwin的win版本.
   
   
   下载ccrypt
   项目主页: http://ccrypt.sourceforge.net/, 选择windows版本.
   
   安装ccrypt
   解压至D:\ccrypt-1.10.cygwin-i386,然后在环境变量path中添
   加:D:\ccrypt-1.10.cygwin-i386.然后将ccrypt.exe和cygwin1.dll拷贝到
   C:\WINDOWS\system32目录中.
   
   在custom.el中添加
   
   (setq load-path (cons "D:\ccrypt-1.10.cygwin-i386" load-path))
   (require 'ps-ccrypt "ps-ccrypt.el")
   
   
   
   使用
   使用就非常简单了,直接把文件的后缀保存成.cpt就会第一次保存的时候就会向
   你要密码.再保存不需要再输入密码.以后打开的时候也会需要密码.
   
   
   这里说一下关于后缀的问题
   
   和easypg一样很智能,如果给的是.org.cpt后缀,在输入密码打开后,一样会进入
   org-mode.其他模式也一样.
   
   
   一点小问题
   就是在第一次新建文件的时候,它也会向你要一个密码,这个时候随便给,或者不
   给都可以.这个可能和emacs本身有点关系,不知道能不能修改好.
   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值