Upgrade to Pro — share decks privately, control downloads, hide ads and more …

About Emacs @ Douban

toctan
September 02, 2014

About Emacs @ Douban

toctan

September 02, 2014
Tweet

Transcript

  1. 1. Emacs is an editor.! 2. Emacs isn’t just an

    editor.! 3. Actually, Emacs is an IDE
  2. - cursor motion - insert & delete - selection -

    copy & cut & paste - undo & redo - search & replace Basic Editing
  3. Basic Motion backward forward char C-b C-f line C-n C-p

    line beg/end C-a C-e word M-b M-f sentence M-a M-e paragraph M-{ M-} buffer beg/end M-< M->
  4. “Emacs is a good operating system, it just needs a

    decent text editor.” – vi advocates
  5. “Extensibility means that the user can add new editing commands

    or change old ones to fit his editing needs, while he is editing.” – Richard Stallman
  6. “EMACS is written in a modular fashion, composed of many

    separate and independent functions. The user extends EMACS by adding or replacing functions, writing their definitions in the same language that was used to write the original EMACS system.” – Richard Stallman
  7. “Having an extension language which lets you define functions and

    bind them to keys does not make you "Emacs". The big idea of Emacs (which of course it got from the Lisp machines) is self-hosting: Emacs is written in Emacs Lisp. There is no separate extension language.” – @deng on HN
  8. Basic Motion backward forward char C-b C-f line C-n C-p

    line beg/end C-a C-e word M-b M-f sentence M-a M-e paragraph M-{ M-} buffer beg/end M-< M->
  9. S-expression atom (a list of atom) (a list of (list))

    “a list of words” <p>a list of words</p> print(a, list, of, arguments) def hello() print “hello world!\n” end
  10. kill-sexp C-M-k copy-sexp C-M-w join-sexp C-M-j split-sexp C-M-s transpose-sexp C-M-t

    slurp-sexp C-( C-) barf-sexp C-{ C-} splice-sexp M-<up> M-<down>
  11. 1. Emacs is an editor.! 2. Emacs isn’t just an

    editor.! 3. Actually, Emacs is an IDE
  12. General front end for text based systems. - Email Reader!

    - IRC Client! - File Manager! - Process Manager! - Terminal Emulator! - Documentation Reader! - Git Client! - and much, much more…
  13. Git Integration - vc - git-commit-mode - git-rebase-mode - gitconfig-mode

    - gitignore-mode - git-timemachine - magit - diff-hl
  14. projectile-find-file C-c p f projectile-switch-project C-c p p projectile-replace C-c

    p r projectile-grep C-c p g projectile-regenerate-tags C-c p R projectile-find-tag C-c p j Projectile
  15. helm-find-files C-x c C-x C-f helm-buffers-list C-x c C-x C-b

    helm-do-grep C-x c M-g s helm-show-kill-ring C-x C-j helm-etags-select C-x c e helm-top C-x c t helm-find C-x c / helm-locate C-x c l helm-man-woman C-x c m Helm
  16. Emacs has 338 modes, 2531 commands, 75 packages builtin, and

    another 2034 available via package.el.
  17. “Customizable means that you can easily alter the behavior of

    Emacs commands in simple ways.” – Emacs Manual
  18. “A complex program is much easier to learn if it

    can answer questions about how to use it.” – Richard Stallman
  19. help-for-help C-h C-h apropos-command C-h a describe-mode C-h m describe-key

    C-h k find-function-on-key describe-function C-h f find-function describe-variable C-h v find-variable Help
  20. 1. Emacs is an editor.! 2. Emacs isn’t just an

    editor.! 3. Actually, Emacs is an IDE
  21. “The idea behind Light Table was that we have like

    this really long feedback loop in programming, and Microsoft loved it, it's the edit, compile, debug cycle. The truth is that should not be the cycle at all, should be just the edit, that should be the cycle.” – Chris Granger
  22. Advanced Programming Support - interactive REPL! - code evaluation! -

    auto complete! - snippets! - syntax check on the fly! - jump to definition! - find file at point! - documentation look up! - compile! - debug! - refactor