在vim中,你可以通过vi",vi [,vi(...
例如,如果您有这样的一行:
x = "difference between vim and emacs"
并且光标位于这些引号之间的任何位置并且您点击了vi"然后该字符串将是可视的 地选择。
答案 0 :(得分:15)
包expand-region对此很方便。使用引号内的点调用er/expand-region
将标记最近的单词,然后再次调用它将标记引号内的所有单词。 (第三次调用它会扩展该区域以包含引号。)
我已将其绑定到C-;
。
(global-set-key (kbd "C-;") 'er/expand-region)
使用此绑定,pressng C-; C-;
将突出显示引号之间的文本。
答案 1 :(得分:5)
几乎所有模式都支持“(,)”作为括号,大多数也支持 方括号“[,]”和大括号“{,}”。但是,你可以做 任何一对字符括号对,使用以下内容 命令:
(modify-syntax-entry ?^ "($")
(modify-syntax-entry ?$ ")^")
另外,请看一下这篇文章How to mark the text between the parentheses in Emacs?。根据这篇文章给出的关键组合
尝试按键序列C-M-u C-M-SPC
(即,在按住Control
和Meta
键的同时,按顺序按u
和Space
,执行命令backward-up-sexp
和mark-sexp
答案 2 :(得分:3)
晚会,但您也可以使用Evil mode,它可以完成Vim仿真,包括您提到的动作命令。
答案 3 :(得分:1)
在工具包之上
https://launchpad.net/s-x-emacs-werkstatt/+download
提供以下键/命令:
(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-delimited-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)
这里是一个doctring例如:
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.
答案 4 :(得分:0)
使用库thingatpt+.el和thing-cmds.el。
你会发现thing-region
这样的命令,它选择一个点作为区域的东西。由于string-contents
和list-contents
被定义为事物(在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
) - mark-enclosing-list
:选择附上清单。重复以扩展列表级别。适用于任何平衡括号表达式(例如,向量):当前语法表定义为具有balance-delimiter语法。
mark-thing
- 选择给定种类的连续事物(重复)。
next-visible-thing
- 移动到给定类型的下一个可见事物(重复)。