如何select或突出显示Emacs中的块?
我想在没有鼠标的情况下select或突出显示emacs中的块,而是像vim的可视化模式那样从键盘上select或突出显示块 从键盘上做到这一点最简单的方法是什么?
看一下emacs中的region-rectangle。
简而言之,就像平常一样用Control – Space开始select,然后用Control – x r k杀死区域,并用Control – x r y粘贴(或者抽出 )被杀死的区块。
如果我正确地理解这个问题,那不是原来的矩形区域。
C-Spc
在当前位置上留下了印记。
无论光标在哪里,最后一个标记和当前位置之间的文本都是“选定的”(可以通过激活transient-mark-mode
来突出显示,但是这也意味着当你不想要标记时必须删除标记突出)。
您可以使用以下命令在该区域进行操作:
Cw
。 。 杀死区域。 这删除并把该地区放入杀戒。
Cy
。 。 扬克。 这插入杀死戒指的最后一个片段。
My
。 。 周期杀戒指。 在Cy
之后,立即用杀死环中的其他片段代替被抽出的部分。
Mw
。 。 将区域保存为杀戒。 像Cw
一样,但不会删除。
这只是基本的用法。 商标也有其他用途。 我推荐教程( Ch t
)。
请参阅文章: “使用矩形select” ,特别是注释部分。 另请参阅CUA模式文档的标题为“CUA矩形支持”的部分。 Vimeo上还有一个不错的video 。
Emacs 24.4现在有矩形标记模式。 Cx空间来调用它。
使用Control – Space来设置标记并移动光标。
transient-mark-mode
将突出显示您的select。 M – x transient-mark-mode
。
您可以设置Emacs默认使用自定义启用此模式。 M – x customize-option
RET transient-mark-mode
。
尽pipeC-SPC
是一种常用的方法,无论你的观点如何都可以开始标记,但是通常有更快捷/更简单的方法,不需要明确移动到开始/结束点。
内置select快捷键
-
Mh
– 标记一个段落的重要手段。 “段落”通常意味着一个代码块。 -
CMh
和CM-@
分别用于标记sexps和defuns 。 这适用于几种语言,而不只是说谎。 -
按住shift键 – 另一种stream畅的方式在移动过程中突出显示。 例如,
MSf
select转发一个单词。 这是shift-select-mode
,它在Emacs 24+中默认启用。 在一些(非chiclet)键盘上,你应该能够按住CS-
一个小指。
您可以重复按下其中任何一项来增加select。
(注意:试验时经常使用Cg
取消标记。)
附加组件
有几个附加软件包可以改善select区域和事物。 这些都很好地结合在一起,适合不同的用例。 全部使用它们!
-
展开区域 :展开区域通过语义单元增加选定区域。 只要按住键直到它select你想要的。
C-=
是它的推荐绑定。 打了几次,以得到你所需要的。 -
轻松杀戮 :使用
Mw
和助记符来select不同types的东西,如文字,性别,名单等 -
Zop-to-Char :与zap-to-char类似,但提供了很好的select和其他菜单驱动的操作。
…如果你使用Ubuntu和C-spc不适合你:你需要清除IBus的“下一个input法”键盘绑定,如
运行
ibus-setup
并将“下一个input法”的键绑定更改为其他名称(或者通过单击“…”button然后单击“删除”button完全删除它)。
引用从一个SO问题的答案 。
要扩大Edin Salkovic的答案,如果使用CUA模式,可以使用开始一个视觉块select。 在CUA文档中描述的控制块select有很多快捷方式。