复古模式
概述
复古是一个Sublime Text 2 的vi模式编辑包。它允许你结合vi的命令行模式和Sublime Text的特性,包括多重选择。
复古模式在开放开发和补丁方面更受欢迎。如果你想要贡献,详情可见GitHub页。
启用复古模式
复古模式默认是禁用的,通过ignored_packages配置。 如果你把"Vintage"忽略包列表中移除,你就可以使用vi快捷键编辑了:
- 选中Preferences/Settings - Default菜单项
- 编辑ignored_packages配置,把他从:
- "ignored_packages": ["Vintage"]
改成:
- "ignored_packages": []
然后保存文件。
- 现在复古模式就启用了 - 你会看见"INSERT MODE"在任务栏上列出来了。
复古模式默认就是插入模式。这可以通过添加以下来改变:
- "vintage_start_in_command_mode": true
来使用自己的配置。
它包括了
复古模式包括了最基本的操作: d (delete), y (copy), c (change), gu (lower case), gU (upper case), g~ (swap case), g? (rot13), < (unindent), and > (indent).
它也包含了许多动作,包括l, h, j, k, W, w, e, E, b, B, alt+w (move by sub-words), alt+W (move backwards by sub-words), $, ^, %, 0, G, gg, f, F, t, T, ^f, ^b, H, M, and L.
文本对象是支持的,包括文字,引号,括号和标签。
那里重复的('.'),作为被指定命令和动作的计数。 寄存器就像宏和书签是支持的。许多杂项命令也是被支持的,比如 *, /, n, N, s, S 和其他的。
它没有
插入模式是通常Sublime Text 2编辑,通过通常Sublime Text 2 绑定的键位: vi 插入模式键位没有实现。
Ex 命令行 没有实现,除了:w and :e, 其他通过控制面板。
实现的原理
复古模式完全是靠快捷键和插件API实现的 - 随意浏览复古包,看看他们是如何组织的。举个例子,你想绑定"jj"到退出插入模式,你可以添加这个快捷键:
- { "keys": ["j", "j"], "command": "exit_insert_mode",
- "context":
- [
- { "key": "setting.command_mode", "operand": false },
- { "key": "setting.is_widget", "operand": false }
- ]
- }
OS X Lion
在狮子中,按住一个键不会重复作用这个键,而是显示出一个弹出菜单供选择字符间的变化。这不能很好的和命令模式工作,因此你也许想禁用它。只要通过在终端里运行下面这句:
- defaults write com.sublimetext.2 ApplePressAndHoldEnabled -bool false
Ctrl键组
复古模式支持这些Ctrl的绑定:
- Ctrl+[: Escape
- Ctrl+R: Redo
- Ctrl+Y: Scroll down one line
- Ctrl+E: Scroll up one line
- Ctrl+F: Page Down
- Ctrl+B: Page Up
然而,因为他们和其他Sublime Text 2 的快捷键冲突,他们在Windows and Linux上默认是禁用的。他们可以通过设置the vintage_ctrl_keys配置来启用:
- "vintage_ctrl_keys": true
Ex Mode
请看一下VintageEx作为一个复古模式的增强。