Какие команды 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.
Адам Кроссленд
6
Mx vi-mode ....
1
Режим орг отлично подходит для заметок. Не команда, хотя.
Кастерма
другая не команда, но приятно смотреть на ido-mode.
Кастерма
5
Mg Mg - более короткий вызов goto-line
Фрэнк Шиарар

Ответы:

20
  • Ch a - по поисковым функциям
  • Ch b - работает описать-привязка
  • Ch k - запускает описание-ключ
  • Ch f - запускает функцию описания
  • Ch v - запускает описываемую переменную

Если вы знаете их, вы можете исследовать Emacs и находить вещи, которые вы еще не знаете. Узнайте, как учиться, это важно. Все остальное можно узнать позже.

Алексей Войнов
источник
6
Ch a - По поводу функций поиска
asm
3
По поводу должен быть наверху списка. Прежде всего, вы должны обнаружить вещи, прежде чем вы сможете прочитать документацию.
2010 года
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.

Для полной ссылки: ссылка

GSto
источник
Я думаю, что мне нужно распечатать это и сказать вам миллион раз.
CodexArcanum
Действительно, последние три, макросы, делают emacs большой победой. Вы можете использовать это тонко, и люди будут думать, что Emacs - экстрасенс.
Макнейл
2
не так M-/ : autocomplete word (based on previous words in the file)ли? (косая черта вместо обратной косой черты? Или я путаю это с чем-то другим?)
Хайлем
@haylem, ты прав. исправил это в ответе.
до
На самом деле M-xэто для execute-extended-command. Вы используете его для несвязанных команд (и align-regexpэто только одна из них).
Ренна
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

Джейсон Вирс
источник
хороший! не знал об этом, и обнаружил, что хотел бы, чтобы он существовал.
до
Я предпочитаю comment-or-uncomment-regionдля моих комментариев. Это позволяет мне временно закомментировать блок кода, если мне нужно.
Инамати
Я связываю C-; переключать-comment-on-line, чтобы обрабатывать регистр строк и сохранять comment-dwim с его оригинальной функциональностью.
Крис Кларк
Эх, и должен был включить функцию переключения комментариев-на-линии :) (defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
Крис Кларк
6

Попробуйте сделать учебник (Ch t). Он научит вас многим основным сочетаниям клавиш, а затем вы можете начать искать еще более забавные.


источник
Стыдно сказать, что я никогда не слышал об этом!
Хайлем
3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (это помогает, если вы знаете Elisp до запуска этого)

Практически все остальное - личное предпочтение. Люди иногда говорят об Emacs, как будто это редактор.

Это не правда.

Emacs - это язык, разработанный для краткого выражения редакторов (то есть Elisp - его лучшая «особенность»). Сколько пробега вы получите, зависит напрямую и полностью от того, насколько хорошо вы понимаете этот принцип.

Inaimathi
источник
1
Хорошая симметрия, учитывая, что lisp является программируемым языком программирования. (Или язык программирования, который позволяет кратко описать язык программирования.)
Фрэнк Шиарар
1
Не совсем правильно. Emacs - это интерактивная среда LISP, в которой определенные проектные решения LISP были решены способами, облегчающими написание редакторов и расширений редакторов, и целым набором стандартного кода, часть которого скомпилирована в инфраструктуру, которая помогает писать редакторы.
Джон Р. Штром,
1
M-:

это позволяет оценить произвольный элисп в минибуфере

C-x C-q

только чтение файла

C-c C-c

область комментариев

среди других!

Брэд Клоузи
источник
1
  • Cj (Mx перевод строки и отступа)
  • CM- \ (Mx Indent-Region)
  • M-. (Mx find-tag) требует запуска etags в вашем коде
  • M- / (Mx dabbrev-раскрыть)
  • Mx компилировать
  • Cx vv (Mx vc-next-action)
  • Mx font-lock-mode

и прочитайте документацию по языковому режиму, который вы используете (Ch m (Mx description-mode))

Я также большой поклонник (Mx Shell), M-! (Mx shell-команда) и M- | (Mx shell-command-on-region), потому что мне очень удобно иметь возможность запускать команды изнутри emacs и вырезать и вставлять вывод.

Кроме того, Mx sort-lines, Mx sort-fields и Mx sort-num-fields полезны для хранения длинных списков вещей (например, имен переменных) в алфавитном или числовом порядке.


источник
-1

Mx revert-buffer - это тот, который я часто использую.

Пол Натан
источник
(global-auto-revert-mode 1) в вашем файле emacs, я тоже это часто использовал.
ASM