我想在不使用鼠标的情况下选择或突出显示emacs中的块,但是可以通过键盘像vim的可视模式一样。从键盘上最简单的方法是什么?
答案 0 :(得分:64)
如果我正确理解了这个问题,那么最初并不是关于矩形区域。
C-Spc
会在当前位置添加标记。
无论你的光标在哪里,最后一个标记和当前位置之间的文字都被“选中”(你可以通过激活transient-mark-mode
来强调这一点,但这也意味着你必须删除标记不想突出显示。
您可以使用以下命令对该区域进行操作:
C-w
。 。杀死地区。这将删除并将该区域置于杀戮戒指中
C-y
。 。扬克。这将插入kill ring中的最后一个片段
M-y
。 。循环杀死戒指。在C-y
之后,立即用杀戮戒指中的其他片段替换被猛拉的部分。
M-w
。 。保存区域成杀环。与C-w
类似,但不会删除。
这只是基本用法。马克也有其他用途。我推荐教程( C-h t
)。
答案 1 :(得分:58)
看看emacs中的区域矩形。
简而言之,您通过 Control - Space 开始选择,然后使用 Control - x Control - x r y 。
答案 2 :(得分:25)
Emacs 24.4现在具有矩形标记模式。 C-x空间来调用它。
答案 3 :(得分:16)
请参阅文章:"Working with rectangular selections",尤其是评论部分。另请参阅标题为“CUA矩形支持”的CUA mode documentation部分。还有nice video on vimeo。
答案 4 :(得分:7)
虽然C-SPC
是开始标记内容的常用方法
无论你的观点是什么,通常都有更快捷/更容易的方法
涉及明确移动到开始/结束点......
M-h
- 标记段落的重要方法。 A"段落"
通常意味着代码块。
C-M-h
和C-M-@
- 标记性别和defuns ,
分别。这适用于多种语言,而不仅仅是lisps。
按住班次 - 另一种光滑的方式来突出显示
运动。例如,M-S-f
选择了一个完整的单词。这是
的 shift-select-mode
下,
它在Emacs 24+中默认启用。在一些(非chiclet)
键盘,你应该能够用一个单独按住C-S-
小指。
您可以反复按下其中任何一个以增加选择。
(注意:经常使用C-g
取消标记
试验。) 子>
有一些附加软件包可以改善选择区域和 的东西。这些都很好地一起玩,适合不同的用途 案例。全部使用它们!
<强> Expand-Region 强>:
展开区域按语义单位增加所选区域。只是
按住键直到它选择你想要的东西。 C-=
是一个
建议绑定它。打几次就可以得到你的东西
需要。
Easy-Kill :使用M-w
和
选择不同类型的东西的助记符,如单词,性别,
列表等
<强> Zop-to-Char 强>: 像 zap-to-char ,但提供了很好的选择和其他 菜单驱动的行动。
diff-hl :突出显示未提交的已更改区域。使用diff-hl-mark-hunk
选择/标记大块。
答案 5 :(得分:6)
使用 Control - Space 设置标记并移动光标。
transient-mark-mode
会突出显示您的选择。 M - x transient-mark-mode
。
您可以使用自定义设置Emacs以默认启用此模式。 M - x customize-option
RET transient-mark-mode
。
答案 6 :(得分:1)
...如果您使用Ubuntu并且 C-spc 不适合您:您需要清除IBus“下一个输入法”键绑定,如
运行
ibus-setup
并更改密钥绑定 “下一个输入法”到别的东西(或完全删除它 单击“...”按钮,然后单击“删除”按钮。
从an answer引用SO问题。
答案 7 :(得分:0)
要扩展Edin Salkovic的答案,如果您使用CUA模式,您可以用来开始视觉区块选择。有很多快捷方式可以控制documentation of CUA中描述的块选择。
答案 8 :(得分:0)
使用Emacs 25,只需按 C - Space ,然后将光标移动到要突出显示/选择您感兴趣的文本区域的任何位置。之后,您可能需要以下命令: