EmacsVim 高效写作环境 | 像写代码一样优雅的写作

2020-09-23 18:21:07 +08:00
 zuorn

本质上讲,我们的工作是重复性的。不论是在几个不同的地方做相同的小改动,还是在文档的相似结构间移动,我们都会重复很多操作。凡是可以简化复杂性的方式,都会成倍的节省我们的时间。

Emacs for macOS

具体见下表:

| 键位 | 功能 | | --------- | -------------------------------------------- | | Control–A | 移至行或段落的开头。 | | Control–E | 移至行或段落的末尾。 | | Control–F | 向前移动一个字符。 | | Control–B | 向后移动一个字符。 | | Control–L | 将光标或所选内容置于可见区域中央。 | | Control–P | 上移一行。 | | Control–N | 下移一行。 | | Control–O | 在插入点后新插入一行。 | | Control–T | 将插入点后面的字符与插入点前面的字符交换。 | | Control-K | 删除插入点与行或段落末尾处之间的文本。 | | Control-H | 删除插入点左边的字符。也可以使用 Delete 键。 | | Control-D | 删除插入点右边的字符。也可以使用 Fn-Delete 。 |

(参考苹果官网

需要注意的一点是,以上快捷键只在文稿编辑的时候才起作用,这无可厚非,但我还是希望方向键能在系统的任何地方都可以使用,顺便映射了一下翻页键。

left_option + hjkl 替换为方向键 u/d 替换为上下翻页

| 键位 | 功能 | | -------- | ------ | | option+k | 上 | | option+j | 下 | | option+h | 左 | | option+l | 右 | | option+u | 上翻页 | | option+d | 下翻页 |

Vim Mode Plus

工作模式

Vim Mode Plus 主要有两个模式,normal 模式和 visual 模式,其中 normal 模式下可以进行光标移动、删除复制粘贴等大部分操作; visual 模式是自定义选中模式。

进入和退出 NORMAL 模式

NORMAL 模式可用键位说明:

| 键位 | 功能 | | ---- | ------------------------ | | h | 向左移动光标 | | j | 向下移动光标 | | k | 向上移动光标 | | l | 向右移动光标 | | e | 将光标移动到下一个词尾 | | b | 将光标移动到上一个词开头 |

| 0 | 将光标移动到行首(在任何选项卡之前) | ^ | 将光标移动到行首(在任何标签之后) | | $ | 将光标移到行尾 | | g,g | 将光标移动到文档的开始 | | G | 将光标移到文档末尾 | | { | 将光标移到段落的开头 | | } | 将光标移到段落末尾 |

删除组合键:

| 键位 | 功能 | | --------------- | -------------------------------- | | d,d / y,y / c,c | 删除 /复制 /剪切整行 | | d,e / y,e / c,e | 删除 /复制 /剪切到下一个词尾 | | d,b / ... / ... | 删除 /复制 /剪切到单词的前一个开头 | | ... | 同上,适用于上述所有其他导航键 |

左右删除:

| 键位 | 功能 | | ---- | -------- | | x | 向右删除 | | X | 向左删除 |

| 键位 | 功能 | | --------- | ------------ | | p or P | 粘贴到光标处 | | u | 撤销 | | control+r | 重做 |

在特定的位置退出正常模式:

| 键位 | 功能 | | ---- | ---------------------------------- | | i | 在光标处退出 NORMAL 模式 | | I | 在行的开头退出 NORMAL 模式 | | A | 在行尾退出 NORMAL 模式 | | o | 在光标下方的新行上退出 NORMAL 模式 | | O | 在光标上方的新行上退出 NORMAL 模式 |

VISUAL 模式可用键位说明

在 NORMAL 模式下,您可以通过 v 切换到 VISUAL 模式

| 键位 | 功能 | | ---- | ---------------------------------------- | | v | 退出 VISUAL 模式,进入 NORMAL 模式 | | h | 向左选择 | | j | 想下选择 | | ... | 同上,适用于上述所有其他导航键 | | d | 删除 (“剪切”) 选择并进入 NORMAL 模式 | | y | 选中 (“复制”) 所选内容并进入 NORMAL 模式 | | c | (“剪切”) 选择并完全退出 Vim 模式 | | x | 删除选择并进入 NORMAL 模式 |

Mouse keys (full)

此模式可以模拟鼠标所有按键操作。可以通过 left_option进入,同时按下left_option + 其他组合键使用。

键位绑定:

| 键位 | 功能 | | ---- | ------------------------------------ | | h: | 向左移动光标 | | j: | 向下移动光标 | | k: | 向上移动光标 | | l: | 向右移动光标 | | v: | 鼠标左键 | | b: | 中间键 | | n: | 鼠标右键 | | f: | 快速模式(通过 f + hjkl 快速移动鼠标) | | d: | 慢速模式(通过 d + hjkl 缓慢移动鼠标) | | s: | 滚动模式(按 s + hjkl 滚动) |

使用我的配置

  1. 下载并安装 karabiner-elements

  2. 备份默认配置

    sudo mv ~/.config/karabiner/ karabiner.bak
    
  3. 下载此配置

    git clone https://github.com/zuorn/EmacsVim ~/.config/karabiner
    
1752 次点击
所在节点    macOS
9 条回复
eGlhb2Jhb2Jhbw
2020-09-23 18:23:18 +08:00
我艹,我他妈在办公室打开的你的帖子。
LudwigWS
2020-09-23 18:50:09 +08:00
排版乱了
RyuZheng
2020-09-23 18:58:17 +08:00
地铁上打开,吓一跳,突然想起这周自己换了防窥屏了
MeowOvO
2020-09-23 19:17:24 +08:00
我服了这 JB 图
pastgift
2020-09-23 19:35:34 +08:00
恕我直言,写代码时可一点都不优雅。我只有在点肯德基麦当劳时才会有那么一点从容和优雅
IgniteWhite
2020-09-23 20:07:38 +08:00
赣,我在系里公共区域打开了你的帖子,差评
IgniteWhite
2020-09-23 20:09:23 +08:00
说起来 emacs 的快捷键和 GNU readline 有重合之处的样子
ooops
2020-09-24 21:06:25 +08:00
鼠标那个我用过,事实证明键盘真代替不了鼠标/触控板。 可能 vimac / shortcut 更合适一点
zuorn
2020-09-25 13:09:14 +08:00
@ooops 鼠标那个只是有些 app 需要单击一下,外接键盘用的时候右手就必须得用鼠标点击了,有了这个手就不用离开键盘了。不过这个真的只适合偶尔用一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709869

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX