Skip to content

Repository files navigation

Notepad-rs

English | 中文

一个使用 Rust + Vue + CodeMirror 构建的类似 Notepad++ 的桌面文本编辑器。

项目初衷

从 Windows 的 Notepad++ 换到 Mac 后,发现没有类似好用的文本编辑器。试过几款替代软件,但都存在功能 bug 且样式不够美观,于是决定自己重写一个。Notepad-rs 旨在为用户提供一个功能完善、界面美观、性能优秀的文本编辑器。

功能特性

  • 🚀 高性能: 基于 Tauri 和 Rust 构建,启动快速,内存占用低
  • 📝 多标签页: 支持同时打开多个文件
  • 🎨 语法高亮: 支持 30+ 种编程语言的语法高亮
  • 🌍 多语言界面: 支持中文和英文两种界面语言
  • 🎨 多主题支持: 提供多个精美主题,包括暗色和亮色主题
  • ⌨️ Vim 模式: 可选的 Vim 键绑定支持
  • 🔍 搜索替换: 强大的搜索和替换功能
  • 📏 行号显示: 可切换的行号显示
  • 📦 自动换行: 可切换的自动换行
  • 🔤 字体缩放: 支持快捷键调整字体大小

支持的语言

JavaScript, TypeScript, Python, Rust, HTML, CSS, JSON, Markdown, XML, SQL, Java, C/C++, PHP, YAML, Go, Ruby, Vue, Shell 等。

开发环境要求

系统依赖

Linux

在 Linux 系统上构建需要安装以下系统依赖:

Ubuntu/Debian:

sudo apt update
sudo apt install -y \
  libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libssl-dev \
  libgtk-3-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libglib2.0-dev \
  libpango1.0-dev \
  libatk1.0-dev \
  libcairo-gobject2 \
  libgdk-pixbuf2.0-dev \
  xdg-utils

Fedora:

sudo dnf install -y \
  webkit2gtk4.1-devel \
  openssl-devel \
  curl \
  wget \
  file \
  libappindicator \
  librsvg2-devel \
  glib2-devel \
  pango-devel \
  atk-devel \
  cairo-gobject-devel \
  gdk-pixbuf2-devel \
  xdg-utils

Arch Linux:

sudo pacman -S --needed \
  webkit2gtk \
  base-devel \
  curl \
  wget \
  file \
  openssl \
  libappindicator \
  librsvg \
  glib2 \
  pango \
  atk \
  cairo \
  gdk-pixbuf2 \
  xdg-utils

macOS

macOS 通常不需要额外安装系统依赖,但确保已安装 Xcode Command Line Tools:

xcode-select --install

Windows

Windows 上需要安装 Microsoft C++ Build Tools

安装依赖

# 安装前端依赖
npm install

# 或使用 pnpm
pnpm install

开发模式

# 启动开发服务器
npm run tauri dev

构建应用

# 构建生产版本
npm run tauri build

构建完成后,可执行文件将位于 target/release 目录。

系统支持

当前编译版本: 目前暂时只提供 macOS 和 Ubuntu 系统的编译版本。

系统兼容性: 软件同时支持 Linux 和 Windows 系统,但由于编译资源限制,目前仅提供 macOS 和 Ubuntu 的预编译版本。如果您需要其他系统的版本(如 Windows 或其他 Linux 发行版),欢迎在 Issues 中留言,我会根据需求情况考虑添加相应系统的编译版本。

快捷键

快捷键 功能
⌘/Ctrl + N 新建文件
⌘/Ctrl + O 打开文件
⌘/Ctrl + S 保存文件
⌘/Ctrl + W 关闭标签页
⌘/Ctrl + F 查找
⌘/Ctrl + H 替换
⌘/Ctrl + + 放大字体
⌘/Ctrl + - 缩小字体

技术栈

  • 后端: Rust + Tauri 2.0
  • 前端: Vue 3 + TypeScript
  • 编辑器: CodeMirror 6
  • 构建工具: Vite

项目结构

Notepad-rs/
├── src/                    # Rust 后端源码
│   ├── main.rs            # 主入口
│   └── lib.rs             # 库函数
├── src/                    # Vue 前端源码 (根目录)
│   ├── main.ts            # 前端入口
│   ├── App.vue            # 主组件
│   ├── components/        # Vue 组件
│   │   ├── Editor.vue     # 编辑器组件
│   │   ├── MenuBar.vue    # 菜单栏
│   │   ├── TabBar.vue     # 标签栏
│   │   ├── StatusBar.vue  # 状态栏
│   │   └── WelcomeScreen.vue
│   ├── stores/            # 状态管理
│   └── styles/            # 样式文件
├── tauri.conf.json        # Tauri 配置
├── package.json           # npm 配置
└── Cargo.toml             # Rust 配置

License

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages