Giới thiệu và lịch sử
GNU Emacs là gì
GNU Emacs là trình soạn thảo văn bản
- tự do: tự do sao chép và phân phối lại
- có thể chạy trên nhiều hệ điều hành
- có thể mở rộng: không chỉ thay đổi các xác lập cá nhân mà còn có thể tạo ra những chức năng mới.
GNU Emacs không là gì
GNU Emacs không là trình xử lý từ WYSIWYG (thấy gì được nấy).
Các loại Emacs
Thực ra Emacs là tên của một họ các trình soạn thảo văn bản. Emacs nguyên thuỷ được viết bằng ngôn ngữ lập trình của trình soạn thảo văn bản TECO, và chạy trên DEC PDP-10 và -11.
Emacs đầu tiên cho các máy Unix là Gosling Emacs, sau này được thương mại hoá với tên Unipress Emacs. GNU Emacs được viết bởi Richard Stallman, tác giả chính của TECO Emacs nguyên thuỷ.
Yêu cầu chính để một trình soạn thảo văn bản được gọi là “emacs” là nó có thể được mở rộng đầy đủ với một ngôn ngữ lập trình thực, không đơn thuần là một ngôn ngữ macro. Đối với GNU Emacs, ngôn ngữ này là Lisp.
Về bài viết này
Bài viết này hiện dựa gần như hoàn toàn trên bản “A Tutorial Introduction to GNU Emacs” (http://www.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html) bởi Keith Waclena – nhưng có thể được bổ sung và mở rộng sau này. Bản mới nhất của tài liệu này có ở http://labang.sourceforge.net.
Bàn phím và bộ kí tự
Tất cả các lệnh của Emacs dùng bộ kí tự ASCII 8 bit.
Kí hiệu
C-x
Kí tự Control-x, với x là phím bất kì.
M-x
Kí tự Meta-x, với x là phím bất kì.
C-M-x
Kí tự Control-Meta-x, với x là phím bất kì.
RET
Phím return (thực ra là C-m).
SPC
Thanh khoảng trắng (space bar).
ESC
Phím escape, hay tương đương, C-[
Cấu trúc lệnh Emacs
Đối với Emacs, mỗi gõ phím (keystroke) thực ra là một lệnh, ngay cả các gõ phím đơn giản như các chữ cái A và z: in các ký tự là lệnh điền chúng vào. Các ký tự không in (non-printing) là các lệnh soạn thảo, tức dùng để di chuyển con trỏ, cuộn văn bản, xoá hoặc sao chép văn bản, v.v.
Mỗi lệnh có một tên dài, như kill-line, delete-backward-char, hay self-insert-command. Các lệnh này được liên kết (bind) với một gõ phím để thuận tiện khi soạn thảo. Mỗi cặp gõ phím và lệnh được gọi là liên kết phím (key binding), hoặc gọi tắt là liên kết (binding).
Bộ các liên kết tạo thành bộ lệnh Emacs. Tuy nhiên, chúng có thể được mở rộng và được thay đổi tuỳ thích.
Các phím đơn
95 ký tự ASCII in được, chúng liên kết với self-insert-command để được điền vào văn bản khi được gõ.
các ký tự điều khiển: C-a, C-b,…: 32 kí tự soạn thảo.
Metađể sử dụng thêm 128 ký tự ở nửa trên của ASCII cho các lệnh soạn thảo:
M-a, M-b,… (cũng có M-A là một kí tự riêng biệt, nhưng để giảm thiểu nhầm lẫn các kí tự meta chữ hoa được coi như các kí tự meta chữ thường tương ứng.)
C-M-a (tương đương với M-C-a),… (giữ Control và Meta đồng thời và gõ phím kia.)
Các phím tiền tố và tổ hợp
Lệnh tiền tố (prefix command) là một gõ phím đợi một kí tự khác được gõ, tạo thành một cặp gõ phím liên kết với một lệnh. Lệnh tiền tố thường nhóm các lệnh có liên hệ với nhau.
Các lệnh tiền tố tiêu chuẩn là:
C-c
Dùng cho các lệnh đặc hiệu cho các chế độ (mode) cụ thể.
C-h
Dùng cho các lệnh giúp đỡ.
C-x
Chủ yếu dùng cho các lệnh thao tác trên tập tin, bộ đệm và cửa sổ.
Một lệnh của lệnh tiền tố cũng có thể liên kết với một lệnh tiền tố khác.
Dùng các lệnh mở rộng
Đối với một người dùng cụ thể, có những lệnh hiếm khi được dùng, và khi cần có thể tra tên dài của lệnh đó (bằng cách dùng Info, hệ thống giúp đỡ trực tuyến của Emacs) và gõ nó trực tiếp.
Có một lệnh của Emacs có thể được dùng để thi hành lệnh khác bằng cách gõ tên dài của nó: M-x.
Tiền tố ESC
Phím ESC có thể được dùng thay cho Meta, đặc biệt là trong trường hợp bàn phím không có phím Meta hoặc phím Meta không sử dụng được. Điểm cần lưu ý là phím ESC không là phím chuyển (shift key) như Control hay Meta mà thực chất là một ký tự ASCII, do đó cần gõ nó riêng biệt (nếu giữ ESC lâu, nó có thể tự lặp lại như các phím khác). Thí dụ: M-a trở thành ESC a; C-M-f trở thành ESC C-f.
Có quá nhiều lệnh?
Người dùng không cần phải nhớ tất cả các lệnh mà chỉ cần học các lệnh cơ bản và một số lệnh nâng cao phù hợp với nhu cầu của mình.