UP | HOME

emacs-可视化编辑教程

1 emacs编辑的快捷键 ::

C-d (delete-char) 删除光标处的字符
Backspace (delete-backward-char) 删除光标前字符
M-\ (delete-horizontal-space) 删除光标处的所有空格和Tab字符
M-SPC (just-one-space) 删除光标处的所有空格和Tab字符,但留下一个
C-x C-o (delete-blank-lines) 删除光标周围的空白行,保留当前行
M-^ (delete-indentation) 将两行合为一行,删除之间的空白和缩进
C-k (kill-line) 从光标处起删除该行
C-S-Backspace (kill-whole-line) 删除整
C-w (kill-region) 删除区域
M-w (kill-ring-save) 复制到kill 环,而不删除
M-d (kill-word) 删除光标起一个单词
M-Backspace (backward-kill-word) 删除光标前单词
C-x Backspace (backward-kill-sentence) 往前删一句
M-k (kill-sentence) 删除光标起一句
M-z char (zap-to-char) 删至字符char为止

2 emacs列编辑模式 ::

emacs以C-x r开头的命令来进行矩形操作 用C-x r space或者C-x r C-@设一个mark 移动光标到另一点,用以下命令进行列操作:

C-x r k 剪切一个矩形块
C-x r y 粘贴一个矩形块
C-x r o 插入一个矩形块
C-x r c 清除一个矩形块(使其变成空白)
C-x r t 在选定区域的所有列前插入样的字符
C-x r d 删除举行区域不保存
C-x r s copy-to-register
C-x r r copy-rectangle-to-register
C-x r N 选定矩形块的所有列前面插入序号(从1开始)

3 cua-mode (Common User Access mode) ::

cua-mode也是一种更好的可视化的列模式 cua-mode和cua-rect是有区别的

  1. 在cua- mode下,按下[C-return]会进入cua rectangle模式
    • (org模式不起作用,必须通过M-x cua-rectangle-mark-mode进入)
    • 这里我设置了直接在任何模式下启动的快捷键

      ;;cua-rectangle-mark-mode的快捷键
      (global-set-key (kbd "C-c n") 'cua-rectangle-mark-mode)
      
  2. 通过光标键来选中一个rect范围,这个rect会用另外的颜色显示出来
    • 可以很方便地对这个rect进行操作
    • [M-up],[M-down],[M-left],[M-righ]可以移动这个rect
    • [C- return]/[M-c]可以取消这个rect
    • [C-space]可以退出cua-rect模式并激活普通模式下的选择

3.1 cua-mode (Common User Access mode)

  • 直接输入字符: 在每行前(或后)都插入这个字符
  • [M-b]: 用空格(tabs或者spaces)替换所有rect中的字符
  • [M-c]: 去掉所有行左侧的空格 blank
  • [M-f]: 用单个字符替换所有rect中的字符(提示输入一个字符)
  • [M-i]: 对每行中第一个找到的数字进行加1操作(自动把0x开头的当作十六进制数字)
  • [M-k]: 剪切rect
  • [M-l]: 把rect中的内容全部转换为小写
  • [M-m]: 拷贝rect
  • [M-n]: 用一串自增的数字替换rect中的每一行(这个功能可以用来给每行编号)
  • [M-o]: rect的内容右移,选中的rect用空格填充
  • [M-r]: 用字符串替换符满足正则表达式的字符串
  • [M-R]: 上下反转
  • [M-s]: 把rect中的每一行替换为一个字符串(提示输入)
  • [M-t]: 把rect整个替换为一个字符串(提示输入)
  • [M-u]: 把rect中的内容全部转换为大写
  • [M-|]: 对rect执行一个shell命令
  • [M-p]: pad选择模式
  • [C-c]: 复制rect
  • [C-v]: 粘贴rect
  • [C-x]: 剪切rect
  • [C-z]: undo

还有一些其他的命令可以直接看cua-base.el(emacs22之后已经自带cua-mode)。