掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5760|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑
      x! Z: e; Q9 _# ?3 m7 l) G" s% K$ ^) x* y( \, c6 m: y) z
    # 发布地址
    , v1 b4 j# d8 _" k/ m
    + G" g, G! ?9 Z0 {3 U; xhttps://github.com/VimWei/MdxSourceBuilder4 x# R3 T' t4 Z$ O$ z( F
    # r- w, w/ _! S  u
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    ; Y. T( l' x8 R" u: c: l- P! R! u# l4 o
    # 动图演示+ m( p( _7 K" I$ I

    0 ]/ S/ L' C7 R9 n
    2 A' O) g& I, n! |" Z8 M1 K4 O! L6 o2 ?' Z( f8 i6 ?
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/, O3 I1 z, b% D; W  }

    & n5 Y% E) I3 f: @. a# 缘起
    + t! n& b# G( ~" X$ L9 {1 u& _- B$ }( |' ]! k5 v8 m# B
    图片词典的制作规范与开源工具0 h, R# |4 X% S& o5 J$ e1 ]
    https://www.pdawiki.com/forum/thread-40857-1-1.html
    ' G- I9 i) N  z& q+ N! }2 e& g
    3 g* R2 D$ ^" c4 A, ]3 V9 a1 e
    2 }3 G* C2 E. u/ H% R) i
    9 A$ p- E' B$ |) s. k
    % t" l, l! M! Y' N' f9 N; Q* `

    ) Q* {& B' T) n  I3 k% ^% c5 x4 R$ w/ j/ M  N

    ) c4 |2 u* e2 C' Q" s  q% A

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑
    9 N2 T, c6 x, `, T5 y& s$ ~- }( j* n6 b: \; {
    # MdxSourceBuilder
    3 q% x+ {# Z9 S) F2 A5 N) K9 C$ g3 ^; c3 b$ X8 \
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件2 g' F. o- W" _( I0 h* T, W
      J) H7 I* N7 b+ I) t
    . d$ p8 A/ I  @- o4 l) \
    ## 背景' U6 Z/ K5 L" K9 w4 |
    ; T& s8 p% _  t. |. M
    ### 需求背景
    5 K8 A0 b* E, Z4 J4 k# O( c, Z; x
    时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。8 m: ]" u* |3 o0 Q4 b

    2 @5 t/ K$ N. c7 N; {# o9 j. y- v' _但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:
    / G  a$ e/ \1 Z  q$ r# J$ j" k; _# J% y' X, H+ ]% J# D) c" x4 W
    * 导航不理想,极大降低了用户的使用体验
    5 e+ e6 ~) u' X) Y* 制作修订过程复杂,极大干扰了制作者的热情
    : l0 R2 `1 y, Z4 f6 z3 B
    0 v  z8 H  q% Z& N2 w6 z- m这完全可以通过工具来解决。
    ) C" b3 G2 w* v# l' x# d
    6 W  u' ~0 t$ A6 |% a9 w: j### 程序设计背景
    * R6 {1 \" h9 D3 V# \9 J1 |+ T% [) e7 }5 d( g0 y
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。& L8 \1 r+ L) i+ T) ]' l4 s

    / t, y: w( n; W% a本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。
    1 X1 ^' m1 c& p- T5 t& H' ^! j/ h& a$ r) I" X( P
    非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。  m# ]9 z9 ^& o* z2 N
    6 k; M0 R+ |6 E3 i
    ## 解决方案
    * @. z/ _5 @: T7 B+ i
    6 s- c8 ^3 l$ P$ U0 P4 O" F1 _基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    8 T& ?5 l' n! T1 ]9 c4 n0 s* u" T% T0 B, k) p% c6 l2 m, a- I
    1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。% `! w/ a5 s) H2 g2 [
    + X5 I# d' `* |8 m
        目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。8 Z! ^% u6 c" P

    $ W7 y- D5 E1 m* @: v" a2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    ' M* t' o) F% D8 W" ^: \
    # ]1 q. F5 i# m" k0 ]& C* [! G1 \    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。6 I. e( I! P- u$ t% z5 R* O% k2 \  ?" b

    3 N" N; I# u+ {9 e- ^) ^! K3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    5 M* {% V+ ^, t" _4 B" e
    ' C/ W2 }+ ]( }    目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。
    3 B- C. H7 f( P5 }6 p6 O5 P
    ' o5 d# }- p% ~6 p4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!2 D& y  ~. Q5 |! _' l+ v# ~  T

    $ w- q# Y7 Q% ^! k( _! g## 程序文件及安装
    * _5 ^/ h9 x- G* H$ |
    / @6 `: ~/ I# F1 |0 R1 i1 y+ s! j- |. n根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。/ I+ C3 B$ n7 Z

    : H0 S; \& w  U1 U* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    % c" I8 L1 J9 g! Y0 r' o* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    " g5 A2 t' S- K* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会! P4 L5 s6 M! s( c; ?4 d1 z* A
    7 k2 ?5 W& g, i8 l
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    ( U; |# a. L' b1 M5 u( X3 e9 e4 B1 y- z& X5 l  U3 R
    ## 体验案例“火星词典”
    , w; e+ ]5 o' M: y! W; L( J- m( S! s* V( B! n; G' W+ f
    为展示程序的特点,特制作了“火星词典”,供观摩使用。
    7 L$ P: t2 j( J
    7 t) ^% m: u0 ~2 w1 P4 @1 ]* 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式
    8 G/ r1 m7 _2 w3 ?5 ]0 ^6 k* 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息0 ~( _$ \- I/ c" d: j/ o

    & {1 q! w  F: ?案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    ! z+ S! E6 w( p* ]% o0 g
    5 X+ L, G$ L5 `0 @; n, G' [" U- p* 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
      ~& G* K$ H2 f# W" ?. ]* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决' H" |1 ^' u7 E
    * 之后你只要照猫画虎,即可制作自己的图片词典了( N$ A0 ?* a" i+ x. n2 I$ K
    * U0 o; y8 w: g# n9 u" P" o
    ## 使用说明
    . X$ d5 U. k: Y4 V# G+ d* ^& n1 ?; P, K* x
    ### 极简使用说明
    ( F& |+ W1 J5 h5 ?) I
    $ }; p# i# H9 ~打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    0 [( Q* i. T- o: H( W8 ?
    ) V7 ^. u' w6 N! x+ S9 \' Z# z9 ?### 概要使用说明
    1 I& W& s& _+ S; I0 }. v" x: |2 v- a
    1. 按格式要求准备好词条文件
    5 q+ n1 O7 s2 }2 i3 i/ ]2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    $ c3 Q6 U  }4 v9 ]. B. I3 E* r3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。! [2 a) O9 A, F8 c- b
    5 `# G, L5 Y) a3 H* \) F; k* A/ k
    ### 详细使用说明6 }9 T2 k: e# I+ ?$ J

    $ R) F& t; r: n; T* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。' _) W! J2 Y" g% w# I" H
    * 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    + U$ C6 d& X2 e; j( {
    , m  ~/ w7 Z1 m& I; l### Tips: 使用更便捷快速的命令
    : x! S& ]1 I2 }& V* ]6 y/ Z' X
    2 k) O& n5 U/ I9 K5 H' v; }" ?* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦" M' K& c9 s" u0 ?- e$ f% i

    $ h& t9 X# i, @( C打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。& J" h. }1 `& W8 O8 X! H

    3 \0 r' l3 ]% P& I9 G0 i* J+ k. i* 那么建议使用如下更快的方法(自动寻址):
    / b# N+ P" t' n5 J9 D. @4 ?% V: g1 Q
    用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`, g' p: F  _6 k6 _) S

    8 l" V, \5 V% G% t2 E6 R. g- y甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`+ C, x: O# Y3 |9 D/ {! U

    + z& C" E, \$ U! u+ j, @这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。3 {9 a  Z' v( p/ L
    , v( g$ u' N  E# P; x
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`# o4 T' e: |3 Y0 y- F/ K. m# i
    " p' h+ h8 ]  s+ E  I) k9 H" X3 R
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。
    : }8 ~9 z/ I4 [7 l( a
    ! B4 n; ]1 H; c& e% I! d, I: s! H
    7 s  E9 i0 _" Z8 t# N* M$ i2 ]3 n
    ### 相关FAQ3 v; A4 p1 {$ B! d4 D; b
    ( X1 P( `5 f' E/ }! O% _
    1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    ) ?+ E2 \4 W6 z- g0 z$ W' N0 a' u* y3 f; ?4 n8 |+ a
    * Q: vim出现乱码
    # T" ?: U5 K$ `( C* A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`# O2 R* T9 b% P% z- K" S

    " [) T. F/ S# H' R. S/ S     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    ' I% e) T  E3 G' h1 t! O
    * W+ d( G5 A6 o: o/ |* _6 u2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    4 l. S; |$ w. S' T4 n) Y, f
    ) Y" v, x5 |1 S/ }* w* v1 |9 \## 社区讨论与反馈' J8 G: \! K5 e" m# d
    - B# B8 X$ t  F. f7 v$ e4 b, |- X$ e
    * Github: https://github.com/VimWei/MdxSourceBuilder
    ! B2 k6 n2 I& q6 y% y* 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html' B7 K- m" H* k0 i

    3 `7 `+ T1 m$ a## LICENSE# h3 C: |4 J; d! u' ?

    9 f8 `( X: S3 _6 l6 A[GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    . d6 u, b$ a  w' T) B! {" l2 |( a' H8 k6 x
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 , ~2 D1 H: B( ?  j1 f
    VimVim 发表于 2020-8-13 12:25
    ( `' r9 I9 `' U0 A进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。2 b; k+ P1 C7 \1 i9 ~

    0 F3 C7 H1 |/ _请将 _vimrc 文件复制到 $HOME 目录下,Window ...

    - T& y$ ^6 B* j4 W请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改& a" h: v# O: K7 x" _1 @
    查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数- a: _$ e" S! n% D
    / v) f% J4 z, y' C7 @( E- \$ b+ [
    <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>5 K  ^& J+ c! L( H2 P) E" ]
    : q- m2 t# y7 ]

    ; r* c. V0 e% Y5 v

    点评

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

    [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$ ^# [. D$ f% @9 z* B6 J
    我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    . |3 L/ r+ V' ~) h' V2 U. a' W
    感谢支持。2 T( N; x! V2 P9 a* {" z
    ; l3 e2 T- F$ c$ A4 L" [) R  S
    若能有这样的工具,我想目前的图片词典将发生极大的变化:, {, C) B- c8 w* B
    # p. J% g+ k% ~- m+ j
    1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。# {7 K  H( W8 _% o3 S3 F
    2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33. p% W& z, G8 x( i/ C  j9 U* U
    感谢支持。
    4 a; q5 M9 t- E% P0 t6 |$ n
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

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

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52# d! Q0 E# W4 s0 A' p3 ]1 N
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...
    & v5 k; g3 P# t" Z6 T+ n! a
    VimVim兄,太客气了,自從有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 编辑
    # D& }3 N3 s5 n  @- t
    wjl 发表于 2020-8-12 19:30
      W9 P" a& w0 @) h7 k多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    : o) Y9 s$ X. C, o7 |7 }* S1 y所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:
    / b$ _4 n6 w! f7 j
    : _( ?. y2 b# g; U% c1 N:new
    + l3 Q$ }) R$ C3 B3 W:so MdxSourceBuilder
    5 b( g! R! Q1 i/ ~, F; ~, X8 \' U8 H/ j) R! ]3 g* l
    随便找个识字的人都能照着这些字按顺序输入,不难吧。
    : O' R! `  ]& I% }$ u4 N8 P3 c6 {+ v. x3 b. e
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。* l$ {( c( F% q4 `2 ]$ p/ B
    我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    # U1 B8 B& f0 ]; _# x
    " r+ C( B0 u% ]' k& e' q- l7 @: G) M6 z* [* W
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    4 U/ {' R5 ]5 s/ G$ y& k: Y2 W我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    & S( p) D1 X5 V$ BK大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • 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 编辑 $ x- E% M. b* P9 N8 m3 Q! h5 v
    VimVim 发表于 2020-8-12 17:12- Y; U' B6 f5 I0 V; D0 M% {
    # MdxSourceBuilder
    ! K5 t5 u8 S6 J0 N+ g
    + C' a) s2 A; q& T7 k, x/ kmdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...

    8 {& v, r: L: F0 d菜鸟一问:; h/ K. U( d+ R! X7 [+ ?% e
    用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 编辑
    ( K0 i! `5 S6 H
    Jiangxi 发表于 2020-8-12 21:27: x1 t% Z3 \6 b/ A, L9 c" I% x
    菜鸟一问:) Q% n4 h  i/ ^! C; K/ n: V
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
      v; O; W4 ~2 f/ {. {8 g
    不是字体的问题。
    ) W5 o5 v( t) U  E- c' S你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    8 @  i2 T9 b, A% R
    ' i8 m4 w) p0 d! k' t  cset encoding=utf-8
    + A- R$ Q' _  T, b
    5 Q0 C0 a  ^& ^+ q以后就不会有乱码问题了。; S7 {: i4 U" s$ j

    点评

    谢谢,加了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 编辑
    ( r( V9 K3 a! p& l& I0 Z5 Y! S3 h6 C4 O: Q, d# t8 V+ [: o, e' F
    不用管什么菜单,不影响使用这个工具。& k: u7 @8 L2 J- y8 @& [: a
    9 z9 Q5 s9 Z* r. e# Y& \: S7 y
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    ( K0 o0 X  t3 N" R
    7 k2 @- }. Z1 }4 v( S. |4 t$ l
    1. " Basic Setting -----------------------------------------------------------{{{1
      & D9 f7 Z; H9 e. E, M; ?  S, o5 m
    2. set nocompatible    "启用不兼容Vi模式
      : I+ L, c$ T; _: X3 y" t7 l) k
    3. syntax on
      * A! l' W7 m1 d8 O
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进
      % h% }* ?) @1 F% G  T/ I5 m. \

    5. 9 @- m' }2 o* A; k" {
    6. " Encoding related --------------------------------------------------------{{{1
        r, T0 M2 j3 `
    7. set encoding=utf-8  "Vim 内部工作编码  u. |: A4 e# e9 s+ t
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      3 m  W1 ^! p5 `: H- T8 D; @- E: E
    9. " 打开文件时自动尝试下面顺序的编码
      / h3 w4 ^1 o3 [1 z' J! V9 R  @# {
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin10 M2 h# e- [5 q+ W
    11. source $VIMRUNTIME/delmenu.vim
      . P; o9 H, T. ~( ~: o
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none4 R8 g& e& I7 v
    13. source $VIMRUNTIME/menu.vim# G* \' |3 @9 E
    14. " language message en_US.ISO_8859-1 "指定提示信息语言
      4 u  x* C/ m. r8 k0 h2 w% T( }
    15. language message zh_CN.UTF-8    "指定提示信息语言
      * g+ X8 i' j) A( `% \9 _) B: j
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      7 I! v, @6 D. j# b5 _: ^
    17. set nobomb    "取消UTF的BOMB文件头5 ~* q' k1 [1 D4 G9 z/ x
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符
      - @- ]4 `& n  u/ h# ?6 k
    19. set cm=blowfish2    "设置新的加密算法
      - C: X; d# ^9 p! J' w) J" N% `
    复制代码

    7 H0 T. A6 O$ l
    8 P: Y2 o1 n4 m$ x9 Q; h若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。
    * ]; ]5 e9 I' Q" K* V* B+ j' j: u+ [: H2 d0 _: j0 e) {1 z9 `- p

    " N* A4 K' X7 v* m. D2 @
    ( L; y2 A$ w, v/ ^3 A6 z$ z5 E, b' J
  • 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 编辑 2 e" e" ~, g+ S0 u4 P. D1 ~5 x  u

    % ^8 C  O2 {( S- m. ~9 F" ^我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事& M$ s+ B$ y  e5 ?: u$ [6 O+ f' d" q
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif5 c7 j/ v6 @6 H8 [
    我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧1 O) `! M% E& D' U3 u: R

    & c  H  M7 G: K5 S4 M) I8 \" {8 w8 H) u2 }7 P8 Q

    / s/ V) B9 k. |! ]  [1 d* X8 @7 I
    % ^" h, _% m* T

    点评

    前面我理解错了,原来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 编辑
    # |! p1 b: Z8 M4 D$ o3 d
    wjl 发表于 2020-8-13 09:17
    . ]$ \- M" z" e, H. \3 G4 e我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    % ?5 {$ k* S$ S% L% d ...
    / x6 r' L: H+ ^6 [- f! D
    看到视频了。3 G1 a( ~' O3 o! c
    $ q1 l$ {0 K, d9 K- `( F
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。3 P- L) \6 W) n2 K: k$ }
    ; [  Y# @! f: |$ j. R4 p% c
    估计你的vim“工作路径”错了。请严格按照步骤来。
    " n' a4 o% w. g: {; O  @5 \4 Z, s% P1 T9 \  Y9 Q6 f
    1、关闭所有vim程序。
    0 c, a- f7 w# X/ N$ K2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)* n4 n: R+ z9 O) Y8 k. i
    3、使用 :new 新建文档
    2 V. o! C0 d9 b4、执行 :so MdxSourceBuilder.vim
      f+ M$ g2 |# Z9 ]) z- [% k* b
    或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:$ k5 U" |. |! l4 I
    1、输入命令 :pwd   可以看到当前的vim工作路径
    ) |) F: N( l$ a; L% M6 r2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。6 ]& k9 S1 A3 W' K* R- L7 C
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41% h2 @3 M, a* h# a2 w. M2 I' _' h
    看到视频了。
    7 z: o6 ^$ f& p
    2 G) a) f0 l- p你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    2 u3 y( o0 a; W: _7 ?5 M1 A  G
    如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    2 n3 N9 r, {/ j" ======================================================
    2 t) {7 o; ]2 m0 w" 以下为程序正文,不熟悉Vim的用户请勿动, A: {: Q- n9 H
    " ======================================================
    , e# e6 V! U" w: ~$ x  x0 `: h"
    8 Q  y& O% M7 M! X  ]1 {( d"4 D6 p' X4 P: c) f' |
    " 取得本文件所在的目录,并设置为当前工作目录# E% s  T( y6 j- z
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    7 ]: S0 h1 V( W3 N0 @0 Aexecute 'cd ' . s:home9 Q$ w1 j& a  n3 y
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    1 u* O0 J0 c" I/ ]看到视频了。4 c) ^9 t9 }) T! y
    5 C( E; {, i7 G. J; n6 L, R
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    % }# |+ Z1 \0 q
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    1 `% Y) u; u. J  Q5 `( K
    & Z* b& i5 T3 f1 nhttps://s1.ax1x.com/2020/08/13/azMjaT.gif
    0 }  E( t) X4 F* f' M9 \6 J" \! X) U1 h% U$ `! T  y

    $ J. x8 i) A: }# s1 c+ H
    / u4 W* f' N; W$ ~" K
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑
    : S5 t( L0 N, s
    wjl 发表于 2020-8-13 10:019 z0 e" s( l  D( D- N$ c
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    - i0 @* R# x$ i& u4 y# M
    ( e5 W9 @- j; C9 k% }https://s1.ax1x.com/20 ...
    4 o- c1 k7 H# ~- ~# ]: s- h" h
    我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    2 U7 e$ |/ h2 x6 R' k% ~
    # K2 t8 O+ q% u! }此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:3 |* }, a1 J& U. h

    " q$ I* ]9 G$ L/ [5 I  Npip install mdict-utils
    6 A  E/ @- R7 O2 r6 G- c; y7 K" L" X+ m# ^
    0 V2 K/ F5 F% ?  D8 F
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 & `0 l+ K. F: s# C6 y  x
    wjl 发表于 2020-8-13 09:17
    5 D2 G' A0 V! `/ z我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事) @7 u# H& W0 ^, O* l
    ...
    ; L6 U4 l6 a3 R# g9 b3 N
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。$ ^4 @% Z% a% l2 Y) \* I9 e

    1 }. L1 S1 p  V$ `5 I打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    " j; T  ^, |& I  y; ^/ F3 l: i! R; J& P) B; F, v
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。1 J* I& W/ P- W- D4 e& e  B; {

    8 e8 h+ j# O( q3 o6 p( N: q' M0 J1 a. d+ D" d) ], ]: F+ Z
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49' j2 C, I  q# d2 d
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    % @5 B. s5 j$ ^( l$ C. u* p8 n4 S- F
    打开Vim,单击 “运 ...
    # C5 T- \3 N# i+ A0 D1 O
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    7 o  t4 i0 N) W) h. X4 ~https://s1.ax1x.com/2020/08/13/azsapd.gif& u1 ^6 C4 H$ ^2 V; e/ {" ]3 p

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 编辑 7 y0 Y, _8 }- V. B4 [3 ]
    VimVim 发表于 2020-8-12 23:20
    ( n0 q/ F* p. y+ O; E不用管什么菜单,不影响使用这个工具。
    7 x. p5 X  u) P* @  p9 o
    ) c, d' ~6 Y1 s% F7 V+ G若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    " b6 j0 J2 ^. L/ M6 w进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。7 d( c2 c; n' m/ h" V8 G1 m
    - r) B: A) c  f. w9 C& z" Y7 `
    请将 _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
    ( ]* r6 D8 h, d( f现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    5 t/ \7 X  o2 Z+ i! J/ ]& a5 {3 g( a  hhttps://s1.ax1x.com/2020/08/1 ...
    % K' }# X3 C& |' f0 i0 w) r3 B* y
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 22:07 , Processed in 0.114627 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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