一个支持在线和本地发音+ 翻译的neovim插件
Trans.nvim
- Trans.nvim
- 特点
- 屏幕截图
- 演示
- 主题
- 安装
- 配置
- 快捷键绑定
- 高亮组
- 声明
- 感谢
- 贡献
- 待办 (画大饼)
特点
- 使用纯lua编写, 速度极快
Lazy.nvim
的记录:➜ Trans.nvim 0.82ms
- 可以定义快捷键读英文单词
见wiki
大部分功能可以自定义:
- 高亮
- 悬浮大小
- 排版顺序
- 弹窗大小
舒服窗口动画
- etc (更多可以查看配置)
完全离线 的单词翻译体验 (可能后面会支持在线翻译)
支持显示:
- 柯林斯星级
- 牛津3000词汇
- 中文翻译
- 英文翻译 (不是英译中, 而是用英文解释)
- 词根
- etc
舒服的排版和
动画
支持
normal
和visual
模式不支持 visual-block mode
本地词库单词量:
430w
屏幕截图
演示
请移步项目主页查看
视频演示的在线查询, 查询速度取决于你的网络状况
可以打开音量查看自动读音
plugin_demo
主题
如果你有更美观或者更适合的配色, 欢迎提PR
主题配色在:lua/Trans/theme.lua
文件中,你只需要添加你主题的表就可以了
安装
安装之前, 首先需要明确本插件的依赖:
- ECDICT: 插件所用的离线单词数据库
- sqlite.lua: 操作数据库所用的库
- sqlite3: 数据库
Packer.nvim
use {'JuanZoran/Trans.nvim'run = 'bash ./install.sh',requires = 'kkharji/sqlite.lua',-- 如果你不需要任何配置的话, 可以直接按照下面的方式启动config = function ()require'Trans'.setup{-- your configuration here}end
}
如果你想要使用Packer的惰性加载,这里有一个例子
use {"JuanZoran/Trans.nvim",keys = {{ {'n', 'x'}, 'mm' }, -- 换成其他你想用的key即可{ {'n', 'x'}, 'mk' }, { 'n', 'mi' },},run = 'bash ./install.sh', -- 自动下载使用的本地词库requires = 'kkharji/sqlite.lua',config = function()require("Trans").setup {} -- 启动Transvim.keymap.set({"n", 'x'}, "mm", '<Cmd>Translate<CR>', { desc = ' Translate' }) -- 自动判断virtual 还是 normal 模式vim.keymap.set({'n', 'x'}, 'mk', '<Cmd>TransPlay<CR>', {desc = ' 自动发音'}) -- 自动发音选中或者光标下的单词vim.keymap.set("n", "mi", "<Cmd>TranslateInput<CR>", { desc = ' Translate' })end
}
Lazy.nvim
{"JuanZoran/Trans.nvim",keys = {-- 可以换成其他你想映射的键{ 'mm', mode = { 'n', 'x' }, '<Cmd>Translate<CR>', desc = ' Translate' },{ 'mk', mode = { 'n', 'x' }, '<Cmd>TransPlay<CR>', desc = ' 自动发音' },-- 目前这个功能的视窗还没有做好,可以在配置里将view.i改成hover{ 'mi', '<Cmd>TranslateInput<CR>', desc = ' Translate From Input' },},dependencies = { 'kkharji/sqlite.lua', lazy = true },opts = {-- your configuration there}}
注意事项:
install.sh
- 使用了
wget
下载词库, 安装请确保你的环境变量中存在wget - install.sh 下载后会自动将词库解压, 并移动到
$HOME/.vim/dict
文件夹下 - 目前仅在
Ubuntu22.04
的环境下测试通过
如果上述条件不符合, 请删掉
run = 'install.sh'
部分, 考虑手动安装词库
如果上述条件满足, 仍出现问题, 欢迎在issue里向我反馈,我会及时尝试解决
- 使用了
下载词典的过程中, 需要能够
流畅的访问github下载
词库文件压缩包大小为: 281M
解压缩后的大小大概为: 1.2G安装后如果不能正常运行, 请尝试检查一下问题:
- 本机是否已经安装了
sqlite3
Linux下安装:
sudo pacman -S sqlite # Arch
sudo apt-get install sqlite3 libsqlite3-dev # Ubuntu
后续会增加
healthcheck
进行检查- 本机是否已经安装了
auto_play
使用步骤:linux 只需要安装
festival
sudo apt-get install festival festvox-kallpc16k
如果你想要设置音色,发音可以访问: Festival官方
可以选择英音、美音、男声、女声其他操作系统
- 需要确保安装了
nodejs
- 进入插件的
tts
目录运行npm install
如果
install.sh
运行正常则自动安装,如果安装失败,请尝试手动安装
- 需要确保安装了
title
的配置,只对neovim 0.9
版本有效
Festival配置(仅针对linux用户) - 配置文件 - 全局配置: `/usr/share/festival/siteinit.scm` - 用户配置: `~/.festivalrc`
更改声音
在festival的voices文件内建立自己的文件夹
一般其默认配置目录在
/usr/share/festival/voices
示例:
sudo mkdir /usr/share/festival/voices/my_voices
下载想要的voices文件并解压
可能需要
- 试听在这里)
- 下载在这里)
假设下载的文件在
Downloads
文件夹, 下载的文件为:festvox_cmu_us_aew_cg.tar.gz
示例:
cd ~/Downloads && tar -xf festvox_cmu_us_aew_cg.tar.gz
将音频文件拷贝到festival文件夹
示例:sudo cp -r festival/lib/voices/us/cmu_us_aew_cg/ /usr/share/festival/voices/my_voices/
在配置文件中设置默认的声音
示例:加入
(set! voice_default voice_cmu_indic_hin_ab_cg)
到配置文件安装完成
相关说明网站
可能需要
- wiki 查看更多详细配置
- 官方网站
- 用户手册
配置
require'Trans'.setup {view = {i = 'float',n = 'hover',v = 'hover',},hover = {width = 37,height = 27,border = 'rounded',title = title,keymap = {pageup = '[[',pagedown = ']]',pin = '<leader>[',close = '<leader>]',toggle_entry = '<leader>;',play = '_',},animation = {-- open = 'fold',-- close = 'fold',open = 'slid',close = 'slid',interval = 12,},auto_close_events = {'InsertEnter','CursorMoved','BufLeave',},auto_play = true,timeout = 3000,spinner = 'dots', -- 查看所有样式: /lua/Trans/util/spinner-- spinner = 'moon'},float = {width = 0.8,height = 0.8,border = 'rounded',title = title,keymap = {quit = 'q',},animation = {open = 'fold',close = 'fold',interval = 10,},tag = {wait = '#519aba',fail = '#e46876',success = '#10b981',},engine = {'本地',}},order = { -- only work on hover mode'title','tag','pos','exchange','translation','definition',},icon = {star = '',notfound = ' ',yes = '✔',no = '',-- --- char: ■ | □ | ▇ | ▏ ▎ ▍ ▌ ▋ ▊ ▉ █-- --- ◖■■■■■■■◗▫◻ ▆ ▆ ▇⃞ ▉⃞cell = '■',-- star = '⭐',-- notfound = '❔',-- yes = '✔️',-- no = '❌'},theme = 'default',-- theme = 'dracula',-- theme = 'tokyonight',db_path = '$HOME/.vim/dict/ultimate.db',engine = {-- baidu = {-- appid = '',-- appPasswd = '',-- },-- -- youdao = {-- appkey = '',-- appPasswd = '',-- },},-- TODO :-- register word-- history = {-- -- TOOD-- }-- TODO :add online translate engine
}
快捷键绑定
示例:
示例中展示, 将
mm
映射成快捷键
vim.keymap.set({'n', 'x'}, 'mm', '<Cmd>Translate<CR>')
vim.keymap.set({'n', 'x'}, 'mk', '<Cmd>TransPlay<CR>') -- 自动发音选中或者光标下的单词
vim.keymap.set('n', 'mi', '<Cmd>TranslateInput<CR>')
高亮组
默认定义
{TransWord = {fg = '#7ee787',bold = true,},TransPhonetic = {link = 'Linenr'},TransTitle = {fg = '#0f0f15',bg = '#75beff',bold = true,},TransTitleRound = {fg = '#75beff',},TransTag = {fg = '#e5c07b',},TransExchange = {link = 'TransTag',},TransPos = {link = 'TransTag',},TransTranslation = {link = 'TransWord',},TransDefinition = {link = 'Moremsg',},TransWin = {link = 'Normal',},TransBorder = {link = 'FloatBorder',},TransCollins = {fg = '#faf743',bold = true,},TransFailed = {fg = '#7aa89f',},
}
声明
- 本插件词典基于ECDICT
感谢
- ECDICT 本地词典的提供
- sqlite.lua 数据库访问
- T.vim 灵感来源
贡献
更新比较频繁, 文档先鸽了
如果你想要参加这个项目, 可以提issue, 我会把文档补齐
待办 (画大饼)
- 多风格样式查询
- 重新录制屏幕截图示例
- 快捷键定义
- 自动读音
- 变量命名的支持
- 历史查询结果保存
- 在线多引擎异步查询
-
句子翻译
|中翻英
的支持
一个支持在线和本地发音+ 翻译的neovim插件相关推荐
- QML实现仿酷狗音乐播放器(支持在线和本地播放)
1.支持在线音乐播放由于在线音乐涉及到敏感代码,暂时没有剔除就没有发布代码了,如果需要参考可以@我(其实这方面资料网上也多). 2.支持本地音视频播放. 3.支持歌词同步. 4.支持皮肤系统 技术Qt ...
- jdk11~13支持在线调用本地编译并显示到网页上【Java代码助手】
参考学习 https://www.liaoxuefeng.com/wiki/1252599548343744/1252598088725056#0 按照上面链接下载java文件,内容如下: Learn ...
- Simple: 一个支持中文和拼音搜索的 sqlite fts5插件
之前的工作关系,需要在手机上支持中文和拼音搜索.由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现.这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于 ...
- 基于pyqt5的翻译软件源代码,支持图片、截屏翻译,支持音标发音,翻译结果播报
基于pyqt5的翻译软件源代码,支持图片.截屏翻译,支持音标发音,翻译结果播报,支持百度.有道翻译,已实现划词翻译,一键复制翻译结果.先安装程序依赖requirements.txt,然后运行main. ...
- php在线播放bt,yunBT:一个基于ThinkCMS的多用户BT离线下载程序,支持在线播放
说明:yunBT这个项目其实很早就有了,只是老没更新,现在作者基于ThinkCMS重做该程序,支持多用户注册下载,Magnet和HTTP下载.每个单独用户支持10个任务,默认下载文件最大为10GB,可 ...
- PySide是Python语言的Qt框架的一个绑定。PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6、2.7和3.x版本下可用。
PySide是Python语言的Qt框架的一个绑定.PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6.2.7和3.x版本下可用. 在开始使用PySide之前,需要在你的机器上安 ...
- 《安富莱嵌入式周报》第280期:支持在线仿真编程的网页版电子开发,CAN总线防攻击实现,BigFAT 规范打破了 FAT 每个文件 4GB 的限制
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 英译汉文章在线翻译器:批量翻译、素材收集、图片处理
英译汉文章在线翻译器让我们可以在线进行英汉文章翻译互译,英译汉文章在线翻译器对接Google翻译.有道翻译和Baidu翻译等多个翻译大厂api接口,覆盖绝大多数的语种间的翻译和语种切换. 英译汉文章在 ...
- HTML免费在线文档批量翻译工具
免费在线文档翻译不同于一般的段落文章复制粘贴在线翻译,免费在线文档翻译支持我们将我们的不同格式的整篇文档进行翻译,还可以将多篇文档放入我们的一个文件夹中,对这个文件夹进行批量翻译,适用于需要大量进行批 ...
最新文章
- 【Android源码剖析】(API 19)[View-----MeasureSpec]
- Android 系统文件夹功能(转)
- android8 呼吸灯,红米note8pro呼吸灯颜色如何设置?
- 使用ExtendSim进行水管理、可持续性和环境仿真建模
- 《电子信息系统机房设计规范》中涉及到的节能问题
- 新计算机分区,新电脑如何分区 新电脑怎么分盘
- WinEdit编辑器中中文乱码
- android 拨打带有分机号的电话
- 南昌大学计算机导师林振荣,南昌大学各学院研究生导师介绍
- 计算机桌面无喇叭显示器,电脑屏幕下面有小喇叭图标但是没有声音怎么处理
- aws mediatailor运行原理图
- MOD8ID加密芯片的使用以及示例讲解
- 鲤鱼溪传说:神鱼与三仙姑
- office 论文 页码_WORD目录,页眉,页脚,页码设置技巧 为你的毕业论文收藏吧-以Word 2013演示...
- 【树形DP】 HDOJ 5148 Cities
- SpringBoot新项目配置
- QGC地面站使用教程
- java7找不到uri_部署-Java Jar文件:使用资源错误:URI不是hierarchi
- java如何打印棋盘_java打印国际象棋棋盘的方法|chu
- 基本步骤:转换IBM Lotus Notes应用程序以使用Lotus Notes 8 Java组件
热门文章
- 关闭CLion光标闪烁/调节CLion光标闪烁速度
- Cesium 地球自转Camera版本
- 莆田中专计算机专业都学什么,莆田所有中专学校 中专院校名单
- QT5.14.2自带Examples:Bars
- 如何下载popper.js/popper.min.js
- Camera Link协议和FPGA的数字图像信号源设计
- 从5个维度,对傅盛演讲「生物学思维模型」解读
- jiathis的使用
- Timer+TimerTask实现数字时钟
- C语言做着做着会变成木马程序,[原创]C语言SDK模拟木马行为