如何在Emacs中选择或高亮显示块?
我想在emacs中选择或高亮显示一个块,而不使用鼠标,而是像vim的视觉模式那样通过键盘来选择或高亮显示。从键盘执行此操作的最简单方法是什么?查看emacs中的区域矩形 简而言之,您可以像往常一样使用Control-Space开始选择,然后使用Control-x r k终止区域,并使用Control-x r y粘贴(或拖动)终止块。使用Control-Space设置标记并移动光标如何在Emacs中选择或高亮显示块?,emacs,selection,highlight,Emacs,Selection,Highlight,我想在emacs中选择或高亮显示一个块,而不使用鼠标,而是像vim的视觉模式那样通过键盘来选择或高亮显示。从键盘执行此操作的最简单方法是什么?查看emacs中的区域矩形 简而言之,您可以像往常一样使用Control-Space开始选择,然后使用Control-x r k终止区域,并使用Control-x r y粘贴(或拖动)终止块。使用Control-Space设置标记并移动光标 瞬态标记模式将为您突出显示所选内容。M-x瞬态标记模式 默认情况下,您可以使用自定义项设置Emacs以启用此模式。M
瞬态标记模式将为您突出显示所选内容。M-x瞬态标记模式
默认情况下,您可以使用自定义项设置Emacs以启用此模式。M-xcustomize选项
RETtransient mark mode
参见文章:,特别是评论部分。另请参见标题为“CUA矩形支架”的章节。还有一个问题。如果我理解正确的话,它本来不是关于矩形区域的
C-Spc
在当前位置放置一个标记
无论光标在何处,最后一个标记和当前位置之间的文本都是“选中的”(您可以通过激活瞬态标记模式
来突出显示该文本,但这也意味着当您不想突出显示时,必须删除标记)
您可以使用以下命令对该区域进行操作:
C-w
。杀伤区。这将删除该区域并将其放入压井环中。
C-y
。猛拉。这将插入压井环的最后一个片段。
M-y
。循环压井环。紧接着C-y
,这将用压井环中的其他片段替换拉断的部分。
M-w
。将区域保存到杀伤环中。类似于C-w
,但不删除
这只是基本用法。标记还有其他用途。我推荐本教程(C-h t
)。要展开Edin Salkovic的答案,如果使用CUA模式,可以使用开始视觉块选择。有很多快捷方式可以控制中描述的块选择。Emacs 24.4现在有矩形标记模式。调用它的C-x空间。。。。如果您正在使用Ubuntu,而C-spc不适合您:您需要清除IBus“next input method”键绑定,如中所示
运行ibus设置
并更改
将“下一个输入法”添加到其他内容(或通过
单击“…”按钮,然后单击“删除”按钮)
引用自某个SO问题。尽管C-SPC
是开始标记某个SO问题的常用方法
无论你的观点是什么,通常都有一些更快/更简单的方法无法解决问题
明确移动到起点/终点
内置选择快捷方式
M-h
-标记段落的重要手段。“一段”
通常意味着一段代码
C-M-h
和C-M-@
-用于标记sexps和defuns,
分别地这适用于多种语言,而不仅仅是lisps
- 按住shift键-另一种在拍摄过程中突出显示的巧妙方法
移动例如,
M-S-f
选择转发整个单词。这是
,
并且它在Emacs 24+中默认启用。在一些(非小鸡)上
键盘上,您应该能够用一个键按住C-S-
小指
您可以反复按其中任何一个按钮来增加所选内容
还有一些特殊的标记方式:
C-x h
-标记整个缓冲区
C-x SPC
-进入矩形标记模式
(注意:经常使用C-g
来取消标记,同时
(正在试验。)
附加组件
有几个附加包可以改进选择区域和
东西。这些都很好地配合在一起,适合不同的用途
案例。全部使用
- :
“展开区域”按语义单位增加选定区域。只是
继续按该键,直到它选择您想要的内容<代码>C-=
是一个
建议对其进行绑定。点击几次就可以得到你想要的
需要
M-w
和
选择不同类型事物的助记符,如单词、sexps、,
名单等
diff hl mark hunk
选择/标记一个hunk
M-i
)选择点处的符号。然后你可以用它做其他事情,比如复制、搜索、跳转、替换等等
使用Emacs 25,只需按C-Space键,然后将光标移动到需要高亮显示/选择感兴趣的文本区域的任何位置。之后,您可能需要以下命令:
- C-w用于切割
- M-w用于复制
- C-y用于粘贴
C-s
C-r
在这种情况下通常用于查找区域的结束/开始。(在宏中特别有用)嗯,这是非常好的命令,但是。。。如何选择标记的区域?毕竟我仍然需要它,即在标记之间缩进代码。最后一个标记和当前点(即光标所在位置)之间的区域就是所选区域。只需运行M-x缩进区域
@Svante No,它未被选中。虽然缩进区域
工作正常,但是c-indent-line-or-region
(绑定到tab键的区域)却不正常。最后一个函数不在标记的区域上工作,而是在