4.7 KiB
4.7 KiB
Trans.nvim
特点
- 使用纯lua编写
- 大部分功能可以自定义:
- 高亮
- 悬浮大小
- 排版顺序
- 弹窗大小
- etc (更多可以查看配置)
- 完全离线 的单词翻译体验 (可能后面会支持在线翻译)
- 支持显示:
- 柯林斯星级
- 牛津3000词汇
- 中文翻译
- 英文翻译 (不是英译中, 而是用英文解释)
- 词根
- etc
- 支持
normal
和visual
模式
不支持 visual-block mode
- 本地词库单词量:
430w
屏幕截图
安装
安装之前, 首先需要明确本插件的依赖:
- ECDICT: 插件所用的离线单词数据库
- sqlite.lua: 操作数据库所用的库
- sqlite3: 数据库
由于目前本人只使用 Packer.nvim
作为包管理插件, 所以这里以Packer为例:
考虑将以下代码复制到的Packer Startup中:
use {
'JuanZoran/Trans.nvim'
run = 'bash ./install.sh',
requires = 'kharji/sqlite.lua',
-- 如果你不需要任何配置的话, 可以直接按照下面的方式启动
config = require'Trans'.setup
}
如果你想要使用Packer的惰性加载,这里有一个例子
use {
"JuanZoran/Trans.nvim",
keys = {
{ 'v', 'mm' }, -- 换成其他你想用的key即可
{ 'n', 'mm' },
},
run = 'bash ./install.sh',
config = function()
require("Trans").setup {}
vim.keymap.set("v", "mm", '<Esc><Cmd>TranslateSelectWord<CR>', { desc = ' Translate' })
vim.keymap.set("n", "mm", "<Cmd>TranslateCursorWord<CR>", { desc = ' Translate' })
end
}
注意事项:
-
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
-
$HOME/.vim/dict
文件夹是否存在
后续会增加
healthcheck
进行检查 -
配置
require'Trans'.setup {
view = {
input = 'hover',
n = 'hover',
v = 'hover',
},
window = {
border = 'rounded',
hover = {
width = 36,
height = 23,
},
float = {
width = 0.8,
height = 0.8,
},
},
order = {
-- offline = {
'title',
'tag',
'pos',
'exchange',
'translation',
-- NOTE :如果你想限制某个组件的行数,可以设置max_size
-- { 'Definition', max_size = 4 },
'definition',
-- },
-- online = {
-- -- TODO
-- },
},
icon = {
star = '',
notfound = '',
yes = '',
no = ''
-- star = '⭐',
-- notfound = '❔',
-- yes = '✔️',
-- no = '❌'
},
db_path = '$HOME/.vim/dict/ultimate.db',
-- TODO :
-- engine = {
-- -- TODO
-- 'offline',
-- }
map = {
-- TODO
hover = {
pageup = '<C-u>',
pagedown = '<C-d>',
},
},
-- history = {
-- -- TOOD
-- }
-- TODO add online translate engine
-- online_search = {
-- enable = false,
-- engine = {},
-- }
-- TODO register word
}
快捷键绑定
示例:
示例中展示, 将
mm
映射成快捷键
-- normal-mode
vim.keymap.set({'n', 'v'}, 'mm', '<Cmd>Translate<CR>')
vim.keymap.set('n', 'mi', '<Cmd>TranslateInput<CR>')
高亮组
-- TODO : add explanation
声明
- 本插件词典基于ECDICT
感谢
TODO
- 多风格样式
移动光标自动关闭窗口