【问题标题】:Emacs cua-mode: ctrl-c on empty lineEmacs cua-mode:空行上的 ctrl-c
【发布时间】:2016-02-24 09:08:41
【问题描述】:

在像 Visual Studio/Sublime Text 这样的编辑器中,我可以在一行上使用 ctrl-c 来复制整行。 (不选择任何东西)
这在 Emacs 中可行吗?

这是我当前的配置:
https://github.com/r03/dotfiles/blob/master/.emacs.d/init.el

【问题讨论】:

    标签: emacs


    【解决方案1】:

    不是开箱即用的。但是,添加它并不难。几乎。 不幸的是,C-c 通常是为 Emacs 中的其他功能保留的,它用作所谓的前缀键。也就是说,有很多更复杂的键盘快捷键实际上以 C-c 开头,然后是一些额外的击键。因此,您可能不得不放弃复杂按键序列的功能,或者为复制行选择不同的键盘快捷键。

    (即使是您使用的 cua-mode,也因为这个原因而单独留下 C-c ,除非您首先标记一个区域,即完全 不是 的情况之后。)

    无论如何,我们可以编写一个复制当前行的短函数,如下所示:

    (defun copy-line ()
      (interactive)
      (kill-ring-save (line-beginning-position) (line-end-position)))
    

    要将此函数绑定到某个键,例如 C-c C-c(即两次 CTRL+C),请使用:

    (global-set-key (kbd "C-c C-c") 'copy-line)
    

    将以上所有内容放在你的init.el文件中,重启Emacs后你可以复制当前行而不用先选择它。

    【讨论】:

    • 谢谢,现在我明白为什么了。我现在使用 whole-line-or-region 包并添加了这个快捷方式:(global-set-key (kbd "C-c C-c") 'whole-line-or-region-kill-ring-save)。但我想我会删除 C-c 作为前缀键。
    猜你喜欢
    • 2016-04-04
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多