¿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

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.


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


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

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


¡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.


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.


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!


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.


-1

Mx revert-buffer es uno que uso mucho.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.