使用

列选择

概述

列选择可用于选择一个文件里的矩形区域。列选择并不是通过一个单独模式完成的,而是使用多重选择。

你可以添加选区域来选择多个文本块,或者减少选区来移除选择块。

使用鼠标

不同的平台要使用不同的鼠标按钮:

OS X

  • 鼠标左键 + Option
  • 或: 鼠标中键
  • 添加到选区: Command
  • 从选区移除: Command+Shift

Windows

  • 鼠标右键 + Shift
  • 或: 鼠标中键
  • 添加到选区: Ctrl
  • 从选区移除: Alt

Linux

  • 鼠标右键 + Shift
  • 添加到选区: Ctrl
  • 从选区移除: Alt

使用键盘

OS X

  • Ctrl + Shift + Up
  • Ctrl + Shift + Down

Windows

  • Ctrl + Alt + Up
  • Ctrl + Alt + Down

Linux

  • Ctrl + Alt + Up
  • Ctrl + Alt + Down

键盘多区域选择

添加一行

添加上面一行或者下面一行到选区,可以使用Ctl+Alt+Up 和 Ctrl+Alt+down (OS X: Ctrl+Shift+Up 和 Ctrl+Shift+Down).

如果你选择过多,可以撤销选择 (Ctrl+U, 或者 Command+U on OS X) 进行后退。

把选区分割成每一行

选中一个多行的区块,然后把每一行分成一个选区,可以使用Ctrl+Shift+L, 或 Command+Shift+L on OS X.

快速添加下一个

添加下一个当前发现的单词到选区,Windows和Linux下使用Ctrl+D ,或者OS下使用Command+D。如果当前没有选中的单词,第一次则选中当前光标所在的单词,重复使用将选择下一个相同的单词。

同样,如果选择过多,可以使用(Ctrl+U, 或者 Command+U on OS X) 进行撤销,后退一步。

使用快速选择下一个时,个别单词可以跳过,Windows 和 Linux下快捷键是Ctrl+K,Ctrl+D, 或者OS X下Command+K,Command+D。

查找所有

添加所有的发现的当前单词到选区,可使用查找所有:Alt+F3 on Windows and Linux, 或者Ctrl+Command+G on OS X.

单一选区

从多选区切换到单一选区,使用Escape.

自动完成

概述

自动完成会根据你的输入显示补全列表,所以你可以通过输入简短的字母来完成填入长的单词。 默认编辑源代码和HTML(输入<字符之后启动提示)时是开启的。

禁用自动完成

自动完成可以通过auto_complete来配置。把下面这行加入到Preferences/File Settings - User里面可以禁用:

  1. "auto_complete": false

如果自动完成被禁用,补全列表弹出层可以手动触发,或者通过tab键来完成输入最接近的自动补全匹配,而不显示补全列表提示。

手动显示补全列表

如果未显示可以通过 Ctrl+Space 显示提示列表。如果已经显示,可以选择下一项。

通过Tab键完成

默认情况下,补全提示列表中选中的项会在回车之后自动填入。这个可能会导致歧义,是需要换行还是自动完成补全。通过设置auto_complete_commit_on_tab 为true, 回车将会插入新行,tab键将自动完成补全。这样做的另一个好处就是:让Sublime Text知道没有模糊的定义, 它会把你可能想要的最为匹配的项展现在第一个位置。

建议启用Tab键完成自动补全,不过可能需要一点时间适应这个习惯。

免注意力分散模式

概述

换句话说就是注意力集中模式,这种模式下代码编辑区域将变成全屏。所有UI部件都会被影藏,但是仍然可以访问。可以通过View/Enter Distraction Free Mode 菜单进入此模式。

这种模式下,所有UI部件(侧边栏,预览地图,状态栏等等)将影藏。可以通过View菜单里选择性的显示某个部分,这些配置同样将会在下一次进入该模式时有效。

定制

该模式下可以应用某些配置。默认配置(在Packages/Default/Distraction Free.sublime-settings):

  1. {
  2. "line_numbers": false,
  3. "gutter": false,
  4. "draw_centered": true,
  5. "wrap_width": 80,
  6. "word_wrap": true,
  7. "scroll_past_end": true
  8. }

可以通过编辑Packages/User/Distraction Free.sublime-settings文件来自定义这些配置,可通过Preferences/File Settings - More菜单访问到。

上面wrap_width设置没太大意义。80表示代码编辑区域边界位置在第80个字符位置。你可以设置成更大的值,或者设置为0表示整个窗口的宽度。

Vintage模式

概述

Vintage是Sublime Text的vi模式编辑包。 可以使用组合vi命令来调用Sublime Text的功能,包括多重选择。

Vintage模式是开放开发的,而且非常欢迎进行完善和扩展。如果你愿意做点贡献的话,可以在GitHub页面上找到更多细节。

启用Vintage

Vintage默认是禁用的, 通过ignored_packages 配置。如果要从ignored packages列表中移除”Vintage”的话可以通过下面的方式编辑:

  1. 选择Preferences/Settings - Default菜单
  2. 编辑ignored_packages配置, 修改:

    “ignored_packages”: [“Vintage”]

成:

  1. "ignored_packages": []

然后保存文件。

  1. Vintage模式则已启用——你可以看到”INSERT MODE”显示在状态栏了。

Vintage默认是插入模式。可以添加:

  1. "vintage_start_in_command_mode": true

这项配置到User Settings里。

包含哪些功能

Vintage包含大部分的基本命令: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编辑模式,绑定的是Sublime Text常用的快捷键:并没有模仿vi 插入模式的键盘绑定。

通过via命令面板执行的Ex commands没有实现,除了:w和:e。

Under the Hood

Vintage模式完全是参考via键盘绑定和基于插件API来实现的——你可以自由的浏览Vintage包,看看它们是如何组合在一起的。举个例子,如果你要把 “jj” 绑定为退出插入模式,你可以像下面这样天剑键盘绑定:

  1. { "keys": ["j", "j"], "command": "exit_insert_mode",
  2. "context":
  3. [
  4. { "key": "setting.command_mode", "operand": false },
  5. { "key": "setting.is_widget", "operand": false }
  6. ]
  7. }

OS X Lion

Lion系统下,按住某个键不会重复,但是会弹出一个菜单选择字符变更。在命令模式下这样并不是很好,如果你想禁用它,可以通过在终端里输入下面这个语句:

  1. defaults write com.sublimetext.2 ApplePressAndHoldEnabled -bool false

Ctrl Keys

Vintage支持下面这些ctrl key的绑定:

  • 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的其它键盘绑定冲突,Windows和Linux下默认是禁用的。可以通过vintage_ctrl_keys来配置:

    1. "vintage_ctrl_keys": true

Ex Mode

可以参考VintageEx这里查看Vintage的Ex mode。

Projects(项目)

概述

Projects在Sublime Text中由2个文件组成:sublime-project文件,包含项目的定义,和sublime-workspace文件,包含用户特定数据,比如打开的文件和每个文件的修改。

按照一般原则,sublime-project需要纳入版本控制,而sublime-workspace文件不需要。

Project Format

sublime-project文件是JSON格式,支持三个一级配置节点: folders, 包含引入的文件目录,settings, 包含需要重写的file-setting, 以及build_systems, 指定项目的构建系统。下面是一个例子:

  1. {
  2. "folders":
  3. [
  4. {
  5. "path": "src",
  6. "folder_exclude_patterns": ["backup"],
  7. "follow_symlinks": true
  8. },
  9. {
  10. "path": "docs",
  11. "name": "Documentation",
  12. "file_exclude_patterns": ["*.css"]
  13. }
  14. ],
  15. "settings":
  16. {
  17. "tab_size": 8
  18. },
  19. "build_systems":
  20. [
  21. {
  22. "name": "List",
  23. "shell_cmd": "ls -l"
  24. }
  25. ]
  26. }

Folders

每个文件夹都需要有一个path(路径), 和其它可选配置file_exclude_patterns, file_include_patterns, folder_exclude_patterns, folder_include_patterns and follow_symlinks。路径是相对于project目录的位置,或者完整绝对路径。Folders也可以指定一个name配置,用于显示在侧边栏里。

如果从老版本的项目转换过来可能会在folders下有一个mount_points。 如果还想使用这个移除的模式,需要转换成上面这种格式。

Settings

配置(Settings)可以在这回使用settings这个key值来指定, 可以覆盖用户配置规则(user settings)。注意它不会覆盖特定的语法配置(syntax specific settings)。

构建系统(Build Systems)

Build Systems指定了一组内联的构建系统定义. 除了一般的构建系统的配置,还需要为每个构建系统指定一个name。可用的构建系统列举在Tools/Build Systems菜单下。