Doom Emacs là một bản phân phối nhằm tạo cách dễ dàng, dễ tiếp cận để bắt đầu với Emacs. Với hàng trăm trang tài liệu chi tiết các hàm khác nhau, bản thân Emacs có thể gây sợ hãi.
Điều này hữu ích cho người dùng đã quen và người say sách. Tuy nhiên, cách tiếp cận "tự do" này không giúp ai chỉ muốn thử nó.
Doom Emacs nhằm loại bỏ phần rườm rà và tinh chế trải nghiệm Emacs với những điểm mạnh cốt lõi. Nó cho phép người dùng tận dụng khả năng mở rộng mà không cần liên tục tra manual chỉ để làm việc cơ bản. Kết quả là một phiên bản Emacs có thể dễ dàng thay đổi, sửa đổi để phù hợp nhu cầu người dùng.
Cài đặt Doom Emacs khá đơn giản. Chỉ cần chuẩn bị ba thứ trước:
- Cài đặt Emacs 27.1 thuần túy
- ripgrep
- Git
Cài Đặt Emacs Và ripgrep
Emacs và ripgrep có sẵn trong hầu hết kho của các bản phân phối Linux chính. Ví dụ, để cài Emacs và ripgrep trên Debian và Ubuntu 21.10 dùng apt:
sudo apt install emacs-gtk ripgrep
Trên Arch Linux, dùng pacman:
sudo pacman -Syu emacs ripgrep
Trên Fedora, dùng dnf:
sudo dnf install emacs ripgrep
Trên Void Linux, dùng xbps:
sudo xbps-install emacs-gtk2 ripgrep
Trong trường hợp của tôi, tôi đang cài Emacs và ripgrep trên hệ thống Void Linux.
Lưu ý quan trọng: Emacs có nhiều "hương" khác nhau. Hầu hết trình quản lý gói chọn phiên bản phù hợp, nhưng có trường hợp hiếm khi quá trình này thất bại.
Vì vậy, ta nên biết phiên bản mình cài. Ta cần phiên bản Emacs chạy trong môi trường đồ họa, để lại:
- X11
- GTK-2
- GTK-3
Sau đó, ta có thể tiến hành cài Git.
Cài Đặt Git
Để cài Doom Emacs, ta cần lấy kho mã từ xa từ internet. Để làm vậy, cài Git. Nó cho phép sao chép mã tức thì và quan trọng hơn, cập nhật giữa các phiên bản chính.
Tương tự Emacs, Git phổ biến trên mọi bản phân phối Linux. Để cài trên Debian và Ubuntu, dùng apt:
sudo apt install git
Trên Arch Linux, dùng pacman:
sudo pacman -Syu git
Trên Fedora, dùng dnf:
sudo dnf install git
Trên Void Linux, dùng xbps:
sudo xbps-install git
Trong trường hợp của tôi, tôi đang cài Git trên Void Linux.
Cài Đặt Doom Emacs
Để cài Doom Emacs, chỉ cần chạy vài lệnh:
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
Đây là lệnh Git lấy kho Doom Emacs cho máy của ta.
- Hàm
clonenghĩa là ta sao chép kho mới nhất khi chạy lệnh. - Tùy chọn
depthcắt ngắn lịch sử kho xuống hai phiên bản gần nhất.
Trong lệnh này, ta cũng lưu kho trong thư mục cấu hình Emacs mặc định. Vì vậy, cần đảm bảo thư mục không tồn tại bằng lệnh:
rm -rf /home/$USER/.emacs.d/
Sau đó, bắt đầu cài đặt bằng lệnh:
/home/$USER/.emacs.d/bin/doom install
Lệnh này cài Doom Emacs lên trên cài đặt Emacs.
Cấu Hình Sau Cài Đặt
Sau đó, còn vài việc cần làm để đảm bảo cài đặt không gặp sự cố.
Thứ nhất, thiết lập biến PATH để phát hiện thư mục "/home/$USER/.emacs.d/doom/bin/". Làm bằng cách thêm dòng sau vào tệp "/home/$USER/.profile":
export PATH=$PATH:$HOME/.emacs.d/doom/bin
Điều này cập nhật biến PATH để bao gồm thư mục bin của Doom. Sau đó, chỉ cần đăng nhập lại để tải lại biến môi trường.
Để kiểm tra xem biến PATH có phát hiện thư mục "/home/$USER/.emacs.d/doom/bin" không, chạy lệnh:
doom doctor
Điều này đảm bảo cài đặt được thực hiện đúng. Nếu có vấn đề trong quá trình, hàm doom doctor sẽ báo cho ta biết.
Tiện Ích Doom: Người Bạn Đồng Hành Của Doom Emacs
doom doctor chỉ là một trong các hàm có sẵn trong tiện ích doom. Nó là chương trình chính cho phép ta sửa đổi, cập nhật và sửa chữa Doom Emacs.
Vì vậy, các hàm phổ biến nhất cần biết là:
doom doctorkiểm tra bất kỳ sự không nhất quán nào với cài đặt ban đầu. Cũng đặc biệt hữu ích khi gặp vấn đề khi dùng Doom Emacs. Nó kiểm tra tất cả thư mục và cấu hình liên quan đến Doom để tìm lỗi tiềm ẩn.doom upgradecho phép nâng cấp cài đặt dễ dàng. Nó kiểm tra cập nhật trong kho và đồng bộ hóa bản sao với phiên bản mới nhất và xử lý di chuyển giữa các phiên bản. Để làm vậy, doom upgrade dọn dẹp cấu hình Doom hiện tại và dàn dựng nâng cấp.doom purgexử lý các gói và module cũ đã cài. Nếu ta gỡ một loạt gói, nó sẽ xóa tất cả phụ thuộc không dùng. Nó cũng có khả năng nén kho hiện tại bằng cách chạy với cờ -g.doom synccho phép sửa cấu hình tùy chỉnh. Khi cài Doom Emacs, nó tạo tệp riêng cho cấu hình cá nhân dưới "/home/$USER/.doom.d/". Chạy hàm sync sẽ kích hoạt các cấu hình được làm cho .emacs.d trong thư mục .doom.d.
Cấu Hình Doom Emacs
Thư mục .doom.d là nơi tất cả cấu hình Doom tồn tại. Nó bao gồm ba tệp:
- Tệp packages.el cho biết cài gói gì và từ đâu.
- Tệp config.el là nơi cấu hình tùy chỉnh của ta được đưa vào. Bao gồm cấu hình cho cả Doom và các gói bổ sung đã cài.
- Tệp init.el là "thịt và khoai tây" của Doom Emacs. Đây là nơi tất cả tính năng của bản phân phối có thể bật hoặc tắt.
Module Doom
Doom Emacs cho phép lựa chọn hơn 150 module. Ta có thể bật các module bằng cách chọn những cái mình muốn. Điều này cho phép tùy chỉnh Doom thành môi trường tính toán riêng.
Thêm và xóa module khỏi Doom Emacs chỉ là vấn đề sửa hàm doom! trong tệp ".doom.d/init.el". Cú pháp chung trông như sau:
(doom! :checkers (syntax) :editor (evil) :lang (org +journal))
Để bật một module, ta cần gán nhãn danh mục. Trong ví dụ này, để thêm module syntax, ta cần trước thêm danh mục checkers.
Hơn nữa, các module này cũng chứa cờ có thể kích hoạt cho một module cụ thể. Điều này tương tự như USE flags của Gentoo cho phép tinh chỉnh chương trình bằng cách chỉ bật tính năng mong muốn.
Để thêm cờ cho module, thêm dấu "+" theo sau tên cờ. Trong ví dụ này, ta thêm cờ journal vào org để bật hỗ trợ nhật ký.
Xong rồi, chạy doom sync để khởi tạo lại Doom Emacs với cài đặt mới.
Cách Cài Đặt Gói Bổ Sung
Mặc định, Doom Emacs đã có nhiều gói khi cài. Tuy nhiên, ta cũng dễ dàng cài phần mềm bổ sung từ kho. Làm bằng cách dùng hàm package! trong tệp ".doom.d/packages.el".
Có nhiều cách cài gói trong Doom. Cách phổ biến nhất là lấy gói từ ELPA và MELPA. Để làm vậy, chỉ cần thêm mã Lisp này vào packages.el:
(package! name-of-package)
Điều này sẽ nói cho hàm package! kiểm tra mọi kho phổ biến cho gói được chỉ định.
Tuy nhiên, nếu gói của bạn không tồn tại trong bất kỳ kho nào cho Emacs, bạn cũng có thể cài trực tiếp từ kho git của nó:
(package! name-of-git-package :recipe (:host github :repo "username/package"))
Điều này sẽ nói cho hàm package! kéo gói cụ thể đó từ github dưới kho "username/package".
Ta cũng có thể cụ thể về vị trí trong kho từ xa muốn lấy gói. Ví dụ, ta có thể kéo gói từ một vị trí cụ thể trong kho:
(package! another-git-package :recipe (:host github :repo "username/package" :files ("package.el" "path/of/*.el")))
Điều này hữu ích khi cài từ kho có nhiều gói sắp xếp trong thư mục con. Dùng cách này, ta chỉ định chính xác cái muốn cài làm gói.
Xong rồi, cần chạy doom sync để khởi tạo lại Doom Emacs.
Chúc mừng! Bây giờ bạn đã có cài đặt Doom Emacs cơ bản cũng như hiểu biết cơ bản về cách nó hoạt động và cách cấu hình, mở rộng nó. Nếu bạn tìm ứng dụng năng suất trên Linux, chúng tôi có bài viết dành cho bạn.
Câu Hỏi Thường Gặp
1. Tôi vừa cài Doom Emacs, và nó chỉ hiện màn hình trắng khi mở.
Điều này khả do vì có vấn đề trong thư mục .doom.d của bạn, và Doom Emacs không thể tải bất kỳ cài đặt nào. Cách giải quyết là kiểm tra xem thư mục .doom.d có tồn tại và ba tệp – init.el, packages.el và config.el – có tồn tại không.
Điều này cũng có thể xảy ra vì tệp init.el được tạo ra bị lỗi hoặc không có hàm doom bên trong. Để sửa, bạn phải tạo khối hàm doom với các module bạn muốn chạy với Doom Emacs.
2. Tôi đang dùng package.el quản lý gói, có thể dùng trong Doom Emacs không?
Không. Doom Emacs dùng trình quản lý khác để duy trì gói. Bạn sẽ cần dùng hàm package do Doom Emacs cung cấp để cài phần mềm bổ sung.
3. Tôi cài gói này trong Doom Emacs và không muốn nữa. Làm sao gỡ cài đặt?
Gỡ gói trong Doom Emacs khá đơn giản. Chỉ cần chạy mã Lisp này trong .doom.d/packages.el:
(package! some-package :disable t)
Sau đó, chạy doom sync để tải lại Doom Emacs. Khi đăng nhập lại, gói đó sẽ bị gỡ.