掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5855|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑 0 D. Q* ]/ l% B
    5 Z2 Y) W7 E5 K. l/ e( _
    # 发布地址1 J: w! M  f; m' F+ w9 V1 m
    0 ^0 h* s; ~2 m' i7 t
    https://github.com/VimWei/MdxSourceBuilder
    % V" p  L$ D; [2 r: j
    ( T" u2 h8 K2 h/ Z一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件- w. E& w- d7 o9 N

    ( l! O0 W4 I9 k1 f" P1 p$ Z, B& S5 @# 动图演示" c; Z) P2 x7 M7 f3 ]' Z9 ^
      w' F, B0 U2 K+ G
    # m) O7 p4 a: R. v7 l
    1 `3 L% b, t& B+ f1 T
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/8 W6 u% h! W1 |1 H1 w+ ^9 b

    . S2 }+ a5 S( s7 ~* Z# 缘起
    0 b- B" O2 |1 j2 G$ S/ d) R- T3 L& B7 }, Q7 p5 Q1 [' u
    图片词典的制作规范与开源工具
      a( m1 ~- `  r& J) `2 phttps://www.pdawiki.com/forum/thread-40857-1-1.html
    + t% ^: L. @# C* }5 j9 U5 Z0 x
    6 [& f! _1 W" d% t; n

    2 a/ `. M# t; i# d$ r9 b6 v% j$ a6 |' |4 _
    % ?5 L1 G9 f: d: m2 t/ o: Q

    . K1 X9 |: O% Z0 j
    " ^, m# d  [( ], a, N% ~5 ~$ |2 w  H

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 7 ?4 E. Z: Z# Q% U
    / R( p- \0 m0 T# f: P
    # MdxSourceBuilder/ {7 C- h8 Y- E- v& O, c8 H

      |7 Y9 D' F6 d( q一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件. L  V! E9 i8 v: w

    6 _  z# f. K/ A, H) c
    ) [3 X' _7 C% O; p- Y9 F: S. a
    ## 背景0 ~" D# G9 X) c- P9 w. q

    " s& n; K5 d) M  J4 y' T( L### 需求背景: l8 C4 h$ y- k6 ~  m5 r
    & l5 u7 g  o2 l: m& Z  P2 N
    时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。8 @4 Y. S7 w, C, k
    / b! d; o/ D' F1 D$ B+ P
    但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:
    + m: K7 x% w9 j0 @6 M  u. m: S0 q! _' _/ g5 x- ~0 V8 A
    * 导航不理想,极大降低了用户的使用体验0 S% B/ {/ ?/ r  I$ X) G+ ~* {
    * 制作修订过程复杂,极大干扰了制作者的热情
    " k$ L1 j( O1 }+ E6 a3 l+ u* K; y+ }) J- q
    这完全可以通过工具来解决。/ B* x& ~. {6 T" H% E1 h  Q" o$ L

    - U  |" C8 R9 X! ^( a" x5 k  q### 程序设计背景
    6 F5 }+ \6 j" g  Q# r% x& [2 q' l, F5 V2 m, y- ?" Q# C
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。
    ) t) R: h2 A2 Q, D5 f
    2 t" b( N6 ^2 t4 A% P, \7 v本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。0 Z7 q6 v7 X2 [. x- r! e! E1 M( _

    6 G$ l* Y* Q. k  K非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。7 ^- t+ \% ~8 f: m* ?: ^
    . H% R# V: C2 a) \
    ## 解决方案
    9 |: Z- Y! ]) T5 N+ h) V* W$ \  ]1 T+ U
    基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件/ |" {; S; S9 w& Q8 _; {0 V# \

    ) U+ R4 U" L( s) Q6 P, m" v1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    ! r; q# h" l) H6 Z9 n
    + [" ~2 j8 Z% N, x/ z+ j4 r    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。* l% E; j) i$ K
    ( K' E* J0 B" k( u0 ~0 A' v
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。: X% \0 @; S8 h- h. w
    8 M4 V! C" v$ x6 ^
        目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。3 x& c1 W4 K3 W* i2 a2 a

    0 \# L. z- B  Q$ |- ^" f. [" l3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。4 i9 z) J8 a0 r. J% \+ H
    " {6 j, d7 B; Z/ c' B0 p5 O# Y
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。
    % x3 Z# q* Q2 A2 `! t5 G* L
    # r; @* t1 ?2 [4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!+ Z$ v5 p4 t; O; p& `" g8 g8 Y
    # l6 n9 b- y  }. a
    ## 程序文件及安装& c7 s8 \) L/ _) L9 A! Q

      ^' Q: t& t  l# B" _: A根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。$ z$ g1 @/ P: T4 d+ _- Q
    8 b. [1 o7 ~1 S8 a" k5 r0 A5 J
    * MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会3 }  k7 A+ R0 J$ L. V* P& R
    * MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    ) C) {' \% e+ @* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会
      K, n, y$ W0 y6 F1 i9 A+ E" ?$ [- J- F5 d2 ^  c
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    " ]) T1 L, C! z; K4 ^% }5 I) b  c  p% `7 T, G
    ## 体验案例“火星词典”/ `4 z7 d$ [7 m( \; x. D% ]  L2 F, M

    # f; m# M" k! ~0 p" [% r# S5 b为展示程序的特点,特制作了“火星词典”,供观摩使用。/ c% c6 b1 O# r

    ) @  Z. U9 `, G* 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式
    $ n, d3 @0 H! N# U5 ~9 x6 {* 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息
    " G7 K3 N  v- N( G1 j) x: U6 ~7 b* j' H) p: z2 t
    案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。& A$ U) T8 O# |7 @. u2 W; e

    6 v" U' p; q6 @( R* 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx" C( o2 z5 M8 H9 G7 Y( @. C- y
    * 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决/ Y3 L* [7 ]( ]0 j( D+ u6 C* V! g
    * 之后你只要照猫画虎,即可制作自己的图片词典了
    / @2 }! ?: P# ]( R7 [- F" O, f4 M! \" O( n
    ## 使用说明1 N! l/ h  Y. b" A

    3 e; v2 O- ~# n* F( C### 极简使用说明
    2 T' ]: j: S& H( \: m. V9 N
    " O% h* v7 R$ G$ i7 Q# r" [" [打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。/ m# H1 P' k' h8 S# i& d
    ( K$ E/ A5 s2 F- Z. B8 Z9 J+ k
    ### 概要使用说明
    & p2 a# J1 d8 j. p) C$ o9 S: g6 ?* O, H3 H
    1. 按格式要求准备好词条文件+ L9 U- i3 N8 V
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    7 |6 V' X0 T. G$ B( }9 Y5 [' E2 H3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。4 ]( |( ^+ w2 f4 |
    & S( H. @, \+ Z' T' u
    ### 详细使用说明$ b& w7 K1 E& Z

    & g: B7 Y9 w/ u* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。
    4 i- K5 Q4 R$ d- _" X# S  ^0 N* 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    % {7 N/ E& C1 S: q9 V( M7 D3 Y$ l2 Q3 C: ?1 Z: i4 ]/ U
    ### Tips: 使用更便捷快速的命令
    / u9 n7 _0 |, d6 }! E
    & }" i" ?" y/ Q1 S0 e& w  ~* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦( |* a+ k& ^# C3 B" C& }

    ' L7 \$ A3 B0 k2 G% h& D+ |打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
      n% B* l# D( r! Z9 n* _$ L4 `' T+ Z# y( i
    * 那么建议使用如下更快的方法(自动寻址):( Z" v! n5 g' N& |/ v9 K# ^8 A! n( f

    5 H1 k1 U3 P2 m6 [- a用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`# n+ V( B9 x% f& M

    " Z9 m( W- W  ^8 H1 _0 F甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`
    5 i8 z& P' _( _* K- r
    ! o" v7 G) S( Y6 S& ]这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    . h$ |9 y- @: @: M/ U0 ], p/ U$ g) f3 h+ l! s
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`
    / P# T, S6 j5 Y
    ! n; l5 P5 ?% K% D+ i若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。5 |( n/ s3 o- L) V- U& _
    . q( i/ F: ]3 F; P1 g, }' V2 q- \5 Y; U

    " |- d" Q. E% ?### 相关FAQ2 c8 ?6 e( K/ }& c/ @) T. G( V+ j

    7 H, f/ I7 Y  D  i- T1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    9 g* ]9 G, h2 d: P6 a% v: t8 T5 b, p
    * Q: vim出现乱码
    , K" E2 E2 _) X' |# x) ]- Y* A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`2 u' v8 q& C7 `, s6 a- n/ \

    5 e4 T" I6 a1 Z' k9 a     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    % j: P* F; A( _5 U+ d! _- C0 ~$ i: [3 U1 a' w
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    & [2 j2 [- C/ ^" _2 e8 [; I. f$ U0 i% o  |
    ## 社区讨论与反馈& H" U& |3 k6 n( i6 x! f0 S
    ) G& S& y5 Q0 f  E* C" T3 a$ e" B$ n' i" L
    * Github: https://github.com/VimWei/MdxSourceBuilder0 g! p# P* G' U9 L& ?' r
    * 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html6 `$ p0 A$ Z7 M# c, ^0 b

    / L- K9 f' {) I8 R; W7 Z0 e9 Z## LICENSE" B- J( A. ~2 q( `7 d
    ( y4 S1 {: K  @5 W. n1 ]4 E$ i0 K
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    # d: `/ l# d9 C9 P- }8 Z- s1 Z* y# S7 j  `% [0 c% F2 w
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 / A" n4 Q& j* B5 j* }8 H& _% H/ M
    VimVim 发表于 2020-8-13 12:25
    , b0 e: @+ g) p; Y% o2 I进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。! ^8 D3 O. F7 l! H! P5 _& Y

    8 e1 {1 e$ q3 d5 P3 e请将 _vimrc 文件复制到 $HOME 目录下,Window ...
    $ ]! O9 u1 D1 H* ?/ X9 M& A
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    # v2 u& W& d- L2 N查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数
    ) U, a& p& u5 O( }4 G5 o- |3 l  [" p# x6 Z  x6 g
    <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>: B/ k3 O( G; ?( t; i# F' t

    ( J0 H! C! ]6 D4 k2 `  N! y) z5 z2 v  T( p% G4 ~, T+ C+ \

    点评

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

    [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
    " l  h! {2 i4 V  P/ ?6 R; \0 n8 h9 O我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    5 t/ a. j  X; P- e8 U! O感谢支持。. ]. n7 f7 x0 w$ |4 }
    6 j  D3 s; g; D7 ]1 f
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
    - ?1 m6 P1 \$ s
    - t; r$ O3 G  [3 u1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    / Z* D- C# [% i$ e5 v2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33
    0 o( _  b! c. Y1 C( H" u9 S4 z感谢支持。
    . |  s+ j6 `& E/ X
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00
    & R% K, u) c. c8 N1 T4 m6 N2 l2 I9 oVimVim 兄,相當棒的工具,創意十足,漂亮
    ) j% h6 |6 z; x: e
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:529 Q  b9 I5 h" i* V
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...

    3 ?$ X" u, m  l7 B+ _! P8 OVimVim兄,太客气了,自從有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 编辑
      F8 F3 N& {3 w, I
    wjl 发表于 2020-8-12 19:30& i5 m  N3 Z% g# z. k9 l% E
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    ! a8 R5 {) D+ ?9 N1 X所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:- U+ F% Z( B- Z* J# r: _
    # M/ }# [' i: \+ s9 E% V
    :new
    & d' K  B0 s$ g+ B:so MdxSourceBuilder
    6 j3 S" u! J# c
    # B! s( [+ R3 b2 L8 O随便找个识字的人都能照着这些字按顺序输入,不难吧。
    ) ~6 e% I5 w9 ~
    , @+ {. ], z* o0 O5 M我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
    $ B& w+ n& ?+ k9 o我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    - {) ]% [8 ~3 m- u6 j6 k8 {
    ! M) Q1 I# T1 ^  f3 y# i8 l
    ' ?* r, i/ m. F  Y
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

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

    9 u# K9 O1 z  `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 编辑
    5 _. f, w/ i3 P
    VimVim 发表于 2020-8-12 17:12- f- B- Y) q+ \% M) |8 s1 x4 a0 B
    # MdxSourceBuilder$ K6 X* T( L! m8 C
    ( ?6 W7 `6 t. N
    mdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    1 Z; s0 C9 l5 U, F9 j
    菜鸟一问:7 f  `, |3 E1 G" H
    用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 编辑 9 M' ?( }( q% Q
    Jiangxi 发表于 2020-8-12 21:270 I- Q! Q1 k) C; H4 X
    菜鸟一问:
    0 E, t% i  W0 X' E用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    / [& J3 Z3 f8 @: Z$ ]不是字体的问题。
    & H+ m! a; E( a: A9 w) w你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    2 L2 W. Y4 b+ H$ k/ y5 F) z1 ^, H. m7 V$ P9 \" D0 v5 H  x
    set encoding=utf-8
    - D" g/ E3 K3 R2 X; Y4 O% g# v/ j! K1 \0 N' N( \. D( i( [
    以后就不会有乱码问题了。
    . Q2 K  G+ L1 x  N% u

    点评

    谢谢,加了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 编辑 " U! l' v" @  d3 Q
    $ ?( {8 S* b: R! f# F# ?5 \
    不用管什么菜单,不影响使用这个工具。
    ! B- h1 n3 r6 D7 a: Z# M# N' d+ }" z, o6 O# R
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    ; ^; E* P8 H  {* p( F2 N" F
    3 k- {- P, U) D
    1. " Basic Setting -----------------------------------------------------------{{{1: l: x3 B' X1 p( w
    2. set nocompatible    "启用不兼容Vi模式- M# n1 D5 t+ y! r/ P7 }
    3. syntax on* C% }: j+ |( }7 N8 {
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进" y: o& Q, R/ t3 G( I

    5.   Y4 B5 A6 t8 Q. V$ g* ]
    6. " Encoding related --------------------------------------------------------{{{1
      9 b8 a) U! L) P' N9 p. B
    7. set encoding=utf-8  "Vim 内部工作编码* f; I" w" ~" G% m% y2 x
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      4 p% P. k" q, A9 ?, p" W" _
    9. " 打开文件时自动尝试下面顺序的编码/ N9 g# p8 ~6 g; r$ {" q0 }
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
      ) e" j# E& ~/ t
    11. source $VIMRUNTIME/delmenu.vim& @* _3 Y9 S7 _
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      3 \4 H9 ?& u+ d, o* m- U
    13. source $VIMRUNTIME/menu.vim/ I; j+ i% n; [. ]+ }! _  O7 d3 d
    14. " language message en_US.ISO_8859-1 "指定提示信息语言( \% G1 q, G- o0 a& N- {+ g3 `
    15. language message zh_CN.UTF-8    "指定提示信息语言
      0 e9 Q0 S, _  U  Z+ }4 ?0 ?
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符6 t% X, u9 j* N1 i- H" J- A9 Y
    17. set nobomb    "取消UTF的BOMB文件头
      " J6 k2 {( x- k: G: [' z, b" n' q
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符
      , ^* Q! i5 m  X+ }8 j- h+ T4 x
    19. set cm=blowfish2    "设置新的加密算法9 F8 M- Q& n& O7 `7 y# ^9 n
    复制代码

    - I4 i# a( o' x$ o# Z9 E8 g
    % m( E$ q5 q6 x% X5 Y若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。( C: q$ f3 ^' ]5 M: ]
    " `" t; P7 z. t' S  n; g

    $ ]/ ?; N$ T+ l1 T# [; E3 L: I4 S' V6 ~9 q
  • 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 @& b  k0 ~+ c6 ]4 q
    ; ~, d& r6 ~& W5 ~
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事; {1 P, B! y2 M- \: l
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif& g' L2 F/ Y/ d% ~5 F' I
    我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧
    1 b$ N6 H0 m* x' ^9 s7 B# t5 D; m" Z! E' S9 G9 h7 W

    9 \# E# ^: s- k. l
    0 f" D* z; @8 u: ^8 u/ Z: G$ w. {: y2 U6 z

    点评

    前面我理解错了,原来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 编辑
    : b" ~. ~8 x$ c# F% G
    wjl 发表于 2020-8-13 09:17, q9 `; M1 {0 K% y- H+ |
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    $ u0 q  j% ]+ d ...
    : `/ @7 z# m( \8 B; c- Q' u
    看到视频了。
    ' t1 e* L8 |9 H' u  E# H
    8 s: I4 |. X2 T2 M. M5 g你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。  s- }9 O% W5 H+ r' C$ F$ B
    3 i- }, g, g8 v; s- [1 \
    估计你的vim“工作路径”错了。请严格按照步骤来。
    ; m  O* u  P+ S. j0 m
    5 o& q& _. v/ j, }( K4 |) _1、关闭所有vim程序。
    , m! i' @( w6 F- x) F" s5 [% y6 t2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)9 p  E5 i$ a# n5 Y) M9 M
    3、使用 :new 新建文档6 p) v- Y. v9 e' O6 i/ C6 w5 T
    4、执行 :so MdxSourceBuilder.vim
    % S, m) X" I1 C' ~1 v% T' \0 e9 r& `- b# d
    或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    : A& ]  X$ l1 p) B  M$ ]1、输入命令 :pwd   可以看到当前的vim工作路径
    3 J: j5 K- o8 q: B9 ~3 H- D2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。* P1 h# Y3 c8 n# A- F( m
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    / t1 b3 q0 x, Z& O看到视频了。
    0 @5 A* E! z, j( t" o( n: e$ X+ J" j/ ~- C0 h! y
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    . e3 K7 r" @0 I  ^1 l, w如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):; ]. _- w4 Z( B3 W) N
    " ======================================================/ V" h. x* S7 x$ n
    " 以下为程序正文,不熟悉Vim的用户请勿动
    1 Z, ~  V& ~/ v. m& A- x" C/ h; Q" ======================================================
    8 Q% {9 y# ?7 ]7 L"/ B" |7 I: w+ p% Y+ {0 \& Y
    "
    9 H) z- w2 a! n) i0 D" 取得本文件所在的目录,并设置为当前工作目录
    ! E) b. `. D0 R6 l; G0 q/ Slet s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    . D. z9 v- \; ?9 d1 z, b* V$ n" lexecute 'cd ' . s:home8 o! @7 c1 Z) f# w* J& k
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    - b0 E6 N2 B, I5 I) R& q看到视频了。7 L& J( R' i9 k  X& t
      [* \* M6 R  E4 C) f
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    - {( Y. H: J& o/ n' w0 k多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了" X8 @  |# B! P( O* _
    $ k( r9 \) U% I/ F# A
    https://s1.ax1x.com/2020/08/13/azMjaT.gif
    / b7 M7 m/ \1 m4 j( K; c( E$ P: i
    % D7 F8 R! r. T$ s: x6 {3 U3 j0 v6 b) Z
    6 g( _* \) A: ^
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑
    . c: T* X* W- U3 V; Z) b& L
    wjl 发表于 2020-8-13 10:01/ i: L  X' O8 ], ]2 y
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    8 J7 V- o4 A8 Q% i9 O
    % M3 v* o3 D5 q- R9 zhttps://s1.ax1x.com/20 ...
    ( b0 [# B. b  f) Q
    我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    4 p$ j- p3 A: ?. U2 o/ \0 r! L5 E
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:$ W' j) F/ f/ k. o# l

    ' b8 s5 ]' }! P  K8 F2 qpip install mdict-utils 7 A9 m6 S4 a  }& M3 {0 S
    % h7 k: c( V+ }# f% A
    5 \- z6 H6 @" b- t# Y1 l9 ?# F. R3 c5 e
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 7 O3 j; s- F# N# R8 G
    wjl 发表于 2020-8-13 09:17
    - Z3 x/ O' V& x# H/ s! J我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    + p( F8 n, O6 c  C( p! ]8 O& Z% X ...

    / s6 e0 \! a( S, h, ]已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    ! V! C( |4 `9 A  T$ u% a4 o8 N. H/ _' x7 h4 m7 a  Z( g
    打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。( B$ O+ E: m4 ^3 w
    & z* v$ }& U( D, v
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。* Z4 K/ I8 k9 @
    " \( K8 d6 r$ G$ f% ~

    . ~' g7 C0 U) S7 J3 K! N! S, |
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49, \( P2 {" L& a5 {" T
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。9 A5 \7 D5 l7 z8 R2 c

    7 S& B# \: }# b" A; S1 R打开Vim,单击 “运 ...

    4 u; |$ k2 T7 x6 ]现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了' C- t; F% J7 y# Z
    https://s1.ax1x.com/2020/08/13/azsapd.gif
    % z3 v$ }: g3 n2 ^9 {

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 M7 x3 k- {8 ~+ a  q1 C  y
    VimVim 发表于 2020-8-12 23:20
    " C, U5 A! D* b0 Q4 x+ n$ B9 s" y$ P不用管什么菜单,不影响使用这个工具。
    , I) b  h: B* T5 {- n# E' o) W( O) u' ~
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    ; t6 O, |  F' z$ n" N+ F进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    2 T9 Q) K3 Q' h8 r- w) m/ a. U) r
    0 {, e2 k8 m3 C( B1 k+ {8 O请将 _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:328 Q" @4 l& i3 T# B4 N* X9 N2 ], i
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了5 y$ F9 h: r2 A) ?0 O7 S$ K6 _. k
    https://s1.ax1x.com/2020/08/1 ...

    , g5 U9 p- x3 @3 v: ^能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-7 00:41 , Processed in 0.072348 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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