什么是“必须知道”的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
org-mode非常适合做笔记。虽然不是命令。
卡斯特马

另一个不是命令,但很高兴查看ido-mode。
卡斯特马

5
Mg Mg是goto-line的较短调用
Frank Shearar 2010年

Answers:


20
  • 查-Apropos搜索功能
  • Ch b-运行描述绑定
  • CH K-运行描述键
  • Ch f-运行描述功能
  • ch v-运行描述变量

如果您知道这些,则可以浏览emacs并找到您仍然不知道的东西。学习如何学习,多数民众赞成在必不可少的。以后可以找到其他所有内容。


6
CH A -中肯的搜索功能
ASM

3
Apropos应该在列表的顶部。首先,您必须先发现事物,然后才能阅读文档。
starblue 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.

有关完整的参考:链接


我想我需要将其打印出来并为您投票一百万次。
CodexArcanum 2010年

确实,最后三个宏使emacs取得了巨大的成功。您可以巧妙地使用它,人们会认为emacs是通灵的。
Macneil 2010年

2
那不是M-/ : autocomplete word (based on previous words in the file)吗?(用斜杠代替反斜杠?还是我将其与其他东西混淆?)
haylem 2010年

@haylem,你是对的。固定在答案中。
GSto

其实M-x是为了execute-extended-command。您将它用于未绑定的命令(align-regexp只是其中之一)。
rsenna 2013年

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偷了它


真好!对此一无所知,发现自己希望它存在。
GSto

我喜欢comment-or-uncomment-region出于评论目的。如果需要,它可以让我暂时注释掉一段代码。
Inaimathi 2010年

我绑定C-; 切换在线注释以处理行大小写并保留其原始功能的comment-dwim。
克里斯·克拉克

错了,应该包括在线切换评论功能:)(defun toggle-comment-on-line () (interactive) (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
克里斯·克拉克

6

尝试完成本教程(Ch t)。它教了您很多基本的键绑定,然后您就可以开始寻找更多有趣的键绑定了。


ham愧地说我从未听说过那个!
haylem 2010年

3

M-x apropos

M-x describe-key

M-x describe-bindings

C-x C-f ~/.emacs (如果您在运行此程序之前了解Elisp,这将有所帮助)

几乎所有其他一切都是个人喜好。人们有时会把Emacs当作编辑器来谈论。

这不是真的。

Emacs是一种旨在简洁表达编辑器的语言(也就是说,Elisp是其最佳“功能”)。您从中获得多少里程直接取决于您对这一原理的理解程度。


1
鉴于lisp是一种可编程的编程语言,因此具有很好的对称性。(或者,一种允许您简洁地描述一种编程语言的编程语言。)
Frank Shearar 2010年

1
不完全正确。Emacs是一个交互式LISP环境,已经解决了某些LISP设计决策,从而简化了编写编辑器和编辑器扩展的方式,并且提供了很多固定代码,其中一些已编译到基础结构中,有助于编写编辑器。
John R. Strohm

1
M-:

这使您可以评估minibuffer中的任意elisp

C-x C-q

只读查看文件

C-c C-c

评论区域

其中!


1
  • Cj(MX换行和缩进)
  • CM-\(Mx缩进区域)
  • M- (MX find-tag)需要在代码上运行etags
  • M- /(Mx dabbrev-expand)
  • MX编译
  • Cx vv(Mx vc-next-action)
  • MX字体锁定模式

并阅读所用语言模式的文档(Ch m(Mx描述模式))

我也是(Mx shell)的忠实粉丝,M-!(Mx Shell命令)和M- | (Mx shell-command-on-region),因为我发现能够从emacs内部运行命令并剪切并粘贴输出非常方便。

此外,Mx排序行,Mx排序字段和Mx排序数字字段对于按字母顺序或数字顺序保留一长串事物(例如变量名)很有用。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.