Emacs, the Ultimate

Emacs, the Ultimate

EMACS, THE ULTIMATE Trung Ta Oracle Labs Australia & National University of Singapore Brisbane, Australia – August 9th, 2017 Which editor do you use the most? https://xkcd.com/378/ CASE STUDY: REAL PROGRAMMERS CASE STUDY: REAL PROGRAMMERS https://xkcd.com/378/ M-x butterfly Outline 1 Emacs, the basic 2 Emacs, the advance 3 Emacs, the ultimate 4 Getting started 5 Conclusion 5 • The first time I give an Emacs talk A few notes • The talk title is borrowed from: lambda-the-ultimate.org • Introduce what I know that Emacs can do • Many things that I don’t know or haven’t got chances to use • No intention to compare Emacs with other editors/IDEs 6 A few notes • The talk title is borrowed from: lambda-the-ultimate.org • Introduce what I know that Emacs can do • Many things that I don’t know or haven’t got chances to use • No intention to compare Emacs with other editors/IDEs • The first time I give an Emacs talk 6 Emacs, the basic 7 How do we interact with editor? 8 How do we interact with editor? 8 How do we interact with editor? 8 • Frequently moving hand between keyboard & mouse • Frequently moving palm around keyboard keys • Not using convenient editing features I Use ; !; "; # keys instead of Home, End, PageUp, PageDown I Use an editor with few convenient editing features ) Emacs helps to avoid these problems! How can we edit text unproductively? 9 • Frequently moving palm around keyboard keys • Not using convenient editing features I Use ; !; "; # keys instead of Home, End, PageUp, PageDown I Use an editor with few convenient editing features ) Emacs helps to avoid these problems! How can we edit text unproductively? • Frequently moving hand between keyboard & mouse 9 • Not using convenient editing features I Use ; !; "; # keys instead of Home, End, PageUp, PageDown I Use an editor with few convenient editing features ) Emacs helps to avoid these problems! How can we edit text unproductively? • Frequently moving hand between keyboard & mouse • Frequently moving palm around keyboard keys 9 ) Emacs helps to avoid these problems! How can we edit text unproductively? • Frequently moving hand between keyboard & mouse • Frequently moving palm around keyboard keys • Not using convenient editing features I Use ; !; "; # keys instead of Home, End, PageUp, PageDown I Use an editor with few convenient editing features 9 How can we edit text unproductively? • Frequently moving hand between keyboard & mouse • Frequently moving palm around keyboard keys • Not using convenient editing features I Use ; !; "; # keys instead of Home, End, PageUp, PageDown I Use an editor with few convenient editing features ) Emacs helps to avoid these problems! 9 What is Emacs? • A text editor born in 1976 and still lives actively today • The name Emacs stands for Editor MACroS • The first Emacs version was written in 1976 by David A. Moon and Guy L. Steele Jr • The most popular version GNU Emacs was created by Richard Stallman in 1984 • Many modern editors such as Eclipse, IntelliJ IDEA, Sublime, Visual Studio have an Emacs simulation mode 10 • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements 11 • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual 11 I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) 11 I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) 11 I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line 11 I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) 11 • Too complicated! • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word 11 • But some are similar to Unix/Linux Shell! Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! 11 Emacs movements • Use ; !; "; #, Home, End, PageUp, PageDown as usual • But b, f, p, n, a, e, v can avoid palm moving (backward/forward/previous/next /a . z/end/v in #) I C-b, C-f: backward/forward character (C denotes the Ctrl key) I C-p, C-n, C-a, C-e: previous/next line, begin/end of line I C-v, M-v: scroll up/down window (M denotes the Alt key) I M-b, M-f: backward/forward word • Too complicated! • But some are similar to Unix/Linux Shell! 11 Emacs movements By Martin Grand 12 • Emacs buffer: I The Emacs object containing text I Buffer 6= file: a file can be opened in multiple buffers I C-x C-f, C-x C-b, C-x k: open file, switch buffer, kill buffer • Emacs window: I The Emacs object showing a buffer I Emacs’ window 6= window in Linux/Windows (Emacs calls it frame) I C-x 0, 1, 2, 3: delete, maximize, split horizontally/vertically I C-x {, }, ˆ, _: shrink, enlarge horizontally/vertically Buffer and window 13 • Emacs window: I The Emacs object showing a buffer I Emacs’ window 6= window in Linux/Windows (Emacs calls it frame) I C-x 0, 1, 2, 3: delete, maximize, split horizontally/vertically I C-x {, }, ˆ, _: shrink, enlarge horizontally/vertically Buffer and window • Emacs buffer: I The Emacs object containing text I Buffer 6= file: a file can be opened in multiple buffers I C-x C-f, C-x C-b, C-x k: open file, switch buffer, kill buffer 13 Buffer and window • Emacs buffer: I The Emacs object containing text I Buffer 6= file: a file can be opened in multiple buffers I C-x C-f, C-x C-b, C-x k: open file, switch buffer, kill buffer • Emacs window: I The Emacs object showing a buffer I Emacs’ window 6= window in Linux/Windows (Emacs calls it frame) I C-x 0, 1, 2, 3: delete, maximize, split horizontally/vertically I C-x {, }, ˆ, _: shrink, enlarge horizontally/vertically 13 • Mark and region I Mark is a special text position set by the command C-Space I Region is the text between the point (current cursor) and the mark I Flexibility: set mark once and adjust the region by moving the cursor • Kill ring I The greedy clipboard of Emacs I M-w, C-w, C-y: copy, cut, yank (paste) I M-y: paste the previously copied/cut texts I C-k, M-d, C-Backspace, C-Del, .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    101 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us