EMACS THAM KHẢO NHANH
Điều hướng, chỉnh sửa, buffer, tìm kiếm, org mode, package
Điều Hướng
Di Chuyển Con Trỏ
| C-f / C-b | Tiến / lùi một ký tự |
| M-f / M-b | Tiến / lùi một từ |
| C-n / C-p | Dòng tiếp / trước |
| C-a / C-e | Đầu / cuối dòng |
| M-a / M-e | Đầu / cuối câu |
| C-v / M-v | Cuộn xuống / lên một trang |
| M-< / M-> | Đầu / cuối buffer |
| M-g g | Đến số dòng |
Định Vị Màn Hình
| C-l | Căn giữa màn hình (xoay vòng trên/giữa/dưới) |
| C-M-l | Định vị lại cửa sổ theo heuristic |
Chỉnh Sửa
Kill & Yank (Cắt & Dán)
| C-k | Kill đến cuối dòng |
| C-w | Kill vùng chọn (cắt) |
| M-w | Sao chép vùng chọn |
| C-y | Yank (dán) |
| M-y | Duyệt kill ring sau khi yank |
| C-d | Xóa ký tự phía trước |
| M-d | Kill từ phía trước |
| M-DEL | Kill từ phía sau |
Undo & Transpose
| C-/ or C-_ | Hoàn tác |
| C-g C-/ | Làm lại (hoàn tác của hoàn tác) |
| C-t | Hoán đổi ký tự |
| M-t | Hoán đổi từ |
| C-x C-t | Hoán đổi dòng |
Chọn Vùng
| C-SPC | Đặt mark (bắt đầu chọn) |
| C-x h | Chọn toàn bộ buffer |
| M-h | Chọn đoạn văn |
| C-x C-x | Hoán đổi điểm và mark |
Buffers & Windows
Buffers
| C-x b | Chuyển đến buffer |
| C-x C-b | Liệt kê tất cả buffer |
| C-x k | Kill (đóng) buffer |
| C-x LEFT / RIGHT | Buffer trước / tiếp theo |
Windows
| C-x 2 | Chia cửa sổ ngang |
| C-x 3 | Chia cửa sổ dọc |
| C-x 0 | Đóng cửa sổ hiện tại |
| C-x 1 | Đóng tất cả cửa sổ khác |
| C-x o | Chuyển sang cửa sổ khác |
| C-x ^ | Phóng to cửa sổ theo chiều dọc |
| C-x { | Thu nhỏ cửa sổ theo chiều ngang |
Frames
| C-x 5 2 | Tạo frame mới |
| C-x 5 0 | Xóa frame hiện tại |
| C-x 5 o | Chuyển sang frame khác |
Tìm Kiếm & Thay Thế
Tìm Kiếm Tăng Dần
| C-s | Tìm tiến (tăng dần) |
| C-r | Tìm lùi (tăng dần) |
| C-s C-s | Lặp lại tìm kiếm tiến cuối |
| C-M-s | Tìm regex tiến |
| C-M-r | Tìm regex lùi |
| RET | Thoát tìm kiếm tại vị trí hiện tại |
| C-g | Hủy tìm kiếm, quay lại điểm ban đầu |
Thay Thế
| M-% | Thay thế có xác nhận |
| C-M-% | Thay thế regex có xác nhận |
| y | Thay thế kết quả khớp này |
| n | Bỏ qua kết quả khớp này |
| ! | Thay thế tất cả còn lại |
| q | Thoát thay thế |
Files
Thao Tác File
| C-x C-f | Tìm (mở) file |
| C-x C-s | Lưu buffer hiện tại |
| C-x C-w | Lưu thành (ghi vào file mới) |
| C-x s | Lưu tất cả buffer đã sửa |
| C-x C-r | Mở file chỉ đọc |
| C-x i | Chèn nội dung file tại điểm con trỏ |
Dired (Directory Editor)
| C-x d | Mở thư mục trong Dired |
| d / x | Đánh dấu để xóa / thực hiện xóa |
| R | Đổi tên / di chuyển file |
| C | Sao chép file |
| + | Tạo thư mục |
| g | Làm mới danh sách |
Modes
Major Modes
| M-x fundamental-mode | Chỉnh sửa văn bản thuần |
| M-x text-mode | Văn bản có fill và kiểm tra chính tả |
| M-x prog-mode | Cơ sở cho các mode lập trình |
| M-x python-mode | Chỉnh sửa và thụt đầu dòng Python |
| M-x shell-mode | Shell tương tác trong buffer |
Minor Modes Hữu Ích
| M-x display-line-numbers-mode | Bật/tắt số dòng |
| M-x auto-fill-mode | Tự động xuống dòng tại fill column |
| M-x flyspell-mode | Kiểm tra chính tả liên tục |
| M-x column-number-mode | Hiển thị số cột trong mode line |
| M-x whitespace-mode | Hiển thị khoảng trắng |
| M-x electric-pair-mode | Tự đóng ngoặc và trích dẫn |
Org Mode Cơ Bản
Cấu Trúc
| * / ** / *** | Heading cấp 1 / 2 / 3 |
| TAB | Xoay vòng hiển thị heading |
| S-TAB | Xoay vòng hiển thị toàn cục |
| M-RET | Chèn heading cùng cấp |
| M-LEFT / M-RIGHT | Tăng / giảm cấp heading |
| M-UP / M-DOWN | Di chuyển subtree lên / xuống |
TODO & Checkbox
| C-c C-t | Xoay trạng thái TODO |
| C-c C-d | Đặt deadline |
| C-c C-s | Lên lịch item |
| C-c C-c | Bật/tắt checkbox [ ] / [X] |
| C-c a | Mở agenda view |
Links & Xuất
| C-c C-l | Chèn / chỉnh sửa link |
| C-c C-o | Mở link tại con trỏ |
| C-c C-e | Dispatcher xuất (HTML, PDF, v.v.) |
Quản Lý Package
package.el
| M-x list-packages | Duyệt package có sẵn |
| i / d / x | Đánh dấu cài / xóa / thực hiện |
| U | Đánh dấu tất cả có thể nâng cấp |
| M-x package-refresh-contents | Làm mới danh sách package |
use-package (init.el)
(use-package magit
:ensure t
:bind ("C-x g" . magit-status))
(use-package company
:ensure t
:hook (prog-mode . company-mode))
Cấu Hình
File Cấu Hình Quan Trọng
| ~/.emacs.d/init.el | File cấu hình chính |
| ~/.emacs.d/early-init.el | Khởi tạo sớm (trước GUI, Emacs 27+) |
| ~/.emacs.d/custom.el | Cài đặt được ghi bởi Customize |
Cài Đặt Thường Dùng
(setq inhibit-startup-screen t)
(tool-bar-mode -1)
(set-face-attribute 'default nil :height 120)
(global-display-line-numbers-mode 1)
(setq make-backup-files nil)
Hệ Thống Help
| C-h k | Mô tả key binding |
| C-h f | Mô tả hàm |
| C-h v | Mô tả biến |
| C-h m | Mô tả các mode hiện tại |
| C-h t | Mở hướng dẫn Emacs |
| C-h i | Mở tài liệu Info |
Các Pattern Thường Gặp
Chỉnh Sửa Rectangle
| C-x SPC | Bắt đầu chế độ rectangle mark |
| C-x r k | Kill rectangle |
| C-x r y | Yank rectangle |
| C-x r t | Thay rectangle bằng chuỗi |
| C-x r o | Chèn rectangle trống |
Macros
| C-x ( | Bắt đầu ghi macro |
| C-x ) | Dừng ghi macro |
| C-x e | Thực thi macro cuối |
| C-u 10 C-x e | Thực thi macro 10 lần |
| M-x name-last-kbd-macro | Đặt tên macro để tái sử dụng |
Shell & Eval
| M-x shell | Mở shell trong buffer |
| M-x eshell | Shell Emacs Lisp |
| M-! | Chạy lệnh shell |
| M-x eval-buffer | Đánh giá toàn bộ buffer như Elisp |
| C-x C-e | Đánh giá biểu thức Elisp trước con trỏ |