掌上百科 - PDAWIKI

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7889|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑
    " i* m1 _- W& A1 ~0 x* c0 B8 p; x& C6 y9 t  X+ M* n, {
    # 发布地址/ ^# j' e" [: a- z1 G
    ; Y  N2 s) t' g$ }, L. |" \
    https://github.com/VimWei/MdxSourceBuilder6 a: b9 c4 m+ Q: @- e6 m
    : P6 U5 b2 F8 B
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件# q* V0 L: W/ z6 {

    ) E, V  \* \" r+ X  d) x+ F# 动图演示* I, {2 i6 t7 S3 F. K( l8 v

    9 a. i3 l4 _) q+ P0 q0 T; X& l! V, b* W9 d( U2 X. W

      r6 M: }" g7 B! x8 r更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/
    # e! T3 s% o3 O% v  r
    ' s9 s  Y0 {  {, x7 s1 T) h# 缘起
    7 d! i* g* W! _' H' h3 i+ H" f5 p5 _6 F9 Q& y
    图片词典的制作规范与开源工具
    6 u$ q7 I, e, `0 \https://www.pdawiki.com/forum/thread-40857-1-1.html( Z0 {4 P1 @+ r
    0 Y& I, |" B: a6 A0 D2 g. W
    0 l' _/ K& j2 A: c. v, \# K
    " I# U5 b* e$ I5 g4 l% o

    * B1 k5 O: N+ W8 d) A3 _, C& w8 [; U8 y0 q# o7 L, Z* h- @$ p8 `
    # Z0 K) L" Q4 a, Q9 ?0 w6 a
    + V9 Y) @& q5 v, a! u. Z) ?

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 . c& k( s6 K! t* Z& R" z. v6 O& T

    9 c# k" R: `2 m" c& a- r0 m# MdxSourceBuilder
    9 T/ U5 |7 u2 K/ g4 e/ `. {- v  x& I4 N( r% f: J4 X7 D
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件0 ^2 k& c, J% `: \$ _4 N$ ]# E
    6 v& ?3 a" [! B0 a

    2 K4 w  B0 e; q$ V# f## 背景
    1 p2 V3 {! B! t0 l
    7 T" X  y) M: P2 L% A- ]; J. u### 需求背景
    , d$ }3 h8 A4 P; e* ?0 D- C2 a
    , |# h$ e8 Y4 `9 A. c时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。
    0 w' Y8 n9 h. ~* L! m, ^. `/ V2 e" _- S" K7 V- u6 j
    但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:: k+ K- b4 i: o, Q9 ~( w
    8 @' y/ z3 m, w) ~2 V
    * 导航不理想,极大降低了用户的使用体验
    ; f* J2 r8 z, y/ l* 制作修订过程复杂,极大干扰了制作者的热情
    - G& w: D! `  D5 j. v, u
    8 C8 _% J* l6 o0 S& _1 N这完全可以通过工具来解决。; ]% c6 j8 L3 p! g, A
    ! w! T; A- N1 z; b6 N$ F) x3 b
    ### 程序设计背景
    ! Q/ N7 m- k$ f) l* t" m
    - F; Q( f% P% M1 ]/ c本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。8 X" a  F! n+ ?, U/ T9 G" d
    " a! d: V6 P' M" Z' G
    本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。# y% ?# M! Y1 k+ ]' g9 j

    2 T, |6 ^+ _+ N, u, J, X# ~非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。* A1 g$ G4 s$ }& }! r

    , M" q3 g6 K9 c; T' \## 解决方案
    1 M- V$ v' V# h1 ?/ D0 X) T3 h- A6 {1 \. S, p
    基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    3 t6 ^) D! t3 |. o6 Z, T# P) X2 O' ]: P% M/ ~: Y# o
    1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。+ i8 V( i* F# I& Y
    8 s9 ^. f) h' u( u* L% P* r
        目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。+ t) d% ?' Z* K6 I5 v( u3 z  b
    , S4 Q! p# _. q
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    + g5 T, L+ L, R' ~1 c/ h& ~; q$ c
    , L+ |& n4 q* ]4 e1 i    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。
    - W* g( ~" D' b' q" T4 V: c3 U5 m3 T7 x- i" {5 l) U
    3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    # w# e( H" ?3 h# j8 b/ g" N/ w8 s# K+ V3 s5 [' }
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。
    ; l; D0 m+ q. Z3 E/ @0 q, L3 }! T" n3 K( [2 K( @) l/ }( b9 D) W
    4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    4 t, X. P5 Y+ R
    ( h3 v5 T3 E/ L/ K$ \1 h/ Y## 程序文件及安装0 W' X; g& p; N, \+ T
      }1 f; R! {* W, z  F
    根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。, u, [: \; G/ _) h% O9 I/ F

    . D" \& T) U% z5 l4 u' ~2 ~7 }! [* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    1 X. L: ]/ W4 V* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    % I3 r1 T. V2 J* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会+ x4 T& E' o& `* d2 t! J$ J
      \: B3 i0 |3 p2 C
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    3 R7 O% a$ p- O& `* W+ W# }% R& ?7 m+ ?$ @+ k$ U1 A0 y
    ## 体验案例“火星词典”
    $ Z- [! I( Z5 G9 M, A+ T
      \& w& C2 @& c; Q6 S" }8 \为展示程序的特点,特制作了“火星词典”,供观摩使用。# G$ R/ Q! N3 H* U3 l
    : j( _! h6 |5 M, m! k; d
    * 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式7 {+ q1 H2 `" ^! k- w
    * 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息
    5 D' ]. x" X: H' E
    0 r9 v9 G4 Q3 d0 j8 q9 N案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    6 }  E7 _" i+ X5 I/ \, X5 Z4 M! b+ |  U- }
    * 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
    ' A6 ^/ `8 a% l* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    3 d9 x7 [# F8 _* 之后你只要照猫画虎,即可制作自己的图片词典了$ Q. x. A2 K; w" U! S5 j
    ; I( N, _& U5 H( ~, U
    ## 使用说明
    , Q2 q2 z. E. C1 ?. f: X
    ) H8 N" c. Z+ P# ~### 极简使用说明( M; `2 p3 p; r* {+ `+ B" A
    & s' y: b, n6 d8 R9 z/ w
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    9 r4 Q! P$ o  u1 d; _- E0 w
    . e% d8 h+ S, p& Y+ t### 概要使用说明4 |* K1 s( V9 `6 c/ x7 m# w2 F. p5 C
    " ^* r- y1 \  u# [8 x' p: O
    1. 按格式要求准备好词条文件9 v; J, m3 [3 s% H6 _9 z# |
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    : B9 G2 R( J& i! p; Z- Q3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    ; U; n- [+ E& C" d1 u" D( K1 m- {
    3 P3 ?. n) b6 m2 S### 详细使用说明
    2 h" A% M6 B* c. L4 B* m) \$ a
    ' u7 N2 p' x/ t, I- n* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。
    + g; \+ n0 z4 v* 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    - ]/ W+ Q- o0 F3 Y  F& b0 g
    7 {* {8 _: u9 J1 A### Tips: 使用更便捷快速的命令$ i0 Y# p+ U& g' X
    0 S3 i0 t% X. X. u6 H: G% }) P
    * 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦; G) O# [4 Y( \8 k5 x
    8 ^8 Q2 T" {. n$ J3 I3 I$ K. G
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。5 [* R  t! g; E, q

    . q6 C1 U0 N) Y1 ^# A0 U* 那么建议使用如下更快的方法(自动寻址):
    7 w, t: ]. U. n' U# e9 V( o4 w! E
    用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`: V# J2 }7 u7 x% k1 @

    % B3 g, G5 W( t甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`
    * x; M& v& N6 x* U9 K% W% K; x, i  j1 v- h+ T5 t
    这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    # I+ [; V. U1 Z5 A" C1 K
    6 t4 Z" |% w9 S  m: {7 m! T& |6 T# k也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`8 c: {' F2 G! O
    ! [7 K- w) m/ ~+ E( i' o
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。
    ( P, G# N8 D* p5 I+ e1 B- c* V9 W
    7 C, Q3 C& r6 S1 x' f* C
    * C/ v2 X. {2 h& H# M5 d
    ### 相关FAQ7 p) E- Y) T+ `. _7 O' `! G: {3 |% x
    3 n/ q# W8 ~5 l2 k  P0 [8 J
    1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。" z( {8 i4 R! @
    2 `% G( n* j0 J' d( v( {! _
    * Q: vim出现乱码. _. |5 v8 ]8 w$ t1 q2 }; k
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`
    ; I8 T* t% `/ [+ D  I. x1 l+ S- H$ V6 S% y
         其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    8 n6 s& f3 Y% N+ O( a- h' q+ L8 Q- G" b
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    / L  ~, H# O: u' B. f  F$ i* z1 o9 s2 L$ r: n0 U
    ## 社区讨论与反馈
    ) b. H7 l4 h5 A3 l! y% D: }$ k4 s, {5 q% o' d. ~
    * Github: https://github.com/VimWei/MdxSourceBuilder( n5 u: x/ |, l4 ^( S" @
    * 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html1 Z. X( D0 @- Q, r6 c1 Y! x  A

    2 `! X3 M3 ?+ S( n+ S0 G5 q' J* C## LICENSE
    ) s0 Z# x: |8 Z
      n' e* R* f( T9 [[GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)# h0 P. z; C/ W$ g7 m

    . q& _0 ~. ~2 ]3 H% [/ P7 P. W
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 7 {& x  q; W" a/ }! J! Q
    VimVim 发表于 2020-8-13 12:25
    : A, x4 y! n; F进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。3 g3 a3 H4 T( ^4 m9 Y9 ~

    9 {3 M% V; X0 ^9 H请将 _vimrc 文件复制到 $HOME 目录下,Window ...

    * g1 i0 ?# x/ U$ _# }- m请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    * Y6 Q- A  g; i' Y; ~& v查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数) H2 @) ?" w; v! {' ~7 _! i/ e

    1 I3 ~/ o0 ]: e8 [3 x<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>
    / E2 g( n; }+ m  V2 Z3 d* n; L+ Z8 p" \' v0 C$ s. V1 K

      W% Q9 G6 D: Q( y- i' Z

    点评

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

    [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
    5 O7 `2 [; y# C1 ^$ m我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    " S" z# ?3 z' x# y% k
    感谢支持。+ n3 v. {" D& L. _# \
    # D+ _, d$ B  \. s
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
    6 p, F' B/ \, b' ~1 Q
    1 F- ?1 U* \( @2 W# A6 E2 F1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    + R8 E1 x# K* V3 a( n$ I2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33; G6 V0 S5 h4 e
    感谢支持。

    , J. F# F+ z' Z4 A$ ^VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00
    9 p3 H6 j2 k. \2 z* D9 OVimVim 兄,相當棒的工具,創意十足,漂亮

    . D8 Y3 X1 I2 ]  C其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52( a& w* g$ {5 ]% n3 z
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...
    , p- }- r3 }9 R- x
    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 编辑
    ' \7 k- O) ~1 w- V3 k
    wjl 发表于 2020-8-12 19:30
    # Z5 Y' Q* v, O; G/ [多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    / w; K7 d. W( R6 m所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:* d( W7 ^5 b* l3 d4 `

    ! K- p$ c1 C, `% d/ Z2 f:new5 E( Q3 S( P8 N
    :so MdxSourceBuilder3 C% c2 f9 ?5 ~* ^1 ~! e  x9 n$ U+ z

    3 W0 O( |" [" h* y8 B  o, s( t1 _# k随便找个识字的人都能照着这些字按顺序输入,不难吧。
    7 T3 y, I8 ~6 T' l6 \! Y( [1 B( Y8 y/ |' B; ]: n
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
    ) Q6 J9 y/ Z9 R, x; d( I! o我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    / s' d# V6 `2 j& o# o) s  R, C2 J! r) B0 Y& |! n5 O( l3 N
    9 V4 v, A' e5 M1 b2 h+ h+ [
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

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

    1 q; T( i# R8 q1 B0 YK大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • 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 编辑 , R# R% _2 t9 f+ ~, K1 G9 W9 J; C7 z8 N
    VimVim 发表于 2020-8-12 17:12; N  t+ l% l9 E5 F7 ?0 ]" ]
    # MdxSourceBuilder1 Z8 ^9 L3 z1 r& t

    3 Y  @9 y( c) d4 qmdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...

    3 \; \5 P4 _1 I- c+ G. S菜鸟一问:0 i! j/ w: b9 d7 Q4 ]
    用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 编辑 , G% T9 a' d& }; P. O7 \
    Jiangxi 发表于 2020-8-12 21:27- ?3 D; {* \  y6 T3 ^
    菜鸟一问:4 k, V& x4 Z# W" y# G9 m
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    ' J* h: \# _( \8 C/ y不是字体的问题。7 p% r; n8 s2 D7 r) z
    你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    1 o. O. f* w2 A, F$ c9 Q8 L8 C( y* P& m/ \2 u& p6 }2 K: c
    set encoding=utf-8: S: w3 u* a- i" W" _2 N
    7 Y- E9 S7 Q; v# l+ G
    以后就不会有乱码问题了。" H1 Y, a) v' l# Y

    点评

    谢谢,加了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 编辑 , a+ F. ]" q* r% z9 L# d
    ( a9 S5 y) C5 z6 [/ y
    不用管什么菜单,不影响使用这个工具。/ [+ P% _. }' R$ c0 m) J' t) v
    * r8 `/ |( M6 O  D; A5 @
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    ; z4 d9 Y: V/ X8 R: |% u
    3 m3 W5 \( M# Z& M6 B2 s
    1. " Basic Setting -----------------------------------------------------------{{{12 j8 P3 _$ @3 E' T' p
    2. set nocompatible    "启用不兼容Vi模式4 L/ k* m8 F- X4 F1 s) i3 k3 _
    3. syntax on
      " Z) N$ `) a$ i( v  K' H
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进* q5 j9 }' }' T: d
    5. 9 B: @7 }6 J6 m0 a' Q* f; s. \# ?6 `
    6. " Encoding related --------------------------------------------------------{{{1
      " D! }0 U/ V5 I( J2 `
    7. set encoding=utf-8  "Vim 内部工作编码3 u* w5 g2 U5 T: @! J. \
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码0 O0 ^+ ^. T" \; f& G& ]
    9. " 打开文件时自动尝试下面顺序的编码% d: w( l4 J9 @8 T' T
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1- |+ U6 e7 m9 _  z' _" b! Y
    11. source $VIMRUNTIME/delmenu.vim
      ' ^% c, I. R/ A& T. Q$ d
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      ' e$ i1 {: z5 Q' M
    13. source $VIMRUNTIME/menu.vim' o! D0 Q& z8 Q2 N: ^
    14. " language message en_US.ISO_8859-1 "指定提示信息语言4 k, A6 n( B( e1 E
    15. language message zh_CN.UTF-8    "指定提示信息语言# j2 _  \2 I. V1 P' k1 ^& R" M
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符3 }- J1 [! ~5 K+ g" L2 m9 l
    17. set nobomb    "取消UTF的BOMB文件头: s" s2 ^0 `* u9 E4 P) b
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符7 M; i8 R$ q# i5 O; u$ d
    19. set cm=blowfish2    "设置新的加密算法
      + s! Z# Y% o1 V+ b1 b4 R
    复制代码
    1 U% p, {; i1 B4 v

    % w& j! K9 s+ b& m' d: l0 j若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。
    . O. h5 s6 z5 j* @, b4 `: `* [- U1 n$ S* _4 w' j8 H- J

    # H0 v; w" Y& F9 U( ~* H7 j+ S4 y$ g' G4 e5 S. W8 S! O8 n( V/ t5 ]6 Y
  • 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 编辑
    $ x2 n# b/ L4 ~! I' U2 H- C
    7 |* a% G* [& D& y2 e, O) `我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事. a6 \. T- `4 Y9 r
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    7 Y2 }: C% \" N我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧
    ! C" {! s3 t; B$ U" b6 z  g: ?1 f7 V+ y0 G" U  C

    ' Y# F1 m% T6 V& N  o5 Z3 k( X9 z* w$ N, m9 {1 k
    9 @% s2 g! w& L2 S- B3 O' \" l4 }

    点评

    前面我理解错了,原来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 编辑
    % H* m* X' v& r! u! A
    wjl 发表于 2020-8-13 09:17; s6 p5 i$ {4 b( g
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    ; P: w2 N9 ~$ X! S0 I ...

    ' J4 c% Q+ m* _. b9 u! f) [5 U, z看到视频了。+ O# Z, H$ u7 T3 X1 S

    4 v0 L4 G! Y, N! t4 ?你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。2 P3 k( B8 d+ J/ S, a
    ( z( f; h8 U1 f; ^. F
    估计你的vim“工作路径”错了。请严格按照步骤来。
    7 |5 e2 T. B9 H+ z
    4 s* B4 y1 \: d4 F1、关闭所有vim程序。8 \% b7 O4 W9 G2 {: D, D0 v
    2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)3 e, }$ }) p$ [$ g9 y4 E; t4 u
    3、使用 :new 新建文档0 q  Z$ b$ s7 F* w, `& q
    4、执行 :so MdxSourceBuilder.vim5 I0 p/ n2 c1 `9 A/ i  d3 E

    ' O; a4 V0 O6 A! W或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    5 z; O$ O6 D* U1、输入命令 :pwd   可以看到当前的vim工作路径
    ; a7 Q0 }' i5 i. }2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。. G+ Z, E% n: h" v+ |) H5 C
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:416 W0 u0 S  \% t
    看到视频了。! f+ L6 l- O) ~

    , E) ]$ J, D( O你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    0 k# V. G/ a2 E: Q9 L% f% Y9 g
    如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):: u" d, d& o% x- k. V* r5 H9 h1 ^
    " ======================================================, B3 @4 {, Q( W, R
    " 以下为程序正文,不熟悉Vim的用户请勿动
    4 l. R$ P9 w& ^) n" ======================================================
    - f2 a# ]3 b& C8 w. p( {"
    7 `. T# I: X5 h/ O, S6 p"
    * }! U/ ]6 P8 @- Q. Z* A" 取得本文件所在的目录,并设置为当前工作目录/ k! E6 v( R5 z. q8 n4 F7 |
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')8 q. \3 [. K3 [
    execute 'cd ' . s:home9 q' Z7 N( x$ A, O
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41& `9 ?7 X8 B4 `  @
    看到视频了。; ^+ W( X! v! e& _
    3 Z; M6 D. u/ C' e; d1 u: O
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    - S7 ]* c) R" z" d0 [& K
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了( [- t6 x8 s% b  r/ a' Y; m7 v- I
    6 z$ q7 ]/ n# r8 R' d3 t
    https://s1.ax1x.com/2020/08/13/azMjaT.gif
      H1 w3 \1 F( N+ K( i
    ; G, I* \, G! n5 ~. _% \) g  N" g: o
    * A$ P0 X" m1 @* v/ I0 S
    ' `) ~0 ?- e7 D: M
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 : f3 i2 ^0 r% [$ Q$ x
    wjl 发表于 2020-8-13 10:01
    # L+ U$ g# f7 H. H; H5 z多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    2 u  i/ b: U) ~, {& _  D- S+ c
    ; `  |" Y1 H- @, b9 D6 A, {3 Bhttps://s1.ax1x.com/20 ...
    ' r' }6 r7 R7 ]  h9 W
    我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。' v1 l; S# g6 N3 ?

    1 Q' k: Y; M6 _1 H此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:
    ' u( j1 e7 b/ s4 Z) y' Z; [
    / o8 z+ S/ a* hpip install mdict-utils
    ' W. F4 A' r" P; g1 K% e
    4 K% V+ \4 H* ?) Q9 ?* v; J. t8 z9 L, J7 h$ R
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑
    0 W$ z; X4 c2 N4 R/ o
    wjl 发表于 2020-8-13 09:17
    7 p+ S7 v) t- ^我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    $ T4 i+ R; G+ | ...

    8 t8 ~) F: X; t2 O: C1 _已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。" e, j1 N# A0 g
    ) e1 \! n4 m4 z& i2 V: E. |
    打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。# u4 O, Q, I/ {

    $ ]; A- _5 q0 p/ m/ z  t注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。
    0 q4 Z" `/ I* f; D1 t, m8 z# ]( s2 t. h! U5 n
    * B- h- u3 N/ X  `- L0 w
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:491 Q+ d- i; b* ]; p" s
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    + ~! w$ E* i$ W- K7 @. z
      b3 G  X" r, C1 v( o( o# z7 D; L% N0 S打开Vim,单击 “运 ...
    / w3 J5 x+ L5 \' R8 @* X1 S: ~
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了. @4 N6 M9 Z, e; H7 v
    https://s1.ax1x.com/2020/08/13/azsapd.gif
    3 P( [; \, D7 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 编辑 ! a5 g! v, O2 h& b
    VimVim 发表于 2020-8-12 23:20
    * U3 L% I$ g1 b/ ]+ {& l! G不用管什么菜单,不影响使用这个工具。+ S0 }% T0 w( |& `

    + }8 r; E$ {# }3 ~7 I( N8 m若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...
    " z! Z, h0 E' L* m/ G# [) Z0 v
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    / B5 d) {2 h( h) {7 g: z+ m$ d" w" H/ k- Y5 C/ p3 M
    请将 _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
    & S; ~, f& H1 m( X4 w1 l现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    ; i5 n6 P1 W5 W5 ~  a5 O  Whttps://s1.ax1x.com/2020/08/1 ...

    5 I) b7 c9 h- I3 B能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-21 13:37 , Processed in 0.034967 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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