SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
Emacs 入门
      @yinhm

 GZLUG GZTechParty


 March 20, 2011




   @yinhm   Emacs   1/49
GNU Emacs is an extensible,
customizable text editor —and
            more.




           @yinhm   Emacs   2/49
介绍

一点历史




       @yinhm   Emacs   3/49
介绍

 一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室




               @yinhm   Emacs   3/49
介绍

  一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室
• 1984 年,Stallman 开发 GNU Emacs 用来代替 Gosling Emacs




                  @yinhm   Emacs   3/49
介绍

  一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室
• 1984 年,Stallman 开发 GNU Emacs 用来代替 Gosling Emacs
• 1985 年 3 月 20 日,Version 13 作为第一个 public release




                    @yinhm   Emacs   3/49
介绍

  一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室
• 1984 年,Stallman 开发 GNU Emacs 用来代替 Gosling Emacs
• 1985 年 3 月 20 日,Version 13 作为第一个 public release
• Stallman 维护至 2008 年,现在的维护者是 Stefan Monnier
  和 Chong Yidong




                    @yinhm   Emacs   3/49
介绍

  一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室
• 1984 年,Stallman 开发 GNU Emacs 用来代替 Gosling Emacs
• 1985 年 3 月 20 日,Version 13 作为第一个 public release
• Stallman 维护至 2008 年,现在的维护者是 Stefan Monnier
  和 Chong Yidong
• 2009 年,23.1 发布,支持 Xft




                    @yinhm   Emacs   3/49
介绍

  一点历史
• 1970 年,
        (Editing MACroS)诞生于 MIT 人工智能实验室
• 1984 年,Stallman 开发 GNU Emacs 用来代替 Gosling Emacs
• 1985 年 3 月 20 日,Version 13 作为第一个 public release
• Stallman 维护至 2008 年,现在的维护者是 Stefan Monnier
  和 Chong Yidong
• 2009 年,23.1 发布,支持 Xft
• 最新版本 23.3




                    @yinhm   Emacs   3/49
GPL 授权,GNU 项目的第一个计
        划。




       @yinhm   Emacs   4/49
介绍


特性




     @yinhm   Emacs   5/49
介绍


 特性
• 编辑器:高亮,各种语言支持




           @yinhm   Emacs   5/49
介绍


 特性
• 编辑器:高亮,各种语言支持
• 高可定制,高可扩展(Emacs Lisp)




              @yinhm   Emacs   5/49
介绍


 特性
• 编辑器:高亮,各种语言支持
• 高可定制,高可扩展(Emacs Lisp)
• 各种扩展(Mode):邮件,日历,GTD,IRC




              @yinhm   Emacs   5/49
介绍


 特性
• 编辑器:高亮,各种语言支持
• 高可定制,高可扩展(Emacs Lisp)
• 各种扩展(Mode):邮件,日历,GTD,IRC
• 支持本星球上大多数操作系统




              @yinhm   Emacs   5/49
介绍


  特性
• 编辑器:高亮,各种语言支持
• 高可定制,高可扩展(Emacs Lisp)
• 各种扩展(Mode):邮件,日历,GTD,IRC
• 支持本星球上大多数操作系统
• Self-documenting




                     @yinhm   Emacs   5/49
介绍


  特性
• 编辑器:高亮,各种语言支持
• 高可定制,高可扩展(Emacs Lisp)
• 各种扩展(Mode):邮件,日历,GTD,IRC
• 支持本星球上大多数操作系统
• Self-documenting
• 还可以煮咖啡:CoffeeMode




                     @yinhm   Emacs   5/49
Emacs VS vi




  @yinhm   Emacs   6/49
...endless...




  @yinhm   Emacs   7/49
拜 Emacs 教




  @yinhm   Emacs   8/49
To join the Church of Emacs, you need only say the
Confession of the Faith three times:


 There is no system but GNU,
 and Linux is one of its kernels.




                         @yinhm   Emacs   9/49
学习 Emacs




 @yinhm   Emacs   10/49
基本概念




       @yinhm   Emacs   11/49
基本概念


Buffer




        @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件




              @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件
• 打开文件创建对应的文件关联 Buffer




              @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件
• 打开文件创建对应的文件关联 Buffer
• 启动 Emacs 自动打开 *scrach* Buffer,不和文件关联




                @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件
• 打开文件创建对应的文件关联 Buffer
• 启动 Emacs 自动打开 *scrach* Buffer,不和文件关联
• 启动 Emacs 自动打开名为 *Messages* Buffer,类似 STDOUT




                 @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件
• 打开文件创建对应的文件关联 Buffer
• 启动 Emacs 自动打开 *scrach* Buffer,不和文件关联
• 启动 Emacs 自动打开名为 *Messages* Buffer,类似 STDOUT
• 察看文档打开特殊点的 *Help* Buffer




                 @yinhm   Emacs   12/49
基本概念


 Buffer
• 持有正在编辑的文件
• 打开文件创建对应的文件关联 Buffer
• 启动 Emacs 自动打开 *scrach* Buffer,不和文件关联
• 启动 Emacs 自动打开名为 *Messages* Buffer,类似 STDOUT
• 察看文档打开特殊点的 *Help* Buffer
• 可以列出、选择、关闭 Buffers




                 @yinhm   Emacs   12/49
基本概念


Minibuffer




            @yinhm   Emacs   13/49
基本概念


 Minibuffer
• 输入命令区域




             @yinhm   Emacs   13/49
基本概念


 Minibuffer
• 输入命令区域
• 命令读取参数




             @yinhm   Emacs   13/49
基本概念


 Minibuffer
• 输入命令区域
• 命令读取参数
• 文件列表选择




             @yinhm   Emacs   13/49
基本概念


 Minibuffer
• 输入命令区域
• 命令读取参数
• 文件列表选择
• 可以 TAB 补全




              @yinhm   Emacs   13/49
基本概念


 Minibuffer
• 输入命令区域
• 命令读取参数
• 文件列表选择
• 可以 TAB 补全
• 可以编辑




              @yinhm   Emacs   13/49
基本概念


  Minibuffer
• 输入命令区域
• 命令读取参数
• 文件列表选择
• 可以 TAB 补全
• 可以编辑
• Minibuffer 历史




                 @yinhm   Emacs   13/49
基本概念



Major mode




             @yinhm   Emacs   14/49
基本概念



 Major mode
• 只能有一个




              @yinhm   Emacs   14/49
基本概念



 Major mode
• 只能有一个
• 确定主要编辑模式




              @yinhm   Emacs   14/49
基本概念



  Major mode
• 只能有一个
• 确定主要编辑模式
• python, ruby, lisp, yaml 等




                        @yinhm   Emacs   14/49
基本概念



Minor modes




              @yinhm   Emacs   15/49
基本概念



 Minor modes
• 配合 Major mode 可以有多个




                @yinhm   Emacs   15/49
基本概念



 Minor modes
• 配合 Major mode 可以有多个
• 提供辅助编辑功能




                @yinhm   Emacs   15/49
基本概念



  Minor modes
• 配合 Major mode 可以有多个
• 提供辅助编辑功能
• 比如 auto-complete, yasnippet




                     @yinhm     Emacs   15/49
用 Emacs,需忘记鼠标,无视菜单




       @yinhm   Emacs   16/49
快捷键控制一切




  @yinhm   Emacs   17/49
EMACS = ?




  @yinhm   Emacs   18/49
EMACS =
Escape-Meta-Alt-Control-Shift




           @yinhm   Emacs   19/49
快捷键


标记方式




       @yinhm   Emacs   20/49
快捷键


  标记方式
• [Ctrl] 键以大写 C 表示,[Meta] 键 [Alt] 键以大写 M 表示




                 @yinhm   Emacs   20/49
快捷键


  标记方式
• [Ctrl] 键以大写 C 表示,[Meta] 键 [Alt] 键以大写 M 表示
• C-f 表示:按住 CRTL 键再输入 f




                 @yinhm   Emacs   20/49
快捷键


  标记方式
• [Ctrl] 键以大写 C 表示,[Meta] 键 [Alt] 键以大写 M 表示
• C-f 表示:按住 CRTL 键再输入 f
• C-x-b 表示:按住 CRTL 键再输入 x,释放,输入 b




                 @yinhm   Emacs   20/49
快捷键


  标记方式
• [Ctrl] 键以大写 C 表示,[Meta] 键 [Alt] 键以大写 M 表示
• C-f 表示:按住 CRTL 键再输入 f
• C-x-b 表示:按住 CRTL 键再输入 x,释放,输入 b
• C-x C-s 表示:按住 CRTL 键再输入 x,释放,按住 CTRL 后
  输入 s




                 @yinhm   Emacs   20/49
快捷键

文件操作




       @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name         Standard Name
 C-x C-f     find-file                    打开...




                   @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name         Standard Name
 C-x C-f     find-file                    打开...
 C-x k       kill-buffer                 关闭




                   @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name         Standard Name
 C-x C-f     find-file                    打开...
 C-x k       kill-buffer                 关闭
 C-x C-s     save-buffer                 保存




                   @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name           Standard Name
 C-x C-f     find-file                      打开...
 C-x k       kill-buffer                   关闭
 C-x C-s     save-buffer                   保存
 C-x C-c     save-buffers-kill-terminal    保存并退出




                     @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name           Standard Name
 C-x C-f     find-file                      打开...
 C-x k       kill-buffer                   关闭
 C-x C-s     save-buffer                   保存
 C-x C-c     save-buffers-kill-terminal    保存并退出
 C-x ←       previous-buffer               前一个 Tab




                     @yinhm   Emacs   21/49
快捷键

文件操作

 Keystroke   Emacs Command Name           Standard Name
 C-x C-f     find-file                      打开...
 C-x k       kill-buffer                   关闭
 C-x C-s     save-buffer                   保存
 C-x C-c     save-buffers-kill-terminal    保存并退出
 C-x ←       previous-buffer               前一个 Tab
 C-x →       next-buffer                   下一个 Tab




                     @yinhm   Emacs   21/49
快捷键

光标控制(1)




          @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn




                  @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn
 M-v         scroll-down                   PageUp




                  @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn
 M-v         scroll-down                   PageUp
 C-p         previous-line                 ↑




                  @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn
 M-v         scroll-down                   PageUp
 C-p         previous-line                 ↑
 C-n         next-line                     ↓




                  @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn
 M-v         scroll-down                   PageUp
 C-p         previous-line                 ↑
 C-n         next-line                     ↓
 C-b         backward-char                 ←




                  @yinhm   Emacs   22/49
快捷键

光标控制(1)

 Keystroke   Emacs Command Name            Standard Key
 C-v         scroll-up                     PageDn
 M-v         scroll-down                   PageUp
 C-p         previous-line                 ↑
 C-n         next-line                     ↓
 C-b         backward-char                 ←
 C-f         forward-char                  →




                  @yinhm   Emacs   22/49
快捷键

光标控制(2)




          @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word




                  @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word
      M-b         backward-word




                  @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word
      M-b         backward-word
      C-a         move-beginning-of-line




                  @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word
      M-b         backward-word
      C-a         move-beginning-of-line
      C-e         move-end-of-line




                  @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word
      M-b         backward-word
      C-a         move-beginning-of-line
      C-e         move-end-of-line
      M-a         backward-sentence




                  @yinhm   Emacs   23/49
快捷键

光标控制(2)

      Keystroke   Emacs Command Name
      M-f         forward-word
      M-b         backward-word
      C-a         move-beginning-of-line
      C-e         move-end-of-line
      M-a         backward-sentence
      M-e         forward-sentence




                  @yinhm   Emacs   23/49
快捷键

编辑操作




       @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line




                   @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line
C-M-@       mark-sexp




                   @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line
C-M-@       mark-sexp
C-w →       kill-region               剪切




                   @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line
C-M-@       mark-sexp
C-w →       kill-region               剪切
M-w ←       kill-ring-save            拷贝




                   @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line
C-M-@       mark-sexp
C-w →       kill-region               剪切
M-w ←       kill-ring-save            拷贝
C-y ←       yank                      粘贴




                   @yinhm   Emacs   24/49
快捷键

编辑操作

Keystroke   Emacs Command Name        Standard Name
C-k         kill-line
C-M-@       mark-sexp
C-w →       kill-region               剪切
M-w ←       kill-ring-save            拷贝
C-y ←       yank                      粘贴
C-/ ←       undo                      撤销




                   @yinhm   Emacs   24/49
快捷键


其它

Keystroke   Emacs Command Name               Standard Name
M-x         execute-extended-command         执行命令
C-g         keyboard-quit                    取消输入




                    @yinhm   Emacs   25/49
Emacs 速成指南:C-h t




     @yinhm   Emacs   26/49
忘了快捷键?


    记住这个:C-h b




         @yinhm   Emacs   27/49
GNU Emacs Reference Card




         @yinhm   Emacs   28/49
从 emacs-starter-kit 开始




        @yinhm   Emacs   29/49
为什么?




@yinhm   Emacs   30/49
每个人都有一个自己的 Emacs




      @yinhm   Emacs   31/49
很好很强大,很糟很分裂




    @yinhm   Emacs   32/49
emacs-starter-kit 是好的开始




         @yinhm   Emacs   33/49
emacs-starter-kit


  提供什么




               @yinhm   Emacs   34/49
emacs-starter-kit


  提供什么
• 主要针对动态语言
• 合理的配置
• ELPA 包管理
• 支持多种 Emacs 版本




                  @yinhm   Emacs   34/49
emacs-starter-kit


  默认支持语言




               @yinhm   Emacs   35/49
emacs-starter-kit


  默认支持语言
• lisp
• python
• javascript
• perl
• ...




               @yinhm   Emacs   35/49
代码在 github 上,很容易用来创
建自己的分支,扩展其它各种支持




       @yinhm   Emacs   36/49
github 上 Popular Forked 第五名




          @yinhm   Emacs   37/49
还是很分裂,尽量少分裂




    @yinhm   Emacs   38/49
emacs-starter-kit

  我的分支




               @yinhm   Emacs   39/49
emacs-starter-kit

  我的分支
• 超靓主题(来自 emacs-on-rails mode 作者 dima)
• 移植 debian-start,增强启动控制: /emacs.d/init.d/
• ruby-test-mode,rsense 等增强 ruby 支持
• rope, ropemacs 增强 python 支持
• 增强 javascript 支持:flymake
• arc mode
• 更多个人口味...




                    @yinhm   Emacs   39/49
emacs-starter-kit
  补充:从软件仓库安装的包和 Modes




               @yinhm   Emacs   40/49
emacs-starter-kit
  补充:从软件仓库安装的包和 Modes
• emacs23, emacs23-bin-common, emacs23-common
• emacsen-common
• emacs-goodies-el
• css-mode
• erlang-mode
• ess
• html-helper-mode
• mmm-mode
• org-mode
• python-mode


                     @yinhm   Emacs   40/49
emacs-starter-kit


  常用 mode:ido




                @yinhm   Emacs   41/49
emacs-starter-kit


  常用 mode:ido
• 自 emacs2.2 开始并入官方发布
• C-x b 进入当前所有 Buffers 列表
• 替换 C-x C-f 打开文件
• Tab 补全,Fuzz
• http:
  //www.emacswiki.org/emacs/InteractivelyDoThings




                   @yinhm   Emacs   41/49
emacs-starter-kit


  常用 mode:auto-complete




                   @yinhm   Emacs   42/49
emacs-starter-kit


  常用 mode:auto-complete
• 可视界面
• 轻量高效
• 高可扩展,结合各种补全:rope,rsense, gccsence 等
• http://cx4a.org/software/auto-complete/




                   @yinhm   Emacs   42/49
emacs-starter-kit



  常用 mode:yasnippet




                  @yinhm   Emacs   43/49
emacs-starter-kit



  常用 mode:yasnippet
• 代码模版
• 默认支持语言:C, C++, Python, Ruby 以及更多
• 语法受 TextMate 影响




                  @yinhm   Emacs   43/49
emacs-starter-kit



  常用 mode:org




                @yinhm   Emacs   44/49
emacs-starter-kit



  常用 mode:org
• 可以用来 GTD
• 保存 Notes
• 项目管理




                @yinhm   Emacs   44/49
demo




@yinhm   Emacs   45/49
Emacs Lisp(Lisp dialect)




        @yinhm   Emacs   46/49
Emacs lisp


  常见配置可能用到的




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t
• setq




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t
• setq
• quote




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t
• setq
• quote
• require




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t
• setq
• quote
• require
• hook




              @yinhm   Emacs   47/49
Emacs lisp


  常见配置可能用到的
• nil and t
• setq
• quote
• require
• hook
• local-set-key




                  @yinhm   Emacs   47/49
Questions?




  @yinhm   Emacs   48/49
Links


• http://www.gnu.org/software/emacs/
• http://en.wikipedia.org/wiki/Emacs
• http://en.wikipedia.org/wiki/Editor_war
• St IGNUcius
• GNU Emacs Reference Card
• emacs starter kit
• 我的 emacs starter kit




                         @yinhm   Emacs   49/49
About


        Created in L TEX using the beamer class, TeX Live and Emacs.
                   A



        Published under the Creative Commons Attribution 3.0 License
              http://creativecommons.org/licenses/by/3.0/

                                by @yinhm
                        http://yinhm.appspot.com


                     Document version March 20, 2011




                           @yinhm        Emacs     50/49

Mais conteúdo relacionado

Destaque

Code4vn - Linux day - linux boot process
Code4vn - Linux day - linux boot processCode4vn - Linux day - linux boot process
Code4vn - Linux day - linux boot processCường Nguyễn
 
How Emacs changed my life
How Emacs changed my lifeHow Emacs changed my life
How Emacs changed my lifeyukihiro_matz
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境についてKazuhiro Hara
 
我在豆瓣使用Emacs
我在豆瓣使用Emacs我在豆瓣使用Emacs
我在豆瓣使用Emacs董 伟明
 

Destaque (7)

Linux boot process
Linux boot processLinux boot process
Linux boot process
 
Code4vn - Linux day - linux boot process
Code4vn - Linux day - linux boot processCode4vn - Linux day - linux boot process
Code4vn - Linux day - linux boot process
 
How Emacs changed my life
How Emacs changed my lifeHow Emacs changed my life
How Emacs changed my life
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
我在豆瓣使用Emacs
我在豆瓣使用Emacs我在豆瓣使用Emacs
我在豆瓣使用Emacs
 
Rhel6 vs rhel7
Rhel6 vs rhel7Rhel6 vs rhel7
Rhel6 vs rhel7
 

Semelhante a Emacs入门

Vim hacks
Vim hacksVim hacks
Vim hacksXuYj
 
一小時學不會的 Vim
一小時學不會的 Vim一小時學不會的 Vim
一小時學不會的 VimLi Hsuan Hung
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4imacat .
 
makefile20141121
makefile20141121makefile20141121
makefile20141121Kevin Wu
 
VIM入门与进阶
VIM入门与进阶VIM入门与进阶
VIM入门与进阶pan weizeng
 
Command line 初級寶典
Command line 初級寶典Command line 初級寶典
Command line 初級寶典Tom Chen
 
Effective_Vim
Effective_VimEffective_Vim
Effective_VimKing Hom
 
Emacs Introduction
Emacs IntroductionEmacs Introduction
Emacs IntroductionMarch Liu
 
Effective linux.1.(commandline)
Effective linux.1.(commandline)Effective linux.1.(commandline)
Effective linux.1.(commandline)wang hongjiang
 
前端开发工具 - 编辑器篇
前端开发工具 - 编辑器篇前端开发工具 - 编辑器篇
前端开发工具 - 编辑器篇keelii
 
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)King Hom
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacMarsZ Chen
 
6, vim
6, vim6, vim
6, vimted-xu
 
Linux基础
Linux基础Linux基础
Linux基础zhuqling
 

Semelhante a Emacs入门 (16)

Vim hacks
Vim hacksVim hacks
Vim hacks
 
一小時學不會的 Vim
一小時學不會的 Vim一小時學不會的 Vim
一小時學不會的 Vim
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
 
makefile20141121
makefile20141121makefile20141121
makefile20141121
 
VIM入门与进阶
VIM入门与进阶VIM入门与进阶
VIM入门与进阶
 
Intro to svn
Intro to svnIntro to svn
Intro to svn
 
Command line 初級寶典
Command line 初級寶典Command line 初級寶典
Command line 初級寶典
 
Effective_Vim
Effective_VimEffective_Vim
Effective_Vim
 
Emacs Introduction
Emacs IntroductionEmacs Introduction
Emacs Introduction
 
Effective linux.1.(commandline)
Effective linux.1.(commandline)Effective linux.1.(commandline)
Effective linux.1.(commandline)
 
Vim 101
Vim 101Vim 101
Vim 101
 
前端开发工具 - 编辑器篇
前端开发工具 - 编辑器篇前端开发工具 - 编辑器篇
前端开发工具 - 编辑器篇
 
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
 
6, vim
6, vim6, vim
6, vim
 
Linux基础
Linux基础Linux基础
Linux基础
 

Mais de yinhm .

Dart intro
Dart introDart intro
Dart introyinhm .
 
Write a Google Closure Editor Plugin
Write a Google Closure Editor PluginWrite a Google Closure Editor Plugin
Write a Google Closure Editor Pluginyinhm .
 
git svn workflow
git svn workflowgit svn workflow
git svn workflowyinhm .
 
Ruby的类和对象模型
Ruby的类和对象模型Ruby的类和对象模型
Ruby的类和对象模型yinhm .
 

Mais de yinhm . (6)

Dart intro
Dart introDart intro
Dart intro
 
Write a Google Closure Editor Plugin
Write a Google Closure Editor PluginWrite a Google Closure Editor Plugin
Write a Google Closure Editor Plugin
 
git svn workflow
git svn workflowgit svn workflow
git svn workflow
 
Ruby的类和对象模型
Ruby的类和对象模型Ruby的类和对象模型
Ruby的类和对象模型
 
Raemon
RaemonRaemon
Raemon
 
Heroku
HerokuHeroku
Heroku
 

Emacs入门