掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7386|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑 9 g0 J0 D7 Y( D0 E3 H( t0 ?3 e" e

    4 c6 G# ^3 v5 f  f) i" O8 T# 发布地址2 j0 m0 b/ C; S# y' ^( [& V

    ) P9 d& a- i. @+ G/ D# }% a& fhttps://github.com/VimWei/MdxSourceBuilder
    ' T9 o1 ^& l* v; |3 t
    8 i1 U: ?: w, X6 A! `' r0 G/ k一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    . L7 L$ W8 y( p# P/ E7 `2 C3 y) I; i& a! i2 c! G
    # 动图演示
    - W. \) S* P3 r8 W8 G0 [- g/ M( ^: X/ d
    0 d* P* @' e5 R6 j% m
    ) J! I; t8 T* G% o: }' f
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/6 |8 T4 w. Q9 T, f
    - D5 I, u0 l# }, P. I
    # 缘起# ^! A5 u. t9 T/ H8 ~

    0 q! D5 L3 R, V  S$ U2 R图片词典的制作规范与开源工具2 T3 ^) o- j- _' j8 u& }" X. x
    https://www.pdawiki.com/forum/thread-40857-1-1.html! P% X5 b4 W" U' s$ A; ]4 x0 f

    $ D: j& [! [2 Y5 b

    ' s, Q  `" v! V. G, }
    6 f) i& i+ q2 Z, ?( q
    " {2 ~6 G& y3 ^) T/ |  ^0 y+ s7 W% O# x3 }

    7 F2 i+ v2 a9 H  S* C3 {9 d2 o$ V" w" S  \$ f

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 / J- ~) x( d7 K. b+ C3 P4 n
    3 s! L4 z* F1 L! K/ J
    # MdxSourceBuilder
    ; x8 l" Y* \0 Q# r+ w& D
    : j& ^$ N( B( @/ c一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件# e5 D; j9 l* e/ b
    ' I& b+ `$ e1 ?7 L; @) k) P0 P0 a5 m

    : O! i& d3 z4 h0 E5 W## 背景
    2 `' n7 p9 V& Q+ y5 c. J5 u! O* o- u; m/ h: r- L5 Y
    ### 需求背景5 w2 {. m4 S( Q$ e& v" t9 G

    3 B: S; X7 J4 L5 j5 i: ~时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。6 t9 l9 N& q! `

    . p- U2 Z, y1 i! s1 b, [但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:5 i+ z! |5 ^# \6 S  Y4 I

    4 ~0 }+ N( O( v9 N8 K3 c* 导航不理想,极大降低了用户的使用体验
    1 t5 H, Q5 l, h8 Q, @0 ^* 制作修订过程复杂,极大干扰了制作者的热情
    & @% w# V( X! _1 J2 c
    : H1 ~) s/ O) `$ T4 ^+ ?6 U& k8 H8 Z5 j这完全可以通过工具来解决。' u1 P8 z4 |8 D) a2 Z4 d! ?. [/ O
      A5 s2 o# v/ D! b- J
    ### 程序设计背景. k' F5 Z% g8 u
    ( J0 q$ B4 E8 ~& I
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。
    # V$ s5 P/ |. a! d& ]6 }& \! Q; Q9 x' [8 |
    本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。3 D2 g& L/ b7 V6 _; v

    5 r" d; U1 e2 c0 {' m! L非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。
      d+ Y0 p: t6 E/ @5 b' a  W! R+ D5 w* r. U0 y2 J
    ## 解决方案
    ( Q2 D  M4 S. b/ @# L$ t5 d4 p, E9 i8 Y; N( u0 y- D
    基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    8 C; J( X4 M  g$ ]. {
    0 c& w& |! ]) V5 z  d3 F1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    8 C; w1 Z( n9 r) j* Z
    3 ?/ @& w: {& z0 F6 d1 \3 r6 `7 V$ x    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。$ X( E$ e/ B, O% R$ p6 v
    ; {8 F2 J0 y- b6 F% T9 `" y
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    % v; `# r  L+ b+ a' ?) ?* U" ?" X# c4 [( Y7 o
        目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。* d9 y, a! k: D% v2 u! z! d. ^6 V

    5 @, o9 y! N- R# B1 o3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    : z5 x- s9 T& N3 M3 e) g; {0 ?7 m" o, o7 a& X
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。: Q: a9 V) u# X

    - y4 e' v( r( T2 r, j: F9 P4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    + }  F$ E$ W, A4 i% ^. p7 [/ q1 W& ]5 c7 Y7 @; `
    ## 程序文件及安装
    ' w+ Z( [: j  h. M$ ?2 }2 I1 R8 w8 k5 R# h- X) i0 Q% W+ H. w. V! L
    根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。: [) u2 u! C# H$ q: M5 x

    4 e, O1 @4 I% a; o" s5 F* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    " d0 U' X: N7 _% T" {; U! ]1 D- i- Z4 w* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    2 z+ m# W! Y0 C+ [* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会. Y9 k6 b; T0 ^; d7 g+ H! f3 `
    3 `1 b& W2 `8 I# y# Z1 H0 y! T
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    7 Y1 ?3 N5 n& z; F8 s  V5 I9 X% l
    ; q; j8 r/ E# P6 k0 \# k1 T6 y## 体验案例“火星词典”
    $ h1 U+ d6 N% K+ ~+ [0 E+ ~! A/ }* D  K& f% J
    为展示程序的特点,特制作了“火星词典”,供观摩使用。# H0 E9 @9 I5 b# }% |
    " ~! y, I; ?& \; k) O6 D
    * 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式1 m4 k3 |; p7 T- I' T' K
    * 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息
    9 |' E% \4 ~" J: @7 r! }( r! ]; n2 Q+ [, b* }  B2 R+ ~
    案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。' l) u% m8 g  Y1 Z* |3 t& s
    3 [% s# j3 k) M; r) G; N' q6 ?
    * 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
    7 m7 C2 m0 F( p* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决) L: h# W% m7 G! o! ]
    * 之后你只要照猫画虎,即可制作自己的图片词典了$ g! j3 t+ A2 `0 T2 {" l8 m/ ]. b& W, q
    % p4 A/ d6 D( e2 }
    ## 使用说明
    , O. X9 w2 M# W  g  R: \/ ?( F
    ### 极简使用说明3 d1 k; \% z$ o9 p4 H4 Z
    " D6 {5 }( v# k7 K
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    5 T  N: ^3 e- n5 U, B) g
    * t6 ]! L% h+ n+ L2 z5 A1 F3 v### 概要使用说明
    1 g2 C$ e  m6 a  e0 ~5 ?% o; O1 u! S$ a7 Q# d3 K
    1. 按格式要求准备好词条文件1 \& X, l0 {) o8 R' q
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    8 V# i2 O" O3 Z- r" V7 f! d3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    + g7 L# P/ j; p9 \& r( S# M) @! h0 T% t
    ### 详细使用说明6 @/ A$ p; A6 ]3 e- w; H

    + z% y% R- R. t$ d* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。
    ) n! W( i; O" N; N* 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。- O. N8 v+ G: k) d/ k4 D. f' M7 L+ M2 L

    9 d0 E! J" [# A8 j3 X### Tips: 使用更便捷快速的命令
    " \9 R2 X" i0 T+ \! L! B
    4 b1 V; P9 F2 Q; Q9 @) L- |0 S7 g* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦
    " G- o2 p' N6 l5 x! }2 I2 f0 N$ `" w/ E* Y
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    * `8 N" }4 R; B& x) h- f) V( P8 }% t( Z" g$ O
    * 那么建议使用如下更快的方法(自动寻址):
    2 i; Q5 z: v3 T( q2 b
    + A/ \" W, I/ w: r( W0 I用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`6 L! S- R. g* H' S
    * B1 Q# m% T& U: R1 Y
    甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`% T  ^) J' @4 G

    ( O% d( W1 t" A- I: w这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    6 m8 A! F% X3 ~" d, l. G& o! Y! y) x/ h7 P% [9 c( u1 R0 Y
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`1 s7 c+ S( v7 o% P- L8 e
    & H" [6 A  e6 }5 b6 p
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。
    8 D+ K$ V6 |* G- T- o  s) e6 p$ D7 R7 ~1 c, f
    : ^5 ?) }# w( b+ W9 J
    ### 相关FAQ& P/ k* o0 ?" [# G7 _( N

    ' ]1 M  c5 c3 a' `1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    - O) ]4 G1 g. y6 Q2 s" s: C$ l/ x
    * Q: vim出现乱码
    : f! V7 L, h! B8 Y2 X3 f" x4 W* A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`8 h: W) U* v* h9 @

    # m3 ]% b3 D; Q  A     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    , \8 V  C( b. B' _+ I6 ]1 O: D* w, E6 ]9 s: t1 _* V
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。+ n! R$ i9 v7 ~0 T$ @

    # Q6 X' M4 I* o5 m  S) \8 Z## 社区讨论与反馈
    + o% I1 A: O/ E! t. Z3 v  E0 X
    / V4 `+ c! ]& C$ R6 A5 K* Github: https://github.com/VimWei/MdxSourceBuilder
    ! T* i- v$ f6 t( b/ S( U) ~2 M1 O* 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html
    ; A9 G! @4 J0 C: a+ ], Q  j" i
    6 A# A4 W* W4 ?4 \3 \6 W- x## LICENSE
    1 ^8 d5 O2 r0 V  I* E1 z- I0 a3 L2 c
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html). ~# ]& `/ P" `6 I# j$ Q# J: u, w

    ; ]1 F! s( w# |3 B! L; m0 {
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 & {  t# ]8 s8 E% W+ j4 T& }* v2 |
    VimVim 发表于 2020-8-13 12:25/ K+ w$ [2 w! |0 @' r5 _( ~
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    8 e! k1 F9 O9 c2 E2 y4 {8 Y$ U$ [% h2 m
    请将 _vimrc 文件复制到 $HOME 目录下,Window ...
      i3 C- j# \3 V/ m
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改: ~) {1 k5 _; Y6 ^3 O" S" [
    查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数
    9 \2 [2 J% F  k) h1 T
    - @; o8 k' N+ z<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 c9 ~$ q) X, I! R
    , w( O( T) A' P1 a' `) S* R, h# W: J: I0 Y* ?- O: G9 L

    点评

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

    [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
    : Y) f4 e4 G: ~6 X+ D我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    0 P% m  D4 w: V* K. ~) F; I
    感谢支持。
    ' U* B8 P# n" v5 n0 b: W- L6 |/ h  {+ S* H: G
    若能有这样的工具,我想目前的图片词典将发生极大的变化:5 z; j+ s# A) A8 o: X
    : A& y- J- z5 a) I. q+ W
    1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。* r1 M! N+ ]: `* X$ s0 t
    2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33
    & }/ R$ T9 _+ G* g( @+ d9 K感谢支持。
    7 g' h; G6 Y* C% f5 v. K2 C/ I- W
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00& F9 D  n9 W9 K& m, `5 _/ W7 Y/ [; I: i
    VimVim 兄,相當棒的工具,創意十足,漂亮

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

    [LV.1]初来乍到

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

    ' o, n9 x( F- }. d* B4 M$ RVimVim兄,太客气了,自從有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 p3 k' V$ ^! |2 G6 J5 i$ J# y
    wjl 发表于 2020-8-12 19:30! V- b. J, J' }" L
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    * M% \) R9 m, e/ Z3 `所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:! U9 u. O  t& s8 v4 n* e
    * M4 V. ?+ [( G6 o0 K0 C
    :new
    & o7 W# c: s# \) P1 T:so MdxSourceBuilder0 Z$ ]9 @$ v, J% J8 q; B2 u

    7 D( _+ B4 O) j随便找个识字的人都能照着这些字按顺序输入,不难吧。' C! Z/ _$ o* C4 y1 Y+ C5 D) S
    : l- w+ p* k9 m: s: Q
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
    - W4 _5 K% O& o. u0 L! `  @/ n我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    * @3 N2 p% G4 M7 U- _% q( ~6 p7 Q

    ( A* {" t. U" E$ n8 B# i) F- k
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    2 {6 h4 h. f, B$ t8 B8 E我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    # ^2 _! l4 |- N5 L/ @2 v6 O
    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 编辑
    ' A+ h( f/ {; P2 L- R6 q
    VimVim 发表于 2020-8-12 17:12
    9 \, ^0 ]* i# h; U; D# MdxSourceBuilder- G0 n' B1 O) E! e$ O# l

    / D1 W( l. b2 l( E6 x# u! p# ~' tmdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    1 _3 A! o7 _  x. F" O
    菜鸟一问:, `9 \- A3 a1 U; s# G
    用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 编辑 & f1 u5 }' s* F% F
    Jiangxi 发表于 2020-8-12 21:27
    7 b* k# q3 S: }8 R. v菜鸟一问:/ S2 w4 k, ?8 }; a6 |) r, d
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    6 k% ]% F0 m; N) `不是字体的问题。
    5 E' h8 A, h7 n$ v) P* Z" x  y你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    3 L5 M% ^* c. P. Y2 O
    9 J" s2 d. ^; q1 E/ X( S6 B/ d% Oset encoding=utf-8! y( K3 u# _( Y" P0 Z
    ) \' N; h( u/ o& q3 J# ~
    以后就不会有乱码问题了。; _. _" L+ n8 p1 |: l& ^

    点评

    谢谢,加了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 编辑
    1 {1 |: T% a- v& C' G1 r' @* B5 J: M/ {) a/ e
    不用管什么菜单,不影响使用这个工具。
    % I* v  z6 |  T0 G
    * Z: ~5 O& H4 A3 ?/ M* [若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:5 \) B5 x6 z0 @! z9 |) [

    ' z  d; j7 S( Y7 B  N4 W" ^7 E; T4 l; V
    1. " Basic Setting -----------------------------------------------------------{{{1* l' C) O, V# ~3 Y* B
    2. set nocompatible    "启用不兼容Vi模式
      5 j3 m, |5 n/ `/ H! {; t
    3. syntax on7 e. A( T5 E$ r+ E' ?  F
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进" L* v( M2 g1 D# o/ A4 \
    5. 1 z# T1 ~; L6 E# B3 E( \$ t
    6. " Encoding related --------------------------------------------------------{{{1  h$ M! e2 y. Y* w# g. A
    7. set encoding=utf-8  "Vim 内部工作编码6 P% N$ Z0 Q# \( {
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码1 J1 C. P& ^; a( b, j
    9. " 打开文件时自动尝试下面顺序的编码1 y" H5 q5 G0 _" V
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
      ; t! E! `, `8 t# Y$ J
    11. source $VIMRUNTIME/delmenu.vim3 t. I- U, e3 m7 o2 H- S# v2 \
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      ; v; s" S0 c  C7 h
    13. source $VIMRUNTIME/menu.vim
      8 t# A) ~# I$ B8 O8 V0 ?( O5 q
    14. " language message en_US.ISO_8859-1 "指定提示信息语言6 P$ {# O1 X+ }. K0 n: V6 h
    15. language message zh_CN.UTF-8    "指定提示信息语言& }& D8 U8 S# ^
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      3 k- \: O, i" m4 \  f' ?
    17. set nobomb    "取消UTF的BOMB文件头! F' ~( F8 C, _1 V1 G4 C
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符; \+ V* s- [; O  i
    19. set cm=blowfish2    "设置新的加密算法
      8 g& Q- L* ~# |
    复制代码

    " S6 O+ b/ _' n  E  t. d' \+ ~
    若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。* E4 I# B0 n& \+ {

    " e+ D1 v5 w# [% n/ @, j2 o" [0 {$ U' z
    ' C) E5 i3 \6 r5 i
  • 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 编辑
    * }1 Y, z; z# A2 Q9 g$ {; P0 p! b. H8 J; G2 ^# _; A
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事; s6 A( }  v- c3 l3 Y0 n0 z
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif! h& z& N7 l  x) M
    我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧" @4 e7 J4 p5 A4 u, g

    3 n6 x/ \( ^  S5 h4 ?. v8 `4 v
    $ r  c; P) L$ D% l, }
    ; i% v: f1 z- J1 r0 L2 F
    % r% P. u. e7 P* u, N. \

    点评

    前面我理解错了,原来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 编辑   D- Y, u+ J; N! u, A2 `3 I
    wjl 发表于 2020-8-13 09:170 K; I2 L5 z  c- N
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事4 b  U4 J! F3 ~3 T  t
    ...

    8 C- s- C; ^; T5 z看到视频了。: h0 g1 }) Z$ b6 y3 H2 B

    6 X+ W9 |' ~+ N' Q# E! B0 s- D0 i& X1 O你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    ' K4 l) A' g; S  ?( {* n5 K  {4 u: g) p9 d0 }; ]% z0 Q( s
    估计你的vim“工作路径”错了。请严格按照步骤来。; V0 I+ ~$ x) C2 V8 @) k* o4 k& [

    ; C  J  |- {' S! Q) R! t1、关闭所有vim程序。
    ) `" {; ?* M3 l0 z+ r* V7 D2 ^2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)
    . p5 X- z7 _# I, l3、使用 :new 新建文档+ M+ r/ c. ~2 c6 p+ O* I
    4、执行 :so MdxSourceBuilder.vim
    3 t4 c. x" F1 P7 S+ W
    " n0 h, e8 b$ c. D! g2 `或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    * f' C2 C" C) B6 T% ?1、输入命令 :pwd   可以看到当前的vim工作路径- E; I' S) \$ p( U' i) L! C
    2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。
    7 Q: I# Y& D8 X# _. o
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41+ o7 m) B  P/ K/ {
    看到视频了。7 H% _, L, H+ ~! F0 r" ~- q% t
    $ n2 |% z5 G: k
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    $ v, t2 @/ K" a& Q- O
    如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    & w" M5 b6 |3 ]  p* f3 Q9 ?" h" ======================================================
    ' w$ L, F: y$ x* b" e+ f: j4 W0 y" 以下为程序正文,不熟悉Vim的用户请勿动
    6 P( t: n# L1 t# Q( A" ======================================================' J' d) t6 \: {
    "6 u7 n  {4 q0 \, p
    "
    ) R$ G( m) |& Y6 R/ ]" 取得本文件所在的目录,并设置为当前工作目录
    ; t6 c" ^# |' @, U* o1 `let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    1 {) x% Y6 h" {8 m2 v6 Yexecute 'cd ' . s:home
    4 U, T3 h# ?7 g3 S
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    ! O/ @3 w' H4 o0 i% P0 B看到视频了。
    , N) ^( Y3 s4 r0 M& l1 f' \; s2 S& n7 L- N1 a; B
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    $ c2 K6 [7 \7 w; Q' i, j: R+ H多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了+ }$ P$ s: a5 d( T0 h4 V

    & t4 g* K, ~8 G9 h% j8 l0 jhttps://s1.ax1x.com/2020/08/13/azMjaT.gif( e# x/ w9 A0 k$ h4 Q
      v9 \  K9 @9 }0 t0 K
    : A0 ?* |' _( v) t: L

    ; {% h4 a! f! P$ n
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 / A' n0 c0 G" M  F7 ^0 N
    wjl 发表于 2020-8-13 10:01
    , Z% A3 B+ ~# v, A$ Z/ m多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    ' W2 w9 R8 R1 I2 Q! f5 X/ r& e* j
    https://s1.ax1x.com/20 ...

    ! b, i+ U# J; j+ Q8 S; N% a, f我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    $ O( S0 Y  d& y, h& T* t9 i* I0 v3 O5 S: \6 z+ ]% W7 l% |
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:% h) \% S7 I# o

    8 |3 O6 e1 L: t( Qpip install mdict-utils
    ) v: H& E6 Y4 T1 u. {( C6 Z: ^7 ^. ^' t- K6 e8 |

    , G8 |9 n* N: G# e" R0 f' f9 P7 n" x# d
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 8 s. k& H: {  ~# X$ _. c
    wjl 发表于 2020-8-13 09:17# ~3 Q& n# D6 T% M
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事! E# s1 e: ]$ l
    ...

    " c. ~3 }5 \# Y% R! g已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。( d. U- o$ D* s* O# ~  a3 \' p2 y8 {

    . N2 T( h  L( ?* j打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    2 f8 m4 G5 }# o( d% B, @' x- U4 N
    3 @6 S. T' U! a' p2 J  a3 Y# k2 H注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。
    1 }0 V6 n' B  Q# `2 c1 K+ B" C1 o7 y6 Q$ u

    6 P$ B; ~+ o  y
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49
    ) M( D; Q- i" {) v已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    : ~- X. d: A- A, A. H3 v* s( {* O+ b! `0 @6 @6 y: _, r* Z
    打开Vim,单击 “运 ...

    + K4 y8 d+ j/ {6 P现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    , L: P  C5 q) M" U8 shttps://s1.ax1x.com/2020/08/13/azsapd.gif- B9 `! Q% u) f, _8 b" U5 Y$ M

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 Y3 ^) r/ P( l$ U0 A  @3 U
    VimVim 发表于 2020-8-12 23:20
    + h4 }7 P% |$ W; r* [& a不用管什么菜单,不影响使用这个工具。
    , S' e/ p7 a: k6 Q/ y$ L" \: v. _1 h5 ^2 p
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    6 M; ]0 r6 U9 v进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。, l3 O! Y7 u, W4 |6 ^8 {0 x! w
    9 e- J" X- s# ^5 @
    请将 _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% p( A5 u+ W, g5 V/ \3 G
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了
    5 N0 S$ `# G- L# g0 Dhttps://s1.ax1x.com/2020/08/1 ...
    . K5 P1 v: D8 z7 n! N8 a
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-5 22:43 , Processed in 0.030107 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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