Giới thiệu về Emacs (tiếp 3)

Lệnh thao tác trên cửa sổ

 

C-v
scroll-up. Cuộn tới (về cuối tập tin) một màn hình. Theo mặc định, Emacs chừa 2 hàng từ màn hình trước.
M-v
scroll-down. Như C-v, nhưng cuộn ngược.
C-x o
other-window. Chuyển sang cửa sổ khác. Lặp đi lặp lại lệnh này sẽ di chuyển qua tất cả các cửa sổ, từ trái sang phải và trên xuống dưới.
C-x 1
delete-other-windows. Xoá tất cả các cửa sổ khác, trừ cửa sổ hiện tại. Lệnh này không xoá các bộ đệm và tập tin liên hệ với cửa sổ bị xoá.
C-x 0
delete-window. Xoá cửa sổ hiện tại, thay đổi kích thước các cửa sổ khác cho thích hợp.
C-x 2
split-window-vertically. Chia cửa sổ hiện tại thành hai, theo chiều dọc. Lệnh này tạo một cửa sổ mới, nhưng không tạo bộ đệm mới: cùng một bộ đệm sẽ được xem trong 2 cửa sổ. Điều này giúp xem các phần khác nhau của bộ đệm đồng thời.
C-x 3
split-window-horizontally. Tương tự như C-x 2 nhưng chia cửa sổ theo chiều ngang.
C-M-v
scroll-other-window. Tương tự như C-v, nhưng cuộn các cửa sổ kế tiếp (là cửa sổ mà lệnh C-o sẽ chuyển sang).

 

Các khái niệm căn bản

 

Vào và ra

Để khởi động Emacs:

    emacs

sau đó dùng các lệnh tập tin để đọc tập tin cần biên tập. Thay vào đó, bạn cũng có thể khởi động Emacs với một (hoặc nhiều) tập tin ban đầu:

    emacs foo.bar

 

Để thoát Emacs, dùng lệnh C-x C-c (liên kết với save-buffers-kill-emacs). Nó sẽ đề nghị bạn lưu tất cả bộ đệm và rồi thoát.

Bạn cũng có thể hoãn Emacs (theo nghĩa Unix là dừng nó và đặt vào hậu trường) bằng C-x C-z (liên kết với suspend-emacs). Khởi động lại Emacs tuỳ theo shell, nhưng thông thường dựa trên lệnh fg.

Các lệnh tự điền (self inserting command)

Một khi Emacs đã khởi động, bạn có thể gõ văn bản vào nó. Các kí tự in được tự điền vào vì mỗi kí tự liên kết với lệnh tự điền self-insert-command.

Màn hình

 

Dòng chế độ

Màn hình Emacs hoàn toàn được dành cho văn bản của tập tin, chỉ trừ một dòng gần cuối màn hinh được dành cho dòng chế độ. Dòng này hiển thị các thông tin quan trọng, bao gồm:

  • Trạng thái của bộ đệm: đã thay đổi (cặp dấu sao), chưa thay đổi (dấu gạch ngang), hay chỉ đọc (cặp dấu %).
  • Tên tập tin đang biên tập (sẽ là *scratch* nếu bạn không đang biên tập tập tin nào).
  • Chế độ chính (trong dấu ngoặc).
  • Lượng của tập tin xem trên màn hình:
    All
    Tất cả nội dung của tập tin.
    Top
    Phần đầu của tập tin.
    Bot
    Phần cuối của tập tin.
    NN%
    Phần trăm tập tin trên cửa sổ.

 

Tiểu bộ đệm (minibuffer)

Dòng trắng bên dưới dòng chế độ là tiểu bộ đệm, dùng hiển thị thông điệp và dấu nhắc yêu cầu gõ một cái gì đó (trả lời có/không cho câu hỏi, tên tập tin, tên lệnh dài, v.v).

Tiểu bộ đệm cũng được gọi là vùng phản hồi (echo area), vì Emacs hiển thị các gõ phím ở đây nếu bạn gõ thật chậm. Thí dụ gõ phím đa kí tự (multi-character keystroke) (như ESC q) với khoảng dừng dài giữa các lần gõ.

Thông điệp lạ

Thỉnh thoảng Emacs tự động in các thông điệp trên tiểu bộ đệm mà dường nhu không liên quan gì đến việc bạn đang làm. Hai thông điệp thường gặp nhất là:

Mark set
Emacs đánh dấu cho bạn do kết quả của câu lệnh cuối; đánh dấu tự động là tính năng tiện lợi của một số lệnh, xem Đánh dấu và vùng.
Garbage collecting…
Bộ máy lips của Emacs đang thực hiện lưu trữ, bạn có thể bỏ qua và tiếp tục gõ.

 

Kí tự khôi hài (funny character)

Khi tập tin chứa kí tự điều khiển (control character) hoặc kí tự với high-order bit bằng 1 (được set), Emacs hiển thị chúng bằng dấu gạch xiên ngược và 3 số bát phân (cho giá trị ASCII của kí tự) đi theo sau. Nếu trạm cuối (terminal) có thể hiển thị bộ kí tự 8 bit, như ISO Latin-1, Emacs sẽ hiển thị các kí tự này thay vì các số bát phân.

Dòng dài

Emacs không ngắt dòng tự động nếu không được yêu cầu. Vì vậy nó không làm xáo trộn các dòng dài trong tập tin. Ở các chế độ hướng về soạn thảo văn bản, Emacs có thể thêm ngắt dòng tự động.

Eight-bit clean

Emacs có thể biên tập tập tin nhị phân mà không làm hỏng chúng.

Ngắt ngang và bỏ ngang

 

C-g (liên kết với keyboard-quit) dùng để ngắt ngang công việc Emacs đang làm (chẳng hạn như đang hỏi bạn gì đó mà bạn không hiểu), và nó cũng bỏ ngang một phần chuỗi phím vừa được gõ (ví dụ nếu bạn bất cẩn gõ C-x). C-g là kí tự ASCII BEL, do đó khi bạn gõ chuông sẽ kêu.

Vì Emacs có khả năng đệ quy đầy đủ nên đôi khi cần phải gõ C-g vài lần để thoát khỏi chuỗi lệnh đệ quy. Cũng vậy, nếu Emacs thật sự bị treo, có thể gõ nhanh 3 lần C-g để bỏ ngang cái đang làm treo.

Giúp đỡ

Emacs có hệ thống giúp đỡ trực tuyến phong phú, có thể được truy cập qua phím giúp đỡ C-h. C-h là phím tiền tố. Gõ C-h hai lần để xem danh sách các lệnh con (subcommand); gõ ba lần để được cửa sổ miêu tả tất cả các lệnh này (gõ SPC sẽ cuộn cửa sổ này). Một vài lệnh giúp đỡ thường dùng:

C-h a
command-apropos. Nhắc nhập từ khoá và sau đó liệt kê tất cả các lệnh mang từ khoá đó trong tên dài.
C-h k
describe-key. Nhắc nhập một gõ phím, và miêu tả lệnh liên kết với phím đó, nếu có.
C-h i
info. Gọi trình đọc tài liệu siêu văn bản Info.
C-h m
describe-mode. Miêu tả chế độ chính hiện tại và các liên kết phím (key binding) cụ thể của nó.
C-h p
finder-by-keyword. Chạy trình duyệt hướng chủ đề tương tác (interactive subject-oriented browser) của các gói Emacs.
C-h t
help-with-tutorial. Chạy tài liệu hướng dẫn sử dụng Emacs. Rất có ích cho người mới bắt đầu.

 

Info

Emacs cài đặt sẵn trình đọc tài liệu siêu văn bản được gọi là Info. Để chạy nó, gõ C-h i hoặc M-x info RET. Nó có tài liệu hướng dẫn cho chính nó, được mở bằng cách gõ h.

Undo không giới hạn và redo

Một trong các lệnh quan trọng nhất của Emacs là undo, bằng cách gõ C-_ (control thanh dưới). C-_ là một kí tự ASCII hợp lệ, nhưng một vài bàn phím không phát sinh được kí tự này, khi đó có thể dùng C-x u.

Emacs có thể undo không giới hạn số lần thay đổi trước, và nó cũng có khả năng redo những gì đã bị undo.

Lưu dự phòng và chế độ tự động lưu

Emacs không bao giờ thay đổi tập tin trên đĩa cho đến khi bạn yêu cầu nó làm, nhưng nó rất cẩn thận trong việc lưu công việc bạn đang làm theo một số cách.

Tập tin lưu dự phòng (backup file).
Emacs luôn luôn lưu lại phiên bản trước của tập tin khi bạn lưu tập tin. Nếu tập tin có tênfoo, bản lưu dự phòng sẽ được gọi làfoo~. Emacs có thể lưu giữ bất cứ số phiên bản nào trước đó (tuỳ theo bạn quy định, và theo mặc định là off), đặt tên làfoo.~1~,foo.~2~, v.v.
Tập tin tự động lưu (auto-save file).
Theo mặc định Emacs cũng tự động lưutập tin trong khi bạn đang biên tập nó. Tập tin tự động lưu cho tập tinfoođược gọi là#foo#. Nếu Emacs (hoặc hệ thống) bị crash trước khi bạn lưu các thay đổi, bạn có thể khôi phục gần như toàn bộ từ tập tin này. Tự động lưu (theo mặc định) được thực hiện mỗi 300 kí tự, hoặc khi hệ thống gặp lỗi.

 

Hoàn thành (completion)

Để tiết kiệm gõ phím, Emacs cung cấp nhiều dạng hoàn thành: có nghĩa là Emacs cố gắng hoàn thành tên tập tin, tên lệnh, v.v đã được gõ một phần. Thường dùng phím TAB để gọi chế độ hoàn thành.

Tue, 08/14/2012 – 20:47 — Admin

Cung cấp đối số cho câu lệnh

Cung cấp đối số cho câu lệnh

Nhiều lệnh Emacs lấy đối số, giống như cách một thủ tục hoặc một hàm lấy đối số trong ngôn ngữ lập trình. Hầu hết các lệnh tạo dấu nhắc cho bạn nhập đối số của nó: thí dụ lệnh đọc nội dung tập tin sẽ nhắc bạn nhập tên tập tin.

Có một loại đối số thường được chấp nhận đến nỗi có cách đặc biệt để cung cấp nó: đối số số (numeric argument). Nhiều lệnh hiểu đối số số là một yêu cầu lặp lại bấy nhiêu lần. Thí dụ, lệnh delete-char (liên kết với C-d), thông thường xoá một kí tự bên phải con trỏ, sẽ xoá N kí tự nếu được cho đối số số là N. Nó cũng làm việc với các lệnh tự điên vào.

Để cung cấp đối số số, thí dụ 12, cho một lệnh, gõ C-u 12 trước khi gõ lệnh. Nếu gõ chậm rãi, bạn sẽ thấy:

C-u 1 2-

ở vùng phản hồi. Sau đó gõ C-d và như vậy bạn đã cho lệnh delete-char đối số 12. Dấu gạch ngang dẫn đầu biểu thị đối số âm; dấu gạch ngang duy nhất (không có con số theo sau) biểu thị đối số -1. Bỏ ngang một đối số số vừa gõ bằng C-g.

Vì người ta thường không quan tâm precisely chính xác bao nhiêu lần một lệnh được lặp lại, có cách nhanh để lấy đối số số với các biên độ khác nhau. C-u một mình, không có chữ số nào theo sau, tương ứng với đối số số là 4. Lần C-u tiếp theo sẽ nhân nó lên 4, được đối số số 16. Lần C-u tiếp nữa sẽ nhân thêm 4, được đối số số 64, v.v. Vì vậy C-u được gọi là universal-argument (đối số phổ quát).

Tuỳ theo lệnh, đối số số không nhất thiết được hiểu là số lần lặp lại, mà có thể bị bỏ qua hoặc được hiểu là Boolean (sự có mặt của đối số — bất cứ đối số nào — và ngược lại là sự vắng mặt của nó), v.v.

Trích dẫn các kí tự liên kết với lệnh

Để điền kí tự điều khiển (control character) vào tập tin, có thể dùng lệnh quoted-insert, liên kết với C-q. C-q có tác dụng như lệnh tiền tố, nhưng kí tự kế tiếp sẽ được điền vào bộ đệm thay vì thi hành như một lệnh. Thí dụ C-q ESC sẽ điền một Escape.

C-q cũng có thể dùng nhập kí tự bằng cách gõ C-q và theo sau với mã ASCII ở dạng chữ 3 số bát phân.

Các lệnh bị bất hoạt

Một số lệnh đặc biệt dễ gây nhầm lẫn cho người mới sử dụng được bất hoạt theo mặc định. Khi một lệnh bị bất hoạt được gọi, sẽ xuất hiện hộp thoại ngắn và cửa sổ tài liệu cho lệnh đó, và cho bạn 3 lựa chọn:

  • Space để dùng lệnh đó chỉ ở lần này, và tiếp tục bất hoạt,
  • Y để dùng nó và hoạt hoá nó (sẽ không bị câu hỏi ở lần dùng sau),
  • N để không làm gì hết (lệnh vẫn bị bất hoạt).

Di chuyển và đối tượng văn bản

Emacs cung cấp nhiều lệnh để di chuyển xung quanh đối tượng văn bản. Các lệnh này có thể nhận đối số số để lặp lại. Định nghĩa đối tượng văn bản có thể thay đổi tuỳ theo chế độ (thí dụ dấu gạch dưới (underbar) được xem là yếu tố cấu tạo từ trong C Mode, vì chúng hợp lệ trong tên identifier, nhưng không được xem là yếu tố cấu tạo từ trong Text Mode).

Kí tự

C-f
forward-char. Di chuyển tới (về phải) một kí tự.
C-b
backward-char. Di chuyển lùi (về trái) một kí tự.

Từ

M-f
forward-word. Di chuyển tới một từ.
M-b
backward-word. Di chuyển lùi một từ.

Dòng (dọc)

C-n
next-line. Di chuyển xuống dòng kế tiếp.
C-p
previous-line. Di chuyển lên dòng trước.

Con trỏ vẫn ở cùng cột khi di chuyển theo dòng (hoặc cuối dòng nếu dòng đó ngắn).

Dòng (ngang)

C-a
beginning-of-line. Di chuyển đến đầu dòng hiện tại.
C-e
end-of-line. Di chuyển đến cuối dòng hiện tại.

Câu

M-a
backward-sentence. Di chuyển đến đầu câu hiện tại.
M-e
forward-sentence. Di chuyển đến cuối câu hiện tại.

Đoạn

M-{
backward-paragraph. Di chuyển đến đầu đoạn hiện tại.
M-}
forward-paragraph. Di chuyển đến cuối đoạn hiện tại.

Trang

C-x [
backward-page. Di chuyển đến đầu trang hiện tại.
C-x ]
forward-page. Di chuyển đến cuối trang hiện tại.

Trang được chia bởi kí tự formfeed (C-l) trong hầu hết các chế độ.

Bộ đệm

M-<
beginning-of-buffer. Di chuyển đến đầu bộ đệm.
M->
end-of-buffer. Di chuyển đến cuối bộ đệm.

Biểu thức S (cặp dấu ngoặc)

Biểu thức S (S-expression, gọi tắt là sexp) là tên cho cho các cặp dấu ngoặc (balanced parentheses) (và văn bản chứa trong đó) trong Lisp. Các kí tự mà Emacs nhận biết là dấu ngoặc gồm ngoặc tròn, ngoặc vuông và ngoặc nhọn, nhưng cũng còn tuỳ vào ngôn ngữ lập trình.

Ngoài ra, trong hầu hết các chế độ ngôn ngữ lập trình, các chuỗi đặt trong dấu nháy (quoted string) cũng được xem là sexps (có thể là dấu nháy đơn hay nháy kép).

C-M-b
backward-sexp. Di chuyển lùi đến sexp kế tiếp. Nếu con trỏ ở ngay bên phải của dấu ngoặc trái, C-M-b sẽ bíp, vì không có sexp ở phía trái để di chuyển đến: bạn phải di chuyển lên.
C-M-f
forward-sexp. Di chuyển tới sexp kế tiếp. Tương tự như trên nếu con trỏ nằm ngay bên trái của dấu ngoặc phải.
C-M-u
backward-up-list. Di chuyển lùi lên một cấp dấu ngoặc. Nói cách khác, di chuyển sang dấu ngoặc trái của dấu ngoặc đang chứa con trỏ, bỏ qua các sexp trong các cặp dấu ngoặc.
C-M-d
down-list. Di chuyển xuống một cấp dấu ngoặc. Nói cách khác, di chuyển sang bên phải của dấu ngoặc trái kế tiếp, bỏ qua các sexp trong các cặp dấu ngoặc.

Hàm

Emacs, theo Lips, gọi các hàm và thủ tục là defun.

C-M-a
beginning-of-defun. Di chuyển đến đầu của defun hiện tại.
C-M-e
end-of-defun. Di chuyển đến cuối của defun hiện tại.

Xoá (delete), kill và yank

Xoá (delete): lấy bỏ đoạn văn bản từ bộ đệm mà không lưu lại. Kill: lưu văn bản đã lấy bỏ, nhờ đó có thể yank trở lại ở nơi khác.

Văn bản bị kill được lưu ở vòng kill (kill ring). Vòng kill giữ N kill cuối, mặc định N là 30, nhưng có thể thay đổi bằng cách thay giá trị cho biến kill-ring-max. Vòng kill đóng vai trò như một fifo khi bạn kill một cái gì đó (sau lần kill thứ 30, kill số 1 sẽ biến mất), nhưng như một cái vòng khi bạn yank chúng trở lại (có thể yank vòng quanh một cách tuần hoàn).

Kí tự

C-d, Delete
delete-char. Xoá kí tự bên phải (hoặc dưới, nếu con trỏ là khối chứa một kí tự) con trỏ.
DEL, BS
delete-backward-char. Xoá kí tự bên trái con trỏ.

Từ

M-d
kill-word. Kill đến cuối từ phía bên phải con trỏ (tới).
M-DEL
backward-kill-word. Kill đến đâu từ phía bên trái con trỏ (lui).

Dòng (ngang)

C-k
kill-line. Kill đến cuối dòng hiện tại, không bao gồm kí tự xuống dòng (newline). Vì vậy nếu từ đầu dòng, cần 2 lần C-k để kill toàn bộ dòng và đóng khoảng trắng.
C-u 0 C-k
kill-line. Xoá đến đầu dòng hiện tại, không bao gồm newline.
C-u -n C-k
kill-line. Xoá đến đầu của -n dòng trước.

Câu

M-k
kill-sentence. Kill đến cuối câu hiện tại, bao gồm các newline có trong câu.
C-u -1 M-k
kill-sentence. Kill đến đầu câu hiện tại, bao gồm các newline có trong câu.

Đoạn

Có các lệnh forward-kill-paragraphbackward-kill-paragraph, nhưng theo mặc định chúng không liên kết với phím nào.

Trang

Không có lệnh kill trang (nhưng xem Đánh dấu và vùng).

Bộ đệm

Lệnh kill-buffer không kill tất cả văn bản trong bộ đệm, nhưng kill toàn bộ cấu trúc dữ liệu bộ đệm: xem Đánh dấu và vùng.

Biểu thức S (cặp dấu ngoặc)

C-M-k
kill-sexp. Kill sexp sau con trỏ.
C-u -1 C-M-k
kill-sexp. Kill sexp trước con trỏ.

Có lệnh backward-kill-sexp, nhưng theo mặc định không liên kết với phím nào.

Hàm

Không có lệnh kill hàm (defuns) (nhưng xem Đánh dấu và vùng).

Yank

C-y (yank) lấy (yank) văn bản bị kill gần đây nhất.

M-y (yank-pop) di chuyển sang các văn bản ở các lần kill trước bằng cách thế văn bảng vừa được yank bằng văn bản ở lần kill trước nó. Các lần M-y tiếp theo sẽ di chuyển quanh vòng kill.

Vì Emacs chỉ có một vòng kill (chứ không phải một vòng cho mỗi bộ đệm), bạn có thể kill trong bộ đệm này và yank ở bộ đệm khác.

Giới thiệu về Emacs (tiếp 2)

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.

Giới thiệu về Emacs (tiếp1)

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 Az: 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ữ ControlMeta đồ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.

Giới thiệu và hướng dẫn sử dụng Emacs

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.

Cài đặt và bật ssh cho Centos 6 (5 cũng tương tự thì phải)

Để  cài đặt ssh trên Centos6 bạn cần cài đăt các gói cần thiết sau đó bật các service lên để có thể sử dụng một máy khác thực hiện các lệnh thông qua màn hìn Teminal.

 

Bạn cần cài đặt 2 gói là Opensshd-clients (cho ứng dụng client) và Openssd-server (cho chạy trên server).

 

Chuyển qua quyền root gõ:

 

# yum -y install openssh-server openssh-clients

 

(-y dùng để tự động Yes khi nó hỏi bạn có muốn download hay cấu hình gì không, để tránh vất cả thì đặt Yes).

 

Tiếp tục sử dụng các lệnh sau để start service:

# chkconfig sshd on

— Lệnh này dùng để cấu hình cho ssh luôn khởi động cùng hệ thống.


# service sshd start

 

— Bắt đầu Start dịch vụ này.

 

 

Khi cài xong bàn hoàn toàn có thể sử dụng chúng để giao tác từ máy này qua máy kia thông qua lệnh:

 

# ssh username@ip

–username: tên user của máy cần ssh

–ip : là địa chỉ ip của máy đó

 

Cài đặt LAMP và phpMyAdmin

Bật phần mở rộng dom cho PHP:

  yum install php-xml

Khởi động lại dịch vụ:

   service httpd restart

Chữa lỗi /phpmyadmin không chạy khi đã cài đủ sql và phpmyadmin:
Qua quyền root gõ:
   ln -s /usr/share/phpMyAdmin /var/www/html

http://docs.oseems.com/general/web/phpmyadmin/enable-login-without-password

// file phpMyAdmin

http://www.if-not-true-then-false.com/2012/install-phpmyadmin-on-fedora-…

Học System Admin

[JOB] Tuyển sysadmin ở Hà Nội

Yêu cầu chung như sau:
– Nắm vững TCP/IP
– Tối ưu LAMP
– Sử dụng các công cụ monitor như: Ganglia, Nagios, Cacti, …
– Có kiến thức về bảo mật
– Có khả năng triển khai IDS, IPS
– Thành thạo Shell script, biết thêm Python, Perl, … là một lợi thế
– Đã từng recompile kernel
– Hiểu rõ LDAP, biết cách tích hợp với các dịch vụ khác
– Hiểu biết về NoSQL databases
– Đã từng làm quen với các công cụ: CM (Puppet, CFEngine, Chef, …), DM (Fabric, MCollective, Capistrano, …)
– …
– Đọc viết tiếng Anh tốt, có kỹ năng giải quyết vấn đề, kỹ năng viết tài liệu, …

Bạn nào có hứng thú thì gửi CV vào tonganhquan [dot] net [at] gmail [dot] com cho mình nhé. Cảm ơn.