激活方式

手动激活

命令: objed-activate 推荐绑定: M-SPC

  • C-.
  • M-[ / M-]
  • M-( / M-)

自动激活

前提条件:开启 objed-mode 或者 objed-local-mode

激活方式:命令触发

  • 光标移动命令

    • next-line
    • end-of-line
    • begin-of-line

退出按键

强制退出:

  • "g"

    • 对应 Ctrl + G (keyboard-quit) 命令

文字插入退出:

  • Space, DEL, Return

单个字符移动:

  • Ctrl-f
  • Ctrl-b

移动

  • 字符 char object

    • l/h
  • sexp object

    • f/b
  • 单词 word object

    • s/r
  • 行 line object

    • n/p

区块移动 block object

作用对象:处理多行文本

  • 多行文字
  • if else 语句
  • 开头 line based

    • v

      • (line based object begin), 第零列
    • vv

      • block begin
  • 开头 (类似 Ctrl + a)

    • a

      • 行的第一个字符的开头
      • begin of line
    • aa

      • begin of block
  • 结束位置

    • e

上下文 context object

作用对象:

  • defuns 函数
  • strings 字符串
  • parentheses 括号
  • comments

按键:

  • a

    • 激活 context, 移动到开头
    • 对象:函数,括号,字符串
  • j

    • context 开头结尾跳转
    • 对象

      • 两个括号
      • 函数的开头结尾
  • t

    • 状态切换
    • context 内部内容,和外部内容切换
    • 对象

      • 括号对象,是否包含两个括号
  • [ / ]

    • 即 [ 和 ] 快捷键
    • 同类型的 object 上下跳转
    • 对象

      • 句子:上下句的开头间跳转
      • 单词:单词间开头跳转
      • 函数:上下函数间跳转
  • ( / )

    • 选择到 object 的开头或者结尾
    • 对象

      • 函数:

        • (: 跳转到函数开头,并选择改词到开头的部分
        • ): 跳转到函数结尾,并选择改词到结尾的部分
  • { / }

    • 上下段落 paragraph object 跳转
    • 注意:

      • 由空行分别的内容,自动认为时段落
  • < / >

    • 第一个/组后一个 与当前同类型的 text object
    • 仿造 (Meta + <) / (Meta + >)

跳转

同类型 object 跳转

  • z

    • 使用 ace-jump 实现
  • M-g o

    • 类似 z

标识符跳转和搜索

功能:标识符搜索和跳转

光标下 标识符跳转:

  • ".": 下一个出现
  • ",": 上一个

更多类型搜索

快捷键: "c"

逻辑:

  1. 按下 “c” 后
  2. 选择额外功能

    • 例如: ace-jump
    • 跳转到 comment

移动 text object

左右移动

  • 单个字符移动

    • Ctrl + <left> / Ctrl + <right>
  • Tab 键位移动

    • Meta + <left> / Meta + <right>

吞并 移动

把后面或者前面的内容囊括到当前 object 内部

  • C-M-left / C-M-right

单词移动

  • S / R

字符移动

  • L / H

行移动

  • N / P

任意 object 移动

  • F / B

对象编辑

插入,删除,复制,粘贴,缩进等

  • insert 插入

    • i
  • kill 剪切

    • 删除并存入 kill-ring
    • k

      • kill 并移动到下一个 object
    • K

      • kill 并移动到上一个 object
  • delete 删除

    • 直接删除,不存入 kill-ring
    • d

      • …, 下一个
    • D

      • delete 光标移动到上一个 object
  • copy 复制

    • w
  • paste 粘贴

    • y
  • indent 缩进

    • \
  • comment 注释

    • ;
  • raise

    • ^
    • 内部替换

内部替换外部

按键:

  • ^

定义:

Replace with inner part(raise)

解释: 使用内部对象替换整个外部对象,例如:括号内的内容替换掉整个括号对象

使用限制:

  • 作用对象限制

    • 必须是有上下文的对象
  • defun
  • string
  • parentheses 括号

object 传入 shell

  • !

    • 把 object 当作 shell 命令使用
  • &

    • pipe

对象复制

  • 直接复制

    • M-RET
    • 把当前激活 object 复制一份
  • 注释复制

    • S-RET
    • 把当前对象复制一份并作为注释
  • 复制一个 空实例

    • C-M-RET

杂项功能

  • flyspell

    • $
  • undo

    • /

      • 全局 undo
    • ~

      • 选定 region 内 undo
  • "

    • 包装 object
    • 给 object 两端插入对应的给定符号
  • C-u "

    • 手动指定包装符号
  • x

    • 额外功能前缀 prefix

mark

  • m

    • mark, move to next
  • M

    • mark, move to previous
  • @

    • 扩大 object
    • 类似 "o", 但粒度小