掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7706|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑 " D" Z: z# g- K" S6 h

    & g& E. D, s* ~5 o  j" d$ U# 发布地址
    4 J/ ]/ \7 Z; c4 l4 b( F7 k4 l* p9 y5 Z5 g6 j# S
    https://github.com/VimWei/MdxSourceBuilder
    ( k) r& g( x4 O( g! Y0 p2 i4 H. _# i
    - G1 L1 P0 X  e5 J一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    2 [2 B1 B' R% o" G
    1 Y4 {+ g* A  J- `1 @# 动图演示' N1 i& `6 L. R; _* n6 i

    0 a( ^/ Z0 B1 h! E% P# D
    3 `3 k( g; f6 h( {/ P3 i
    # b& v- ~9 l6 X2 |1 C9 ]更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/3 \; F% s! L& m6 B& _0 ?
    0 g( [+ C- a% C$ z! V1 k, B5 ~
    # 缘起
    + C& Q+ Y. T6 S2 S4 n1 N" ]- U* f- m" v2 h+ K3 L0 p7 |/ u
    图片词典的制作规范与开源工具
    4 o7 c2 J2 D4 q. A! L. ?- n6 Y3 I# W" yhttps://www.pdawiki.com/forum/thread-40857-1-1.html
    " m$ x$ E3 G/ Q: D0 |5 k, K
    - Q- k( Q& A. l& I0 `" c1 B
    6 Z5 `5 U& g2 d4 X8 {7 H8 O

    4 w0 ^) |" m* q+ S  j/ g
    8 ?/ R- l7 T( D3 p# C5 p, b9 G0 u
    $ E8 ~$ Q/ {; `  h: l6 l1 _! X! f
    / Z- O! u. \4 T$ |
    * D( K  C, N* w; L

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 2 Y/ a: {( I- A! [5 A1 y

    + \, D8 g& ~; a9 o: N# MdxSourceBuilder; D, \" u  F; c7 g6 b4 D( X" S) {

    & [/ t& j) c/ R3 w" ~5 }一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    1 ~: c" {. X, ^8 `, M& V' R7 D( j" j9 T% A0 J3 L
    2 b: z0 i- w4 m6 ]' M& g
    ## 背景
    / W4 Z& C) ~+ u0 b* y/ p& c) a* i% |  I- F) r9 C7 }
    ### 需求背景
    6 h1 m4 T" l& _4 b$ C6 B0 ]! `- h: o9 G) z
    时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。4 w! f% R8 g8 R4 _1 n

    : p6 v( r& j" w- ^$ J/ V# o5 V但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:( Y" g0 G! O8 [5 M/ |

    ! V7 s" l! F3 i* 导航不理想,极大降低了用户的使用体验: E0 z9 c. K# c+ |
    * 制作修订过程复杂,极大干扰了制作者的热情
    6 @  e: X* y6 ^
    5 u; g3 j. V  s  K4 @4 T这完全可以通过工具来解决。- Q" v: \& L0 s8 l, M* Q
    % V# |/ V$ l1 ~1 P
    ### 程序设计背景
    7 B5 g/ C# r6 q8 }5 R
    $ A0 w% {7 [( E6 ^. A* i3 R# h本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。
    " ~# E1 M% o8 `* o% u- I8 n; \; |- _8 N+ P% ?
    本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。1 ^  Z' L% i% P# s, \2 T
    6 n- H% v& H& R' @* Z
    非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。
    3 R( P: ?7 L% G3 b
    * q6 O5 ~  [* _0 I+ ]## 解决方案! k1 `6 }* ^8 G* m: K  u

    6 f. L' @8 L& @/ a基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    + ]9 |5 w' ]$ O8 O+ ^/ I# K) E, Y' q0 v/ P, F. n, {7 K/ N& x4 q
    1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
      |1 o% D! [" L) J" L& W$ v' h( x$ Y; f" w# ?
        目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。
    7 T$ U9 H) ~$ O, k. r& Q' G& c9 H; i: l2 J( Z9 g1 i
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    - P" K0 s4 L" O, k3 U6 R5 _- W& ^# u
    2 _: y% r* \0 y/ r% S5 B1 Q) J    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。
    $ K9 o; o: x5 a- {  Q- C6 A: e, h  @3 j8 Q. B8 [
    3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    8 Y6 F9 {1 ^  q- a: `+ W% t2 g2 }9 @  @3 v/ ^7 o5 y
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。- W7 v4 i/ w; N% B- `$ n

    8 f  J- |2 G7 A5 ]( y4 u4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!9 P; Y, G2 ?+ M6 [$ F

    # b0 L3 m. s( ~## 程序文件及安装
      U2 J1 m# E& X9 h. d; }- t# D1 a
    ( H' X, ]/ l: `( ]: m. S根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。
    + y* h! d% J. X$ b( R  p# Z6 W, S: Q% K; J1 Q3 T( r0 B. j+ x9 j
    * MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    : o: @' l: l6 |% J7 H* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    0 O- T' ]2 S* `- @, N6 P5 i3 \* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会- G: p! y. p0 a, o$ s3 q( Y

    5 P3 v& m; _' J; g' u4 W. s7 Q其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    % I7 O' ]2 p- b" p& d% x  C
    ; }: F1 [3 m3 x## 体验案例“火星词典”
    + N9 O9 h+ l* T/ H6 y# \# S/ l  M$ b: B# s4 F
    为展示程序的特点,特制作了“火星词典”,供观摩使用。6 p5 \6 K+ }( J
    & r: m2 K$ X4 J6 @
    * 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式
    2 D* s- r5 A( f/ c2 C0 a6 V0 Y# |* 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息# J4 F, r5 U2 y6 h4 E( N' ?

    7 ~8 e$ U2 i6 x: Y! ]$ {案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    1 `+ ~$ \  j2 @; J% U0 Z+ U3 v7 _- t; g
    * 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
    ) _8 u+ s: Y8 `! N$ P* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    ; M5 {& K# w) I" r" P* 之后你只要照猫画虎,即可制作自己的图片词典了
    2 k5 y' o; b% X: n: f9 s
    " l0 s  Q1 _4 Y3 s' ]5 Z4 ~; p0 z## 使用说明- i  V* z# Z: P; |

    , M1 O! f6 X0 L% p3 g' k( Y  x" ?, ]4 Y### 极简使用说明& j  I8 O' ?, Y% d
    ' |; T% t; T3 S' y
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。& \; n( m/ b% j  s' ]9 u

    : w8 H% T$ r7 o) T' B5 h* X/ s  f% T### 概要使用说明
    7 Q* K( n4 _( j1 R1 b: z- q6 [# r  w
    1. 按格式要求准备好词条文件  a8 D( Q; u; |
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    # z! L3 F/ V, _2 q4 N5 Z3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。# M* G9 Y8 g4 t6 u& |
    3 N$ p- Z5 C$ b6 h" x
    ### 详细使用说明8 k& J, l) Z  U9 W% t. r

    0 S7 x  V2 u9 \. }* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。
    ; O) B+ z& y. v1 c. @& X* 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。& ?/ N1 n) m. D
    ; W1 P3 _( D8 i8 C' M
    ### Tips: 使用更便捷快速的命令
    ) v' C0 m5 e% `9 U2 U8 R5 G8 o4 q: z' K# f0 [% X9 G
    * 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦1 i6 k( O& z" o

    & E8 [; t3 d- e! U$ g打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。+ h2 u: }' ~4 d$ v" V

    : S- D: _) G0 e4 I- E* I9 M* 那么建议使用如下更快的方法(自动寻址):
    ; L. M/ C' k) R* j7 k+ A. L9 f
      k, K2 R* S' z) P用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`
    1 r8 Z0 z) ^2 A, v$ W3 L7 @2 ]6 ]6 G9 [9 {* m& {1 A. l9 f
    甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`! q7 f* O5 R- R. T2 }) J$ ^' d$ {& e

    + a: {1 k& X: r5 k( o5 l1 ]这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    # l4 _" z0 I( f3 @9 g+ R" Y$ u7 L- r( P
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`: C3 Q' ]/ d$ [0 I* o4 h6 ]
    : G  S, \, p  X
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。
    4 z- F: x& |9 h& z/ I1 y; u
    " |# J7 [  j( c4 h- x- @
    # o0 _* z5 U7 t+ T7 N
    ### 相关FAQ2 Y2 k5 I8 F& V) E/ b
    ! I; p" t' P1 {! A
    1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。* f7 M2 w' P' @1 y
    7 m) [! o& ]) e9 N2 j: H
    * Q: vim出现乱码- T6 h' M1 J4 p9 ?( A
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`) j& D! Q# L+ e# k

    / h( H$ P; k% Y" s2 K/ Z( |5 R% n     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    : R8 `- P3 g8 U  W9 ^8 h$ }# j# _3 L. g& b$ [9 _& E  _3 n
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    * G' v- \! A& e" k" \9 W9 x, c0 k/ z8 |1 ^0 o
    ## 社区讨论与反馈
    * \% p% o0 q" A' _" k% K! t* j+ w' e! q4 s
    * Github: https://github.com/VimWei/MdxSourceBuilder
    ' d- d$ `* E( h* 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html
    , m* q( M4 {1 d2 `; Z
    : |  R/ g0 P  V0 ]0 F## LICENSE
    - v, h3 B" p- ?( S% a+ M; C! C7 G/ E2 B! m: H
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    - {$ i! ]) _) }9 a, ]1 o$ a
    , w; I" Q2 X2 \. ~
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑
    ( b8 i/ k  M3 ]. e- D5 W
    VimVim 发表于 2020-8-13 12:25
    7 r% a6 T- _2 g& v/ K* d进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    * u& y& j5 K1 c& C$ Z3 c' j- b# m+ {' \6 Q( y: P
    请将 _vimrc 文件复制到 $HOME 目录下,Window ...

    7 `; [9 m8 h: j! l) J! }5 J请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改- E# F' F6 l1 e; L9 h7 b( ~
    查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数  Z. W7 U! N* ^  Q/ a) v% o
    / Z& B. z; \% Q( [
    <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>) Y' i8 [6 S. H

    $ X; L9 _' ^1 v
    ' i; k  \- o# V! e

    点评

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

    [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
    7 G( }# _% T4 |7 \' \- f& A我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    $ Z  `2 c: }% `# h& S8 {
    感谢支持。
    " o& R0 X: C# h; o" X8 z: p5 \  i2 w( ~0 r! m" w5 u: z) t; G
    若能有这样的工具,我想目前的图片词典将发生极大的变化:: B: k* b: N9 k, B0 |

    , y6 m7 n1 K5 \3 n1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    2 ]. L$ ^5 O0 P% p: X5 e2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33( E1 K% Q" x  k( P! ?4 b
    感谢支持。
    & a/ M/ G; I4 q7 i& Q" M; \
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:000 f3 g! Z$ |8 L/ U& L; H, V
    VimVim 兄,相當棒的工具,創意十足,漂亮
    + g9 h6 q' y3 p& ~/ {3 a
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52" L7 F% \& B: z+ n4 l; O
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...

    ! J) C5 X5 b$ X3 F6 U4 E6 e$ Q- J# QVimVim兄,太客气了,自從有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 编辑
    5 M4 O$ k5 T6 f( Z1 [
    wjl 发表于 2020-8-12 19:30: ]) x. m( U& E% D8 N4 `0 Q
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    , R, }5 d1 p. M. E所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:( H9 F' C& J5 [( }' _' o

    ; \0 k$ v4 z" E* Q/ H; F$ i:new5 c( O* ~" o4 H9 m! [; v; ^% Q
    :so MdxSourceBuilder
    ; f/ n$ s5 {- z1 d0 n$ G; W7 O( P8 l3 L
    随便找个识字的人都能照着这些字按顺序输入,不难吧。1 a( J! ~4 u+ c
    & R- t( H: f4 |
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
    4 o% o8 H9 j! Y9 i' a我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。) f( P; H, x4 Y- C; m

      @" S% H4 k8 y4 h
    2 f; W" h& h* X$ e8 r" U  K) Z
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

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

    ' w0 |& @8 g3 ]' 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 编辑 7 O$ J. v  T# k% O" o* A# c0 A% W; X
    VimVim 发表于 2020-8-12 17:12
    $ ~, F) x$ ^- `, D2 W, b2 o# MdxSourceBuilder& G0 `& O' c) y0 h  b

    2 w# G  q4 I4 j/ imdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...

    ) t- i& \  \- e" o' H- J# u! p/ X: @菜鸟一问:
    : h) @; g5 L; b$ Y7 W3 l4 d8 ?用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 编辑 6 P, j" x4 S7 y+ R5 h$ @
    Jiangxi 发表于 2020-8-12 21:27) Y8 M% c+ Z8 b* c/ V) n
    菜鸟一问:
    / y+ a& u, p" r: D, e' ?* R5 `" k用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
    + w; i0 S. |( e" G
    不是字体的问题。! v/ E5 y! B, E+ k$ p2 P
    你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    ! w9 R+ {8 @6 Z6 m9 w7 p9 a& ]' R
    set encoding=utf-88 N/ p: B3 p( r4 |

    " X, F, ?5 h+ M" v1 |/ ?$ v以后就不会有乱码问题了。
    : A! }* ]& j0 j& u) k: 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 编辑
    2 X  A4 t4 V+ P, {8 ^
    ( \" K8 |3 M7 u! N* v# J5 t不用管什么菜单,不影响使用这个工具。
    , c6 }5 v6 D0 w+ C+ Y5 p; D+ @( H8 x. ~  W8 m
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:. B5 ]3 n- ?% A% a3 p
    & W, R# w9 t9 M6 e4 X: L: e
    1. " Basic Setting -----------------------------------------------------------{{{1
      4 U2 c6 s/ p+ A# u& P2 J
    2. set nocompatible    "启用不兼容Vi模式& u( z3 |3 E* v# b3 x2 H% p. u
    3. syntax on
      4 o5 Q' o, h; R. a
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进
      % m+ B3 @" F/ ~
    5. 5 b3 O. Q8 d3 t/ E) m3 f. g
    6. " Encoding related --------------------------------------------------------{{{1
      ! x8 |% [4 S; @1 \
    7. set encoding=utf-8  "Vim 内部工作编码
      $ A8 _/ N0 I0 u$ |$ s
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码6 I; H: x3 H6 M* g6 W
    9. " 打开文件时自动尝试下面顺序的编码' H' t8 c  z! Q# c% V8 D: g
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
      7 H) ~5 Y* K& N+ }+ s
    11. source $VIMRUNTIME/delmenu.vim* B6 Q6 \- ~1 i; g% q
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      - p6 g' Y; {- ~( {# B+ v0 z
    13. source $VIMRUNTIME/menu.vim0 O5 |* }  _) X; |. Q
    14. " language message en_US.ISO_8859-1 "指定提示信息语言1 C$ ^& {& l+ o, n4 y
    15. language message zh_CN.UTF-8    "指定提示信息语言$ x" {/ m# L% o6 r% t2 A" [
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      ) F$ }. W, v& v! l6 R
    17. set nobomb    "取消UTF的BOMB文件头
      * Z2 O" q( r6 U3 G0 C6 ~
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符7 I* [9 U7 X+ ^$ }8 T
    19. set cm=blowfish2    "设置新的加密算法
      + i% G! [2 i9 K$ o- Y/ g1 P' ?8 t8 Z
    复制代码

    9 z; f2 ^4 |5 ~! ?
    % T8 c) d2 S+ w) }: y若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。% p( k0 }! j  H+ n" T
    " s7 n) R) x9 I- _* C( w

    ( z( l! x: u" k/ h& v' I- D' v) \) y( `- K3 n
  • 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 编辑
    ; `* s8 [& y* @0 C- e
    3 ~  i6 e9 a. e) ~" N6 G我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事  c* Q9 o2 `, T3 ~1 T1 c
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    ) q# l% K/ O( F; \我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧8 }8 ^, C0 `3 t1 Y
    * F8 F) O2 _- F, ?* f3 _

    0 r$ l& {' W9 L( q
    + c' A* r( e& ]# {6 L( A2 v
    # K' ?6 O5 X# L" l6 X4 Q" L

    点评

    前面我理解错了,原来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 编辑 ( m: h- d$ n" g( w. f
    wjl 发表于 2020-8-13 09:17/ q; n; P- ~5 n
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事* \- E9 z) V8 e& i# l  N4 i( o
    ...
    . U' F$ T/ Y# b4 @- E
    看到视频了。# Y1 z; m, e' c% p
    1 w6 ^6 e# u9 `4 a3 E) E2 \% V
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。9 ?% F; x" N# A3 \& S* n

    + Z: c5 _$ [9 O- i, J估计你的vim“工作路径”错了。请严格按照步骤来。) G+ m1 _: l; ~3 [6 S
    3 O' q& C" _# x" L6 @
    1、关闭所有vim程序。
    8 E, p5 I& ?4 n" p) i( H2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)% w6 t7 \' w8 Q* c* S# I; a
    3、使用 :new 新建文档
    1 f* S' u( o& g  G' I  d4、执行 :so MdxSourceBuilder.vim
    , k  o4 D5 I6 k( V& K* h7 D6 y
    9 L* B8 C) L# F; W: |( @3 a或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:, |& u6 @' @% F  |
    1、输入命令 :pwd   可以看到当前的vim工作路径; z6 f* W- O) }; r  k% T" [
    2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。5 J0 i) ^; Y3 s. ~
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41- H* y0 ~$ G8 I# x$ [$ {0 W
    看到视频了。
    9 V5 Q' H. A3 @$ v' h
    - c& U, f( m6 E. S: Z5 L你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    / F2 {6 n6 r' {$ T7 {如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    4 ^; `* l3 ]0 ?4 i9 o8 s4 h0 k" ======================================================; p2 p* D3 v8 R2 h' d
    " 以下为程序正文,不熟悉Vim的用户请勿动
    - A2 g2 D. y) q" R* @$ L0 V+ I# `" ======================================================
    ) s2 U2 }& o3 y# f) h% c3 [1 y; ?"
    ) a" w$ G, q, h1 c' c"9 C+ Z4 N3 ~+ h! M
    " 取得本文件所在的目录,并设置为当前工作目录8 G! [3 C) h& A- A7 W; [
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')  b! i6 U  G  |
    execute 'cd ' . s:home
    4 c) J! y5 i4 \
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    9 q: D% Y$ [" S看到视频了。; D: E2 c0 ?* Q2 M$ j# B( G, c5 G
    . X3 h5 U5 B3 y5 Z3 r# e8 q" ?
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    : o: R" e) z" W+ S3 l
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了0 i7 b% Q) X* i+ R2 q+ G) e0 \
    : N- c, n; E) i5 ^5 `9 H
    https://s1.ax1x.com/2020/08/13/azMjaT.gif
    3 D. Y, Z+ {& z6 i8 I  V4 m8 t
    1 r2 ]0 _6 V3 `) z3 ~( f" Y7 N$ E% s4 z( O
    ) W) ^5 U9 J% e
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑
    ! Z4 @& g; _8 e
    wjl 发表于 2020-8-13 10:01
    % V% ^% s4 |' Q多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    % }7 a2 N7 v) }" k: r6 W, w8 b: }( V" G
    https://s1.ax1x.com/20 ...

    ! Y2 Q; A/ s* `: y9 P* ^% z) y4 w' z我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    , D% x5 ]/ w" P4 A
    ' N2 u* d8 e0 n. `此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:
    5 V( |3 e5 T$ H/ E6 q
    + I$ \5 P" s) g$ N% ?pip install mdict-utils
    4 H( Y4 B* K$ |; H
    ! B2 H$ ~* F+ D1 @5 E' T) _& C1 g, a  z& _
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑
    & k6 l& o: r3 S) H# b' d" Z1 M
    wjl 发表于 2020-8-13 09:17+ ?. f" e2 E6 a. }: S3 e( }$ _
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事# r  P9 O4 Z# ~, x% K
    ...
    ' h" d% _' H5 _
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    4 U! E3 J$ u2 K' ]# `4 q  ]! B
    . B3 w) K* @/ p. K( ^7 ]; z) C打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    1 E9 J# n  I( R1 [; h- o/ ~% C& j8 k: `# p* \, Y) E
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。
    * |" R7 M% Q1 V9 K" D
    % f4 i6 w0 x( G1 ?
    : U3 b7 Y" Z/ D  }3 D1 ]
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:492 y* L' g' A1 Y# f% Z2 i$ y
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    $ _# l9 X( X8 A9 f# I& O3 S0 r/ P
    打开Vim,单击 “运 ...
    8 `5 ?* j& k, Q
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了3 C0 I1 c3 J: e& ]
    https://s1.ax1x.com/2020/08/13/azsapd.gif7 q- h: X4 N5 c4 o

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 \: A* }  R' A1 R. F
    VimVim 发表于 2020-8-12 23:204 q/ t* Q* ^* J% F9 ^7 U
    不用管什么菜单,不影响使用这个工具。
    * C8 `6 d! u9 L4 l5 n+ g4 k7 z7 r, r2 ^- \1 _
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...
      Z2 I& R$ D( G. T; C, R0 l1 H
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    % [! p- O0 Y/ k% [* c" n
    . R& b+ ~1 a4 i1 V$ c请将 _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* q. j! E% i  M
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    " }- @2 N& T6 b& R; Ghttps://s1.ax1x.com/2020/08/1 ...
    3 \* j  a; v* y! U4 f6 F
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-4 07:39 , Processed in 0.035169 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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