如何在引号、括号之间选择文本。。。在Emacs中?

如何在引号、括号之间选择文本。。。在Emacs中?,emacs,text-editor,Emacs,Text Editor,在vim中,您可以通过vi,vi[,vi 例如,如果您有这样一行: x = "difference between vim and emacs" 光标在这些引号之间的任意位置,点击vi,字符串就会在视觉上显示出来 已选择。来自 几乎所有模式都支持“,”作为括号,大多数模式也支持 方括号“[,]”和花括号“{,}”。但是,您可以 任何一对字符都可以使用括号对,方法如下 命令: 另外,看看这篇文章。这篇文章给出了关键组合 尝试按顺序C-M-u C-M-SPC键,即在按住Control键和Meta键

在vim中,您可以通过vi,vi[,vi

例如,如果您有这样一行:

x = "difference between vim and emacs"
光标在这些引号之间的任意位置,点击vi,字符串就会在视觉上显示出来 已选择。

来自

几乎所有模式都支持“,”作为括号,大多数模式也支持 方括号“[,]”和花括号“{,}”。但是,您可以 任何一对字符都可以使用括号对,方法如下 命令:

另外,看看这篇文章。这篇文章给出了关键组合

尝试按顺序C-M-u C-M-SPC键,即在按住Control键和Meta键的同时,依次按u键和空格键,这将向后执行sexp和mark sexp命令。软件包对此很方便。使用引号内的点调用er/expand region将标记最近的单词,然后再次调用它将标记所有的w第三次调用它将扩展区域以包含引号

我把它绑定到C-

使用此绑定,按C-;C-;将突出显示引号之间的文本。

在工具箱顶部

提供以下键/命令:

(global-set-key [(super \))] 'ar-parentized-atpt)
(global-set-key [(super \])] 'ar-bracketed-atpt)
(global-set-key [(super \})] 'ar-braced-atpt)
(global-set-key [(super \")] 'ar-doublequoted-atpt)
(global-set-key [(super \')] 'ar-singlequoted-atpt)
这样,再加上几个被称为分隔符的字符,就构成了命令

ar分隔的atpt将返回由最近的分隔符找到的点周围的字符串

一组更强大的命令允许重复使用这样的键

(global-set-key [(control c)(\")] 'ar-doublequote-or-copy-atpt)
(global-set-key [(control c)(\')] 'ar-singlequote-or-copy-atpt)
(global-set-key [(control c)(<)] 'ar-lesser-angle-or-copy-atpt)
(global-set-key [(control c)(>)] 'ar-greater-angle-or-copy-atpt)
使用图书馆和图书馆

您会发现一些命令,例如thing region,它选择某个点上的某个对象作为区域。由于字符串内容和列表内容在thingatpt+.el中定义为对象,因此这些命令选择字符串/列表内容作为区域:

(thing-region "string-contents") ; Select the contents of the string at point.
(thing-region "list-contents")   ; Select the contents of the list at point.
或以交互方式:

M-x thing-region RET string-contents RET
其他相关命令包括:

C-M-U又名C-M-S-U-标记封闭列表:选择封闭列表。重复以扩展列表级别。适用于任何平衡括号表达式,例如向量:当前语法表定义为具有平衡分隔符语法的任何语法

标记事物-选择给定类型的连续事物

下一个可见对象-移动到给定类型的下一个可见对象


晚到派对,但你也可以使用,它对Vim仿真起到了巨大的作用,包括你提到的运动命令。

@qed如果你选择文本是因为你想对它进行操作,那么就复制它,杀死它,等等。还有一个构建在expand-region.el之上的,给你Vim的ci命令。密切相关:是的,这就是我最终使用了!:
ar-doublequote-or-copy-atpt is an interactive Lisp function in
`thing-at-point-utils.el'.

It is bound to C-c ".

(ar-doublequote-or-copy-atpt &optional NO-DELIMITERS)

If region is highlighted, provide THING at point with doublequote(s),
  otherwise copy doublequote(ed) at point.
  With C-u, copy doublequote(ed) without delimiters. 
  With negative argument kill doublequote(ed) at point. 
(thing-region "string-contents") ; Select the contents of the string at point.
(thing-region "list-contents")   ; Select the contents of the list at point.
M-x thing-region RET string-contents RET