How to mark the text between the parentheses in Emacs?

后端 未结 4 842
眼角桃花
眼角桃花 2021-02-01 19:31

Any such function or elisp script? I want the equivalent function as vi\" sequence in vim.

4条回答
  •  甜味超标
    2021-02-01 20:25

    Try the key sequence C-M-u C-M-SPC (i.e., while holding the Control and Meta keys, press u and Space in sequence), which executes the commands backward-up-sexp and mark-sexp.

    Edit:

    I made a mistake: backward-up-sexp doesn't exist in standard Emacs. I wrote it exactly because of the problem mentioned in lkahtz's comment, that the existing function backward-up-list won't work when point is between double quotes.

    (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)
    

提交回复
热议问题