如何在引号、括号之间选择文本。。。在Emacs中?
在vim中,您可以通过vi,vi[,vi 例如,如果您有这样一行:如何在引号、括号之间选择文本。。。在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键
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