Tập tin, bộ đệm và cửa sổ
Emacs có 3 (thực ra là 4) cấu trúc dữ liệu liên quan mật thiết với nhau:
- Tập tin
- Tập tin là tập tin Unix thực sự trên đĩa. Bạn không bao giờ biên tập trực tiếp trên tập tin này. Emacs đọc tập tin vào bộ đệm và viết một bộ đệm vào tập tin để lưu nó.
- Bộ đệm (buffer)
- Bộ đệm là cấu trúc dữ liệu nội tại giữ văn bản bạn thực sự biên tập. Emacs có thể có con số bộ đệm bất kì tại bất kì thời điểm nào. Hầu hết, nhưng không phải tất cả, các bộ đệm liên hệ với một tập tin. Bộ đệm có tên; một bộ đệm xuất phát từ một tập tin gần như luôn luôn mang tên của tập tin đó, và chúng ta nói rằng bộ đệm đang viếng thăm tập tin. Điều này có nghĩa là khi bạn lưu bộ đệm, nó sẽ được lưu vào tập tin đúng. Vào bất cứ lúc nào cũng chỉ có đúng một bộ đệm được chọn: đây là bộ đệm mà con trỏ phần cứng đang hoạt động và là nơi mà lệnh sẽ có tác dụng. Bộ đệm có thể được xoá theo ý muốn; xoá bộ đệm không xoá tập tin trên đĩa (mặc dù bạn có thể mất các thay đổi đã thực hiện nếu bạn không lưu trước).
- Cửa sổ
- Cửa sổ là nơi bạn xem bộ đệm. Vì giới hạn thực thể của màn hình, có thể bạn không có chỗ để xem tất cả các bộ đệm cùng lúc. Bạn có thể chia nhỏ màn hình, ngang hay dọc, thành nhiều cửa sổ, mỗi cửa sổ xem một bộ đệm khác nhau. Cũng có thể có vài cửa sổ để xem các phần khác nhau của cùng bộ đệm. Có thể tạo và xoá cửa sổ tuỳ thích; xoá cửa sổ không xoá bộ đệm liên hệ với cửa sổ đó.
- Khung (frame)
- Khung giống như cửa sổ, nhưng được đối xử như một thực thể riêng biệt trong hệ thống cửa sổ như X.
Lệnh thao tác trên tập tin
- C-x C-f
find-file. Nhắc nhập tên tập tin và đọc tập tin vào bộ đệm cho để biên tập. Nếu tập tin đang được biên tập trong một bộ đệm nào đó, nó chỉ chuyển sang bộ đệm đó mà không đọc tập tin.- C-x C-s
save-buffer. Lưu tập tin, hay chính xác hơn là viết bộ đệm hiện tại lên đĩa.- C-x s
save-some-buffers. Lưu tất cả các bộ đệm đang viếng thăm tập tin, truy vấn từng cái và đưa ra một số tuỳ chọn cho mỗi cái (lưu, không lưu, nhìn qua trước rồi có thể lưu nó, v.v).
Lệnh thao tác trên bộ đệm
- C-x b
switch-to-buffer. Nhắc nhập tên bộ đệm và chuyển bộ đệm của cửa sổ hiện tại sang bộ đệm đó. Tạo bộ đệm rỗng mới nếu tên mới được nhập vào.- C-x C-b
list-buffers. Xuất hiện cửa sổ mới liệt kê tất cả bộ đệm với tên, đã thay đổi hay không, kích thước theo byte, chế độ chính và tập tin mà bộ đệm đang viếng thăm.- C-x k
kill-buffer. Nhắc nhập tên bộ đệm và dỡ bỏ toàn bộ cấu trúc dữ liệu cho bộ đệm đó khỏi Emacs. Nếu bộ đệm đã thay đổi bạn sẽ có cơ hội lưu nó. Lệnh này không xoá tập tin liên hệ, nếu có.- C-x C-q
vc-toggle-read-only. Đặt thuộc tính chỉ-đọc hoặc đặt thuộc tính đọc-viết nếu nó đang là chỉ-đọc.