掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1010|回复: 1

[经验交流] 手工制卡一些提高效率的方法分享 (Mac)

  [复制链接]
  • TA的每日心情
    慵懒
    2021-9-1 08:46
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2021-8-23 11:11:00 | 显示全部楼层 |阅读模式
    本帖最后由 zhangchaont 于 2021-8-23 11:21 编辑 ' X/ \: S" ~3 [; }6 F! Y. ^
    0 L) R. n9 ^; L' [& n5 [
    用Anki学习已经成为了我的一个习惯,在不断学习的过程,需要不断的制作新的卡片。当然用Python批量制卡是一个很省力的方法,这个在论坛里面有好多介绍的了。但是有些是不能使用现有的批量制卡的方法的,没有办法只好手工来干。. u, H7 c0 [5 X# i' z7 @, h2 O
    / `9 t) a/ {* J0 m4 F' H3 e
    不过,即使是手工,也可以使用一点办法来节约时间。下面我就以一个实例是演示一下,希望能够起到抛砖引玉的作用,大家共同探讨制卡的经验,共同提高。
    " c; y1 P) i7 ?* I2 B( E+ I/ t5 n9 v: _# J- p' s, f
    最近我在学习NHK的新闻听力,在微信上面订阅的。以其中一篇为例,我要把下面这链接里面的MP3下载下来,然后把文章中的中日文分开,分别填到对应的字段里面。! k& f8 ]$ R9 w8 `
    新闻地址# x+ N7 c/ K6 X& {$ A6 Y

    & U; P: T  C3 P# g4 [. l首先是下载MP3,以我用的Chrome浏览器为例,在页面上点击右键→检查,在右边出来的窗口里面选择network,下面选择media,然后点击左边的播放按钮,就会得到MP3的链接,选中链接点击右键转到地址就会弹出页面然后就可以下载了,如果不明白就看下面的图。" ]! Q& |" g; `3 e) o: U4 l- L

    3 D. H+ X1 t$ T- `/ E下载后得到一个就getvoice.mp3的文件。下面我要做的是做一个自动改文件名的功能,这个是在macOS上用自带的automation APP实现的。
    7 k+ V7 k2 b; t4 x" B在自动操作里面新建一个文件夹操作。然后按下图安排一下流程。
    # L, J0 {! _5 p; Y1 ^# `) F# n4 X/ }$ O* d: n& c5 R
    稍微解释一下:
    - J) N$ T$ E4 N( N1. 这个自动操作接受下载文件夹里面有变化的文件,并传给下一步。
    ) P" |8 `4 J2 e9 g9 j% [8 g( s' D& d4 X2. python从stdin里面得到文件名,判断如果是getvoice.mp3的话,就改成一个uuid的文件名。
      }* v. }* \+ B" P3. 设置一个变量保存新文件名,然后输出的通知里面。; y. V. x# d2 D0 B/ o6 U
    : T1 c3 E) U  J2 c7 O3 R# c5 H
    然后是把网页上面的文字复制下来,用Vim操作一下分成中文和日文并每行中间插入一个空行,然后分别复制到剪贴板里。' @- S) G  Y& }6 R- G
    下面我们一步一步的来操作:
    / d1 ]6 i7 T+ ]- w" b1. 删除掉空行
    ( Z* y) H* R# R- V, j1 I在Vim里面输入:v/./d: ]3 x; r$ b  }5 W; O3 Q

    6 @2 G2 P$ w0 S# z( ?. O: K2. 把中文和日文分开
    . R4 n/ D. ?+ u2 m: D# `7 e: r9 C在Vim里面输入:g/./+m$5 r! k4 i) E+ n( R- s+ m% B/ {; l5 h
    这个命令的意思是把每一行的下面一行移到最后。
    , `3 [0 q: o6 R% |8 i! R+ E# Z! @% x, p5 z; \0 l3 s( G' i; k6 x# o5 H
    3. 插入空行
    & U1 f. m6 w# `3 |( c. L在Vim里面输入:%s/$/\r/g% S+ u/ T1 W+ C1 Q# n$ V/ }
    把行尾$标记替换成换行\r
    : }" I' V' M3 k  f* s" q- l$ m' c; D  Y( E1 J
    4. 把前半的日文部分和后半的中文部分复制到剪贴板里
    & C0 V& L3 v2 E3 D0 \8 [:let middle = line("$")/2
    . `9 h8 b# n8 c: y5 X:execute "0," middle "y +"4 O) v. J  N8 l2 L( r0 {: }7 w
    :2sleep
    / c: ]- g' z! D6 z8 N:execute middle "$y +"
    3 L* j" I! z! ]1 n8 r! c首先命名一个变量middle,存储中间行号,然后分两次将两个部分复制到系统剪贴板+里面。中间休息2秒,复制太快会导致复制不进去。
    + B1 B+ x  W9 M. R2 `复制到剪贴板里面后,因为Alfred有记录剪贴板的功能,所以就可以很方便的在Anki里面复制进相应的字段了。& V( }7 Y# u% w0 y" I
    最后可以把上面所有的这些命令做成一个.vim文件,然后指定给一个快捷键,就可以非常方便的执行了。
    * M5 C$ ?3 G: J6 H; b9 R
    1. v/./d
      ' p, F" D/ ~5 [, L1 ^$ K6 m% e
    2. g/./+m$
      9 ^, F+ @) w2 `. J0 C
    3. %s/$/\r/g2 }7 K# {" a4 s& D5 ?+ ~
    4. let middle = line("$")/2  g# t- m- E) V, ?9 H
    5. execute "0," middle "y +"
      , F+ |# C/ O9 q, j+ x% z# E) n
    6. 2sleep
      $ e. g/ a( d. x1 C6 K& a$ b% U
    7. execute middle ",$y +"
    复制代码
    . L* W" Z  W! Q' g2 [5 z( b% r& O( |
    我将上述代码保存在~/.vim/nhk.vim- I1 S) y8 k8 }/ U  K$ d5 o5 J
    然后将以下内容添加到.vimrc文件里面。
    1 V  ]1 H4 u% Y0 ?) W( w' {+ C
    1. nnoremap <leader>nhk :source ~/.vim/nhk.vim<cr>
    复制代码

    - K: j& L. }# [8 Z7 N; F我的leader键是",",所以以后只要把内容粘贴进来,按下,nhk就可以愉快的进行了。& `9 {7 |5 x5 B, s, F
    1 }! u' R7 i6 n- N' f' U
    这篇帖子里面涉及了一些Python的编程,以及macOS的automation自动化,Vim,除了Python以外不是太大众,但是如果熟练使用的话,可以大量的节约时间,值得你一试。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    2

    查看全部评分

    该用户从未签到

    发表于 2022-8-16 13:36:16 | 显示全部楼层
    看不懂,但是很震撼
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-28 21:11 , Processed in 0.051468 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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