掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5819|回复: 100

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

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

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑
    8 Z# z( u; V/ j: e3 j% Z. F" w2 D2 J5 \
    3 w" F" w; L8 k# Q4 O  Z8 ~2 F! W# 发布地址5 |8 J* X& z) f
    3 a' ?# Z5 Z& i4 [" L. R8 l) {/ x
    https://github.com/VimWei/MdxSourceBuilder
    " I$ o; ?; u( A( m) H. z" `/ A7 c- Y+ x' l( s9 ~
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件; R  \8 w6 N# ~1 F) W- K
    # f. f) o. T' c% U
    # 动图演示
    2 S3 j+ h" x5 u: [
    + s% d7 L0 O, O& @$ l9 g" [; O- p8 C8 G3 r6 P! F2 {
    " ]" _4 V+ T9 }
    更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/2 a7 ~9 h7 ?- D3 X% g
    3 y8 B+ J) m8 o, c
    # 缘起9 E! Y, X# u: p# }

    . a$ x2 S- z. A% p图片词典的制作规范与开源工具
    . J9 }- d+ Q! G3 x5 w5 r1 `* L- I. T, fhttps://www.pdawiki.com/forum/thread-40857-1-1.html7 G  K7 ^- |& x5 I0 ], o
    7 u# L& I8 u1 h+ N
    4 X+ d( @# a, D; a, P2 {! r
    % Q( n7 @5 X2 P, W2 N% r3 K
    & _+ ]& z* N4 {0 z+ P
    % ?/ a: l; E6 M. m1 Y, D

    ( G. m- Z6 g  W) J- C! X% A2 ~! s+ `8 r) m7 y; q

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 ; O' d; ~0 B9 i9 E: n1 A" r0 n8 \

    2 P* X  b7 u2 ]7 g- R7 T  {# MdxSourceBuilder7 \8 r8 |2 m$ A" i4 }# O' `
    ) A9 G$ l8 L9 w( |
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件: X5 h; C+ w* j
    7 b0 p( f$ @4 G: R0 `( J

    4 |* i; d6 \) d5 a## 背景
    8 ]& ?3 T" P# P  r4 S5 @7 Z' L5 v4 {
    & _; f& i, w: b9 ^* j3 |# \### 需求背景
    0 r1 ~6 G" b. Q( x! @! W" v
    2 D7 x! Y% [7 ~6 U5 k; e时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。6 ]6 L) @; p" n3 n1 V
    & D% m. Z9 ?0 D  k
    但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:
    7 T5 D0 R# j4 A/ m6 v: B
    - ]5 b* c  ]. T$ F) A% Q! `* 导航不理想,极大降低了用户的使用体验
    5 ^, U2 M5 z4 ~* 制作修订过程复杂,极大干扰了制作者的热情
    1 V) K& z9 y7 H/ d6 Q# v' g6 {
    8 _. j; k5 w! J# o1 i: f1 [( Z! E$ s这完全可以通过工具来解决。, H9 E# i4 q+ }

      \3 @8 A. N9 O5 {( E### 程序设计背景7 n4 f7 T2 K! d( n! Q8 U: `
    - T( p0 d, W' T4 A7 N+ y5 h
    本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。1 M6 C, u1 i$ h6 R) x

    0 `  S) \+ S7 ?% B1 g, p& T. Z本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。- T9 |" b: z9 ]- O
    ) M) n. x* H! `" Q! h2 ~% H
    非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。  O& D  L7 E8 J
    4 o9 d: X+ F" W# p  [
    ## 解决方案# U- [5 ^. \" N1 q; u$ [

    / Q; R( ^/ T/ w. ^3 h基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件) Z; c6 A( z* m' d6 W) I

      c; d+ f" W& q, `- T1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    : o& X! k% N. I. X1 n+ P
    9 \& R; _  m7 n    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。
    " q  s! j- i, H, K+ t$ k) ~5 a1 A" E9 n* W- L# ~7 F" D, ?
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。6 u4 ?2 l# r  j

    ! c* K+ p& _* {# |    目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。' L1 `. _- m' t% O* k
    7 A. S9 n: m- `4 T! z1 M- p
    3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    ; Z+ s& _; B* O( i: p
    ! ?) I- g+ N/ ~3 `3 ^    目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。
    9 O+ `) [, l7 k6 \: b; ]4 l: I- ]* P" \: X& e8 I, `5 n
    4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    5 r: W, j3 n& v) H& W9 Z  J* v9 f9 K2 ]& y. X5 Q
    ## 程序文件及安装8 E0 Y6 I7 x4 y1 ^- \; |

    - I' g1 Z- }0 U根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。
    " H/ x# G3 a# Z4 L% E8 z: \- ~' Y
    7 P  L6 s% ^& B5 @' A4 P/ i& F* MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会. S. H( j) [8 x
    * MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会, `% z8 h! K: O) o% q/ E4 Y% T
    * MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会
    ! g) `3 F/ F, l/ M+ a" y1 t; {  j, l; B3 }) P! |. r
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。) }) _1 Z7 d9 w1 z( h, i' W

    " u% Q7 d$ Y6 \# H! R$ G## 体验案例“火星词典”
    6 O: s1 G3 J. D& i% b; \9 G$ V4 t6 j6 O. c8 `
    为展示程序的特点,特制作了“火星词典”,供观摩使用。
    7 k# S4 G, [" Q4 {; Y6 Y3 l% p
    9 q7 i9 j, Y0 d0 F: o6 U* 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式
    . U1 s/ D& @5 b+ i* 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息5 c& ]# q% k, _- T9 {- Q
    9 b5 \1 U' f4 M5 m  K0 i: r4 q$ x+ m
    案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    2 g5 h% a% d& Q, p' n$ s9 q# R6 {) u4 s1 ^) d; b$ G$ E/ Z
    * 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx! [5 M1 {) P* n$ O+ {. B
    * 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    6 @) L; Z5 _7 c( q9 F* 之后你只要照猫画虎,即可制作自己的图片词典了
    & o8 r. R# S- t/ ~; r* q; `0 k& I  \8 l1 D- q5 l6 l
    ## 使用说明
    % C+ j% e2 z4 Q8 _6 X2 z/ P' d8 B/ k4 R5 Q( ]5 a9 l
    ### 极简使用说明
    7 `8 a4 R0 _! m5 o0 `/ b' j# A. X- P2 p+ w
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    6 }, \& j3 U3 `8 h7 ^" L' N: `& c0 t: U
    ### 概要使用说明1 c2 L  y) |5 ]2 n- o$ _

    5 M, ^7 U7 Z2 O3 E' ?1 e3 y( b1. 按格式要求准备好词条文件
    7 B+ O: \- Y! b% k2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数
    + \  h+ Q1 m: n+ t4 u( H5 c3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。0 y9 S; O9 j( }  K9 T6 {4 o: {

    3 U+ l6 m- W1 s. Y% k9 [5 u" r### 详细使用说明
    ; ?: Y; o; [4 c( f6 ^* `6 R, p3 K( A+ a8 r  \
    * 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。7 U" B4 U& ?0 P: f7 H& Q
    * 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    ) x( V6 O+ s2 Q$ y) N$ ~% b; D# s. L9 M1 w% \& Z
    ### Tips: 使用更便捷快速的命令
    ; {0 f# V9 z" K: C# T! q2 A$ N: q9 ~% x: S4 C5 g
    * 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦+ ~0 R& U7 j' h6 u. ^$ @

    3 l0 i' A& L2 d7 l3 z5 D+ e7 A打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    ! }' ]  X* C5 _7 t( l$ Q. A
    " g1 U) b' C6 K* 那么建议使用如下更快的方法(自动寻址):) f5 J5 Y# R. ^

    1 j/ z# z& N* [0 P$ O用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`
    7 _4 z0 K2 t: P0 m* B; Z/ u+ R, x$ Q& P' e1 Z, ?
    甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`
    9 B, P8 Y0 L* ?: Y6 }9 U, n$ z: C! w7 M2 r2 X
    这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。' c* O( E4 x" d5 T

    * s% x3 y2 g; a% G' o" L也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`
    # p% c' x" C3 J- C9 z
    0 j+ g1 n7 _" M# p, N# R% w若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。5 n5 g; q5 a- ?: }
    6 H) [( ~& B( q4 c
    " \' R( z. U. f9 o: t8 t  }
    ### 相关FAQ5 h$ d; r) W! O$ Z3 {  E9 i
    ) Q$ K. q! _% j
    1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    : u' M8 s7 C7 E3 Y6 c& y4 x9 g# L0 M/ Y/ C9 ^: ~, {
    * Q: vim出现乱码1 |+ c! |4 X% l' h' b2 }1 C
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`; I; D' m! O+ ~  d7 w" R
    + v4 j- z: M8 i7 @& G
         其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    / Z0 K; |2 F% h6 _5 n& ]2 X+ w
      A- d; d8 ^9 N  f) I. L  E2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    % P; Z  S/ x! f. L
    " h. m5 X& b2 g2 P/ V## 社区讨论与反馈6 o4 R9 n9 O3 L; e6 R7 a: G) `
    6 A9 Q* [' {/ U2 e2 ~! L+ W3 ?
    * Github: https://github.com/VimWei/MdxSourceBuilder- P0 [7 s- |5 q/ S2 {+ x
    * 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html
    $ e' I/ [; _0 v2 H* s! |( P" i+ g) g2 ^" Z% \1 I
    ## LICENSE5 T4 N. `/ @% ~0 C; B" K
    " I6 j& V* B; U& J
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)2 ^; w5 P2 K2 F: p
      C8 ~' B) ^2 }+ g. x! j+ a7 o0 D
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 " o6 p" Q. k+ v4 c# m  [
    VimVim 发表于 2020-8-13 12:25
    1 N4 E5 B% z5 Y6 g7 W& `进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    4 f$ _/ }4 P, f! T( B; N) F; N- W% `7 }
    请将 _vimrc 文件复制到 $HOME 目录下,Window ...
    - S' n- b; O1 v: i& k& g" T7 [0 j
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    8 r. y, Y( D$ M8 H$ M$ q查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数3 E. }2 L- O3 A7 [

    ) z) V0 y+ ]: P& Y" x" `, C$ 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>" r' K3 E/ r- B/ G( @

    " G0 d2 |9 W  G' z6 c! B. q; X3 z( j" M# ?

    点评

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

    [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
    8 c( V+ p$ H5 m! _/ R5 T我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    9 I8 }1 C6 o: N感谢支持。9 _# u+ _% z) I+ `- B- F6 B! W
    $ F7 y8 w3 f5 F7 \; ^# B* V6 Q7 d
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
      e% b, c  r; J: F- r: x. w
    % Z2 Q9 j" O* A1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。( |9 V( o! x3 V( M/ K  k; Q
    2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33) W2 {/ |# v8 `' E/ w
    感谢支持。
    + a! ]! b% O4 J( q' S9 w* k! i
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:003 L1 d( f" J3 i3 J' f* ]
    VimVim 兄,相當棒的工具,創意十足,漂亮
      h$ j8 S. ?5 C
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    7 O) n  |# M: M! ^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 编辑 - t6 q6 U8 @5 u" X
    wjl 发表于 2020-8-12 19:30, W* b4 W& B/ G. f
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。

    - x+ P+ y7 S" Q0 |所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:- s; A  ]1 Q7 ~, @% j4 F* R$ L) G
    . ^4 w7 S+ N4 e% c
    :new* N: L/ S. ?; b* C9 v
    :so MdxSourceBuilder. j% G2 G! Z2 P7 y) ^6 s
    ' G! H9 k: U5 e* P9 \6 y9 U
    随便找个识字的人都能照着这些字按顺序输入,不难吧。
    : s; t- n. S# h" ^' g* S: W9 {1 R4 \" _7 D
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。
    6 j% J2 A8 s. y$ [1 K' @我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。$ h/ Z1 u. q! V/ F8 s6 x8 _) `. h

    2 \6 }' W- |" z7 ~% @
    # j& i: L3 r8 _
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    ! z1 `4 Y7 O8 z  X; V- @+ |" |; `我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    0 J/ [, c0 Q& ~0 m3 ~( B
    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 编辑 6 Y4 {2 y& }: q- B5 I0 N
    VimVim 发表于 2020-8-12 17:12  k' a% f  I9 G8 o) D9 [6 M; N
    # MdxSourceBuilder
    % H2 ]$ q7 a* H4 e. d) s7 u, E2 j) @1 @  |; }4 g
    mdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    ( }/ e# |2 ]5 a5 x; U* ~7 {
    菜鸟一问:
    , ]4 |: e' ?. d, n% h+ l! k: z用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 编辑
    , R5 @3 g* s9 [9 K; A8 i6 G
    Jiangxi 发表于 2020-8-12 21:277 M/ A8 v' ?; {7 E4 i2 d
    菜鸟一问:1 M! `% E2 T0 f3 P' O6 p+ ?7 E# g5 n" Z& @
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?

    ' `8 ?' P' t# W不是字体的问题。' g6 k+ d+ S7 A( s+ v
    你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):
    & t* t- M: E* C. u
    ! ?' S  l! Z" U( U6 n, M( `set encoding=utf-8; Q( J3 a* {& E* N( Z' e

    # R, z& y' H$ E以后就不会有乱码问题了。
    % `4 ~1 b4 F. U  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 编辑
    8 w4 Y- ?* g* c3 x! T
    5 F. ^' E8 M  E2 Q" m! x不用管什么菜单,不影响使用这个工具。
    # O) a( s" X% v1 D
    ! P6 \* h* q8 \- F若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:
    % o! F( z6 s: l( v; N" n$ e* E5 n- k. f8 q+ K, L' D
    1. " Basic Setting -----------------------------------------------------------{{{14 x* \3 U$ F) e9 u$ |) N
    2. set nocompatible    "启用不兼容Vi模式
      - h$ z( u; |9 d( I) U
    3. syntax on: d% j3 V- @* ?. Z- l
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进4 y5 d% q( k  D% c8 _! e5 y2 k
    5. ! r, G9 z" ~5 S+ u$ [# f* s
    6. " Encoding related --------------------------------------------------------{{{1+ t; d; j' ^1 T8 D2 x2 |& {0 ?
    7. set encoding=utf-8  "Vim 内部工作编码
      * _. }9 S# |9 W& U* j, M  Q1 P+ y
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      3 F! F" o# E. ?  \$ Q4 p7 X+ o
    9. " 打开文件时自动尝试下面顺序的编码
      7 p, D+ n; E7 |5 t# c5 z( Q
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1* E' z* g% i4 `! [) c( Y
    11. source $VIMRUNTIME/delmenu.vim7 M; i5 u+ s9 q* ]. p/ F) m
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none
      2 |3 n5 S% g4 }- u! ?' `
    13. source $VIMRUNTIME/menu.vim5 Y( `7 h# U# I9 ?+ R4 w. t
    14. " language message en_US.ISO_8859-1 "指定提示信息语言& b4 ^9 H" }( s
    15. language message zh_CN.UTF-8    "指定提示信息语言2 n1 q: ]) o1 F' N7 B
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      ; j) U" |% ?$ s3 @
    17. set nobomb    "取消UTF的BOMB文件头
      . h$ R2 k- T* m% H
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符
      " p# {% U& t! n5 ~4 W# A
    19. set cm=blowfish2    "设置新的加密算法2 s0 E0 s& y7 \; _5 b& z/ ~8 G
    复制代码

    # u7 `: l; @6 M% g1 X1 c
    5 g9 D! t: @# w1 E; L' G6 A若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。
    7 f! A: H1 O8 \
    5 i4 X" g( r2 T6 B6 ?- w- {2 A* M/ z# [4 ?' H" y  o. h
    5 {$ T* I' Q$ W* h% A3 @. l
  • 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 编辑 ( n! B# A7 D* \( h, W- A& ]

    8 w) {- q, Q4 d; j* s我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事3 ~3 M8 p) z( G& A0 L% o+ p  J4 x( z
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif6 m% K( J% R: J( j
    我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧
    3 @! V+ x: }+ j0 A* |% H# V& U7 }! ^

    / O. d, G7 U2 M. K! W/ q# S4 c- q) g" `/ _
    5 ]( t8 w1 Z5 W* y

    点评

    前面我理解错了,原来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 E/ f3 S) E# O. H7 l! R+ |
    wjl 发表于 2020-8-13 09:17$ t8 g' F3 \/ ?' |  v- x% y
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    " o7 {9 y# P4 ^' o9 y- p  }/ l ...
    1 }. O5 M  R# x; D
    看到视频了。
    4 _9 W; e# F, }. w0 E& e3 k" n
    ' u% [; ]9 D4 n' V你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    4 l2 R+ Q  V( n2 V9 D$ g* L# W0 C1 K
    估计你的vim“工作路径”错了。请严格按照步骤来。
      q" G: y# q7 l3 h% Z$ U4 V2 V0 |2 W9 h: }) Y3 A! R4 ^
    1、关闭所有vim程序。' ?/ M) X& E8 Y
    2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)
    $ ?8 R2 T/ l: M9 S3、使用 :new 新建文档
    4 T; G! E+ n8 m+ o  H( j5 g4、执行 :so MdxSourceBuilder.vim" n0 E8 V3 |! r5 F

    8 K, p. C. G) \或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    0 y, P* k$ C" _8 _8 |1、输入命令 :pwd   可以看到当前的vim工作路径
    ! c1 j5 A" Y. K( W7 s3 r/ u+ s0 T. ~2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。; K6 v' A+ ^9 n' G% z
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41# r% _% a% x0 F5 T+ J( T# R6 }% h
    看到视频了。$ L! x0 p' w$ \2 f; P
    $ p7 M7 d% ^: a3 d6 M$ b
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    ' y$ b- @9 S/ v. U' `: \' p/ f如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    $ u' |8 v3 a/ I) I+ x) o! ^. d( _" ======================================================. B# Y6 N+ N" ]
    " 以下为程序正文,不熟悉Vim的用户请勿动" f; y9 \" ^+ ], T* K/ I& @
    " ======================================================
      a2 ?: P4 N0 `9 A* Y1 A"
    $ ^2 P$ `5 `. U7 p! U! F' ]2 g5 n"/ c( R: l' m! s& @: o
    " 取得本文件所在的目录,并设置为当前工作目录# b9 y4 H% z8 H8 h2 V+ s8 N" t2 z
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    2 {  t% Q5 ]* Bexecute 'cd ' . s:home
    - A7 g; _$ K0 R8 L9 B: Z' Q
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41
    ) ?- h0 h. W) Z$ y  e7 X/ L看到视频了。- X9 z: Z, d7 f, g' E- J
    - W) E. m+ @) I  C
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    . G- J' K* L8 ^) I" {- e多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了7 Q+ B1 u9 E( L- M* t/ W4 V$ y

    ; c# v  g/ A5 i- ~. p- ^https://s1.ax1x.com/2020/08/13/azMjaT.gif
      Z+ D& j9 g4 N: M# ?8 A$ r& i( D2 G# H

    1 M/ T" E# T; v9 z% S
      j( b, e  P0 ~# w! d  Y. R' T, |
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑
    $ O3 c$ ]6 i/ M9 k( s" i1 k& g$ ]
    wjl 发表于 2020-8-13 10:01
    & w0 n" e6 _$ y( V5 ^, z$ z4 f, k. w多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    : x6 y9 Z- h( T" k: h" b8 l& A7 ?( o, P/ a+ _1 N$ @
    https://s1.ax1x.com/20 ...

    ( m. X/ O  e- M' P& s% e6 R7 j我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    . h" b; [3 l! N4 J2 i- C! Q9 d8 A5 B" L0 O
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:
    . T/ f; K0 E3 W$ l- e5 I
    & Y: P3 z' [, ]9 L/ w" Z$ R8 Apip install mdict-utils ; S$ e7 Z' Q) S3 }% }
    & J2 v. i% k- ]# ]- u/ s8 Z. F% o

    3 F% b. _# N! d& ~2 ]) O
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑
    6 g( a6 @& \: y* r, u
    wjl 发表于 2020-8-13 09:17
    3 W/ d, U7 i$ m. d我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    4 r4 }: x" g0 j; i" ?4 \) r ...
    ' _+ I' e; }1 v  M
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。4 q% e; m* n) P2 x% y; ~& _* d
    5 v3 L; }! [* @7 r+ N
    打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    # ]* ~! N7 @) t  G* N6 B. h+ b3 n  J9 E0 y1 L
    注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。/ S" M) h& z% D( a$ q. O

    & Q5 K. h7 k4 d& X" O
    7 ~; Y1 f" S8 W6 H7 c
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49
    / n' N: z4 H9 [! }% q3 p已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。5 U! R# e7 ~4 W2 J4 Z+ b' g3 P; n
    2 f+ g- F  j& X4 M3 w% N
    打开Vim,单击 “运 ...

    6 n( C! G  q  k) n+ w. X4 q现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了3 h  V! q1 w) Q( B% A- w# L
    https://s1.ax1x.com/2020/08/13/azsapd.gif" v$ k( e' f% G- _, J

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 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 编辑
    ; H, l6 z( U: Y1 a
    VimVim 发表于 2020-8-12 23:20% E+ Q! ]& L2 G. F9 d$ Z; `
    不用管什么菜单,不影响使用这个工具。
    / S$ N. l8 T( x$ B! k% ?9 b; a2 x$ w
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    ) ?% l9 M2 Y# I进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    & O; l9 z! D# r& j+ |; ?. t  D; g3 Z0 y. |( v+ g1 E: ?
    请将 _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:324 I1 p/ f' N2 ?$ Q* m0 j: C! a, s% n" [
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了# D5 f2 f, S5 ~7 K. o+ _9 t3 m
    https://s1.ax1x.com/2020/08/1 ...
    + h- Q& E. C$ X+ E
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-5 04:24 , Processed in 0.109496 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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