掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5829|回复: 100

[工具] 一键制作图片词典 MdxSourceBuilder

[复制链接]
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑 $ Q+ M& P7 b/ ?# ?- \
    " I" d5 A" l1 {3 G; t, u1 F3 a
    # 发布地址
    0 n3 i# n( p; C5 D; m5 J5 s
    4 q2 M/ \- y( U. a7 Y8 t6 [3 x2 Ehttps://github.com/VimWei/MdxSourceBuilder
    % n1 N9 x9 s6 l5 ?2 o# i) z  y0 I6 ]1 R- c
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    1 ^$ S( f8 S! `, h3 W& b8 f  e# Z
    / u, u6 U2 z! @& K, \7 f# 动图演示: c) x+ s/ o7 S
      M: v7 F# O# g6 x8 d2 y
    4 G8 {' U% k' y: U8 B8 H

    + E  u5 N* L1 d  G$ {7 ^* [更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/2 u+ `" [) [5 p" b3 [. U/ l

    , i" `8 s0 R, x' u0 [! W# 缘起
    + u* |' `/ Z9 V3 ]
    # p* A5 Q: H$ d7 \( @  [& k图片词典的制作规范与开源工具
    " s6 p3 S1 ~8 r( g. N; t2 Lhttps://www.pdawiki.com/forum/thread-40857-1-1.html
    & w. i9 V6 o7 W; d' K) H
    1 L0 D, t6 X- E8 F4 n4 A; Q$ \
    3 y- f$ }0 @7 F. Y* \' x; i
    ) o$ ^: H* N0 ]

    / T: b7 s/ A$ M, S% x3 ?6 Y& e
    7 Y7 Y; L  A: [! t' ~2 T
    : X4 t( f" M) b- t7 T- Z4 s

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 5 |! j( T& {' Y7 M9 p

    ( J/ T! p: Z& h7 j# MdxSourceBuilder& m8 _: Y9 q, d7 q; N! [
    8 y/ G2 O: u- M2 f# o
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    3 w2 {2 m, W  u$ q+ s( s+ z0 n: C, E; c4 ?
    " z, b9 |# q! b/ h
    ## 背景) }: _; \  t# [: f

    & }% j  X, a% r: S5 P, e3 e### 需求背景- E% m* l0 u. A+ {0 }

    ; M$ Q+ V2 S! {4 \  @0 l2 j时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。, _5 Q3 O1 C) r
    * d& c) [. k2 K$ e% Q! }
    但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:) e! r1 I+ ]& j  h* F+ g% F
    , f& ^' Q2 w3 f& N
    * 导航不理想,极大降低了用户的使用体验
    4 b- e: R( B: \3 o3 {* 制作修订过程复杂,极大干扰了制作者的热情
    0 e6 Z8 d& ^4 ]# g9 e+ O
    1 h+ k8 F$ U% v8 v, u这完全可以通过工具来解决。
    ; }( Q/ t( ^3 A- Y* i% A5 y4 J2 \* ]4 D4 U
    ### 程序设计背景( N: y, _% l+ J! M& H; O! B/ M

    $ w* x. e. \6 X本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。0 P6 @7 l: s8 z3 }; w2 [

    1 b+ E& n( a% d, }( x# c7 A3 V本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。* I0 W( Y% \+ V7 t1 @
    : n+ Z, {5 P9 h' G- C
    非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。
    & T, {' t+ g  v
    ; `1 J% U2 `3 ~- k1 V' g; w2 V## 解决方案
    * e5 X% V* A' j: b* ~8 U2 ^' ~# U6 G: X: i" D4 s" j
    基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    ( U' B  ]$ l  y' p5 [( P: Z& a1 K
    1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    2 I  P6 z6 E" j$ Q8 O0 U* S; C8 k' g$ G9 \1 L
        目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。
    . L0 g/ ]& F1 C( U0 y: Z! C
    . a3 r4 Y8 i0 C" X! Q5 p2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    8 \: x% G, h8 w* |0 P2 W( [
    ( F: Q& {# K8 g/ |2 a    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。
    " S) b" S3 Y6 E; H  |' c1 i0 a. S3 |7 S4 x0 u7 |
    3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    3 v5 W2 z0 ?2 n) G1 K' e; {0 B1 c
    5 F, p2 r0 z  i9 ], V    目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。" ~0 l- S* c; m) h1 i% P& ^

    / A: Q+ L' Q; N% M+ f; ~4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    * `) e* s5 I0 V# `& H3 q8 ~" @7 D; _4 b
    ## 程序文件及安装
    7 ~0 i! p6 a# u/ V. [
    & H: e- {/ G7 p8 X, L* ^  E根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。
    ; K& X# `$ G3 u' j" G: W$ O# d0 q2 a. W  ^4 I. d5 U
    * MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    # t- F& e& G0 s8 _: W; F2 Z" e* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会" ~4 N* s( }+ o
    * MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会
    * m, x/ g2 p; C4 C" Q5 g3 o  X: o/ i: X) r; q. K
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    8 v% M0 f" l. W! ?) _/ p- t" [+ _7 E5 P& M9 U. j
    ## 体验案例“火星词典”5 ^' s! k- K$ d8 o4 ?" H1 A

    9 a, T! y" e; ?$ ]3 X为展示程序的特点,特制作了“火星词典”,供观摩使用。5 C: L% d% A" I6 b( V7 \" s& G$ e! l

    ) K! O3 y2 D. U' Q! x* 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式9 f; I6 W* e7 C3 ]) M, v, k
    * 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息
    ( l  y" B" R, c2 p% r! R
    : p. E6 p1 l% g* l& p案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    8 Z4 T1 q8 y0 C3 m7 j9 D
    - a8 b! C" Y6 o7 H; u" a7 Z& A- M* 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx& M% ^; N$ |' g; T4 ~. T
    * 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    ( l0 C7 z. q' {0 o* 之后你只要照猫画虎,即可制作自己的图片词典了
    $ m: R2 Y1 D; W; f) x0 y0 M5 x( v9 F7 ~+ @* M  V- I0 S' x
    ## 使用说明
    + J+ ]+ K, s* |. _) d
    5 O* {: ~/ R$ \' b3 @- K' T### 极简使用说明
    # [& S8 a" V) Y3 o7 O0 L0 a0 T+ B" d" O6 W4 ?
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    0 R: T+ ^, Z* q; G2 D0 v/ `# a8 n
    , n' x* F) q! y2 S* U6 f5 e' B### 概要使用说明
    / u1 H7 U( ~! w/ [; s) _& I) N
    : f9 U" @6 }; Q# T1. 按格式要求准备好词条文件
    1 K) M' ^  B* i2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    5 R# _- U. z1 {7 z$ E3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    ' |# P: H$ X9 s
    % k: r$ c# ?. f8 a### 详细使用说明
    ! f' P$ P4 Z0 O  t' _2 G& X" B. Q3 y3 M& `  Z
    * 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。2 `( q. s6 ?# _6 M$ P1 E6 T: ~
    * 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。, Y9 k- m5 k$ x
    ( }" b* c% N7 }! K% Z! o
    ### Tips: 使用更便捷快速的命令9 g4 z) ~/ q/ U- d1 c, q- A7 h% i

    ) O, B( j! E2 g( G* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦
    7 _- w* @9 v7 N& t! R- g  i7 V4 V; H4 O  M- X, c
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    8 m; w# ^9 h+ _& y3 [# |
    - K2 I* F8 O0 ~( H* @: B5 d* 那么建议使用如下更快的方法(自动寻址):
    7 E  n  z. F+ n0 v. e$ {7 D  x
    0 }5 ^8 X5 J" G7 x1 Z. ?$ J用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`* B( c, E( E& S. r

    1 W' ]$ k* v' B7 p甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`" o, `7 u8 Y# D$ Q
    " a+ I2 W: j2 n$ W3 ~- n1 _( l  q
    这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    / S4 C: ~, h/ _  A. q2 K, D4 x9 `0 }( m! Q) A1 i- x' p; p% ~: q
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`
    # f, X5 ^0 L/ [; {2 L, E3 |4 [. Y8 [. t. L
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。
    ' w# T) b- t, o+ ^% @
    . p: ]: n. q9 u) R( H) I) L
    8 @- U1 Z$ n7 ]& L' Y
    ### 相关FAQ% C/ J! Z' i/ X  ^' h4 P6 G) j

    4 U6 Q% T: z4 Z& L1 Z" Q1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。$ g9 F/ _) d& i; J* F. J) @

    3 ?" Z: J, s* }3 q7 x- v* Q: vim出现乱码+ p# D( k% k; {7 O2 D
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`
    : O" H7 c' p: r
    1 @0 H! u' j7 W3 o( Y9 I6 C; _     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    3 T$ I# y0 ^$ y0 Y9 D0 m' n7 d0 X7 B) B( V7 [
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    2 H5 `7 m9 z- {4 H+ @. ?+ R) H2 `
    ## 社区讨论与反馈
    5 \( x# I% h4 c" n4 ^1 e% q2 {" e* m2 n) s; ~( X! N9 X
    * Github: https://github.com/VimWei/MdxSourceBuilder
    . m- G7 b2 \2 @  r4 V9 w" C- d* 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html
    ) i  _+ D8 Z' I. x6 [  D4 V5 _1 ^2 m7 V
    8 C) S" O1 q! W( ]## LICENSE
    0 B7 a+ ~  t# l) E7 n8 c* n) e
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    4 U2 R3 ~. p: o3 T- M8 ?0 B# Y& f! X& j# A8 j& h
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 ; k' L  v$ K( z5 `, W2 g9 N! H
    VimVim 发表于 2020-8-13 12:252 x2 R. S* M7 p- c! u; a; O1 K- H
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
      u* L7 _+ j# ^+ b! c& u
    ; H1 Q3 U$ h; j( |7 ]0 Z5 }2 K5 s0 T请将 _vimrc 文件复制到 $HOME 目录下,Window ...

    / D: c9 ]+ s3 g3 @. r/ _' ]6 R8 }请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    - n( l* @( F. R$ m8 l- ]5 V4 e查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数7 Q( c; |: a, r( {: H( e
    ( B: j3 s/ e* U6 T* J$ q8 s
    <a name="2313_L1" href="entry://qualify on"><div class="HW_L" style="margin-top:44.43%"></div></a><a name="2313_L2" href="entry://qualify oneself"><div class="HW_L_C" style="margin-top:52.42%"></div></a><a name="2313_L3" href="entry://qualify to do sth"><div class="HW_L" style="margin-top:68.5%"></div></a><a name="2313_L4" href="entry://qualify with"><div class="HW_L" style="margin-top:81.82%"></div></a><a name="2313_L5" href="entry://quality control"><div class="HW_L" style="margin-top:97.95%"></div></a><a name="2313_L6" href="entry://quality, the"><div class="HW_L" style="margin-top:111.37%"></div></a><a name="2313_L7" href="entry://quamdiuse bene gesserit"><div class="HW_L" style="margin-top:124.73%"></div></a><a name="2313_L8" href="entry://quand meme"><div class="HW_L" style="margin-top:130.2%"></div></a><a name="2313_L9" href="entry://Quanti est Sapere"><div class="HW_L" style="margin-top:135.1%"></div></a>9 B  C: V( e# m. ?/ B8 Z5 S

    - l, R7 W1 Y3 D' A! y- e, D& a1 T
    5 o9 E: u( q: k. Y  M, {' R

    点评

    不要在这个MdxSourceBuilder帖子里回复这个内容了,楼歪了。  发表于 2020-8-13 19:41
    你得发我两个文件:一个是原文件(多来几行真实的案例),一个是你希望实现的目标描述。 这个帖子案例不好,这是只有一行还是好多行?看不清  发表于 2020-8-13 19:40
    当然可以  发表于 2020-8-13 18:33
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 2228 天

    [LV.Master]伴坛终老

    发表于 2020-8-12 17:21:01 | 显示全部楼层
    我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类原创型工具,以及由此衍生出的各种词典大作。
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:33:03 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    & S1 X/ ~0 @! _- V我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    . m* ]  M( e% P感谢支持。( V# q) b4 `: v* u9 m7 y
    6 r4 ]- N* _9 i  M7 `2 K
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
    7 d7 ?' @# @9 J* N8 ]& i+ K8 M; I% Z  R# U5 x0 R% O: a# u% p
    1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    0 B3 \. {  u! O% p  X! F( n2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33, [* b4 L' Q$ x% ]1 x: Q/ B) K$ g
    感谢支持。

    & a' H( U# Z$ q) R/ K& vVimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00) E3 t) _( o1 ?  h0 Z% `
    VimVim 兄,相當棒的工具,創意十足,漂亮
    + R9 Q" y" Z  U$ r5 r8 i
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52
    6 |1 U" _+ t: Y' N# c* k+ \  V( ~其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...

    7 f" Y+ t+ w& e) [- y& [  R$ ~8 MVimVim兄,太客气了,自從有VBA都用VBA生成,導航其實也可以弄,只是很懶的再搞了...,小弟對於粗配的要求沒有太高,只要排序正確就算及格了,哈!哈哈哈哈哈!
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-12 19:30:49 | 显示全部楼层
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 19:35:48 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 20:03 编辑
    : c" N, Y' \' |8 Y) c% m  {$ J
    wjl 发表于 2020-8-12 19:30
    0 a7 z+ U# A4 x6 t' Y8 G. W多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    0 O* J+ ~9 Q9 S所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:" w4 k* O9 `9 }: P) c$ {0 c

    4 `, \  n! ?* }$ V" G# f  b& P:new; a" K; [7 e/ v5 R& {
    :so MdxSourceBuilder
    ( l2 i3 B4 a. v" u) z: v" Q  q  q1 x) E% _
    随便找个识字的人都能照着这些字按顺序输入,不难吧。# L7 i1 o1 \1 P& \) h

    5 a7 l, d- y% ~! R& G* N我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
      C; Q+ x" y2 O: Y7 [5 A8 P我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    $ A4 w* [# Q2 i; G. G) V( q6 ?/ O- c0 V8 R' x9 P7 Z

    * |) X* i1 J! \' m( t
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    4 d; y1 @( O8 P我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    - L' g, K6 D' C0 y; Z/ z+ B
    K大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-12 20:10:39 | 显示全部楼层
    惊得我赶忙回去看了下,看看电脑上不知多少年前装的GVim还在不
  • TA的每日心情
    开心
    2019-10-10 05:35
  • 签到天数: 328 天

    [LV.8]以坛为家I

    发表于 2020-8-12 21:27:40 | 显示全部楼层
    本帖最后由 Jiangxi 于 2020-8-12 21:38 编辑
      n* s* u8 g' `/ A
    VimVim 发表于 2020-8-12 17:12! x( d9 f, t* S- D3 ~0 D
    # MdxSourceBuilder& S) Z  G5 k" \
    4 ~7 z- s' k2 `9 N) [% a2 ^
    mdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    ; q0 m/ f0 l! @  T
    菜鸟一问:
    1 _. \/ h" Z" f2 n7 r4 W用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 21:57:31 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 22:17 编辑 - t5 `# S$ s' W  y' K7 O; N
    Jiangxi 发表于 2020-8-12 21:27
    $ m3 R2 v* v. F; `$ e菜鸟一问:
    ! B6 a1 R2 h6 I2 S- u用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    # |0 t9 w/ M# ^1 e不是字体的问题。! I) I' E" p$ L+ E- `
    你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    , E  {2 R1 O3 N8 y  o6 |
    ( w) L: F0 h( {& q# zset encoding=utf-8
    4 Z5 T/ X4 w4 c: {# B3 A+ a4 ^' h- w, m  q! K+ u! x
    以后就不会有乱码问题了。
    . R6 Y, I4 E4 F6 M4 S8 ?5 Q

    点评

    谢谢,加了set encoding=utf-8后,打开显示正常了。但Gvim软件的所有菜单变成乱码了  发表于 2020-8-12 22:34
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 23:20:19 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 23:39 编辑
    1 Y2 i2 {2 X/ W: e; u' O6 M0 m
    ( y7 F9 B8 Z/ o3 d不用管什么菜单,不影响使用这个工具。
    - H$ g$ W7 b6 T, X$ N% T# o: |$ l' o* [
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:1 ^  `0 |; w$ g/ z$ y- o/ F
    / f* V/ Y9 S8 W
    1. " Basic Setting -----------------------------------------------------------{{{13 T7 d9 V6 S! D
    2. set nocompatible    "启用不兼容Vi模式! V# Z- }2 p- R2 ~8 q* ~+ W3 S
    3. syntax on  }" L# m2 i* o  c7 w1 D; F- s1 u1 k( y
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进' W' l/ C1 Q5 d4 v
    5. . e' h' z- g& L% M' \
    6. " Encoding related --------------------------------------------------------{{{1# u: P" P( C5 x. _# N+ ^' A' d
    7. set encoding=utf-8  "Vim 内部工作编码6 C; N6 A6 R8 [- P! @
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      5 t, ^8 ~4 S( \# A& @
    9. " 打开文件时自动尝试下面顺序的编码( l: L' ~5 `1 n7 _1 n6 N
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1' F: J& p$ O) G: Z! L
    11. source $VIMRUNTIME/delmenu.vim! P  V# V6 y% A" n# }4 ^7 t2 ]+ M
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none' {9 r6 Z5 j" y0 [
    13. source $VIMRUNTIME/menu.vim
      9 H* R0 A; d6 d8 T+ h
    14. " language message en_US.ISO_8859-1 "指定提示信息语言
      / A5 I' U* }# Y4 @2 F: N" }
    15. language message zh_CN.UTF-8    "指定提示信息语言/ I* P# Q, \# j/ U
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符3 g: |  h6 i$ S' k
    17. set nobomb    "取消UTF的BOMB文件头3 ^! m- ^9 E1 `+ ~3 h
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符
      1 g2 K1 `3 p/ I8 n
    19. set cm=blowfish2    "设置新的加密算法
      ' o8 w2 k3 d5 m; i+ k; _; g: D! i3 @. f
    复制代码

    4 b4 w) q4 u  ]' w% e, B4 ]* `: W5 N4 }! W, R$ f
    若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。) f5 k8 y# I# h8 N) k
    $ a- l( ?& H0 c, w

    * C, b. Y! w8 S; ~+ n6 Y4 z$ F9 u' g& R" I! G% f# S" ]5 M
  • TA的每日心情

    2020-11-25 15:28
  • 签到天数: 86 天

    [LV.6]常住居民II

    发表于 2020-8-13 03:55:48 | 显示全部楼层
    真是个狠人。。谢谢。
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 09:17:56 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 09:39 编辑
    ( I/ T& E+ O5 _( \
      ^9 E# j1 p$ P) H" a我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    8 D5 U; ?) Q% F5 _" L' h& j4 o9 d3 w操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    * m: t6 F2 T" B我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧" n8 K2 K7 r+ L

    + E- d5 Z6 U0 ]* ]  w/ Y
      B& R# s, y) Y/ {# C5 F0 |5 G4 B) n/ p1 ]; F7 }3 w7 Z

    $ V$ }1 N0 ]& G8 G7 _" B

    点评

    前面我理解错了,原来MarsDict.css和火星词典.txt都是空的。需要看到你的复现步骤,以及结果截图。  发表于 2020-8-13 09:29
    MarsDict.css能够输出,说明一切正常。但火星词典.txt内容是空的,有点奇怪。还请说说你是如何操作的?复现的具体步骤。  发表于 2020-8-13 09:25
    生成火星词典.mdx需要安装python和mdict-utils  发表于 2020-8-13 09:24
    看不见截图,建议传输图片到图床:https://sm.ms/  发表于 2020-8-13 09:23
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:41:13 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 09:47 编辑 : f" q2 f( J7 d
    wjl 发表于 2020-8-13 09:17' @& U4 r8 r0 k2 u: ^7 _
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事" A( G2 w1 u  I- o. z
    ...
    ; T7 Z. ^' R0 O( W( V
    看到视频了。
    0 I! ?$ [4 W# N& {
    & c) h, K% Y5 g0 I. m/ m你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。+ T% _1 o" W7 S4 `

    ; w4 e' {/ b6 y7 ~! ?7 y9 l估计你的vim“工作路径”错了。请严格按照步骤来。- B3 y5 D# X9 y+ c
    5 u! d/ B2 A  M: m6 U% d* k
    1、关闭所有vim程序。8 y( A$ u6 T6 z. h
    2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)6 y  G4 Q; S: s% c7 R1 s/ X& {9 ?
    3、使用 :new 新建文档. o1 S: \7 X4 h$ _4 l8 A4 q3 N
    4、执行 :so MdxSourceBuilder.vim
    ) G6 @5 A; f6 G- D& E  M; n; N2 X1 ^$ x, O7 M3 R3 e8 a, Y
    或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    3 ~3 Y2 D: J, V1、输入命令 :pwd   可以看到当前的vim工作路径
    . E9 C# ?) j0 p0 M1 X6 y& i2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。" X" L& E" \- _
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:414 \0 X) I' J6 B9 ^0 y* E
    看到视频了。$ }) H" y0 K: j' C) R
    4 p4 ?) I# x: p. Y5 l2 {
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    2 k# A- S+ A7 B& n6 J8 Z# u如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):, n0 E' a: [4 E/ c8 |, j
    " ======================================================
    2 ]' z9 c/ B! O+ j% }# m" 以下为程序正文,不熟悉Vim的用户请勿动
    . [, E, S) o; d0 s1 A" ======================================================# q' K9 z6 Z6 P4 U! d
    "
      @* K1 j1 o! o$ r+ l4 B"
    3 Z0 O/ z+ j2 l1 E& `; ~" 取得本文件所在的目录,并设置为当前工作目录
    . C1 |6 K8 w" Z; q  tlet s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')8 r8 D7 l! K/ B6 @. d
    execute 'cd ' . s:home, _+ a3 `8 ~# v1 ~7 z/ |
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
      [' W& r) Z! G9 x) b看到视频了。' T7 J2 S4 A# q7 }) J

    ' s9 M5 ^' v+ {& ^0 o你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    - O; P$ c# e# f, }  \  Q
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    % [% u# D  n0 |
    0 N! ^4 [8 Q: p5 c- W: k- c+ mhttps://s1.ax1x.com/2020/08/13/azMjaT.gif* A, M; X" O0 E3 u  T  |
    ! b; z1 H( L2 D! y* f+ }
    7 B: n( t& R: T$ c4 x4 ^
    ! A; d' f; ?, o1 r9 {
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 ( F- ^1 D3 ^6 y' n( R) r  }
    wjl 发表于 2020-8-13 10:01
    : K# s( q/ B( [! ]/ j3 u" _多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了, h, x$ X+ g, {5 Z  A( w: l

    $ w) f; c* S1 k& N  q! {https://s1.ax1x.com/20 ...

    1 C# k- M7 \4 h) ~" B7 c我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。3 d, D5 g, `/ j, Y: E+ G9 o3 U
    1 R! t! i* Y: i5 p, V( M
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:
    ! L  ?! P2 b! g6 {
    ' _  w5 q- a% t' z) n- k' T0 l, M! Vpip install mdict-utils
    ' R* p5 H* z3 m6 d* d( d$ E  W$ d( T3 @: Q) f1 s4 x, _+ h
    * |2 W& }- ]; m7 [1 }
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑
    4 ]7 g$ U: b. `4 E! g
    wjl 发表于 2020-8-13 09:172 f1 }! [9 }% [) T- O
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事5 R* h8 r1 m1 }& K
    ...
    / z! d$ b' s) ^* l
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。3 l5 G& e  e: v' f

    2 r- ^2 M' ]+ c! Y# c& L打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    $ n9 I. K. ^8 G) z6 v9 T9 h/ ]" m, G
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。- O' D5 p; ^8 u( C" k
      e% Y8 G$ \, V% k1 G, g% V- f/ L

    $ E1 D1 t# F6 n7 O7 ^3 r
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49
    7 C8 j5 y. D1 C/ T9 l1 d已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。8 m, S( ~  O, X  d! B
    ' L  h/ c7 B' l& A; I; E0 M1 Z6 G% I9 ]
    打开Vim,单击 “运 ...

    . J6 P- \3 w) O1 }: ~4 i现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了  d' N8 L. p4 n0 \) Y) a  `
    https://s1.ax1x.com/2020/08/13/azsapd.gif& ?0 S* L9 l+ A6 T" U+ R

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 2020-8-13 11:42
    是的,更方便像你这样喜欢GUI的用户,我自己已经习惯命令行模式,甚至隐藏菜单和工具栏。  发表于 2020-8-13 11:39
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 12:25:34 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 17:13 编辑 5 }/ g# h4 v) e% x/ z  M' q
    VimVim 发表于 2020-8-12 23:20
    ; Y" E' w2 [) x! \! Q3 g+ y6 D2 M, `不用管什么菜单,不影响使用这个工具。
    $ n, h: O  y  A( M$ x
    4 g, E2 X) d3 g6 ~若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    7 z$ s+ S) W: d2 v  u/ j, h进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    $ A, D2 n7 `7 c$ @# j) O% o# |  N; [# a4 {
    请将 _vimrc 文件复制到 $HOME 目录下,Windows下即是 c:\Users\YourName\
  • TA的每日心情
    开心
    2019-10-10 05:35
  • 签到天数: 328 天

    [LV.8]以坛为家I

    发表于 2020-8-13 21:50:54 | 显示全部楼层
    wjl 发表于 2020-8-13 11:32
    . `7 I9 |; I6 l# J$ z# e现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了, f1 p/ d: M, S; a( \5 A, p* i
    https://s1.ax1x.com/2020/08/1 ...

    + [* X6 t' c( @能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-5-5 10:16 , Processed in 0.061947 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表