Select 如何在Emacs上选择与点连接的字符串

Select 如何在Emacs上选择与点连接的字符串,select,emacs,cursor,word,expand,Select,Emacs,Cursor,Word,Expand,我想选择与点连接的整个单词。 Emacs中是否有任何函数可以执行此操作 例如: 123.456.[7]89 光标在“7”上 应用“功能” 选择区域“123.456.789” [123.456.789] Emacs中是否有?功能?这里有一个解决方案: (defun mark-whole-word () (interactive) (let ((table (syntax-table))) (modify-syntax-entry ?. "w" table) (with-s

我想选择与点连接的整个单词。 Emacs中是否有任何函数可以执行此操作

例如:

123.456.[7]89
  • 光标在“7”上

  • 应用“功能”

  • 选择区域“123.456.789”

    [123.456.789]

  • Emacs中是否有?功能?

    这里有一个解决方案:

    (defun mark-whole-word ()
      (interactive)
      (let ((table (syntax-table)))
        (modify-syntax-entry ?. "w" table)
        (with-syntax-table table
          (backward-word)
          (set-mark (point))
          (forward-word))))
    
    这里的关键是修改语法。 因此,如果将上面的
    ?。
    替换为
    ?-
    ,则可以进行类似的标记
    123-456-789

    我使用
    扩展区域

    (require 'expand-region)
    (global-set-key (kbd "C-=") 'er/expand-region)
    
    所以我按了一下
    C-=
    ,它选择了
    789
    ;我再次按下它,它选择了
    123.456.789
    。它可以很好地处理来自不同语言的字符串、行和语句

    主页:

    使用ELPA(
    M-x列表软件包
    )安装它


    ps:

    @abo abo的答案很好


    就像另一个数据点一样,您也可以使用命令
    thing region
    (从库--)来实现这一点。它会提示您选择一种类型的对象。只需接受默认的东西类型,
    sexp
    ,您就可以得到您在本例中要求的东西。

    谢谢。我不知道这个elisp。我以后再试试。这解决了我的问题。非常小的代码,但它工作准确。非常感谢你。