emacs - coscup 2012

94
A Introduction

Upload: kan-ru-chen

Post on 14-May-2015

6.897 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Emacs - COSCUP 2012

A Introduction

Page 2: Emacs - COSCUP 2012

A Introduction

Emacs

Page 3: Emacs - COSCUP 2012

about:kanru

a Debian Developerin MozillaVim 5+ yrEmacs 5+ [email protected]

Page 4: Emacs - COSCUP 2012

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

about:license

Page 5: Emacs - COSCUP 2012

Brief History簡明歷史

Page 6: Emacs - COSCUP 2012

起源

TECO

Page 7: Emacs - COSCUP 2012

EditorMACroS in TECO

TECMAC & TMACS

Page 8: Emacs - COSCUP 2012

第一個使用 LISP 的 Emacs

Multics Emacs & EINE

Page 9: Emacs - COSCUP 2012

首次公開

GNU Emacs 13.0?

Page 10: Emacs - COSCUP 2012

http://www.jwz.org/doc/emacs-timeline.html

Emacs Timeline

Page 11: Emacs - COSCUP 2012

如何取得?

Get Emacs

Page 12: Emacs - COSCUP 2012

apt-get install emacs

Page 13: Emacs - COSCUP 2012

Bleeding edge!

bzr://bzr.savannah.gnu.org/emacs/trunk

Page 14: Emacs - COSCUP 2012

http://alpha.gnu.org/gnu/emacs/windows

Windows?

Page 15: Emacs - COSCUP 2012

Jargons術語

Page 16: Emacs - COSCUP 2012

模式

-*- mode: C++ -*-

Page 17: Emacs - COSCUP 2012

Control + <key>

C-<key>

Page 18: Emacs - COSCUP 2012

Meta + <key>

M-<key>

Page 19: Emacs - COSCUP 2012

Alt + <key>

M-<key>

Page 20: Emacs - COSCUP 2012

Control + x Control + c

C-x C-c

Page 21: Emacs - COSCUP 2012

程式外框

Frame

Page 22: Emacs - COSCUP 2012
Page 23: Emacs - COSCUP 2012

分割視窗

Window

Page 24: Emacs - COSCUP 2012
Page 25: Emacs - COSCUP 2012

Buffer

Page 26: Emacs - COSCUP 2012
Page 27: Emacs - COSCUP 2012

Minibuffer

Page 28: Emacs - COSCUP 2012
Page 29: Emacs - COSCUP 2012

Region

Page 30: Emacs - COSCUP 2012

Editing Commands編輯指令

Page 31: Emacs - COSCUP 2012

-- anonymous

Escape-Meta-Alt-Control-Shift

Page 32: Emacs - COSCUP 2012

逃生鍵

C-g

Page 33: Emacs - COSCUP 2012

塊陶阿

C-g C-g C-g

Page 34: Emacs - COSCUP 2012

離開

C-x C-c

Page 35: Emacs - COSCUP 2012

開檔

C-x C-f

Page 36: Emacs - COSCUP 2012

上下左右

C-{p,n,b,f}

Page 37: Emacs - COSCUP 2012

刪除

C-k

Page 38: Emacs - COSCUP 2012

行頭

C-a

Page 39: Emacs - COSCUP 2012

行尾

C-e

Page 40: Emacs - COSCUP 2012

刪除一行

C-a C-k

Page 41: Emacs - COSCUP 2012

各有功用

C-[a-z]

Page 42: Emacs - COSCUP 2012

執行指令

M-x

Page 43: Emacs - COSCUP 2012

視窗操作

Window Operations

Page 44: Emacs - COSCUP 2012

split-window-below

C-x 2

Page 45: Emacs - COSCUP 2012

split-window-right

C-x 3

Page 46: Emacs - COSCUP 2012

delete-window

C-x 0

Page 47: Emacs - COSCUP 2012

delete-other-windows

C-x 1

Page 48: Emacs - COSCUP 2012

other-window

C-x o

Page 49: Emacs - COSCUP 2012

Help System強大的說明輔助系統

Page 50: Emacs - COSCUP 2012

C-h t

Tutorial

Page 51: Emacs - COSCUP 2012

取得各種說明

C-h <key>

Page 52: Emacs - COSCUP 2012

說明 C-h

C-h ?

Page 53: Emacs - COSCUP 2012

按鍵資訊

C-h k <key>

Page 54: Emacs - COSCUP 2012

變數資訊

C-h v

Page 55: Emacs - COSCUP 2012

函數資訊

C-h f

Page 56: Emacs - COSCUP 2012

Info 系統

C-h i

Page 57: Emacs - COSCUP 2012

取得各種資訊

M-x describe-*

Page 58: Emacs - COSCUP 2012

Easy Customization簡易設定法

Page 59: Emacs - COSCUP 2012

進入設定模式

M-x customize

Page 60: Emacs - COSCUP 2012

進入分類設定模式

M-x customize-group

Page 61: Emacs - COSCUP 2012

進入主題設定模式

M-x customize-themes

Page 62: Emacs - COSCUP 2012

使用者設定檔

~/.emacs

Page 63: Emacs - COSCUP 2012

亂中有序直到有一天...

.emacs bankruptcy

Page 64: Emacs - COSCUP 2012

新・使用者設定檔

~/.emacs.d/init.el

Page 65: Emacs - COSCUP 2012

省錢收納小技巧 (誤)

http://github.com/kanru/.emacs.d

Page 66: Emacs - COSCUP 2012

安裝更多擴充套件

Install More Extensions

Page 67: Emacs - COSCUP 2012

M-x list-packages

ELPA

Page 68: Emacs - COSCUP 2012

http://marmalade-repo.org/

ELPA

Page 69: Emacs - COSCUP 2012

http://melpa.milkbox.net/

ELPA

Page 70: Emacs - COSCUP 2012

https://github.com/dimitri/el-get

el-get

Page 71: Emacs - COSCUP 2012

2163

find el-get/recipes|wc -l

Page 72: Emacs - COSCUP 2012

Emacs Lisp Intro.ELisp 簡介

Page 73: Emacs - COSCUP 2012

必讀

GNU Emacs Lisp Reference Manual

Page 74: Emacs - COSCUP 2012

來塗鴉吧!

*scratch*

Page 75: Emacs - COSCUP 2012

互動式程式設計

M-x ielm

Page 76: Emacs - COSCUP 2012

(+ 1 2 3) => 6

(<op> <a1> <a2> ... <aN>)

Page 77: Emacs - COSCUP 2012

定義函式

(defun hello () "Hello World!")

Page 78: Emacs - COSCUP 2012

M-x hello

(defun hello () (interactive) (message "Hello"))

Page 79: Emacs - COSCUP 2012

M-x hello

(defun hello (who) (interactive "sSay hello to: ") (message "Hello %s" who))

Page 80: Emacs - COSCUP 2012

C-h v hello-times

(defvar hello-times 0 "Said how many times?")

Page 81: Emacs - COSCUP 2012

M-x customize-group uuid

(defcustom uuid-interface "eth0" "The default interface" :type 'string :group 'uuid)

Page 82: Emacs - COSCUP 2012

(add-hook HOOK FUNCTION)

Page 83: Emacs - COSCUP 2012

(defadvice FUNCTION ARGS&rest BODY)

Page 84: Emacs - COSCUP 2012

(require '<feature>)

(provide '<feature>)

Page 85: Emacs - COSCUP 2012

Misc Tips小技巧

Page 86: Emacs - COSCUP 2012

$ emacsclient <file>

M-x server-start

Page 87: Emacs - COSCUP 2012

回報問題

Bug Report

Page 88: Emacs - COSCUP 2012

http://debbugs.gnu.org/cgi/pkgreport.cgi?package=emacs

M-x report-emacs-bug

Page 89: Emacs - COSCUP 2012

Community Resources社群資源

Page 90: Emacs - COSCUP 2012

http://www.emacswiki.org/

EmacsWiki

Page 91: Emacs - COSCUP 2012

http://planet.emacsen.org/

Planet Emacsen

Page 92: Emacs - COSCUP 2012

http://news.gmane.org/index.php?prefix=gmane.emacs

Mailing Lists

Page 93: Emacs - COSCUP 2012

#emacs{.tw} @ freenode

IRC

Page 94: Emacs - COSCUP 2012

Q & A