*Bài này nói về trình soạn thảo văn bản. Về kiểu máy tính của Apple Macintosh, xem eMac.*
**Emacs** là trình soạn thảo văn bản đa chức năng. Đây là phần mềm tự do, chạy được trên nhiều hệ điều hành và có thể mở rộng để thêm vào chức năng mới. Emacs phổ biến trong giới lập trình máy tính và người dùng máy tính thông thạo kĩ thuật.

Chương trình EMACS, tên được tạo ra từ ***E**ditor **MAC**ro**S***, đầu tiên dùng cho trình soạn thảo TECO (*Text Editor and Corrector*) được Richard Stallman, Guy Steele và Dave Moon viết năm vào 1976. Nó dựa trên cặp chương trình soạn thảo TECO-macro là TECMAC và TMACS được viết bởi Guy Steele, Dave Moon, Richard Greenblatt, Charles Frankston và một số người khác. Qua thời gian đã xuất hiện nhiều phiên bản Emacs, nhưng ngày nay 2 phiên bản phổ biến nhất là GNU Emacs, do Richard Stallman bắt đầu viết vào 1984, và XEmacs, phân nhánh từ GNU Emacs năm 1991. Cả hai đều dùng ngôn ngữ Emacs Lisp có khả năng mở rộng mạnh mẽ, cho phép chúng xử lý nhiều tác vụ khác nhau, từ việc lập trình và biên dịch chương trình máy tính đến duyệt web.

Emacs có thể chạy trên nhiều hệ điều hành khác nhau như các hệ thống giống Unix (GNU/Linux, các loại BSD, Solaris, AIX, v.v.), MS-DOS, Microsoft Windows, OpenVMS và Mac OS X.

Emacs chạy trên giao diện văn bản lẫn đồ hoạ. Trên các hệ điều hành giống Unix, Emacs dùng hệ thống X Window để tạo giao diện đồ hoạ trực tiếp hoặc thông qua "widget toolkit" như Motif, LessTif hay GTK+. Emacs có thể dùng giao diện đồ hoạ nguyên thủy của Mac OS X và Microsoft Windows.

Một số người phân biệt chữ *emacs* viết thường, dùng để chỉ các trình biên tập giống Emacs (nhất là GNU Emacs và XEmacs), và *Emacs* viết hoa chữ đầu, dùng để chỉ GNU Emacs.

Emacs hiện là một phía của cuộc chiến trình biên tập, phía bên kia là vi.

Tính năng
---------

* Soạn thảo trên nhiều cửa sổ (*window*) và bộ đệm (*buffer*)
* Tìm kiếm, thay thế, tự sửa lỗi
* *Soạn thảo đệ quy* (recursive edit): cho phép soạn thảo khi một câu lệnh đang thực hiện giữa chừng
* Nhiều chế độ soạn thảo: văn bản thường, các file chương trình (tô màu cú pháp và thực hiện từng đoạn mã lệnh), ngôn ngữ đánh dấu (HTML), LaTeX, vẽ hình bằng các ký tự
* Các macro bàn phím
* Sửa đổi theo ý thích cá nhân bằng cách chỉnh sửa các biến của chương trình
* Lập trình bằng ngôn ngữ Emacs Lisp
* Nhiều chương trình phụ trợ (danh sách thư mục, đọc và soạn e-mail, trò chơi,...)

Phím tắt
--------

Ngoài các menu, Emacs còn có rất nhiều phím tắt. Sau đây là danh sách các phím tắt cơ bản. Cũng như nhiều tài liệu hướng dẫn Emacs, `C-x` nghĩa là CTRL-x và `M-x` nghĩa là ALT-x.

| Phím tắt | Chức năng |
| --- | --- |
| C-x C-c | Thoát khỏi Emacs |
| C-x C-f | Tìm và mở file |
| C-x C-s | Lưu file |
| C-x C-w | Lưu file với tên khác |
| C-s | Tìm kiếm |
| C-x h | Đánh dấu chọn tất cả (Select all) |
| C-@ | Đánh dấu vị trí đầu khối |
| C-w | Cắt (Cut) vùng được đánh dấu |
| M-w | Copy vùng được đánh dấu |
| C-y | Dán (Paste); hoặc khôi phục lại phần vừa xóa (Undo) |
| M-x *lệnh* | Thực hiện lệnh (lệnh được gõ vào cửa sổ nhỏ ở phía dưới) |

XEmacs
------

**XEmacs** là một nhánh của Emacs nhưng tập trung vào giao diện và một mô hình phát triển phần mềm nguồn mở kiểu như Linux.

Tham khảo
---------

1. ↑  "What is XEmacs?". Truy cập ngày 3 tháng 10 năm 2020.

Liên kết ngoài
--------------

|  |  |
| --- | --- |
|  | Wikimedia Commons có thêm hình ảnh và phương tiện truyền tải về ***Emacs***. |

Tiếng Anh
* Trang chủ của GNU Emacs
* Trang chủ của XEmacs
* Wiki của người dùng Emacs

Tiếng Việt
* Giới thiệu GNU Emacs Lưu trữ 2005-04-07 tại Wayback Machine