如何在 Emacs 中复制/选择整个文件或缓冲区?

问题描述 投票:0回答:4

Emacs 中有没有选择整个文件内容的命令?

例如,Control+a 在记事本、Notepad++ 等中选择文件的全部内容。

我可以使用鼠标选择整个内容,但对于大文件来说不方便。我在herehere找到了基本的Emacs命令,但找不到我要找的东西。

emacs keyboard-shortcuts selection
4个回答
97
投票

C-x h 将选择整个缓冲区。

您可以使用内置帮助系统在 Emacs 中搜索帮助。

C-h f 将寻求特定功能的帮助。 在这种情况下,您可以搜索

whole-buffer
来找到
mark-whole-buffer

其他感兴趣的帮助命令是:

  • C-h m 显示当前模式的可用命令
  • C-h v 获取与变量相关的帮助
  • C-h k 查找绑定到哪些功能键
  • C-h w 查看为给定函数定义了哪些键绑定
  • C-h ? 查看还有哪些其他选项可用。

请注意,C-x h只会突出显示所有文本。 要实际复制所选文本,您必须使用 C-w 进行剪切 (

kill-region
) 或使用 M-w 进行复制 (
kill-ring-save
)。


0
投票

我使用CUA,所以我不喜欢

mark-whole-buffer
,因为它不使用临时区域。

经过一番折腾,我终于使用保存到函数中的键盘宏实现了这一点:

  • 定义一个选择整个缓冲区的宏
  • 运行
    kmacro-name-last-macro
    命名宏
  • 使用
    insert-kbd-macro
    编写脚本
  • 现在您可以将其复制到您的配置中并将其映射到一个键,例如
    C-a

0
投票

复制和选择是相关但不同的操作。文件和缓冲区也相关,但又不同。

复制缓冲区,请考虑使用jac.el。它处理“复制”和处理模式。


0
投票

由于 C-x h 移动了点,而且我经常需要在事后猛拉,所以我将以下内容绑定到键盘短路:

(lambda () (interactive) (kill-new (buffer-string)))
© www.soinside.com 2019 - 2024. All rights reserved.