如何配置 Ctrl-Shift-Left/Right 来在 emacs 中选择文本?

如何配置 Ctrl-Shift-Left/Right 来在 emacs 中选择文本?

我遇到的基本问题是标记模式的工作方式类似于切换按钮。每次调用set-mark-command"C-Space"你都会进入或退出标记模式。我可以将任何组合键绑定到

(defun foo () "" (progn (set-mark-command) (left-word)))

但下次我打电话时foo我的选择将被取消。

有没有一个功能可以只进入选择模式而不是切换它?这样我就可以更自由地选择文本,这是我真正需要的,因为我正在注释一个大型文本语料库。

答案1

我不确定我是否正确理解了你的问题,但对此我有以下几点想法:

1) 如果shift-select-mode变量设置为,则 和命令移动点t的所有组合将暂时激活该区域并扩大它:Shift

  • S-C-<right>:将区域向右扩展一个单词
  • S-<right>:将区域向右扩展一个字符

您可以shift-select-mode使用以下customize基础结构进行设置:

M-xcustomize-variableRETshift-select-modeRET

或者在你的初始化文件中:

(setq shift-select-mode t)

2)从示例代码开始,您可以编写一个命令来激活该区域并以以下方式扩展它:

(defun foo ()
  ""
  (interactive) ;; this is a command (i.e. can be interactively used)

  (when (not (region-active-p))  ;; if the region is not active...
    (push-mark (point) t t))     ;; ... set the mark and activate it

  (backward-word))               ;; move point

;; Bind the command to a key
(global-set-key (kbd "C-S-<left>") 'foo)

相关内容