Welche Emacs-Befehle müssen Sie kennen? [geschlossen]


22

Ich bin ein ziemlich neuer Konverter zu Emacs und ich liebe es wirklich als Editor, vor allem, weil ich immer wieder neue und super nützliche Befehle finde. Fehlen in meiner Liste weitere Programmierbefehle, die bekannt sein müssen?

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. Nein, im Ernst, ich liebe Emacs.
Adam Crossland

6
Mx vi-mode ....

1
Der Org-Modus eignet sich hervorragend für Notizen. Kein Befehl.
Kasterma

noch ein nicht befehl, aber schön im ido-modus zu schauen.
Kasterma

5
Mg Mg ist eine kürzere Aufforderung von goto-line
Frank Shearar 18.11.10

Antworten:


20
  • Ch a - Apropos Suchfunktionen
  • Ch b - Läufe beschreiben-bindend
  • Ch k - startet den describe-key
  • Ch f - Läuft eine Beschreibungsfunktion
  • Ch v - führt describe-variable aus

Wenn Sie diese kennen, können Sie Emacs erkunden und Dinge finden, die Sie noch nicht kennen. Lernen lernen, das ist wichtig. Alles andere kann später herausgefunden werden.


6
Ch a - Apropos Suchfunktionen
asm

3
Apropos sollten ganz oben auf der Liste stehen. Zuerst müssen Sie Dinge entdecken, bevor Sie die Dokumentation lesen können.
Starblue

23

Nun, zuerst müssen Sie einige Grundlagen der Textbearbeitung kennen:

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

Dann ist es praktisch zu lernen, wie man sich in der Datei bewegt:

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   

Dann ist es gut zu lernen, wie man mit mehreren Dateien / Puffern und Fenstern navigiert

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

Danach hier noch ein paar andere. Befehle, die nützlich sein können:

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.

Für eine vollständige Referenz: Link


Ich denke, ich muss das ausdrucken und dich millionenfach unterstützen.
CodexArcanum

In der Tat sind es die letzten drei Makros, die Emacs zu einem großen Gewinn machen. Sie können es subtil verwenden und die Leute werden denken, dass Emacs psychisch ist.
Macneil

2
ist das nicht eher M-/ : autocomplete word (based on previous words in the file)? (Schrägstrich statt Back-Slash? Oder verwechsle ich das mit etwas anderem?)
Haylem

@ Haylem, du hast recht. behebt es in der Antwort.
GSTO

In der Tat M-xist für execute-extended-command. Sie verwenden es für ungebundene Befehle (und align-regexpist nur einer von ihnen).
Rsenna

11

Unglaublich praktisch beim Codieren:

M-; : comment-dwim

comment-dwim schaltet das Kommentieren der aktuellen Region um. Kommentieren, wenn es nicht kommentiert ist, und umgekehrt. In Ihrem aktuellen Sprachmodus weiß der Emacs, wie er kommentiert.

Wenn kein aktiver Bereich vorhanden ist und sich Text in der Zeile befindet, wird standardmäßig ein Kommentar am Ende der Zeile eingefügt. Ich persönlich bevorzuge es, die gesamte aktuelle Zeile zu kommentieren.

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

Habe es mir von http://www.emacswiki.org/emacs/CommentingCode gestohlen


nett! Ich wusste nichts über diese und wünschte mir, dass sie existiert.
GSto

Ich bevorzuge comment-or-uncomment-regionfür meine Zwecke zu kommentieren. Hiermit kann ich einen Codeblock vorübergehend auskommentieren, wenn dies erforderlich ist.
Inaimathi

Ich binde C-; to toggle-comment-on-line um den Zeilenumbruch zu behandeln und comment-dwim mit seiner ursprünglichen Funktionalität zu erhalten.
Chris Clark

Err, und sollte die Toggle-Kommentar-Online-Funktion enthalten haben :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
Chris Clark

6

Versuchen Sie das Tutorial (Ch t). Es bringt Ihnen viele grundlegende Tastenkombinationen bei, und DANN können Sie nach noch mehr lustigen suchen.


Ich schäme mich zu sagen, dass ich noch nie davon gehört habe!
Haylem

3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (Es hilft, wenn du Elisp kennst, bevor du diesen ausführst.)

So ziemlich alles andere ist persönliche Präferenz. Die Leute reden manchmal über Emacs, als wäre es ein Editor.

Das ist nicht wahr.

Emacs ist eine Sprache, die entwickelt wurde, um Redakteure kurz und bündig auszudrücken (das heißt, Elisp ist das beste "Feature"). Wie viel Kilometer Sie davon haben, hängt davon ab, wie gut Sie dieses Prinzip verstehen.


1
Gute Symmetrie, da lisp eine programmierbare Programmiersprache ist. (Oder eine Programmiersprache, mit der Sie eine Programmiersprache genau beschreiben können.)
Frank Shearar

1
Nicht ganz richtig. Emacs ist eine interaktive LISP-Umgebung, in der bestimmte LISP-Entwurfsentscheidungen auf eine Weise gelöst wurden, die das Schreiben von Editoren und Editorerweiterungen erleichtert, sowie eine ganze Reihe von in die Infrastruktur kompiliertem Dosencode, mit dessen Hilfe Editoren geschrieben werden können.
John R. Strohm

1
M-:

Auf diese Weise können Sie ein beliebiges Elisp im Minibuffer auswerten

C-x C-q

schreibgeschütztes Anzeigen einer Datei

C-c C-c

Kommentarbereich

unter anderen!


1
  • Cj (Mx Zeilenvorschub und Einzug)
  • CM- \ (Mx-Einzugsbereich)
  • M-. (Mx find-tag) erfordert das Ausführen von etags in Ihrem Code
  • M- / (Mx dabbrev-expand)
  • Mx kompilieren
  • Cx vv (Mx vc-next-action)
  • Mx Font-Lock-Modus

und lesen Sie die Dokumentation für den von Ihnen verwendeten Sprachmodus (Ch m (Mx describe-mode))

Ich bin auch ein großer Fan von (Mx Shell), M-! (Mx Shell-Befehl) und M- | (Mx shell-command-on-region), weil ich es sehr praktisch finde, in Emacs Befehle auszuführen und die Ausgabe auszuschneiden und einzufügen.

Außerdem sind Mx-Sortierzeilen, Mx-Sortierfelder und Mx-Sortiernummernfelder nützlich, um lange Listen von Dingen (wie Variablennamen) in alphabetischer oder numerischer Reihenfolge zu führen.


-1

Mx Revert-Buffer ist einer, den ich oft benutze.


(global-auto-revert-mode 1) in deiner emacs datei habe ich das auch oft benutzt.
asm

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.