掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1009|回复: 1

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

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

    [LV.6]常住居民II

    发表于 2021-8-23 11:11:00 | 显示全部楼层 |阅读模式
    本帖最后由 zhangchaont 于 2021-8-23 11:21 编辑 ) V) A* ~$ J! o8 O
    & i: K+ R; y9 f
    用Anki学习已经成为了我的一个习惯,在不断学习的过程,需要不断的制作新的卡片。当然用Python批量制卡是一个很省力的方法,这个在论坛里面有好多介绍的了。但是有些是不能使用现有的批量制卡的方法的,没有办法只好手工来干。; I0 R7 G2 E" }$ [
    - ?: k8 y: K9 t' P. F+ ]' v7 a% H
    不过,即使是手工,也可以使用一点办法来节约时间。下面我就以一个实例是演示一下,希望能够起到抛砖引玉的作用,大家共同探讨制卡的经验,共同提高。
    " t6 n& h% _' }) |$ ?2 p7 Y/ S
    + X+ [6 ?: d3 K5 r# i( d- t最近我在学习NHK的新闻听力,在微信上面订阅的。以其中一篇为例,我要把下面这链接里面的MP3下载下来,然后把文章中的中日文分开,分别填到对应的字段里面。" ]  W5 F5 H9 ~8 h3 F" S, O
    新闻地址9 N- n3 w& X6 I

    " ~3 k2 g- V+ G( e! q; _首先是下载MP3,以我用的Chrome浏览器为例,在页面上点击右键→检查,在右边出来的窗口里面选择network,下面选择media,然后点击左边的播放按钮,就会得到MP3的链接,选中链接点击右键转到地址就会弹出页面然后就可以下载了,如果不明白就看下面的图。4 J$ H8 R4 X' D# o; G: ]

    0 P8 L# ?& t5 \/ }8 U- F下载后得到一个就getvoice.mp3的文件。下面我要做的是做一个自动改文件名的功能,这个是在macOS上用自带的automation APP实现的。  ?* [+ J! y- T* n0 `! `
    在自动操作里面新建一个文件夹操作。然后按下图安排一下流程。" Y! A! b5 |% q) b; C- P3 d- h" q  C
    ) q/ ]' G1 f" ^( v- R
    稍微解释一下:5 Q$ ^5 j$ q( A" c
    1. 这个自动操作接受下载文件夹里面有变化的文件,并传给下一步。5 J# n) o; x$ t( E
    2. python从stdin里面得到文件名,判断如果是getvoice.mp3的话,就改成一个uuid的文件名。
    5 `/ S! \6 i6 v$ T& w3. 设置一个变量保存新文件名,然后输出的通知里面。
    % S/ w: e$ _" g# C) q9 v: S/ `& ^' H4 N! p6 P
    然后是把网页上面的文字复制下来,用Vim操作一下分成中文和日文并每行中间插入一个空行,然后分别复制到剪贴板里。
    ; h. A5 u8 f8 z& Z下面我们一步一步的来操作:( @( d4 R. u$ Y8 z; J2 T7 o; l  i
    1. 删除掉空行6 A& f' `2 S4 }$ ~3 W" z
    在Vim里面输入:v/./d
    % f0 K6 k* @/ k* T
    ( c! h( T) ]3 g: r5 [% d* F- V* f2. 把中文和日文分开1 W5 Z4 u1 }7 U, x  U
    在Vim里面输入:g/./+m$
    : R9 ^8 I  c$ h( m5 c: ^这个命令的意思是把每一行的下面一行移到最后。
    $ O( B! ]. h; V5 o6 \9 X) N
    / P- l+ H  D- Z7 Y  H) r' f3. 插入空行- d7 S* D; J1 D0 _+ f/ E
    在Vim里面输入:%s/$/\r/g. B! g6 f: X7 J+ W
    把行尾$标记替换成换行\r. n2 j" e1 c' }1 n4 a
    9 r# z: B. f8 G2 @/ F, o
    4. 把前半的日文部分和后半的中文部分复制到剪贴板里
    ; V; ?6 X. p. E$ o1 P6 r:let middle = line("$")/2  E; P$ w0 o! P
    :execute "0," middle "y +"6 B; N7 y* X1 s6 \# K
    :2sleep
    , `' L9 F$ w, m  e3 L4 E7 R:execute middle "$y +", b0 G1 U; X7 J6 G3 I6 U
    首先命名一个变量middle,存储中间行号,然后分两次将两个部分复制到系统剪贴板+里面。中间休息2秒,复制太快会导致复制不进去。
    : K; ~. S. X4 \' H5 J. b复制到剪贴板里面后,因为Alfred有记录剪贴板的功能,所以就可以很方便的在Anki里面复制进相应的字段了。
    ) L, `  T" `- L. F* i+ g& E最后可以把上面所有的这些命令做成一个.vim文件,然后指定给一个快捷键,就可以非常方便的执行了。
    " ]% ]0 G: H' |7 C# ^9 p7 ]/ x$ d: T
    1. v/./d. o# q& y! x. U4 L; y) x  C
    2. g/./+m$5 V0 c: q5 l6 `: |' q
    3. %s/$/\r/g
      ( x6 ~- l% ~! l" b
    4. let middle = line("$")/2: B" H. V# C  M7 w
    5. execute "0," middle "y +"
      & ~# O4 |; z- ]- A) w
    6. 2sleep
      3 }& ~6 d% U  w/ g0 y( N* x% Y
    7. execute middle ",$y +"
    复制代码

    1 k4 ], ^, Q% F1 G6 x  z* m* S* T我将上述代码保存在~/.vim/nhk.vim* U5 D5 X4 ^4 S2 z- h$ B
    然后将以下内容添加到.vimrc文件里面。# K. A5 z4 k5 P$ c  x
    1. nnoremap <leader>nhk :source ~/.vim/nhk.vim<cr>
    复制代码

    2 ?) v: t( J2 {( S7 |5 V  {" g8 f我的leader键是",",所以以后只要把内容粘贴进来,按下,nhk就可以愉快的进行了。5 [' T2 C# i1 c* Z! m( V8 Y

      d3 {) x+ J( d, ^' a这篇帖子里面涉及了一些Python的编程,以及macOS的automation自动化,Vim,除了Python以外不是太大众,但是如果熟练使用的话,可以大量的节约时间,值得你一试。

    本帖子中包含更多资源

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

    x

    评分

    2

    查看全部评分

    该用户从未签到

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

    本版积分规则

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

    GMT+8, 2024-4-28 03:13 , Processed in 0.038712 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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