¿Cuáles son los comandos 'debe saber' de Emacs? [cerrado]

22

Soy un converso bastante nuevo en Emacs y realmente me encanta como editor, principalmente porque sigo encontrando comandos nuevos y súper útiles. ¿Hay algún otro comando 'imprescindible' del programador que falta en mi lista?

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
fuente
99
Cx Cc. No, en serio, amo a Emacs.
Adam Crossland
66
Mx vi-mode ....
1
org-mode es ideal para notas. Sin embargo, no es un comando.
kasterma
otro no es un comando, pero es bueno mirar el modo ido.
kasterma
55
Mg Mg es una invocación más corta de goto-line
Frank Shearar

Respuestas:

20
  • Ch a - Apropos funciones de búsqueda
  • Ch b - ejecuta el enlace de descripción
  • Ch k - ejecuta la clave de descripción
  • Ch f - ejecuta la función describe
  • Ch v - ejecuta describe-variable

Si los conoce, puede explorar emacs y encontrar cosas que aún no sabe. Aprender a aprender, eso es esencial. Todo lo demás se puede encontrar más tarde.

Alexey Voinov
fuente
66
Cap. - Apropos funciones de búsqueda
asm
3
A propósito debe estar en la parte superior de la lista. Primero tiene que descubrir cosas antes de poder leer la documentación.
Starblue
23

Bueno, primero debes conocer algunos de los conceptos básicos de la edición de texto:

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

Entonces, es útil aprender a moverse por el archivo:

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   

Entonces, es bueno comenzar a aprender a navegar con múltiples archivos / buffers y ventanas

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

Después de eso, aquí hay algunos otros misceláneos. comandos que pueden ser útiles:

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.

Para una referencia completa: enlace

GSto
fuente
Creo que necesito imprimir esto y votarte un millón de veces.
CodexArcanum
De hecho, las últimas tres, macros, son las que hacen que emacs sea una gran victoria. Puedes usarlo sutilmente y la gente pensará que emacs es psíquico.
Macneil
2
¿No es eso más bien M-/ : autocomplete word (based on previous words in the file)? (en lugar de recortar barra invertida O estoy confundiendo esto con algo más??)
haylem
@haylem, tienes razón. lo arregló en la respuesta.
GSto
De hecho M-xes para execute-extended-command. Lo usa para comandos independientes (y align-regexpes solo uno de ellos).
rsenna
11

Increíblemente útil mientras se codifica:

M-; : comment-dwim

comment-dwim alternará los comentarios sobre la región actual; comentando si no está comentado, y viceversa. Su modo de idioma actual le permite a emacs saber cómo hacer los comentarios.

Por defecto, si no hay una región activa y hay texto en la línea, insertará un comentario al final de la línea. Personalmente, prefiero que comente toda la línea actual, lo que esto logra:

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

Lo robé yo mismo de http://www.emacswiki.org/emacs/CommentingCode

Jason Viers
fuente
¡bonito! No sabía sobre este, y me encontré deseando que existiera.
GSto
Prefiero comment-or-uncomment-regionpara mis comentarios. Me permite comentar un bloque de código temporalmente si es necesario.
Inaimathi
Ato C-; alternar-comentar-en-línea para manejar el caso de línea y mantener comentarios-dwim con su funcionalidad original.
Chris Clark
Err, y debería haber incluido la función toggle-comment-on-line :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
Chris Clark
6

Intenta hacer el tutorial (Ch t). Te enseña muchas de las combinaciones de teclas fundamentales, y ENTONCES puedes comenzar a buscar otras aún más divertidas.


fuente
Avergonzado de decir que nunca había oído hablar de eso!
haylem
3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (ayuda si conoces a Elisp antes de ejecutar este)

Casi todo lo demás es preferencia personal. La gente a veces habla de Emacs como si fuera un editor.

Eso no es cierto.

Emacs es un lenguaje diseñado para expresar sucintamente editores (es decir, Elisp es su mejor 'característica'). La cantidad de millaje que obtenga depende directamente y completamente de qué tan bien comprende este principio.

Inaimathi
fuente
1
Buena simetría, dado que lisp es un lenguaje de programación programable. (O, un lenguaje de programación que le permite describir sucintamente un lenguaje de programación.)
Frank Shearar
1
No muy correcto. Emacs es un entorno interactivo de LISP, que ha resuelto ciertas decisiones de diseño de LISP de manera que sea fácil escribir editores y extensiones de editor, y una gran cantidad de código enlatado, algunos de ellos compilados en infraestructura, que ayudan a escribir editores.
John R. Strohm
1
M-:

Esto le permite evaluar elisp arbitrario en el minibúfer

C-x C-q

visualización de solo lectura de un archivo

C-c C-c

región de comentarios

¡entre otros!

Brad Clawsie
fuente
1
  • Cj (Mx nueva línea y sangría)
  • CM- \ (región de sangría Mx)
  • METRO-. (Mx find-tag) requiere ejecutar etags en su código
  • M- / (Mx dabbrev-expand)
  • Compilación Mx
  • Cx vv (Mx vc-next-action)
  • Mx font-lock-mode

y lea la documentación para el modo de idioma que usa (Ch m (Mx describe-mode))

También soy un gran admirador de (Mx shell), M-! (Mx shell-command) y M- | (Mx shell-command-on-region) porque me resulta muy útil poder ejecutar comandos desde dentro de emacs y cortar y pegar la salida.

Además, las líneas de ordenación Mx, los campos de ordenación Mx y los campos de ordenación numérica Mx son útiles para mantener largas listas de cosas (como nombres de variables) en orden alfabético o numérico.


fuente
-1

Mx revert-buffer es uno que uso mucho.

Paul Nathan
fuente
(global-auto-revert-mode 1) en su archivo emacs, también lo usé mucho.
asm
-1

Mx ayuda con tutorial

Vatine
fuente