Apa perintah 'harus tahu' Emacs? [Tutup]

22

Saya seorang mualaf yang cukup baru untuk Emacs dan saya sangat menyukainya sebagai editor, terutama karena saya terus menemukan perintah baru dan sangat berguna. Apakah ada perintah programmer lain yang 'harus diketahui' yang hilang dari daftar saya?

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
Chris Smith
sumber
9
Cx Cc. Tidak, serius, aku suka Emacs.
Adam Crossland
6
Mx vi-mode ....
1
mode-org sangat bagus untuk catatan. Bukan perintah sekalipun.
kasterma
yang lain bukan perintah, tapi senang melihat ido-mode.
kasterma
5
Mg Mg adalah pemanggilan goto-line yang lebih singkat
Frank Shearar

Jawaban:

20
  • Ch a - Fungsi pencarian yang sesuai
  • Ch b - menjalankan menggambarkan-mengikat
  • Ch k - menjalankan tombol uraikan
  • Ch f - menjalankan menggambarkan-fungsi
  • Ch v - menjalankan menggambarkan-variabel

Jika Anda tahu itu, Anda dapat menjelajahi emacs dan menemukan hal-hal yang masih belum Anda ketahui. Belajar cara belajar, itu penting. Segala sesuatu yang lain dapat ditemukan nanti.

Alexey Voinov
sumber
6
Ch a - Fungsi pencarian yang sesuai
asm
3
Puncak harus di bagian atas daftar. Pertama, Anda harus menemukan hal-hal sebelum Anda dapat membaca dokumentasi.
starblue
23

Pertama, Anda perlu tahu beberapa dasar-dasar pengeditan teks:

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

Kemudian, berguna untuk mempelajari cara memindahkan file:

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   

Kemudian, Ada baiknya untuk mulai mempelajari cara bernavigasi dengan banyak file / buffer dan windows

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

Setelah itu, berikut adalah beberapa misc lainnya. perintah yang bisa berguna:

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.

Untuk referensi lengkap: tautan

GSto
sumber
Saya pikir saya perlu mencetak ini dan memperbaiki Anda jutaan kali.
CodexArcanum
Memang, tiga terakhir, makro, adalah apa yang membuat emacs kemenangan besar. Anda dapat menggunakannya secara halus dan orang akan berpikir emacs adalah psikis.
Macneil
2
bukankah itu lebih tepatnya M-/ : autocomplete word (based on previous words in the file)? (tebas bukannya tebas? Atau apakah saya membingungkan ini dengan sesuatu yang lain?)
haylem
@Haylem, kamu benar. memperbaikinya dalam jawaban.
GSto
Faktanya M-xadalah untuk execute-extended-command. Anda menggunakannya untuk perintah yang tidak terikat (dan align-regexphanya salah satunya).
rsenna
11

Sangat berguna saat coding:

M-; : comment-dwim

comment-dwim akan beralih mengomentari wilayah saat ini; berkomentar jika tidak berkomentar, dan sebaliknya. Mode bahasa Anda saat ini memungkinkan emacs tahu cara melakukan komentar.

Secara default, jika tidak ada wilayah aktif dan ada teks di baris, itu akan menyisipkan komentar di akhir baris. Secara pribadi, saya lebih suka untuk mengomentari seluruh baris saat ini, yang mencapai ini:

      ;; Original idea from
      ;; http://www.opensubscriber.com/message/[email protected]/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)

Mencuri sendiri dari http://www.emacswiki.org/emacs/CommentingCode

Jason Viers
sumber
bagus! tidak tahu tentang ini, dan mendapati diriku berharap itu ada.
GSto
Saya lebih suka comment-or-uncomment-regionuntuk tujuan komentar saya. Ini memungkinkan saya mengomentari blok kode sementara jika saya perlu.
Inaimathi
Saya mengikat C-; untuk beralih-komentar-on-line untuk menangani kasus garis dan menjaga komentar-dwim dengan fungsi aslinya.
Chris Clark
Err, dan seharusnya menyertakan fungsi toggle-comment-on-line :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
Chris Clark
6

Coba lakukan tutorial (Cht). Ini mengajarkan Anda banyak ikatan kunci mendasar, dan KEMUDIAN Anda bisa mulai mencari yang lebih menyenangkan lagi.


sumber
Malu mengatakan aku belum pernah mendengar yang itu!
haylem
3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (Ada baiknya jika Anda mengenal Elisp sebelum menjalankan yang ini)

Yang lainnya adalah preferensi pribadi. Orang-orang terkadang berbicara tentang Emacs seolah-olah itu adalah editor.

Itu tidak benar.

Emacs adalah bahasa yang dirancang untuk mengekspresikan editor secara ringkas (artinya, Elisp adalah 'fitur' terbaiknya). Berapa jarak tempuh yang Anda keluarkan darinya tergantung secara langsung dan sepenuhnya pada seberapa baik Anda memahami prinsip ini.

Inaimathi
sumber
1
Simetri yang bagus, mengingat lisp adalah bahasa pemrograman yang dapat diprogram. (Atau, bahasa pemrograman yang memungkinkan Anda mendeskripsikan bahasa pemrograman dengan mudah.)
Frank Shearar
1
Tidak cukup benar. Emacs adalah lingkungan LISP interaktif, yang memiliki keputusan desain LISP tertentu diselesaikan dengan cara yang membuatnya mudah untuk menulis editor dan ekstensi editor, dan banyak sekali kode kalengan, beberapa di antaranya dikompilasi ke dalam infrastruktur, yang membantu menulis editor.
John R. Strohm
1
M-:

ini memungkinkan Anda untuk mengevaluasi elisp sewenang-wenang di minibuffer

C-x C-q

hanya membaca file

C-c C-c

wilayah komentar

diantara yang lain!

Brad Clawsie
sumber
1
  • Cj (Mx baris baru dan indentasi)
  • CM- \ (Mx indent-region)
  • M- (Mx find-tag) membutuhkan etag yang berjalan pada kode Anda
  • M- / (Mx dabbrev-expand)
  • Mx mengkompilasi
  • Cx vv (Mx vc-tindakan berikutnya)
  • Mx font-lock-mode

dan baca dokumentasi untuk mode bahasa yang Anda gunakan (Ch m (Mx-mode-gambarkan))

Saya juga penggemar berat (Mx shell), M-! (Mx shell-command) dan M- | (Mx shell-command-on-region) karena saya merasa sangat berguna untuk dapat menjalankan perintah dari dalam emacs dan memotong-dan-tempel output.

Juga, Mx sort-lines, Mx sort-field dan Mx sort-num-fields berguna untuk menyimpan daftar panjang hal-hal (seperti nama variabel) dalam urutan abjad atau angka.


sumber
-1

Mx revert-buffer adalah salah satu yang sering saya gunakan.

Paul Nathan
sumber
(global-auto-revert-mode 1) dalam file emacs Anda, saya juga sering menggunakannya.
asm
-1

Mx bantuan-dengan-tutorial

Vatine
sumber