掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7532|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑 ' Z0 l1 P. d9 s  p5 T
    ! I( ^, @- L6 h# _
    # 发布地址% A1 z' e8 I: H: E8 q
    ) w) F3 w0 Z, x5 g. W$ N4 e( C
    https://github.com/VimWei/MdxSourceBuilder
    1 H$ a: C/ H8 K( t# q
    ( D. [$ q8 A4 ?7 P$ ~4 k# B一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件0 w4 N1 T: P  R, E* C

    0 |' I: v' g# K( J# 动图演示! l( W2 B- W. B0 J0 t! {6 r

    3 J+ e5 @* Y3 X7 X& h6 I
    ; u- ?: D$ ?* _! z" M9 B/ w& P# }/ E/ ~4 v6 Z( T( R% _. }
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/; D) j( I' J2 Q5 A' d; C# g4 ?
    - ]1 A/ B8 R7 K9 t. _* Y2 Z2 c
    # 缘起6 x( b4 Q/ u! R4 H* U9 C# Y( Z% _# }. W
    0 R6 d9 ^* q2 L! X
    图片词典的制作规范与开源工具$ Y, q" W4 m7 R+ {0 G4 U1 b' Q
    https://www.pdawiki.com/forum/thread-40857-1-1.html! z! `+ i- A, N  Q  O" l6 R

      z, H& j# ]* v. O! c/ k
    8 B5 s( \7 \# l8 L/ }
    ; K( G  q3 X* E4 n
    " K; j$ X8 Y" |8 ^) w& k# \; r4 \

    , Y' K5 ]' l3 `- ?/ Z. \
    # W- A- ?$ V' z- I
    7 `5 h6 K) t: N) \* e# I

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑
    4 G+ j1 X5 N$ c+ G
    ( ^9 P3 m( H4 ~# x# j7 S+ ^# MdxSourceBuilder
    1 s! f6 l# o; L# J+ d- e5 _- U
      l% ~( [( z8 D7 g/ f8 O# Z一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件0 Q2 d% h' t2 {1 C1 a/ l3 I+ q
    & H) V" o0 `* q7 x6 O  K# d+ ]
    ; \! l# P3 o7 L! t. ~/ Q
    ## 背景
    * v2 f+ x3 l" r" k, w- B
    0 p& r! g, P6 W- Z$ y! s5 u### 需求背景6 N* \) i1 {; |
    $ A* |' K) D9 W* t
    时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。
    # `/ f7 r5 I4 L: b% S6 v
    0 a# K  t. z- R% @* U8 d但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:7 A2 D/ S: p0 N+ R  A. z$ R$ P9 p
    , c9 p& N3 x' Z6 L/ S
    * 导航不理想,极大降低了用户的使用体验' I' j3 E3 ^3 {3 i4 j1 p) X
    * 制作修订过程复杂,极大干扰了制作者的热情
    - Z( v$ X  \5 Z; D) u$ \" B. u4 ~
    这完全可以通过工具来解决。
    , J" n3 ~! b3 F# ]7 s& q: K- `
    $ W5 N; c1 n1 b/ h% n( G! S8 a### 程序设计背景
    9 g1 O1 X8 l% }- l$ i2 ^4 i: X$ [8 z5 K' M
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。
    6 j0 ^, C$ M, g) ~) f0 |* C  V/ }" W* X" I/ E; s& X8 }1 c
    本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。
    , U2 a! Q: T/ Y, A. F$ I
    " M) K+ c- m7 n- g  u$ O非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。# @9 D+ l6 ~# d8 \6 q: C% T
    1 Y4 R8 k* w" I  Y1 `9 w
    ## 解决方案2 P5 y; p# P# K& O) j( T

    ) d: c1 S2 j, s0 {3 \基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    - K# g; m, X4 e+ ]. ]/ {5 ~
    $ J% ]! E: F' V, [3 Y2 L$ i6 N1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。$ D8 M& @0 K  n9 D" \5 ], O

    & F; }, @; |% s6 e1 L% {, Q    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。
    3 b  p' M8 s. v7 f9 d% R6 w4 H& F! e
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。! h* x* _/ n! w& S! k% @: B

    ! N4 Y& n9 i, t8 g* g( y4 r    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。: U6 x3 q4 ]. l% O3 I

    % z$ Q6 \# l; P6 O" v  @& H3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    1 I* J; `. V5 r
    / f! x, U7 X8 O  p) _    目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。; J: h% G9 x$ y

    ! W* b9 g/ s' b# u" q# p% P4 v4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!0 B1 H/ ^# n% y0 R! a* M

    1 O7 U8 q# k( P: C6 R. v## 程序文件及安装
    ) q7 A) h. E8 U5 M
    & s, \! R+ ^! m  F* l2 [( d7 H根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。" F6 E) B+ Z' x+ r( L' t

      k1 g' s( U; P2 Y4 w% J  d* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会3 b: d% d9 b& u
    * MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    + }1 q+ l! Z* v: R) \. v* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会0 O8 B6 Y  `* I) }/ z" _# M0 o

    " u/ m: u  |& t5 z5 C3 S/ Z5 k其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    4 A: q0 `) j- S% q: V* `5 B1 R9 o+ r$ v8 T8 c) N
    ## 体验案例“火星词典”
    $ S6 t- b; h' E- s6 ]6 d7 o( f# W* q% }( r
    为展示程序的特点,特制作了“火星词典”,供观摩使用。1 b2 K' c! ?1 m' C: I/ |
    : u6 j0 e3 ?* C$ K4 S
    * 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式
    ' P; U+ s$ d* P! q: y! ~* 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息
    7 N# O0 Y% }1 {
    5 o( d+ h: r9 k7 U6 R1 l" n  V案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    # ]! o7 p' T# f  [% N# n
    ! K! i! x) M" Q1 w* 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
    4 ]+ Y* X* L6 ^0 `" G* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    ' w; w8 k7 @3 E# C8 M' z* 之后你只要照猫画虎,即可制作自己的图片词典了
    % U7 V4 i2 X* ^. h4 V2 o& ]
    ! O  r( q2 r3 t# n- V## 使用说明
    9 P5 \( o& Z1 s# w. G2 q  D; `& w! q. }8 J8 H
    ### 极简使用说明! w3 v8 q1 T- s# L4 e

    3 c& i/ g& P, u  E打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    ) O3 y$ T  I: p
    ) r2 s$ m  o2 a7 x# U### 概要使用说明% M/ ~/ k" e: k' S3 I1 h
    / H! }. c; M! @4 c: j- d6 X
    1. 按格式要求准备好词条文件; h; e. b# x( k9 \! U6 B" Q
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    & r' a; C1 X8 [6 m5 q, m3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。; s. L6 ]: y: k* l9 D! @
    ( y( J' o& ?) m/ h2 u
    ### 详细使用说明; s( k9 D7 z, K7 p

    * ]9 ~$ C* U  v. E  f* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。0 b' P9 V: I, O+ E
    * 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。- h' ^& V  I! B+ N! Q! _

    * O4 v. [6 ~' V: g" P### Tips: 使用更便捷快速的命令2 V1 G0 U+ F$ }; w

    : K; ?' y$ o6 C2 D) V) x7 [* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦
    , U2 X* N( ?6 h9 i) Q& e7 F6 ~  X" F" F- V2 K
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。! o2 U' F$ D4 n; a$ V' s  s3 J
    ! d, w5 w% A2 E3 z+ |' Q
    * 那么建议使用如下更快的方法(自动寻址):
    ' S. e: c& a7 U9 _0 `: t, ~2 J9 {6 L4 N
    用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`$ M+ `& }" I9 X' ?$ }  d( t

    2 F  I" N& \- V" }8 L6 f0 O甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`
    . a* E! q. b1 b) H! I; r+ S, t( Q% G% \: w0 s0 ^9 g
    这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。( e- {% X8 ~/ ?( X; I* e4 T' F! ]$ Q
    & W) _* O. g; D9 d
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`, w- F- i/ b( t( C. H# X
    ; D/ k0 c; b% Y5 e: |" z/ o5 D
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。. ?. v3 v' t# B0 I: d
    " D9 m+ i# P% o% f0 \, D" ^5 m/ p& Z

    . d& k" d  f6 T### 相关FAQ$ r. p- ?; v" |- D- E

    ! c, L/ k  G* F7 }6 i1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    - Q! _- f' B% F
    1 r5 f! M0 X7 O, M1 a: ]* Q: vim出现乱码/ J! J+ ?* [  |) k5 O
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`- L: p. L( h# A
    8 _7 M- V. \% F' Q! |# j4 s. e, ?
         其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验$ n  `6 J3 \3 }/ [  N* N

    8 U. N5 s& k7 H4 q7 W% q2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。) L) i7 X7 m) s. X6 v& l3 U% @

    % J" w" o4 R2 R* T8 c1 H## 社区讨论与反馈
    : u6 w5 z6 Y- ^/ y+ }
    8 P; Q1 [$ U! \4 _* Github: https://github.com/VimWei/MdxSourceBuilder
    / o" U4 X( T' c  m' X* 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html& J8 ?' _; I( [% O: X6 G

    $ P) Z7 w4 f5 B7 X! H& _## LICENSE
    6 i. i0 L5 C: g& X( s1 [# s2 `1 x) j1 M
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    8 w5 n4 n! J: ]4 X
    2 v$ |+ H9 }$ H4 I, ?3 w' u% K! |
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 9 e6 h# O4 t2 l" I/ B3 Z
    VimVim 发表于 2020-8-13 12:25. P9 F3 Y' Y& V/ j6 }( m/ m
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    2 A! E; G, X2 w7 E( N/ m) J$ Q4 v( |' x: ~
    请将 _vimrc 文件复制到 $HOME 目录下,Window ...
    : F) `0 a5 p/ q7 p
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    " N, A- w+ u/ P8 \4 C8 k( j+ g# D查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数3 H# l. \2 Q( M

    2 {  j' S* P* W  N6 f; Y( R<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>
    + P: J  k+ [! {3 v+ ?' `2 }; x  C. ~  I  E
    : f4 J  h1 x: h% s

    点评

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

    [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( c% H1 q1 p; v- c
    我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    6 |) N& E) f# ^5 o- u3 W感谢支持。
    0 A2 h4 k6 }& m& y' n- t& f( F# W, }" @6 P- @+ Z  y; ]- `8 r3 F
    若能有这样的工具,我想目前的图片词典将发生极大的变化:  k. Q8 l2 S5 |% V; Y

    + v2 u8 ^' b3 h, M! O; |0 X1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    2 Q2 N+ `) d0 c, H5 c1 N2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33
    % @8 w* N0 k5 D3 u: [: n2 j感谢支持。
    2 ~; m* U7 W0 J# C: j
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

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

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52# k( G7 {4 `; R: B( d
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...

    $ b4 \5 j1 w9 \1 Z) J7 G. L- _9 DVimVim兄,太客气了,自從有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 编辑
    ! x- S* I1 C8 @) C/ Q
    wjl 发表于 2020-8-12 19:30
    ) G: h: e1 Q7 ]1 H3 b. i5 _多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。
    + S/ c# q) @% ~% }1 e+ a$ o  Z
    所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:6 O( J" V" X' r$ J% ~# ~3 U, T% R9 Z

    1 ^1 E( U% f8 q0 k, B:new$ M; n. p( e1 F. G# \; Z3 @
    :so MdxSourceBuilder
    ( }5 N  o: X  K
    ! B& P# ]: Z; s( o) V随便找个识字的人都能照着这些字按顺序输入,不难吧。2 P/ D4 s# r/ J! X

    8 u  N: J# z& j! K! u我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。7 }. E' B3 R9 P4 L- d1 }1 j
    我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    # j; l0 Q' m6 ^" N& g# L% A( N# D$ W8 ]1 l0 L+ T
    / f7 q! Z* \5 W. m
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    + `2 E% k% M1 Z我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    4 R- D+ ^( {9 }; [" u! P9 u2 MK大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • 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 编辑
    / D$ K1 o1 O6 d/ i3 o+ H
    VimVim 发表于 2020-8-12 17:129 N/ S+ t) ?0 ~6 [' j, L1 E
    # MdxSourceBuilder2 J4 _, O, g3 j8 F9 U' C$ R

    7 @8 g" H9 O" l" R2 ^9 `mdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    : C0 W% v" s4 |! l
    菜鸟一问:: o* d& o/ Y& V1 X
    用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 编辑 5 s, v" W5 g5 `  F
    Jiangxi 发表于 2020-8-12 21:272 _9 e# e7 o5 A8 C% J
    菜鸟一问:
    0 V4 R5 g' A" g0 j用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
    " S) q3 [$ M" i, S+ w
    不是字体的问题。
    ! ?; b# @8 i$ g: ]: G0 I4 k- i你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):+ L9 w; w9 A: Q0 C

    ' i3 U" J5 N$ Eset encoding=utf-8
    ; S; Q) z! R6 a' ?# Y: M! F1 I7 o1 u" c
    以后就不会有乱码问题了。! O  v2 ~; G/ c% z5 x) x. k# a

    点评

    谢谢,加了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 编辑 / v* h$ E. E6 H8 i# }
    - S8 A- x' i1 n4 P
    不用管什么菜单,不影响使用这个工具。
    ; h3 R& L" K2 ?; M* u
    7 _3 \% k9 m; y* V若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    7 K# l& x2 u' L! D$ A# M/ ^9 o/ ~' N, `7 R1 O/ j5 x0 j5 M& _! l
    1. " Basic Setting -----------------------------------------------------------{{{1
      ( W5 {+ O$ [2 v
    2. set nocompatible    "启用不兼容Vi模式
      ) I0 r+ q- p6 E* h
    3. syntax on8 j- G8 I+ v3 A  @7 P! ~
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进
      - h6 K8 P8 V' L; A3 V

    5. 6 `4 a- l: F2 A+ d% @+ R1 y" K
    6. " Encoding related --------------------------------------------------------{{{1
      ' }" }! o- c6 o# {) `7 Q0 X
    7. set encoding=utf-8  "Vim 内部工作编码
      5 L# _/ W# s8 f- w9 r
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      1 p3 H+ w9 k' _$ g- \4 }
    9. " 打开文件时自动尝试下面顺序的编码, |3 {( Z6 v6 i0 `: s9 T& `
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
      4 W, t: J+ E( W& z) n  N6 Y+ y  h
    11. source $VIMRUNTIME/delmenu.vim
      ' l; Q: [, C$ h3 H. ~& C+ v- a& d
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      - f2 `' O8 g$ }% o
    13. source $VIMRUNTIME/menu.vim
      3 P& w1 a' ^4 Y+ `+ x
    14. " language message en_US.ISO_8859-1 "指定提示信息语言
      : C5 s$ S3 q; M1 s
    15. language message zh_CN.UTF-8    "指定提示信息语言
      8 g: t2 j, x3 [/ t& l
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符: ^+ Z6 C. }4 ~4 }: T8 w
    17. set nobomb    "取消UTF的BOMB文件头
      5 g: U1 h7 A6 s4 {* q+ L7 |' l( {
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符) O# k! p/ m& {
    19. set cm=blowfish2    "设置新的加密算法4 _8 S+ i, d; S0 q7 u* i# t  z
    复制代码
    $ L4 g. E8 k4 x" D

    ( G$ l; ^6 B3 o1 C/ w. g1 b若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。4 s$ h' B: o; M( ?( Y+ D$ f# y

    ! D4 Z" H% O6 o
    % n6 ~( Z& n+ \. o) w+ g1 V4 Z5 P: b) S$ f
  • 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 编辑 ; `; k! l9 f% |* h4 W
    & b# A. [! S& P' d' R9 q7 ~
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    ' }( U& B8 E% [4 k1 y; p操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    7 n# g' R9 t& g/ K我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧
    / g  H5 t6 N" \5 |2 n
    , Y/ @  e& I* A1 C/ _
    # p1 a* \4 t: w5 W5 d" g, W  Z
    : W) g' K/ V& I# Z$ Y
    ; t6 Z; d' a6 c0 w" b1 L8 [

    点评

    前面我理解错了,原来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 编辑 $ V# C/ u, J/ E, J$ R3 b5 Q
    wjl 发表于 2020-8-13 09:17/ R! {* E- a3 w4 c/ E5 o' @  n- X
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事- ?* E( n! k- m$ }. i( H2 @+ O2 \
    ...
    2 p# Y: ~/ T7 d' `/ ?6 i
    看到视频了。% L0 U. V; C: o

    : v7 @$ [  ^1 z% y5 h$ W; u; v, H你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。" [$ x# A0 v% P2 L) @$ @# I
    0 r' W; P) k/ `% w
    估计你的vim“工作路径”错了。请严格按照步骤来。
    ' {: x. O1 w" |, ]" P
    + ^1 X$ a9 [. i0 N5 M$ w! _1、关闭所有vim程序。
    ! q  O2 ^. R" G" ~) {3 `, k2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录), }7 i. ]- t# q$ l8 @2 y, v) v
    3、使用 :new 新建文档5 Q( O/ ]+ u" V) @0 D0 i' M# E
    4、执行 :so MdxSourceBuilder.vim
    9 k1 I# n: |6 b. r# O( T3 X5 D5 b" R0 D5 z" ?$ B2 O
    或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:- B/ p7 d2 x( B! Q2 t. G
    1、输入命令 :pwd   可以看到当前的vim工作路径/ y$ j. U: g& L7 m6 n! ^" J
    2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。
    + W) G% U7 `! u3 O
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    & Y8 B" b, S# K* V! z! b6 d2 V看到视频了。
    % v$ @% ]. M$ W- Q& Z
    ) S* v( W" _2 Z& p, ~+ G你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    3 K% y) x) \' o8 F* q  R( s
    如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):7 }3 l3 G3 S2 X/ j) F. a/ \* t
    " ======================================================+ u, x- A8 G% l5 Q3 _
    " 以下为程序正文,不熟悉Vim的用户请勿动
    - S% C, K$ c$ [) ~: _! ?% P0 d+ u- x" ======================================================% I5 `5 W# p7 o; p& I9 g
    "& W9 W# G# m7 N6 G; R
    ": a1 p* }7 A4 W; r
    " 取得本文件所在的目录,并设置为当前工作目录
    / w5 V" C0 b( N* p) g& E. j7 dlet s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')# E' @8 x7 d) T8 s) l
    execute 'cd ' . s:home
    * p. p( m1 O5 [  e# B, l
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:416 i7 G: e8 {. Y! A8 y
    看到视频了。
    - E9 x6 b* T# o5 R5 s1 m8 B
    4 C2 f0 Q' ~, q+ }, N" ?! L: c你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    2 Y$ Y8 I4 |3 U" x9 U' y: q多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    5 [2 ?, Q; O0 u9 \. F. @
    $ e  x9 J# G. R# Whttps://s1.ax1x.com/2020/08/13/azMjaT.gif
    5 a4 P9 x; N9 H; Z6 F4 x0 ?) |& j; D; Q) k0 j- D  k  y

    # p) d; @8 S, c6 K5 }. \- {0 J6 ]9 o% P+ C
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 9 z  `4 t( Z2 ~3 o5 w8 a, p
    wjl 发表于 2020-8-13 10:01
    ) }8 Z% g5 e/ v, u, l多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    $ o+ b1 T/ Z' ^- g2 }
    6 g, p: q: s& ihttps://s1.ax1x.com/20 ...

    - j6 S" p# L$ C2 E0 G% W我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。7 C7 a. M3 h, g8 R2 d
    + N# ~% H: K1 e8 D: M
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:! E* V$ Z, F1 G: N) S( A% e

    4 k! J) d% y0 |# M; U; epip install mdict-utils
    5 N$ R& |& k( b6 _+ {9 d1 h
    1 @' ^8 ^' D2 G; R/ ]( S( m
    : h2 ]3 ]( @2 ~6 ^3 f
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 3 r$ N  l4 d5 C" B3 P, _+ L. r
    wjl 发表于 2020-8-13 09:17& @* `9 d, @& Y" B& D" e
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    6 |/ b$ O/ r6 R9 y% j9 Y ...

    % H+ f4 J( i: q7 N1 T8 @2 q* h已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。  N' E' h8 }! F. z
    / B" K! O; b  m- I) w
    打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    / j% m+ d$ i$ h, E* B+ n1 u0 N4 Z) G9 R+ [4 x# l9 g
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。% o5 H+ _  n+ Z7 P: ]; A6 k

    3 K, |' d; C, L' f, _) o- L
    " |* F, G. H8 R" o. N; p6 a
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49. O3 u2 D: u1 |: @, U
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。, b3 E0 P: j. j- e9 I5 d( u1 f+ L
    + N8 B$ [% m. R
    打开Vim,单击 “运 ...

    0 q4 P( I- z. w9 I1 q现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了  p' o2 @& V2 I& A9 z
    https://s1.ax1x.com/2020/08/13/azsapd.gif
      m/ E7 p; w4 e, S: {, f

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 编辑
    3 M* X( ^- h& f- ?4 M+ ?  `5 H
    VimVim 发表于 2020-8-12 23:20
    " g0 X# F) `4 u( X不用管什么菜单,不影响使用这个工具。
    & Y% X* z9 l$ t/ R( H: z
    4 a0 M, S0 H* L& A" S若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...
    " ^% A  k2 `" X8 D6 F  d/ l
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。/ R1 Q$ ~* \" W/ u

    , @% S, @( [9 g8 n# m! I6 A请将 _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
    6 k5 `6 y% j# E, m+ g* P/ w# O现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    & R5 m" O/ m" Z: l) L2 Mhttps://s1.ax1x.com/2020/08/1 ...
    & B, ]3 o$ G& T, v6 n
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-27 01:07 , Processed in 0.029084 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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