คำสั่ง 'ต้องรู้' ของ Emacs คืออะไร [ปิด]


22

ฉันเป็นผู้เปลี่ยนโฉมใหม่ให้กับ Emacs และฉันชอบที่จะเป็นบรรณาธิการเป็นอย่างมากเพราะฉันค้นหาคำสั่งที่ใหม่และมีประโยชน์มาก มีคำสั่ง 'ต้องรู้จัก' อื่น ๆ ของโปรแกรมเมอร์ที่หายไปจากรายการของฉันหรือไม่?

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 ไม่จริงจังฉันรัก Emacs
Adam Crossland

6
โหมด Mx vi ....

1
โหมด org เหมาะสำหรับบันทึกย่อ ไม่ใช่คำสั่งว่า
kasterma

คำสั่งอื่นไม่ใช่คำสั่ง แต่ยินดีที่ได้ดู ido-mode
kasterma

5
Mg Mg เป็นการขอร้องสั้น ๆ ของ goto-line
Frank Shearar

คำตอบ:


20
  • Ch a - Apropos ฟังก์ชั่นการค้นหา
  • Ch b - รันคำอธิบายผูกมัด
  • Ch k - รันคำอธิบายคีย์
  • Ch f - รันคำอธิบายฟังก์ชั่น
  • Ch v - วิ่งอธิบายตัวแปร

หากคุณรู้จักสิ่งเหล่านี้คุณสามารถสำรวจ emacs และค้นหาสิ่งที่คุณยังไม่รู้ เรียนรู้วิธีการเรียนรู้ที่จำเป็น ทุกอย่างอื่นสามารถพบได้ในภายหลัง


6
Ch a - เสนอฟังก์ชั่นการค้นหา
asm

3
Apropos ควรอยู่ด้านบนสุดของรายการ ก่อนอื่นคุณต้องค้นหาสิ่งต่าง ๆ ก่อนจึงจะสามารถอ่านเอกสารได้
starblue

23

ก่อนอื่นคุณต้องรู้พื้นฐานบางอย่างของการแก้ไขข้อความ:

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

จากนั้นการเรียนรู้วิธีย้ายไฟล์เป็นประโยชน์

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   

จากนั้นเป็นเรื่องดีที่จะเริ่มเรียนรู้วิธีนำทางด้วยไฟล์ / บัฟเฟอร์และหน้าต่างหลาย ๆ ไฟล์

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

หลังจากนั้นที่นี่มีอีกไม่กี่คน คำสั่งที่มีประโยชน์:

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.

สำหรับการอ้างอิงที่สมบูรณ์: ลิงก์


ฉันคิดว่าฉันต้องพิมพ์ออกมาและโหวตให้คุณมากกว่าหนึ่งล้านครั้ง
CodexArcanum

อันที่จริงมาโครสามตัวสุดท้ายนั้นเป็นสิ่งที่ทำให้ emacs เป็นชัยชนะครั้งใหญ่ คุณสามารถใช้มันอย่างละเอียดและผู้คนจะคิดว่า emacs เป็นพลังจิต
Macneil

2
ไม่เป็นอย่างนั้นM-/ : autocomplete word (based on previous words in the file)เหรอ? (เฉือนแทนการกลับมาเฉือนหรือฉันกำลังสับสนนี้กับสิ่งอื่นใด?)
haylem

@haylem คุณพูดถูก แก้ไขในคำตอบ
GSto

ในความเป็นจริงคือM-x execute-extended-commandคุณใช้มันสำหรับคำสั่ง unbound (และalign-regexpเป็นเพียงหนึ่งในนั้น)
rsenna

11

มีประโยชน์อย่างเหลือเชื่อในขณะที่เข้ารหัส:

M-; : comment-dwim

comment-dwim จะสลับการแสดงความคิดเห็นในภูมิภาคปัจจุบัน แสดงความคิดเห็นหากยังไม่ได้แสดงความคิดเห็นและในทางกลับกัน โหมดภาษาปัจจุบันของคุณช่วยให้ emacs ทราบวิธีการแสดงความคิดเห็น

ตามค่าเริ่มต้นหากไม่มีภูมิภาคที่ใช้งานอยู่และมีข้อความอยู่บนบรรทัดมันจะแทรกความคิดเห็นที่ท้ายบรรทัด ส่วนตัวผมชอบที่จะให้มันแสดงความคิดเห็นบรรทัดปัจจุบันทั้งหมดซึ่งสิ่งนี้ประสบความสำเร็จ:

      ;; 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)

ขโมยมันเองจากhttp://www.emacswiki.org/emacs/CommentingCode


ดี! ไม่ทราบเกี่ยวกับสิ่งนี้และพบว่าตัวเองต้องการที่จะมีอยู่
GSto

ฉันชอบที่จะcomment-or-uncomment-regionแสดงความคิดเห็น มันช่วยให้ฉันสามารถคอมเม้นต์บล็อกโค้ดชั่วคราวหากฉันต้องการ
Inaimathi

ฉันผูก C-; toggle-comment-on-line เพื่อจัดการ case line และเก็บ comment-dwim ด้วยฟังก์ชั่นดั้งเดิม
Chris Clark

ข้อผิดพลาดและควรได้รวมสลับคิดเห็น-on-line ของฟังก์ชั่น :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
คริสคลาร์ก

6

ลองทำแบบฝึกหัด (Ch t) มันสอนคุณเกี่ยวกับคีย์บิทพื้นฐานและจากนั้นคุณสามารถเริ่มค้นหาสิ่งที่สนุกสนานมากยิ่งขึ้น


รู้สึกละอายที่จะบอกว่าฉันไม่เคยได้ยินเรื่องนี้มาก่อน!
haylem

3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (ช่วยได้ถ้าคุณรู้จัก Elisp ก่อนใช้งาน)

ค่อนข้างทุกอย่างอื่นเป็นความชอบส่วนบุคคล บางครั้งผู้คนพูดถึง Emacs ราวกับว่ามันเป็นบรรณาธิการ

ที่ไม่เป็นความจริง.

Emacs เป็นภาษาที่ออกแบบมาเพื่อสื่อความหมายอย่างชัดเจน (กล่าวคือ Elisp เป็น 'ฟีเจอร์' ที่ดีที่สุด) ระยะทางที่คุณได้รับนั้นขึ้นอยู่กับว่าคุณเข้าใจหลักการนี้ดีเพียงใด


1
สมมาตรที่ดีเนื่องจากเสียงกระเพื่อมเป็นภาษาการเขียนโปรแกรมที่ตั้งโปรแกรมได้ (หรือภาษาการเขียนโปรแกรมที่ช่วยให้คุณสามารถอธิบายภาษาการเขียนโปรแกรมโดยไม่ตั้งใจ)
Frank Shearar

1
ไม่ถูกต้อง QUITE Emacs เป็นสภาพแวดล้อม LISP แบบโต้ตอบที่มีการตัดสินใจในการออกแบบ LISP บางอย่างที่ทำให้มันง่ายต่อการเขียนบรรณาธิการและส่วนขยายของตัวแก้ไขและรหัสกระป๋องจำนวนมากบางส่วนของมันรวบรวมไว้ในโครงสร้างพื้นฐานที่ช่วยในการเขียนบรรณาธิการ
John R. Strohm

1
M-:

สิ่งนี้ช่วยให้คุณสามารถประเมิน elisp ตามอำเภอใจใน minibuffer

C-x C-q

การดูไฟล์แบบอ่านอย่างเดียว

C-c C-c

ภูมิภาคแสดงความคิดเห็น

ท่ามกลางคนอื่น ๆ!


1
  • Cj (Mx ขึ้นบรรทัดใหม่และย่อหน้า)
  • CM- \ (Mx เยื้องภูมิภาค)
  • M- (Mx find-tag) ต้องใช้ etags ในรหัสของคุณ
  • M- / (Mx ขยายแบบขยาย)
  • Mx รวบรวม
  • Cx vv (Mx vc-next-action)
  • Mx font-lock-mode

และอ่านเอกสารประกอบสำหรับโหมดภาษาที่คุณใช้ (Ch m (Mx อธิบายโหมด))

ฉันยังเป็นแฟนตัวยงของ (Mx shell), M-! (Mx shell-command) และ M- | (Mx shell-command-on-region) เพราะฉันพบว่ามันมีประโยชน์มากที่จะสามารถเรียกใช้คำสั่งจาก emacs ภายในและตัดและวางผลลัพธ์

นอกจากนี้ Mx sort-lines, Mx sort-field และ Mx sort-num-field ยังมีประโยชน์สำหรับการเก็บรายการสิ่งต่าง ๆ (เช่นชื่อตัวแปร) ตามลำดับตัวอักษรหรือตัวเลข



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.