Các lệnh 'phải biết' Emacs là gì? [đóng cửa]


22

Tôi là một người chuyển đổi khá mới sang Emacs và tôi thực sự yêu thích nó với tư cách là một biên tập viên, chủ yếu vì tôi tiếp tục tìm các lệnh mới và siêu hữu ích. Có bất kỳ lệnh nào "phải biết" của lập trình viên bị thiếu trong danh sách của tôi không?

M-x replace-string     - Find and replace a given string.
M-x goto-line          - Goto a specific line
M-x column-number-mode - Show the current column number in text bar

9
Cx Cc. Không, nghiêm túc, tôi yêu Emacs.
Adam Crossland

6
Mx vi-mode ....

1
Chế độ org là tuyệt vời cho ghi chú. Không phải là một lệnh mặc dù.
kasterma

một lệnh khác không phải là lệnh, nhưng thật tuyệt khi nhìn vào chế độ ido.
kasterma

5
Mg Mg là một cuộc gọi ngắn hơn của goto-line
Frank Shearar

Câu trả lời:


20
  • Ch a - Chức năng tìm kiếm được đề xuất
  • Ch b - chạy mô tả ràng buộc
  • Ch k - chạy mô tả-khóa
  • Ch f - chạy mô tả chức năng
  • Ch v - chạy mô tả biến

Nếu bạn biết những điều đó, bạn có thể khám phá emacs và tìm thấy những điều bạn vẫn chưa biết. Học cách học, đó là điều cần thiết. Mọi thứ khác có thể được tìm ra sau này.


6
Ch a - Chức năng tìm kiếm được đề xuất
asm

3
Apropose nên ở đầu danh sách. Đầu tiên bạn phải khám phá những điều trước khi bạn có thể đọc tài liệu.
starblue

23

Chà, trước tiên, bạn cần biết một số điều cơ bản về chỉnh sửa văn bản:

C-w : Cut 
M-w : Copy
C-y : Paste
C-x s : save
C-x c : save all and close

Sau đó, thật tiện dụng để tìm hiểu cách di chuyển xung quanh tệp:

M-b : back one word
M-f : foward one word
C-a : beginning of line
C-e : end of line
C-n : next line
C-p : previous line
M-< : beginning of buffer
M-> : end of buffer   

Sau đó, thật tốt khi bắt đầu học cách điều hướng với nhiều tệp / bộ đệm và cửa sổ

C-x C-f : find file
C-x b : switch buffer
C-x k : kill buffer
C-x 2 : split-window-vertically
C-x 3 : split-window-horizontally
C-x o : switch window
C-x 0 : kill this window
C-x 1 : kill all other windows

Sau đó, đây là một vài linh tinh khác. các lệnh có thể có ích:

C-s : search
C-r : search backward
M-/ : autocomplete word (based on previous words in the file)
M-x : align-regexp
M-( : start keyboard macro
M-) : end keyboard macro
C-x e: execute keyboard macro.

Để tham khảo đầy đủ: liên kết


Tôi nghĩ rằng tôi cần phải in nó ra và nâng cao bạn hàng triệu lần.
CodexArcanum

Thật vậy, ba macro cuối cùng là những gì làm cho emacs trở thành một chiến thắng lớn. Bạn có thể sử dụng nó một cách tinh tế và mọi người sẽ nghĩ emacs là ngoại cảm.
Macneil

2
đúng hơn không M-/ : autocomplete word (based on previous words in the file)? (gạch chéo thay vì gạch chéo ngược? Hay tôi nhầm lẫn điều này với thứ khác?)
haylem

@haylem, bạn nói đúng. đã sửa nó trong câu trả lời.
GSto

Trong thực tế M-xlà cho execute-extended-command. Bạn sử dụng nó cho các lệnh không liên kết (và align-regexpchỉ là một trong số chúng).
rsenna

11

Cực kỳ tiện dụng trong khi mã hóa:

M-; : comment-dwim

bình luận-dwim sẽ chuyển đổi nhận xét về khu vực hiện tại; bình luận nếu nó không bình luận, và ngược lại. Chế độ ngôn ngữ hiện tại của bạn cho phép emacs biết cách bình luận.

Theo mặc định, nếu không có vùng hoạt động và có văn bản trên dòng, nó sẽ chèn một nhận xét ở cuối dòng. Cá nhân, tôi thích để nó nhận xét toàn bộ dòng hiện tại, điều này thực hiện:

      ;; Original idea from
      ;; http://www.opensubscriber.com/message/emacs-devel@gnu.org/10971693.html
      (defun comment-dwim-line (&optional arg)
        "Replacement for the comment-dwim command.
        If no region is selected and current line is not blank and we are not at the end of the line,
        then comment current line.
        Replaces default behaviour of comment-dwim, when it inserts comment at the end of the line."
          (interactive "*P")
          (comment-normalize-vars)
          (if (and (not (region-active-p)) (not (looking-at "[ \t]*$")))
              (comment-or-uncomment-region (line-beginning-position) (line-end-position))
            (comment-dwim arg)))
      (global-set-key "\M-;" 'comment-dwim-line)

Lấy trộm nó từ http://www.emacswiki.org/emacs/VeringCode


tốt đẹp! không biết gì về điều này và thấy mình ước rằng nó tồn tại.
GSto

Tôi thích comment-or-uncomment-regioncho mục đích bình luận của tôi. Nó cho phép tôi nhận xét một khối mã tạm thời nếu tôi cần.
Inaimathi

Tôi ràng buộc C-; toggle-comment-on-line để xử lý trường hợp dòng và giữ bình luận-dwim với chức năng ban đầu của nó.
Chris Clark

Err, và đáng lẽ phải bao gồm chức năng chuyển đổi nhận xét trực tuyến :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
Chris Clark

6

Hãy thử làm hướng dẫn (Ch t). Nó dạy cho bạn rất nhiều các keybindings cơ bản, và THÌ bạn có thể bắt đầu tìm kiếm những thứ thú vị hơn nữa.


Xấu hổ khi nói rằng tôi chưa bao giờ nghe nói về điều đó!
haylem

3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (nó hữu ích nếu bạn biết Elisp trước khi chạy cái này)

Khá nhiều thứ khác là sở thích cá nhân. Mọi người đôi khi nói về Emacs như thể đó là một biên tập viên.

Đo không phải sự thật.

Emacs là một ngôn ngữ được thiết kế để thể hiện rõ ràng các biên tập viên (có thể nói, Elisp là 'tính năng' tốt nhất của nó). Bao nhiêu dặm bạn nhận được từ nó phụ thuộc trực tiếp và hoàn toàn vào việc bạn hiểu nguyên tắc này như thế nào.


1
Đối xứng đẹp, cho rằng lisp là một ngôn ngữ lập trình lập trình. (Hoặc, một ngôn ngữ lập trình cho phép bạn mô tả ngắn gọn một ngôn ngữ lập trình.)
Frank Shearar

1
Không đúng QUITE. Emacs là một môi trường LISP tương tác, đã có một số quyết định thiết kế LISP nhất định được giải quyết theo cách giúp dễ dàng viết các trình soạn thảo và phần mở rộng trình soạn thảo, và toàn bộ mã đóng hộp, một số mã được biên dịch vào cơ sở hạ tầng, giúp viết các trình soạn thảo.
John R. Strohm

1
M-:

điều này cho phép bạn đánh giá elisp tùy ý trong xe buýt nhỏ

C-x C-q

chỉ đọc một tập tin

C-c C-c

khu vực bình luận

trong số những người khác!


1
  • Cj (Mx dòng mới và thụt lề)
  • CM- \ (Vùng thụt Mx)
  • M-. (Mx find-tag) yêu cầu chạy etags trên mã của bạn
  • M- / (Mx dabenamev-bung)
  • Biên dịch Mx
  • Cx vv (Mx vc-next-action)
  • Chế độ khóa phông chữ Mx

và đọc tài liệu cho chế độ ngôn ngữ bạn sử dụng (Ch m (chế độ mô tả Mx))

Tôi cũng là một fan hâm mộ lớn của (Mx shell), M-! (Mx shell-lệnh) và M- | (Mx shell-Command-on-area) bởi vì tôi thấy nó rất tiện dụng để có thể chạy lệnh từ bên trong emacs và cắt và dán đầu ra.

Ngoài ra, các dòng sắp xếp Mx, các trường sắp xếp Mx và các trường sắp xếp Mx rất hữu ích để giữ danh sách dài các thứ (như tên biến) theo thứ tự chữ cái hoặc số.


-1

Mx Revert-buffer là một cái tôi sử dụng rất nhiều.


(global-auto-Revert-mode 1) trong tệp emacs của bạn, tôi cũng đã sử dụng nó rất nhiều.
asm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.