86
. . . . . . Emacs 教程 刘鑫 <[email protected]> 太平洋网络 移动产品事业部 May 4, 2011

Emacs Introduction

Embed Size (px)

DESCRIPTION

Emacs 的一个快速教程

Citation preview

Page 1: Emacs Introduction

. . . . . .

Emacs教程

刘鑫 <[email protected]>

太平洋网络移动产品事业部

May 4, 2011

Page 2: Emacs Introduction

. . . . . .

Emacs的历史

Page 3: Emacs Introduction

. . . . . .

1970年前

TECO行编辑器

Page 4: Emacs Introduction

. . . . . .

1970年

TECO Macro By Ricard Stallman

Page 5: Emacs Introduction

. . . . . .

1972年

Editing MACroS -- Emacs!Richard Stallman & Guy Steele

Page 6: Emacs Introduction

. . . . . .

1984年

GNU Emacs

Page 7: Emacs Introduction

. . . . . .

Why Emacs?

Page 8: Emacs Introduction

. . . . . .

兼容几乎所有平台

▶ BSD

▶ Linux▶ MAC▶ Windows

Page 9: Emacs Introduction

. . . . . .

兼容几乎所有平台

▶ BSD▶ Linux

▶ MAC▶ Windows

Page 10: Emacs Introduction

. . . . . .

兼容几乎所有平台

▶ BSD▶ Linux▶ MAC

▶ Windows

Page 11: Emacs Introduction

. . . . . .

兼容几乎所有平台

▶ BSD▶ Linux▶ MAC▶ Windows

Page 12: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台

▶ XWindows

▶ GNOME▶ KDE▶ ...

▶ MAC OS X▶ Windows

Page 13: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME▶ KDE▶ ...

▶ MAC OS X▶ Windows

Page 14: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME

▶ KDE▶ ...

▶ MAC OS X▶ Windows

Page 15: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME▶ KDE

▶ ...▶ MAC OS X▶ Windows

Page 16: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME▶ KDE▶ ...

▶ MAC OS X▶ Windows

Page 17: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME▶ KDE▶ ...

▶ MAC OS X

▶ Windows

Page 18: Emacs Introduction

. . . . . .

适应几乎所有环境

▶ 字符控制台▶ XWindows

▶ GNOME▶ KDE▶ ...

▶ MAC OS X▶ Windows

Page 19: Emacs Introduction

. . . . . .

近乎无限的扩展能力

▶ 支持几乎所有编程语言

▶ 强大的标记文本标记功能▶ 丰富的工作支持组件▶ 各种交互环境▶ IDE类扩展

Page 20: Emacs Introduction

. . . . . .

近乎无限的扩展能力

▶ 支持几乎所有编程语言▶ 强大的标记文本标记功能

▶ 丰富的工作支持组件▶ 各种交互环境▶ IDE类扩展

Page 21: Emacs Introduction

. . . . . .

近乎无限的扩展能力

▶ 支持几乎所有编程语言▶ 强大的标记文本标记功能▶ 丰富的工作支持组件

▶ 各种交互环境▶ IDE类扩展

Page 22: Emacs Introduction

. . . . . .

近乎无限的扩展能力

▶ 支持几乎所有编程语言▶ 强大的标记文本标记功能▶ 丰富的工作支持组件▶ 各种交互环境

▶ IDE类扩展

Page 23: Emacs Introduction

. . . . . .

近乎无限的扩展能力

▶ 支持几乎所有编程语言▶ 强大的标记文本标记功能▶ 丰富的工作支持组件▶ 各种交互环境▶ IDE类扩展

Page 24: Emacs Introduction

. . . . . .

Emacs使用

Page 25: Emacs Introduction

. . . . . .

术语

Meta/M Option/ALT

C/CTL ControlESC ESC

Page 26: Emacs Introduction

. . . . . .

术语

Meta/M Option/ALTC/CTL Control

ESC ESC

Page 27: Emacs Introduction

. . . . . .

术语

Meta/M Option/ALTC/CTL Control

ESC ESC

Page 28: Emacs Introduction

. . . . . .

基本编辑操作

复制 M-W

剪切 C-W粘贴 C-Y

轮询粘贴环 M-Y剪切到行尾 C-K

Page 29: Emacs Introduction

. . . . . .

基本编辑操作

复制 M-W剪切 C-W

粘贴 C-Y轮询粘贴环 M-Y剪切到行尾 C-K

Page 30: Emacs Introduction

. . . . . .

基本编辑操作

复制 M-W剪切 C-W粘贴 C-Y

轮询粘贴环 M-Y剪切到行尾 C-K

Page 31: Emacs Introduction

. . . . . .

基本编辑操作

复制 M-W剪切 C-W粘贴 C-Y

轮询粘贴环 M-Y

剪切到行尾 C-K

Page 32: Emacs Introduction

. . . . . .

基本编辑操作

复制 M-W剪切 C-W粘贴 C-Y

轮询粘贴环 M-Y剪切到行尾 C-K

Page 33: Emacs Introduction

. . . . . .

跳转

向上 C-P

向下 C-N向左 C-B向右 C-F

Page 34: Emacs Introduction

. . . . . .

跳转

向上 C-P向下 C-N

向左 C-B向右 C-F

Page 35: Emacs Introduction

. . . . . .

跳转

向上 C-P向下 C-N向左 C-B

向右 C-F

Page 36: Emacs Introduction

. . . . . .

跳转

向上 C-P向下 C-N向左 C-B向右 C-F

Page 37: Emacs Introduction

. . . . . .

搜索与替换

向前 C-s向后 C-r正则 M-x replace-regexp确认 M-x query-replace[-regexp[-eval]]

Page 38: Emacs Introduction

. . . . . .

搜索与替换

向前 C-s

向后 C-r正则 M-x replace-regexp确认 M-x query-replace[-regexp[-eval]]

Page 39: Emacs Introduction

. . . . . .

搜索与替换

向前 C-s向后 C-r

正则 M-x replace-regexp确认 M-x query-replace[-regexp[-eval]]

Page 40: Emacs Introduction

. . . . . .

搜索与替换

向前 C-s向后 C-r正则 M-x replace-regexp

确认 M-x query-replace[-regexp[-eval]]

Page 41: Emacs Introduction

. . . . . .

搜索与替换

向前 C-s向后 C-r正则 M-x replace-regexp确认 M-x query-replace[-regexp[-eval]]

Page 42: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode

▶ java-mode▶ python-mode▶ ...

Page 43: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode

▶ python-mode▶ ...

Page 44: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode▶ python-mode

▶ ...

Page 45: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode▶ python-mode▶ ...

Page 46: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode

▶ java-mode▶ python-mode▶ ruby-mode▶ ...

Page 47: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode

▶ python-mode▶ ruby-mode▶ ...

Page 48: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode▶ python-mode

▶ ruby-mode▶ ...

Page 49: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode▶ python-mode▶ ruby-mode

▶ ...

Page 50: Emacs Introduction

. . . . . .

编程语言支持

▶ cc-mode▶ java-mode▶ python-mode▶ ruby-mode▶ ...

Page 51: Emacs Introduction

. . . . . .

LATEX插件 AUCTeX

▶ 辅助格式操作

▶ 数学公式▶ 预览支持▶ 项目管理

Page 52: Emacs Introduction

. . . . . .

LATEX插件 AUCTeX

▶ 辅助格式操作▶ 数学公式

▶ 预览支持▶ 项目管理

Page 53: Emacs Introduction

. . . . . .

LATEX插件 AUCTeX

▶ 辅助格式操作▶ 数学公式▶ 预览支持

▶ 项目管理

Page 54: Emacs Introduction

. . . . . .

LATEX插件 AUCTeX

▶ 辅助格式操作▶ 数学公式▶ 预览支持▶ 项目管理

Page 55: Emacs Introduction

. . . . . .

MUSE排版系统

▶ WIKI式的操作支持

▶ 可生成WIKI式的 HTML站点▶ PDF支持▶ 日程管理插件▶ LISP集成

Page 56: Emacs Introduction

. . . . . .

MUSE排版系统

▶ WIKI式的操作支持▶ 可生成WIKI式的 HTML站点

▶ PDF支持▶ 日程管理插件▶ LISP集成

Page 57: Emacs Introduction

. . . . . .

MUSE排版系统

▶ WIKI式的操作支持▶ 可生成WIKI式的 HTML站点▶ PDF支持

▶ 日程管理插件▶ LISP集成

Page 58: Emacs Introduction

. . . . . .

MUSE排版系统

▶ WIKI式的操作支持▶ 可生成WIKI式的 HTML站点▶ PDF支持▶ 日程管理插件

▶ LISP集成

Page 59: Emacs Introduction

. . . . . .

MUSE排版系统

▶ WIKI式的操作支持▶ 可生成WIKI式的 HTML站点▶ PDF支持▶ 日程管理插件▶ LISP集成

Page 60: Emacs Introduction

. . . . . .

ORG内容管理系统

▶ 桌面式 CMS

▶ 可生成WIKI式的 HTML站点▶ PDF支持▶ 强大的日程/任务管理

Page 61: Emacs Introduction

. . . . . .

ORG内容管理系统

▶ 桌面式 CMS▶ 可生成WIKI式的 HTML站点

▶ PDF支持▶ 强大的日程/任务管理

Page 62: Emacs Introduction

. . . . . .

ORG内容管理系统

▶ 桌面式 CMS▶ 可生成WIKI式的 HTML站点▶ PDF支持

▶ 强大的日程/任务管理

Page 63: Emacs Introduction

. . . . . .

ORG内容管理系统

▶ 桌面式 CMS▶ 可生成WIKI式的 HTML站点▶ PDF支持▶ 强大的日程/任务管理

Page 64: Emacs Introduction

. . . . . .

集成开发环境 CEDET

▶ 语义分析

▶ 语法导航和跳转▶ 集成开发环境 EDB▶ Java定制环境 JDEE

Page 65: Emacs Introduction

. . . . . .

集成开发环境 CEDET

▶ 语义分析▶ 语法导航和跳转

▶ 集成开发环境 EDB▶ Java定制环境 JDEE

Page 66: Emacs Introduction

. . . . . .

集成开发环境 CEDET

▶ 语义分析▶ 语法导航和跳转▶ 集成开发环境 EDB

▶ Java定制环境 JDEE

Page 67: Emacs Introduction

. . . . . .

集成开发环境 CEDET

▶ 语义分析▶ 语法导航和跳转▶ 集成开发环境 EDB▶ Java定制环境 JDEE

Page 68: Emacs Introduction

. . . . . .

XML类编辑插件 NXML

▶ 辅助编辑操作

▶ Shema类扩展定义

Page 69: Emacs Introduction

. . . . . .

XML类编辑插件 NXML

▶ 辅助编辑操作▶ Shema类扩展定义

Page 70: Emacs Introduction

. . . . . .

超级积木 MMM

▶ 组合各种插件

▶ 定制外观

Page 71: Emacs Introduction

. . . . . .

超级积木 MMM

▶ 组合各种插件▶ 定制外观

Page 72: Emacs Introduction

. . . . . .

变色龙 color-theme

▶ 定制颜色外观

▶ 多种内置主题▶ 可自行设计和扩展

Page 73: Emacs Introduction

. . . . . .

变色龙 color-theme

▶ 定制颜色外观▶ 多种内置主题

▶ 可自行设计和扩展

Page 74: Emacs Introduction

. . . . . .

变色龙 color-theme

▶ 定制颜色外观▶ 多种内置主题▶ 可自行设计和扩展

Page 75: Emacs Introduction

. . . . . .

多种增强 shell

▶ shell/eshell

▶ python/py-shell▶ ghci▶ ESS-R▶ slime

Page 76: Emacs Introduction

. . . . . .

多种增强 shell

▶ shell/eshell▶ python/py-shell

▶ ghci▶ ESS-R▶ slime

Page 77: Emacs Introduction

. . . . . .

多种增强 shell

▶ shell/eshell▶ python/py-shell▶ ghci

▶ ESS-R▶ slime

Page 78: Emacs Introduction

. . . . . .

多种增强 shell

▶ shell/eshell▶ python/py-shell▶ ghci▶ ESS-R

▶ slime

Page 79: Emacs Introduction

. . . . . .

多种增强 shell

▶ shell/eshell▶ python/py-shell▶ ghci▶ ESS-R▶ slime

Page 80: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库

▶ 人机工学改良▶ 组件组合▶ alpha-window▶ datetime▶ lzx

Page 81: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库▶ 人机工学改良

▶ 组件组合▶ alpha-window▶ datetime▶ lzx

Page 82: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库▶ 人机工学改良▶ 组件组合

▶ alpha-window▶ datetime▶ lzx

Page 83: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库▶ 人机工学改良▶ 组件组合▶ alpha-window

▶ datetime▶ lzx

Page 84: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库▶ 人机工学改良▶ 组件组合▶ alpha-window▶ datetime

▶ lzx

Page 85: Emacs Introduction

. . . . . .

USEMACS项目

▶ 配置库▶ 人机工学改良▶ 组件组合▶ alpha-window▶ datetime▶ lzx

Page 86: Emacs Introduction

. . . . . .

谢谢参与P̃ower By LATEX