EDITOR

CCCA

About Me

Peter

package management system

Bash on Windows

Apt

Different Platform

  • Ubuntu: Apt
  • OSX: homebrew
  • FreeBSD: pkg
  • Arch linux: pacman
  • etc.

Command: Ubuntu

  • sudo add-apt-repository ppa:kelleyk/emacs
  • sudo apt update
  • sudo apt install emacs-nox

Command: OSX

  • brew tap railwaycat/emacsmacport
  • brew install emacs-mac

Command: FreeBSD

  • sudo pkg install emacs-nox11

Introduction

Why text editor?

Why text editor?

Why text editor?

  • lite weight
  • highly customizable
  • convenient for remote work

How to learn?

How to learn?

How to learn?

Text Editors

In the old days

  • ee
  • vi

nowadays

  • nano
  • Vim
  • Emacs

Text Editors

editors

Vi

jokes

jokes

Not today

but for survival

This Thursday EC330 7:00

Don't miss it

Mode

  • Normal mode
  • Insert mode
  • etc.

Normal mode

  • Move cursor
  • change mode
  • enter command

Insert mode

  • edit file content

Progress

Open file

$ vi a.txt

$ vi  filename

Move cursor

enter "i"

"ESC"

back to Normal mode

edit

delete?

backspace & delete not working QQ

delete!

  • X == delete char before cursor 
  • x == delete char after cursor

Insert or Append?

edit

  • i == write before cursor 
  • a == write after cursor

"ESC"

back to Normal mode

":"

Enter Command

Exit Vi

  • :q == quit
  • :wq == write & quit
  • :q! == suspend changes & quit

Survival!!

Emacs

Emacser?

Keys

  • Ctrl
  • alt
  • esc
  • super
  • hyper
  • meta

old keyboard

EMACS == Esc + meta + alt + ctrl + shift

So many keys

so hard to remember

Don't worry

Let's start

highly customizable

with emacs lisp

lisp

  • (+ 1 2 3 4 5) == 15
  • (defun f  (x)  (*  x  x)) == f(x) = x^2

Emacs

a lisp enviornment

everything is a

lisp function

keys

  • Ctrl == C
  • Meta == M == ESC or alt
  • "C-g" == Ctrl + g

we bind functions to keys

M-x

select a lisp function

cheatsheet

Move

  • C-p -> previous
  • C-n -> next
  • C-f  -> forward
  • C-b -> backward

Move

  • C-a -> line head
  • C-e -> line end
  • M-< -> file head
  • M-> -> file end

Move

  • C-v -> next page
  • M-v -> previous page

Mark

  • C-@ -> mark start

delete

  • backspace | delete
  • C-d
  • C-@ + delete

kill?

  • C-k
  • C-@ + C-w
  • M-d

Kill & Yank!

yank

  • C-y

kill ring

kill ring

  • kill -> into kill ring
  • C-y -> yank from ring
  • (C-y) M-y  -> rotate ring

Copy(into kill ring)

  • C-@ + M-w

Search

  • C-s
  • C-r

replace

  • M-%

split windows

  • C-x 2 -> row 
  • C-x 3 -> col
  • C-x 1  -> close others
  • C-x 0 -> close this

macro (record keys)

  • C-x (    -> start record
  • C-x )    -> end record
  • C-x e   -> execute

save & quit

  • C-x C-s -> save
  • C-x C-c -> quit
  • C-x C-w + /path -> write to path

Packages

~/.emacs.d/

spacemacs

demo

Q&A

EDITOR

By Peter Cheng

EDITOR

  • 972