如何在Emacs中的括号之间标记文本?

lka*_*htz 18 emacs

任何这样的函数或elisp脚本?我希望在vim中使用等效函数vi"sequence.

hua*_*uan 23

尝试密钥序列C-M-u C-M-SPC(即,在保持ControlMeta键,按下uSpace在序列),其执行这些命令backward-up-sexpmark-sexp.

编辑:

我犯了一个错误:backward-up-sexp在标准的Emacs中不存在.我写的正是因为lkahtz的评论中提到的问题,backward-up-list当点在双引号之间时,现有的函数不起作用.

(defun backward-up-sexp (arg)
  (interactive "p")
  (let ((ppss (syntax-ppss)))
    (cond ((elt ppss 3)
           (goto-char (elt ppss 8))
           (backward-up-sexp (1- arg)))
          ((backward-up-list arg)))))

(global-set-key [remap backward-up-list] 'backward-up-sexp)

  • 20多年的emacs,我今天学到了新东西. (3认同)

zip*_*ppy 8

expand-region(绑定到C- =)效果很好.