我已成功使用 Ctrl + Shift +向上' Ctrl + Shift +向下'
Ctrl + Shift + left ' Ctrl + Shift + Right 到不同的命令。但是当我
尝试将 Ctrl + s 用于命令save-buffer和 Ctrl + Shift + s ,其中
相当于 Ctrl + S ,对于另一个命令,它有一些问题。
save-buffer工作正常,但当我输入 Ctrl + Shift + s 时,它会执行
命令save-buffer。我使用 Ctrl + q 来查找
的控制序列Ctrl + s 和 Ctrl + Shift + S ,我得到相同的结果,即 ^ S 。
我希望 Ctrl + s 得到 ^ s ,但事实并非如此。
任何人都知道原因吗?
另一个问题是:我使用 Ctrl + c 命令kill-ring-save。在此
大小写,所有命令(大数)以 Ctrl + c 开头,现在不起作用。
有没有办法用另一个自定义前缀替换前缀 Ctrl + c ?
我可能会向错误的方向提出问题。我使用 ctrl + c 作为
杀伤环的节省。它在emacs中工作正常(无模式)。但是,如果我打开一个.c文件(C模式),那么
当我输入 Ctrl + c 时,它会等我输入另一个键。我认为在这种情况下,
ctrl + c 被视为前缀。在这种情况下,我需要进行以下修改:
使用自定义前缀,例如 Ctrl + a , Ctrl + c ;
删除前缀 Ctrl + c ;使用 Ctrl + c 作为kill-ring-save。
我将以下内容添加到〜/ .emacs:
(global-set-key(kbd“C-a”)模式特定地图)
(global-set-key(kbd“C-c”)'kill-ring-save)
(global-set-key(kbd“C-f”)'isearch-forward)
(global-set-key(kbd“C-v”)'yank)
(global-set-key(kbd“C-s”)'save-buffer)
(defun my-c-initialization-hook()
(define-key c-mode-base-map(kbd“C-a”)mode-specific-map)
(define-key c-mode-base-map(kbd“C-c”)'kill-ring-save))
(add-hook'c-initialization-hook'my-c-initialization-hook)
但这不起作用。 Ctrl + c 仍然被视为前缀,所以我无法使用它
as kill-ring-save。此外,如果我输入 Ctrl + a Ctrl + c ,它说它不是
定义。 (我认为它与我输入 Ctrl + c Ctrl + c 的结果相同)
答案 0 :(得分:3)
C-c 绑定很棘手,CUA模式很好地解决了这个问题,只有当你标记了一个区域时才进行kill-ring-save。
答案 1 :(得分:1)
首先,Control-S是一个ASCII控制字符 - ^s
和^S
是相同的字符。
键与字符不同,如果您将Emacs与窗口管理器一起使用,则可以区分键 C-s 和 C-S-s 。后者是Control-Shift-s。
您遇到的问题是,如果您没有明确绑定移位后的字母键版本,则移位后的字母键会使用未移位键的绑定。这是一个“功能”。
所以你需要绑定 C-s 和 C-S-s 。
(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-S-s") 'another-command)
答案 2 :(得分:0)
如果您在终端中运行emacs,那么shift-ctl-c问题的原因可能是终端驱动程序。在这种情况下,请输入命令stty stop undef
,然后再次运行emacs,看看它是否会影响问题。另外,看看你是否遇到与shift-ctl- 其他字母相同的问题