2 个版本
0.0.2 | 2021年10月16日 |
---|---|
0.0.1 | 2021年10月10日 |
#1008 在 硬件支持
26 每月下载次数
在 2 crate 中使用
265KB
6K SLoC
ewin
为 Window(GUI) 用户设计的简单编辑器。
无需记住命令
请勿使用,因为它目前处于开发中。
它提供基本功能作为最小化文本编辑器
- 打开/保存文本文件
- 创建新的文本文件和在内存中的空文本缓冲区
- 编辑文本(插入/删除字符、插入/删除行等)
- 支持编辑 UTF-8 字符
- 支持调整终端窗口大小。屏幕大小负责
- 支持按键绑定
- 支持鼠标
- 支持在 JavaScript 中的宏
- 支持上下文菜单
- 支持标签页
- 支持 Grep(利用 ripgrep 的内部实现)
- 支持框选・插入
- 当保存时,检测文件的其他进程的更改
- 当使用 WSL 时,可以与 Windows 剪贴板链接。
- 文件更改监控。
- 颜色主题(光标颜色不在范围内)
- 输入完成(单词完成)
- 显示特定字符的符号(制表符、全角空格等)
- 窗口分割
- 文件属性参考
- 侧边栏文件树视图
示例图像
- grep
- 输入 Ctrl + g
- 输入搜索字符,搜索文件夹,文件模式。
- 显示 grep 结果屏幕。
- 在 grep 结果屏幕的第三行按 Enter 键,在新的标签页中打开目标文件。光标移动到搜索结果中的字符。
- 下面是其他示例图像
https://github.com/thinkingreed/ewin/wiki/Sample-image
安装
在 Ubuntu 上
... 以及其他基于 Debian 的 Linux 发行版
从 发布页面 下载最新的 .deb 包,并通过以下方式安装:
在 CentOS 上
从 发布页面 下载最新的 .rpm 包,并通过以下方式安装:
rpm -ivh ewin_0.0.0.x86_64.rpm
在 Windows 上
从 发布页面 下载最新的 .exe 包,并通过以下方式安装:
使用方法
命令行界面
有关命令使用方法,请参阅 ewin --help
。
文件编辑
安装软件包将在您的系统中引入ew
命令。
$ ew [file] # Open files to edit
输出配置文件
配置文件输出。
$ ew -o, --output-config
配置文件的输出位置如下。
在Linux上
$HOME/.config/ewin/
在 Windows 上
%USERPROFILE%\AppData\Roaming\ewin\
操作
ewin是一个非模式文本编辑器。像其他著名的非模式文本编辑器,例如Nano、Emacs一样,您可以使用键盘在终端窗口中编辑文本。并且一些带有Ctrl或Alt修饰符的键被映射到各种功能。
- 操作
映射 | 移动 | 键记录 |
---|---|---|
Ctrl + w |
退出。 | ― |
Ctrl + s |
将当前缓冲区保存到文件。 | ― |
F1 |
在屏幕底部显示键绑定。 | ― |
Ctrl + f |
输入要增量搜索的字符。搜索目标是打开的文件。 | ― |
Ctrl + g |
Grep。输入您要搜索的字符。搜索目标是输入文件模式的UTF-8文件。 | ― |
Linux・WSL | ― | |
使用的命令:grep -rHnI search_str --include=search_filenm search_folder | ||
-r:子文件夹搜索,-H:文件名显示,-n:行号显示,-I:不适用于二进制文件 | ||
Windows | ― | |
使用的命令:dir -recurse search_folder -Exclude Binary file... | Select-String search_str | ||
Shift + F1 |
开始或停止键记录。记录键操作。 | ― |
Shift + F2 |
执行记录的键。 | ― |
Ctrl + o |
打开新文件。 | ― |
Ctrl + n |
创建新标签。另一种操作是双击标题。 | ― |
在Windows中,除非您缓慢双击,否则将不会识别 | ||
Alt + ← ・→ |
切换标签。 | ― |
Ctrl + e |
指定字符代码并重新加载。或者设置字符代码的换行代码和BOM。 | ― |
F12 |
鼠标捕获更改。用于通过终端应用访问剪贴板 | ― |
当连接到远程终端时 | ― | |
F10 |
显示上下文菜单。 | ― |
Ctrl + space |
输入完成 | ― |
- 移动光标
映射 | 移动 | 键记录 |
---|---|---|
↑ 或 Mouse ScrollUp |
向上移动光标。 | 目标 |
↓ 或 Mouse ScrollDown |
向下移动光标。 | 目标 |
→ |
向右移动光标。 | 目标 |
← |
向左移动光标。 | 目标 |
HOME |
将光标移动到行首。 | 目标 |
END |
将光标移动到行尾。 | 目标 |
PAGE DOWN |
下一页。 | 目标 |
PAGE UP |
上一页。 | 目标 |
Ctrl + HOME |
将光标移动到行首。 | 目标 |
Ctrl + END |
将光标移动到行尾。 | 目标 |
Ctrl + l |
将光标移动到指定行。 | ― |
- 编辑文本
映射 移动 键记录 Enter
插入新行 目标 BACKSPACE
删除字符 目标 DELETE
删除下一个字符 目标 Tab
插入新制表符 目标 Ctrl
+x
选择范围剪切。 目标 Ctrl
+c
选择范围复制。在远程操作时,想要复制到剪贴板,请使用 F12 切换鼠标操作。 目标 Ctrl
+v
粘贴复制的字符。 目标 Ctrl
+r
替换字符。 ― Ctrl
+z
撤销。撤销上一个编辑。 ― Ctrl
+y
重做。再次执行上一个更新。 ―
- 选择文本
映射 | 移动 | 键记录 |
---|---|---|
Shift + ↑ |
从当前行的开头选择到上一行的结尾。 | 目标 |
Shift + ↓ |
从当前行的结尾选择到下一行的开头。 | 目标 |
Shift + → |
选择下一个字符。 | 目标 |
Shift + ← |
选择上一个字符。 | 目标 |
Shift + HOME |
选择行的开头。 | 目标 |
Shift + END |
选择行的结尾。 | 目标 |
Ctrl + a |
选择所有。 | 目标 |
F3 |
在下面查找字符。 | 目标 |
Shift + F3 |
在 Windows 下查找下面的上方字符。 | 目标 |
Shift + F4 |
在 Unix 系列系统下查找下面的上方字符(在 Unix 系列系统的 Crossterm 中 Shift+F3 无法读取)。 | 目标 |
鼠标左键.按下 + 拖动 |
选择一个范围。 | ― |
鼠标双击 |
选择一个范围。分隔符为 `` ! "#$%&'()*+-',./:;<=>?@[]^`{ | }~ `` |
鼠标三击 |
选择一行。 | ― |
Shift + F6 |
框选(矩形)选择模式开始或停止。 | ― |
Alt + ↑ |
框选(矩形)从当前行的开头选择到上一行的结尾。 | 目标 |
Alt + ↓ |
框选(矩形)从当前行的结尾选择到下一行的开头。 | 目标 |
Alt + → |
框选(矩形)选择下一个字符。 | 目标 |
Alt + ← |
框选(矩形)选择上一个字符。 | 目标 |
Alt + HOME |
框选(矩形)选择行的开头。 | 目标 |
Alt + END |
框选(矩形)选择行的结尾。 | 目标 |
操作限制
运动 | 映射 | 环境 | 内容 |
---|---|---|---|
复制 ・粘贴 ・剪切 |
Ctrl + c ・v ・x |
WSL | ・如果您想复制到剪贴板,需要 powershell.exe 的路径。在 PowerShell 终端尝试 $ PSHOME |
・对字符串长度有限制。 | |||
键记录 |
Ctrl + F1 |
WSL | 键绑定。命令 "copy" 和 "paste" 需要更改为 Ctrl+c, Ctrl+v 之外的内容。例如:Ctrl+Shift+c, Ctrl+Shift+v |
设置文件
当执行 输出配置文件命令 时,设置配置文件将输出到以下位置,以便编辑。
在Linux上
$HOME/.config/ewin/setting.toml
在 Windows 上
%USERPROFILE%\AppData\Roaming\ewin\setting.toml
初始设置
初始设置如下。
快捷键绑定
当执行输出配置文件命令时,快捷键配置文件将输出到以下位置,以便进行编辑。
在Linux上
$HOME/.config/ewin/keybind.json5
在 Windows 上
%USERPROFILE%\AppData\Roaming\ewin\keybind.json5
初始快捷键绑定
初始快捷键绑定设置如下。
维护
操作/意外错误日志如下。
在Linux上
/tmp/ewin/
在 Windows 上
%USERPROFILE%AppData\Local\Temp\ewin\
通过Tera Term使用时的设置
通过Tera Term使用时的设置如下。
JavaScript宏的公开函数
以下是发布的JavaScript函数列表。使用内置的v8引擎和rusty_v8。
未来工作
- 通过WASM扩展
- 自动保存文件
许可证
本项目根据MIT许可证分发。
依赖项
~18–31MB
~484K SLoC