1 min read

Zed编辑器

我用Vim,但不是Vim狂热分子。看到有人说Sublime Text不错,我会下载一个试试 – 确实有过人之处。LightTable说自己是下一代代码编辑器,我也会试试 – 十分新颖。Brackets专为Web开发打造,我是做前端开发的,听起来量身定制。Github十年磨一剑的姿态,出了Atom,号称为21世纪而造。可惜我没有Mac系统,否则也愿意试试。

我个人对软件之名没有执念。

Zed是我最近看到的一款编辑器,tagline写着「Rethinking Code Editing」。

Zed的界面

看图(图片来自Zed网站):

Zed App

看上去,这界面跟Sublime Text、Atom很像。

但是,Zed的顶部没有菜单栏,也没有标签页,左侧也没有文件管理树。界面极简

Zed支持的平台

Zed目前支持的平台有:

  1. Chrome浏览器 – Zed作为一个Chrome App存在
  2. Mac系统
  3. Windows系统
  4. Linux 32位系统
  5. Linux 64位系统

安装过程非常简单,下载压缩包,解压即可使用。

初次见面

初次打开Zed的界面如下:

zed start

这是Zed项目选择窗。

如果你不曾打开过项目,则窗口中有三条菜单:

  1. Open Local Folder – 打开本地文件夹
  2. Configuration – 配置
  3. Manual – 手册

如果你曾经开过项目,则Zed会把项目路径追加到Manual菜单下,通过移动箭头或鼠标点击选择项目。

第一次打开项目文件夹,Zed会显示一个只读帮助文件,介绍一些快捷键的使用,比如:

  • ctrl-e – 打开文件

主题样式

Zed 默认的主题样式是暗黑色,但非常容易切换:

  1. Ctrl-. 调出顶部的命令栏(goto UI)
  2. 输入configurationthemexcode,因为Zed支持命令模糊匹配,所以输入themxo也同样可以定位到命令。事实上,不管你输入什么,只要能唯一定位出命令,都是可以的
  3. 按回车键,Zed界面的样式已经变成Xcode的

但你可能好奇,样式更改是在哪里进行的?或说更改是怎么保存的?

配置Zed

Zed有一个user.json文件,用于保存用户配置。譬如上面的主题样式更改,会自动保存到user.json文件中preferences属性里,如下:

{
    imports: [
        "/default.json"
    ],
    preferences: {
        theme: "xcode"
    },
    modes: {},
    keys: {},
    commands: {},
    handlers: {},
    themes: {},
    packages: [    ]
}

user.json文件里,modes可以增加对文件格式的支持,keys可以增加按键组合或重新定义按键,commands可以定义新的命令。

打开user.json文件要绕点路,你要在Zed项目选择窗里,选择Configuration菜单项,回车后会打开一个新Zed窗口,两栏,左侧显示README.md文件,右侧显示user.json文件。

如果你正在编辑项目,突然想更改user.json,则可以先按Ctrl-Shift-o快速切换到Zed的项目选择窗 – 不过,你要保证项目选择窗口还开着。

文件操作

打开文件

在你进入一个项目后,可以用Ctrl-e调出goto UI,然后输入要打开的文件名称。

切换文件或新建文件,也同样使用Ctrl-e。因为认真的说,无论是切换文件还是新建文件,都是在打开一个文件 – 不管它存在或不存在。

所以Zed把这几个文件操作方式合并。这是它的一个特性。Zed里,没有单独的Ctrl-o来打开对话框选择文件,也没有单独的Ctrl-n创建新文件 – 要创建文件,你只要输入一个不存在的文件名。

保存文件

在Zed中,打开A文件后,要打开B文件,因为只有一个窗口,所以B会替代A,占据当前窗口。在VIM中,如果A文件做修改,却还没有保存,会要求我们先保存A然后才能打开B。但Zed允许你直接打开B,不会有任何提示要求你先保存A。

这是因为,它已经保存好了。默认情况下,没有键击,则2秒后Zed会自动保存文件。以下三种情况下,Zed也会自动保存文件:

  1. 编辑器失去焦点
  2. 切换文件
  3. 关闭窗口

但自动保存的功能可能会带来一些问题。

譬如我用gulp watch命令监控coffeeScript文件的变化并自动编译,有时候用Zed打一半代码,又切换到其他窗口做点事情,再回来,因为自动保存好了,gulp watch捕捉到无法编译的问题,就自动退出,于是又得重开gulp watch命令。

但Zed必须有自动保存的功能。如果没有,则我们切换文件时,Zed就要提醒我们:保存当前文件吗?又或者我们可以在新标签页中打开另一文件,但如上面所说,Zed没有标签页。

当然,这种问题交给编辑器去解决,我觉得想法本身就有些问题,我们有其他方法解决

命令

Zed没有菜单栏,所以许多操作除了使用快捷键外,都需要通过命令完成。

所有的命令都可以通过goto UI来调用。goto UI是Zed的一个命令入口,平时隐藏起来,但可以通过一些特殊按键唤出,比如Ctrl-.Ctrl-Shift-.

当然,你也可以重新定义按键组合,比如在user.json中增加:

keys: {
        "Command:Enter Command": {
            win: "Ctrl-Shift-P"
        }
    }

goto UI支持模糊匹配,所以我们不需要记住完整的命令,只大概知道几个单词或者字母就可以。

多游标

虽说它的功能跟查找/替换相近,但多游标似乎成了现下编辑器的标配。Sublime Text里有,Adobe Brackets在Sprint 38版本中也加入该功能,Zed同样提供多游标。

首先,将光标置于要编辑的文本中(当然你也可以先选中文本),然后,

  1. Ctrl-Alt-Right,Zed会选中随后的同一文本;
  2. 或者也可以按Ctrl-Alt-Left选择此前的同一文本;
  3. Ctrl-Alt-F则选中所有相同文本。

在选择好多处文本后,按上、下、左、右方向键就可以移动多处光标的位置,也就可以同时编辑多处文本。

多面板

虽然Zed没有标签页功能,但它也提供了一个多面板功能。

  1. Ctrl-2 – 将窗口分割为左右两个面板
  2. Ctrl-3 – 将窗口分割为三个等宽面板
  3. Ctrl-1 – 恢复原状
  4. Ctrl-0 – 多面板间切换焦点

如果你编辑的是Markdown文件或是CoffeeScript文件,按Ctrl-p可以在右侧面板实时预览编译效果,非常便利。

自动更新

Zed的作者目前全职开发Zed,所以编辑器的更改会很频繁,不过Zed具备自动更新功能,所以不需要我们频繁跟踪进度。只需要在软件提醒更新时,重启Zed就好。

welcome home : vim online

Sublime Text: The text editor you’ll fall in love with

Light Table

Brackets – The Free, Open Source Code Editor for the Web

Atom

Zed | Zed — Rethinking Code Editing

报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo