掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5830|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑
    * m; d* |3 `5 d% l
      B1 m( P" v3 E/ y& W# 发布地址/ R. p6 R- @4 y' @( c! Y
    * A& [- A1 z1 n/ p! X+ N
    https://github.com/VimWei/MdxSourceBuilder8 O+ l; l9 J2 g! `  S+ ?, V

    * R3 r0 W4 S8 ~/ W4 d/ D2 ]* C一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件
    , k7 V( x! |: R3 `* J/ e( w3 h5 s  J" f, D; b1 m4 M
    # 动图演示
    0 ]8 X0 @8 a1 q$ v3 s# O  ]/ ~" J0 F- i  C: \2 C

    % r& q8 H4 i+ v7 ]  }5 P; ~, q# `
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/1 k* K* d# t, I( a
    7 O8 N9 E1 g" `% A+ m7 C
    # 缘起6 W; m. Q8 y( {/ u! ~: \+ \, u) {

    ) l' D. T& ]* {6 Z1 P. G. f图片词典的制作规范与开源工具
    * @/ k/ L* K& F8 g! C  v1 Shttps://www.pdawiki.com/forum/thread-40857-1-1.html( K1 I7 ?6 c5 z
    ' y; r3 T/ w4 Q8 ~
    7 J! ], b6 B) Z7 N1 D+ v' _, k) R

    : x3 G  C' \8 y  x: ]
    + S$ S( f& w. }! `
    * ?8 Q. o3 [8 i9 y% |6 }( X$ @" t
    7 m* O+ i* }2 A3 f! y/ I# Y5 I) Q
    # V) Q( Y2 P6 C' p% W

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑
    5 ^# [, x8 B7 ?$ U5 T: D0 ~9 c, K' G
    # MdxSourceBuilder! K# D* s, m- }( e# D; i& t9 E

    , p3 e9 R# j# c  h0 u* m& g+ e- j一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件( {% @: r4 N, i8 t+ n

    + G4 x7 P# r/ n4 c
    8 K3 [) z& w5 u) r3 D* i/ T! p
    ## 背景$ N5 }$ g, [9 i. e
    ) P! \" n, u: P- r: g0 w: S( Q
    ### 需求背景. ~' Y; s$ r6 y4 e: {* v, E

    : e( ^$ |: ]  w) _- h$ e, t时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。
    5 Q  a! ?/ e/ q; S0 c9 e+ K4 |. X
    2 f& ^2 a' I" q8 k6 Y$ F, y但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:
    ; G7 j( r5 a( \3 W. Q. t5 q' ~3 \: l4 _# {. o, }" o/ l- p
    * 导航不理想,极大降低了用户的使用体验. M" M& g' A- K3 F
    * 制作修订过程复杂,极大干扰了制作者的热情8 A4 J. k" i1 H

    ; h  `$ F( A, O" Y, a9 K% S这完全可以通过工具来解决。4 k# A& f, [) r7 ?/ @" E- N: l0 g, R

    ( L! q5 ^. E/ [8 T+ a9 r### 程序设计背景
    ) i5 h8 r' u' U1 ~/ {: D+ j; S  t( j+ D1 R6 f0 {6 L
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。" F* U, L2 I2 g0 ]2 v
    4 c/ q& X) X8 G
    本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。
    - E$ z. }+ U+ o+ U
    $ c) {' Z( L2 h: |非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。( ^" j% Z/ l  S; b4 @* k# l" H5 S
    + L; n9 o; r1 s5 Z* [: y9 H( Z
    ## 解决方案
    4 D8 v) G% s- v* Q& w# g7 F( c& F' K% e, q
    基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件
    " B! i1 p. ?6 ^
    2 C$ ~; I2 X9 E4 @7 w2 v1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    & u6 U4 o5 A. r* b  w* w
    / e* G, s2 Y5 E7 {9 d" Z! ?    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。' G  n; e& @6 P8 J2 H+ o

    1 t" N9 e9 |% K! N- `  ?2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。. [+ A' R0 U4 `9 m# H5 `  e/ L
    4 d2 F" S+ [! p5 Y# P, P' f: R
        目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。. W1 P6 G5 s4 @  z& s1 s$ W6 c% ?/ n
    $ j- o; ~9 [. x0 P
    3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    : H4 ~0 c: G3 ?: t% w/ B) c& Z2 P/ A3 Y  @: T
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。  F% ?) a% _: Q" Y
    ) n9 S& M( l$ h7 E9 @# j
    4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    / o3 e/ s$ I* ?" B8 K0 C# _& {# x" F' ?6 }
    ## 程序文件及安装
    ! Z8 }6 L* A( E
    8 L7 v+ u' Z+ t& w5 ]  B9 d  {5 m) v. z根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。
    9 J4 I3 }9 F0 q: ^9 s+ h$ l8 H6 u
    2 U" k5 c3 i9 L! }. G5 n* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    ! P: O  m; o7 B/ M3 s) R; ]* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会) K5 ^2 m" @! y- ^; Y
    * MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会' G2 b1 Q, |0 q& [

    * x; z: N  j. u1 e其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。
    ) u9 _) p0 X8 z& `# ?: B0 I& @  R) [7 x8 n# ?
    ## 体验案例“火星词典”
    3 \' d. m& m& z, a: C
    & F* M3 K/ p- V- ]' R5 W为展示程序的特点,特制作了“火星词典”,供观摩使用。
    8 V+ s# n2 X! ]8 u, y  t
    : q+ P# I# v4 h* 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式/ y7 P; }. _: R: e9 h+ ]0 R
    * 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息" F3 V# W% g9 b  A" |
    ; ?( m! U" F/ C  \* i
    案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。; T2 C% x) y* h0 n% b% a

    8 k$ a# T) Y! X6 N* 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx
    7 @9 V5 ]: e% t$ I6 `) O" l* d* 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    4 |3 ~  _$ j- B7 o1 i* 之后你只要照猫画虎,即可制作自己的图片词典了+ K' E9 p6 ?0 R6 d" N/ O9 F

    2 H* h% Y# b! C0 t/ M# y9 q- y## 使用说明
    1 u) t; H/ e. m. |, {7 c9 n% p" J- m# {
    ### 极简使用说明
    & z- x6 ^. e) _+ U( R5 R( j% \2 \
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。4 o8 z! x: A$ [& Y
    , F  r" ?# Q6 A9 {
    ### 概要使用说明
    ) B" l  l: G0 ]3 S7 u& L( i4 d. f; b& g* w3 C
    1. 按格式要求准备好词条文件6 k. K) r: b. [
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数, V# k4 ^. P" W( J% s7 b% o6 T4 B" q
    3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    5 F: o! K" ~! R; k- |
    6 A, N( O, H7 A6 b### 详细使用说明" {8 D7 B8 b5 ]) r, X

    & x6 j/ C$ b2 Q: i7 \- \* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。
    ; @; x8 b. {* K, Y4 x* 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    $ p' g; \9 k8 c, {2 R
    ' K! m2 E  I+ W7 M" a### Tips: 使用更便捷快速的命令% O2 F) {- v4 z9 F; G

    * S8 @, M; _3 X* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦
    + G# m& v$ c: s! c  g
    - w  g# h" s# v5 N3 Q5 A# ]. D打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    1 u. s# b& T. {: m( |7 ]" {2 O7 `, O7 H: k: C( [6 ~
    * 那么建议使用如下更快的方法(自动寻址):; X1 {$ y* }( ]4 ?6 d+ B( p

    7 h' ]( O& L  T用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`
      Q+ U1 Q- B0 h; [+ O4 S8 t# K" _: X9 l4 a- O8 f; [# ]
    甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`
    - \: V) D! {+ d8 d) A2 k8 R3 c5 j
    - s' ]- l( S8 v: d9 ~6 x) u6 o这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    2 D  H/ T- w: o7 k! V; ]' `2 w. d# Q: {  C+ \
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`
    / P# h+ M6 S- H" M4 O+ w3 W' ^% ^( o
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。( }- s; z, l; |" T4 u9 V
    . Y5 [: |" M$ a# R
    7 ]$ u: M* E8 d$ A1 D& Q
    ### 相关FAQ; y& F) `& V8 A- {9 ?

    2 }; d2 c: C  A. j5 m$ i1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    ' H  o: b6 w6 \  e
    1 l2 n0 z8 o- {3 h" X' Y( Q9 c* Q: vim出现乱码$ T. t. r  I4 |; q# D5 X
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`! B+ J1 ?0 ~& Z

    9 P: l8 J7 h% Z+ C, o! x  o     其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    " I! J+ H* }# d
    - \4 ?7 k  s! Z$ h" J6 g1 v2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    ' X  |0 S: X/ X; E& a( F0 B1 |, V! A) t) ^; c
    ## 社区讨论与反馈
    ! D, F( g1 U7 ?9 [# @! e; B+ O- u$ S2 ^! B+ V6 E6 [
    * Github: https://github.com/VimWei/MdxSourceBuilder6 o5 S  N7 Q2 n6 [" L0 W
    * 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html
    - }1 A3 T) t5 i, `  {
    4 _& F* t) ~" w' T( r0 u## LICENSE
    . y4 S4 e3 |  d2 t5 h5 l3 v2 o7 J# q8 c/ W2 b+ r
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
    9 P+ f) z+ L0 R% C; R7 s' w6 e4 C- q7 S) z
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 : b4 I9 c8 Z: c1 n; ^+ }* Q
    VimVim 发表于 2020-8-13 12:25
      K5 B8 ?' a' n, ^9 {进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    , a! O; l: [9 h# f' L. O5 w6 V7 t' ?9 H- e( Z
    请将 _vimrc 文件复制到 $HOME 目录下,Window ...
    0 z2 F/ g' ]2 B, l2 Y1 A# G6 ?
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    . g* V* P( O) s6 \! D; D2 O+ p" ]  r查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数
    1 N) K& J6 B8 s  r# ]* m( s1 C' |7 I  I& {" Q+ v
    <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>
    - G# X7 F6 k: w, F) ^6 S/ ?
    3 G8 j6 v5 C: a$ k) ?2 c$ n) t  p0 g$ U0 i" U

    点评

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

    [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% p3 e7 Z( M* k) U
    我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    0 O  Q0 t) a0 A$ K8 B
    感谢支持。% Z, B6 e$ l4 H, ~( |" F" i' |
    * G/ R! v4 A: D: G
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
    % o- H* c" \' K) o8 z  d# n8 H7 Y2 `
    1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。
    $ v+ f% e( d4 x# N2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33
    9 ?+ g7 v* r. G/ J感谢支持。
    3 Q) Y; l9 p7 a# R9 \* F
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00
    / ~# [& N2 v+ G8 RVimVim 兄,相當棒的工具,創意十足,漂亮

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

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52
    3 K3 }1 u6 _, k4 ?5 @: [8 @3 H% G其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...
    & @) ]0 H6 ?2 i! E% W5 a5 u
    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 编辑 ( [3 ~5 R6 N0 p1 B
    wjl 发表于 2020-8-12 19:302 F  r6 P/ A5 h1 b
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。
    + Q4 M& M! d/ n0 e8 i' F8 ]! N
    所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:( }# f: e* c; P+ {9 H1 i# l
    0 e5 X+ h% C9 M% a
    :new
    , t* u3 J- r# a6 A: o:so MdxSourceBuilder  v* H4 N$ V4 ?

    - o0 i9 a% ~# k2 p/ z" [( L随便找个识字的人都能照着这些字按顺序输入,不难吧。# ~- k8 }5 h  }0 y7 }" ~
    1 X/ E% Q- a) `0 t2 z# w1 a! t) i9 [! b
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。: {# s4 _3 M6 f+ C8 e
    我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。
    # Q7 M! c/ V+ w, G  A, @! F: _$ P4 d0 k
    2 a* u+ c* A; @
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

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

    6 r1 Z$ a8 l$ f6 nK大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • 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 编辑
    " g' l) L( k) v! Q
    VimVim 发表于 2020-8-12 17:12% y" {* z- a# `1 W
    # MdxSourceBuilder
    7 s3 W" X$ E' _
    0 @5 Z( a# F) @9 ]. }7 p9 L7 xmdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    ( {+ E) l: r$ ~
    菜鸟一问:) I4 ~  h( Z2 F
    用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 编辑
    ' x0 n3 Q5 o1 s6 k9 L
    Jiangxi 发表于 2020-8-12 21:27
    * H  X# s( _9 a/ C3 s菜鸟一问:
    - b% g( [. Y  x* _用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    9 b" t. _7 F( b3 K9 U  }' D6 ]不是字体的问题。$ f& O3 M! f4 M( c- R/ p1 m2 G
    你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    $ @3 N) j/ W) R4 }: P# x' p  \* {' B: _
    set encoding=utf-8
    $ }! g$ |" t" b. G* r7 D
    # H  p- L3 ?% D; h* J" G; i以后就不会有乱码问题了。6 ^2 a! q2 y8 m6 p. m

    点评

    谢谢,加了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 编辑 3 g4 x6 K* u3 A

    7 T' Z* c  I( Y5 B4 F. m' A不用管什么菜单,不影响使用这个工具。
    . J, Y1 c) \  y0 ^+ R0 J  W; d3 G% m+ c% x) H
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    8 [4 _! }2 L8 g; o6 m8 O) F5 }
    - {% @0 ~- J# p3 U; b
    1. " Basic Setting -----------------------------------------------------------{{{1% R' b& f" u/ o( j. V0 {; P/ k
    2. set nocompatible    "启用不兼容Vi模式, n6 d8 A8 |4 o2 V6 l
    3. syntax on! m6 x. c8 V; U% f6 _0 c- V( W
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进
        E1 k# \; \1 W1 A4 I- H( x

    5. 4 m, y- f- l' O' }
    6. " Encoding related --------------------------------------------------------{{{1' o# J8 ?8 z5 Z' P5 t
    7. set encoding=utf-8  "Vim 内部工作编码+ ~- A( P  |' u
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码+ e) s0 m/ a! @9 M
    9. " 打开文件时自动尝试下面顺序的编码7 o2 A  X. @, }- J$ E0 o9 W3 F
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
      ! s3 m2 [1 P7 c( S; M. a( u; l
    11. source $VIMRUNTIME/delmenu.vim  Q: t: Q1 B' B6 v& ^+ D7 n
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      & F7 k* T! `. |$ Y6 I, R+ N" w! k
    13. source $VIMRUNTIME/menu.vim& w; K; t; ~8 ]( j$ J, x* c
    14. " language message en_US.ISO_8859-1 "指定提示信息语言
      ) |& j& C! c, P/ a6 ~
    15. language message zh_CN.UTF-8    "指定提示信息语言
      2 C$ }6 a: f. d) r* Z# ^  Z3 @, c
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      ; R& D5 S+ {0 b( P# M, {
    17. set nobomb    "取消UTF的BOMB文件头
      0 y4 \  b7 O5 o6 g
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符) Q6 h" H0 t* S; i9 Q4 B
    19. set cm=blowfish2    "设置新的加密算法
      / u5 b, q" o/ E9 h( V, `2 F
    复制代码

    4 ^4 {5 v* f3 X, G5 x! `$ v# a- x
    若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。- n+ I2 i6 Y2 H" I

    " L' }* ]* @7 C0 ]. Z9 w& x* r7 P9 W9 z2 m# P
    " k" l# h9 X2 O. e9 p' C
  • 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 编辑
    3 V. j( O9 n/ _2 E) ^" G
    & Y+ j) ]& y. A( ]0 K- `我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事+ t8 Y( {6 F3 S9 Z4 e7 Y% C% h5 W
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    3 H$ _, S$ |/ a9 ~# L+ }我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧3 i" O3 s. s1 Q( _4 _

    " {" V+ ^: Y7 j! ]' I* C
    % [% q+ l/ S/ _  P+ F
    % X: b- O5 `+ o! B
    * h% M$ {6 u: k+ H2 d+ i# u/ u

    点评

    前面我理解错了,原来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 编辑
    7 z+ k  R- K/ {: B4 g( t
    wjl 发表于 2020-8-13 09:17% l; h! B' _5 q3 k, V
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    ) w6 M# t, A/ ]# o0 u* ]1 X ...

    , @1 I4 Z8 c+ l& [* z# I' @看到视频了。3 j2 I& D$ N& x! C. ?( ?
    2 v4 l$ O& B8 m
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。8 ?# |1 {$ u- h9 |/ l9 A( w# Y" R

    8 I/ M0 _- L. x0 F估计你的vim“工作路径”错了。请严格按照步骤来。6 @* a- Q2 L& S+ M$ T# K1 i$ g+ {

    0 B" b* k$ R+ i& h. m9 C& l& I1、关闭所有vim程序。
    ' A; ^- P% ?7 f  v! G& J- k: C. }2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)7 K/ C" n1 A) h; \) l; q
    3、使用 :new 新建文档
    & c& ]# A, C" u( v/ d( f4、执行 :so MdxSourceBuilder.vim" `7 i8 {1 x1 x# b7 C8 U

    , C" s/ d9 E. L; s  J. |或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    * o, B+ k0 U/ g" _# h. l) @6 H3 {1、输入命令 :pwd   可以看到当前的vim工作路径5 N# O6 b! `7 l2 |% q+ E- G
    2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。- a+ o9 @: L+ a/ W$ B
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41/ t' f( m" y- R
    看到视频了。
    8 q1 i+ u/ K% L  z% z. T7 m2 G  I- D. K5 j* j# L: s
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    + ~2 N, w0 M* H' Q0 t/ a# T如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    + q( L, I8 w# ^0 e" X& [8 `" ======================================================
    / v9 y) y7 }! S" 以下为程序正文,不熟悉Vim的用户请勿动9 K6 g, z9 k* [) b: L  Z
    " ======================================================
    + q6 t$ h. U8 V"
    . {0 r( Y' j1 X"
    * c: Y" J4 ^% Q5 i& V* ^  T( A) A% q" 取得本文件所在的目录,并设置为当前工作目录9 l: s# u0 [* L3 J5 ?
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    * W' L, n, O1 J' e# ~( r0 jexecute 'cd ' . s:home
    9 F; L0 ^3 c. x! U
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    4 ~9 Y# t1 ~& f; c! u: X6 U; ~* T看到视频了。# }& @. ~9 ]( A' p: A7 l$ b$ o

    + N3 s+ D% `' y. A: e3 x你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    2 F2 [% i: l7 r& f# }8 Y
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    4 z4 `+ p2 c0 m( b5 Z) x+ Z
    6 o0 `8 P) |+ p+ ~+ J* xhttps://s1.ax1x.com/2020/08/13/azMjaT.gif
    5 D$ V+ f2 a7 O0 h, F2 `1 j# ]$ t/ P5 U4 o3 ?

    1 b' R! q; c/ T5 E: X' l
    ' h, o0 e8 o- F9 G2 B
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 ( g8 \7 W' Y9 V! k9 @2 V& x
    wjl 发表于 2020-8-13 10:01
    % a$ V. @0 S! _9 I  q1 U  _) j" s多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了- x4 }8 g# S" O. B% v
    " L* ?* {9 z* w( x" J- e
    https://s1.ax1x.com/20 ...
    ( X, h9 o" j$ v9 C6 c
    我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    ! I9 c! J+ n$ ~$ J. M  Q* `! n5 J1 k1 C+ L' c) V
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:0 D+ F/ _& ^3 R

    . s6 N! ?8 ?' F7 `, t7 Npip install mdict-utils 4 J" r! H' {6 Z# X0 g

    * }& K# A$ h. X6 ?) M* W" P/ A
    ( h0 E  Z# S7 T
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 ) |2 c! Q: w' o* R
    wjl 发表于 2020-8-13 09:17
    0 c) o9 a* U( R# [, Q# @1 h我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事0 m. ~" `5 V1 b, j6 w& O) x
    ...

    / U" o& B3 T8 f9 z已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    4 T8 ?7 N2 j+ p9 p
    0 ~. q! R  u0 s" x$ Q8 K打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    ! G) {/ ?+ c# M' [5 |4 X  c# A! o8 n  l0 K4 |+ ?- t
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。* r- i5 P, g( L+ h

    ' E* d) c0 n. l! Z$ N7 H) o  M6 l3 Q
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49
    % j. d7 r5 g2 W6 r已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。
    % N% j0 b% D) K+ M" L8 r" t' ]9 A% A8 o
    1 J; g, O; `/ L! W2 }/ Y打开Vim,单击 “运 ...
    2 `+ z5 m( C0 o# A  L! ]5 S6 C
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了: h4 K5 J0 m* E1 i2 p% a+ o8 u& U
    https://s1.ax1x.com/2020/08/13/azsapd.gif
      m! d, |( x& R4 v0 n; X' |+ G

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 编辑 ' F+ p. G# y7 o, j$ l5 u: F
    VimVim 发表于 2020-8-12 23:203 q, Q% }3 j: u" _+ {
    不用管什么菜单,不影响使用这个工具。& j+ w& U) k+ `. C

    + p4 ?( }; j1 J# m若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    & }4 B: d9 b1 m2 T. v% q: }$ H进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。# z( `& @. ~/ Q6 N
    / r& Y$ M0 S' l4 X: w- ^$ j9 X( D5 i4 q
    请将 _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
      R1 S- K- e& y: d+ N1 V7 ?现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了! I% U' v7 c0 f0 h7 ^  s
    https://s1.ax1x.com/2020/08/1 ...

    . Y2 K6 p6 S. T! y9 \6 g! h能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-5 10:17 , Processed in 0.059530 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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