发布一个轻型文件编辑器 - lincell,一行命令创建IDE,Nodejs环境下轻松搭建,欢迎试用
发布一个轻型文件编辑器 - lincell,一行命令创建IDE,Nodejs环境下轻松搭建,欢迎试用
1. 前言
刚发布一个叫做lincell的模块,第一版放出来遛遛,可以通过npm安装使用,支持windows和linux平台,mac没有测试,应该也是可以的。等下一版本会对代码做大的更改,不过使用者不用管,除非你要看代码,github地址在这里,项目页面在这里。
它的前端是通过nide改造的,我对整个代码做了较大更改,后面计划的功能更会改得面目全非,所以也没有fork,只是重开了一个项目命名为lincell,本来我更中意linc,但npm上的坑儿已经被占了,无奈。
为什么要开发lincell:
- nide作者很懒,都一年多不维护了,估计我以后也会很懒
- nide不支持windows,有人问那你为什么需要windows,好吧,很苦逼的是我有一台windows主机要维护;还有个原因是,我在windows上做开发的时候也想用它,毕竟它足够轻量
- nide依赖的node和库版本都太老,我有喜新厌旧强迫症
- 后台基于Event的处理有bug
- 我特别想要的功能它没有,比如上传下载,代码折叠,多标签页显示,markdown预览等等
分享publish到npm时的一个坑:平常一般用linux开发,所以不会遇到文件格式或是编码的问题,但这次lincell的大部分代码是在windows上写的,所以发布到npm上后,在windows上安装使用都没问题,但在linux上就错了(找不到文件),如何解决?在程序入口文件app.js的头部添加#!/usr/bin/env node
,让linux知道用node去运行它,然后把文件格式改为UNIX
2. 介绍
LinCell [List all in Cell] 是一个用 Node.js 开发的编辑器, 只需执行一条命令即可将文件夹变成一个工作空间,也可以作为简单的IDE使用, 它有以下特性:
- 可遍历并展示目录下所有文件夹和文件
- 对文件夹或文件的CRUD操作
- 基于ACE Editor,支持各种类型文件的预览和编辑, 如图片预览、代码高亮、markdown语法支持等
- 文件编辑过程中自动保存
- 文件夹、文件查询(按名称)
3. 安装
$ npm install -g lincell
4. 使用
Usage: lincell [options]
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port <number> use a custom http port(default port is 8222)
-d, --dir <string> use a custom path to show(default is current path)
Examples:
lincell # use default port and current path
lincell -p 9234 # custom port
lincell -d /home/sumory # custom path
lincell -p 8726 -d /home/sumory # absolute path is supported
lincell -p 8843 -d …/path # relative path is also supported
发布一个轻型文件编辑器 - lincell,一行命令创建IDE,Nodejs环境下轻松搭建,欢迎试用
1. 前言
刚发布一个叫做 lincell 的模块,第一版放出来遛遛,可以通过 npm
安装使用,支持 Windows 和 Linux 平台,Mac 没有测试,应该也是可以的。等下一版本会对代码做大的更改,不过使用者不用管,除非你要看代码,GitHub 地址在这里,项目页面在这里。
它的前端是通过 nide 改造的,我对整个代码做了较大更改,后面计划的功能更会改得面目全非,所以也没有 fork,只是重开了一个项目命名为 lincell,本来我更中意 linc,但 npm 上的坑儿已经被占了,无奈。
为什么要开发 lincell:
- nide 作者很懒,都一年多不维护了,估计我以后也会很懒。
- nide 不支持 Windows,有人问那你为什么需要 Windows,好吧,很苦逼的是我有一台 Windows 主机要维护;还有个原因是,我在 Windows 上做开发的时候也想用它,毕竟它足够轻量。
- nide 依赖的 Node 和库版本都太老,我有喜新厌旧强迫症。
- 后台基于 Event 的处理有 bug。
- 我特别想要的功能它没有,比如上传下载、代码折叠、多标签页显示、Markdown 预览等等。
分享 publish 到 npm 时的一个 坑:平常一般用 Linux 开发,所以不会遇到文件格式或是编码的问题,但这次 lincell 的大部分代码是在 Windows 上写的,所以发布到 npm 上后,在 Windows 上安装使用都没问题,但在 Linux 上就错了(找不到文件)。如何解决?在程序入口文件 app.js
的头部添加 #!/usr/bin/env node
,让 Linux 知道用 Node 去运行它,然后把文件格式改为 UNIX
。
2. 介绍
LinCell [List all in Cell] 是一个用 Node.js 开发的编辑器,只需执行 一条命令 即可将文件夹变成一个工作空间,也可以作为简单的 IDE 使用,它有以下特性:
- 可遍历并展示目录下所有文件夹和文件。
- 对文件夹或文件的 CRUD 操作。
- 基于 ACE Editor,支持各种类型文件的预览和编辑,如图片预览、代码高亮、Markdown 语法支持等。
- 文件编辑过程中自动保存。
- 文件夹、文件查询(按名称)。
3. 安装
$ npm install -g lincell
4. 使用
Usage: lincell [options]
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port <number> use a custom http port (default port is 8222)
-d, --dir <string> use a custom path to show (default is current path)
Examples:
lincell # 使用默认端口和当前路径
lincell -p 9234 # 自定义端口
lincell -d /home/sumory # 自定义路径
lincell -p 8726 -d /home/sumory # 绝对路径支持
lincell -p 8843 -d ../path # 相对路径支持
希望这个轻型文件编辑器能为您的开发工作带来便利!
不错,之前装nide老不成功。但试用了一下,也发现了一些问题,可以新建目录和文件,但不能将之删除。另外什么时候有代码提示的功能呢?
代码提示?你指的是自动完成还是api提示之类的功能?如果是这样的话,那估计不行。但如果你指的是检查一些代码的错误或者提示的吧,还是可以的,ace都是支持的,比如我有打开jslint的选项.
我是指的是自动完成,Cloud9 IDE就有这个功能吧。
这个做不了,要分析各种sdk,很复杂,cloud9没注意看是不是有
目前版本0.0.6,建议升级,已支持node0.10.x,修复了在0.10.x上直接lincell
的bug.
继续加油!!
5. 示例代码
为了更好地展示lincell
的工作原理,我们可以查看其核心部分的代码片段。下面是一个简单的实现示例,说明如何启动一个HTTP服务器,并提供一个基本的文件浏览器。
// app.js
const express = require('express');
const path = require('path');
const fs = require('fs');
const app = express();
const PORT = process.env.PORT || 8222;
app.use(express.static(path.join(__dirname, 'public')));
app.get('/files', (req, res) => {
const dirPath = req.query.dir || process.cwd();
fs.readdir(dirPath, (err, files) => {
if (err) {
return res.status(500).send(err);
}
res.json(files.map(file => path.join(dirPath, file)));
});
});
app.listen(PORT, () => {
console.log(`lincell listening at http://localhost:${PORT}`);
});
6. 启动 lincell
确保已经全局安装了lincell
,可以使用以下命令启动:
lincell
或者自定义端口和路径:
lincell -p 8726 -d /home/user/my-project
7. 功能解析
- 文件展示:
/files
路由通过读取指定目录下的文件列表,并以JSON格式返回。 - 静态资源服务:使用
express.static
中间件来服务前端的静态资源,如HTML、CSS和JavaScript文件。
8. 总结
lincell
是一个轻量级的文件编辑器,通过简单的配置即可使用。你可以根据需要扩展更多的功能,例如文件上传下载、代码折叠、Markdown预览等。希望你能喜欢这个小工具!