Emacs - COSCUP 2012

Preview:

Citation preview

A Introduction

A Introduction

Emacs

about:kanru

a Debian Developerin MozillaVim 5+ yrEmacs 5+ yrkanru@kanru.info

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

Brief History簡明歷史

起源

TECO

EditorMACroS in TECO

TECMAC & TMACS

第一個使用 LISP 的 Emacs

Multics Emacs & EINE

首次公開

GNU Emacs 13.0?

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

Emacs Timeline

如何取得?

Get Emacs

apt-get install emacs

Bleeding edge!

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

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

Windows?

Jargons術語

模式

-*- mode: C++ -*-

Control + <key>

C-<key>

Meta + <key>

M-<key>

Alt + <key>

M-<key>

Control + x Control + c

C-x C-c

程式外框

Frame

分割視窗

Window

Buffer

Minibuffer

Region

Editing Commands編輯指令

-- anonymous

Escape-Meta-Alt-Control-Shift

逃生鍵

C-g

塊陶阿

C-g C-g C-g

離開

C-x C-c

開檔

C-x C-f

上下左右

C-{p,n,b,f}

刪除

C-k

行頭

C-a

行尾

C-e

刪除一行

C-a C-k

各有功用

C-[a-z]

執行指令

M-x

視窗操作

Window Operations

split-window-below

C-x 2

split-window-right

C-x 3

delete-window

C-x 0

delete-other-windows

C-x 1

other-window

C-x o

Help System強大的說明輔助系統

C-h t

Tutorial

取得各種說明

C-h <key>

說明 C-h

C-h ?

按鍵資訊

C-h k <key>

變數資訊

C-h v

函數資訊

C-h f

Info 系統

C-h i

取得各種資訊

M-x describe-*

Easy Customization簡易設定法

進入設定模式

M-x customize

進入分類設定模式

M-x customize-group

進入主題設定模式

M-x customize-themes

使用者設定檔

~/.emacs

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

.emacs bankruptcy

新・使用者設定檔

~/.emacs.d/init.el

省錢收納小技巧 (誤)

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

安裝更多擴充套件

Install More Extensions

M-x list-packages

ELPA

http://marmalade-repo.org/

ELPA

http://melpa.milkbox.net/

ELPA

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

el-get

2163

find el-get/recipes|wc -l

Emacs Lisp Intro.ELisp 簡介

必讀

GNU Emacs Lisp Reference Manual

來塗鴉吧!

*scratch*

互動式程式設計

M-x ielm

(+ 1 2 3) => 6

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

定義函式

(defun hello () "Hello World!")

M-x hello

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

M-x hello

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

C-h v hello-times

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

M-x customize-group uuid

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

(add-hook HOOK FUNCTION)

(defadvice FUNCTION ARGS&rest BODY)

(require '<feature>)

(provide '<feature>)

Misc Tips小技巧

$ emacsclient <file>

M-x server-start

回報問題

Bug Report

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

M-x report-emacs-bug

Community Resources社群資源

http://www.emacswiki.org/

EmacsWiki

http://planet.emacsen.org/

Planet Emacsen

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

Mailing Lists

#emacs{.tw} @ freenode

IRC

Q & A

Recommended