emacs列模式和cua-mode

文章详细介绍了在Emacs文本编辑器中如何进行矩形区域的选择、剪切、删除和编辑,特别提到了CUA-mode下的列编辑模式,该模式提供了更直观的人性化操作。用户可以通过C-Space进行标记,C-x系列命令进行矩形块的操作,而CUA-mode下的C-RET可以进入矩形选择模式,提供了一系列M-开头的快捷键进行矩形编辑。
摘要由CSDN通过智能技术生成

转载https://blog.csdn.net/toopoo/article/details/104534572

首先介绍,标记,区域:

  1. 点:即光标所在位置
  2. 标记:用C-Space或者C-@(即C-Shift-2)来做标记。
  3. 区域:标记之间的内容即为区域

1. 原始列模式

emacsC-x r开头的命令来进行举行矩形操作。首先用C-Space进行标记,然后移动光标到矩形的对角位置作为当前的点。 C-x <SPACE> 切换矩形标记模式,矩形块高亮显示。

  • C-x r k 剪切一个矩形块,作为最新保存的矩形块
  • C-x r d 删除一个矩形块,不保存矩形块
  • C-x r M-w 保存矩形块,作为最新保存的矩形块
  • C-x r y 粘贴最新保存的矩形块
  • C-x r o 插入同等宽度的空格矩形块(相当于右移矩形块的距离)
  • C-x r c 清除一个矩形块(使其变成空格)
  • C-x r t string <RET> 在选定矩形块的所有列前插入string
  • C-x r N 在选定矩形块的所有列前面插入序号(从1开始),如果选定矩形块有空格,会自动取带空格,如果选定矩形块无空格,矩形块会整体右移。
  • C-x <SPACE> 切换矩形标记模式,矩形块高亮显示,同时还可以随时调整矩形块的大小。
  • M-x delete-whitespace-rectangle 删除矩形第一个字符左侧的所有空格。
  • M-x string-insert-rectangle <RET> string <RET> 在矩形块前面插入string

2. cua-mode (Common User Access mode)

我感觉cua-mode的列编辑模式更加符合操作习惯和人性化。在cua-mode下还有cua-rect和普通模式的区别。网上很多关于cua-mode的文章都是互相抄,有错误,而且还从来不提怎么进入和退出cua-mode。SimonLiu在这里重新整理补充并纠正了一些错误。

特别的,在cua-mode下,C-c,C-v, C-x, C-z对应操作系统系统里的复制、粘贴、剪切和恢复操作。cua-rect模式的全部操作(除了输入和切换),都是M-开头的组合键。

cua-mode下,按C-<RET>会进入cua-rect模式,并以鼠标位置作为起点,也可以鼠标重新点击新位置作为起点,然后通过移动光标(比如C-n, C-f, M-f等操作)来选中一个rect范围,这个rect会用另外的颜色显示出来。之后我们 就可以很方便地对这个rect进行操作。比如[M-up],[M-down],[M-left],[M-right]可以移动这个rect范围(字符不动),此时按<RET>确定范围(这样可以移动鼠标到rect左侧或者右侧),或者再按一次C-<RET>可以取消这个矩形,C-<Space>可以退出cua-rect模式并激活普通模式下的选择。

  • 进入和退出cua-mode: M-x cua-mode
  • 进入cua-rect模式:C-<RET>
  • 退出cua-rect模式: C-<Space>

cua-mode下可以用以下命令进行列操作:

  • 插入字符: 直接输入字符即可。会在每行前(或后)都插入这个字符。取决于鼠标在前还是在后。如果需要在前面输入,可以从右下往左上选取区域,或者按回车确认矩形范围以后再移动鼠标。
  • M-b: 用空格(tabs或者spaces)替换所有rect中的字符
  • M-c: 去掉所有行左侧的空格
  • M-f: (fill)用单个字符填充rect(提示输入一个字符)
  • M-i: 对每行中第一个找到的数字进行加1操作(自动把0x开头的当作十六进制数字)
  • M-k: 剪切rect
  • M-m: 拷贝rect
  • M-n: 用一串自增的数字替换rect中的每一行(这个功能可以用来给每行编号,第三步选择格式:%d,%x,%o)
  • M-o: rect的内容右移,选中的rect用空格填充
  • M-r: 用字符串替换符满足正则表达式的字符串
  • M-R: 上下反转
  • M-s: 把rect中的每一行替换为一个字符串(提示输入)
  • M-t: 把rect整个替换为一个字符串(提示输入)
  • M-l: 把rect中的内容全部转换为小写
  • M-u: 把rect中的内容全部转换为大写
  • C-c: 复制rect
  • C-v: 粘贴rect
  • C-x: 剪切rect
  • C-z: undo
  • M-|: 对rect执行一个shell命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值