V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hlwjia
V2EX  ›  分享创造

工程师装逼神器👨‍💻 - 命令行查单词工具

  •  9
     
  •   hlwjia · 2019-08-05 15:17:13 +08:00 · 8430 次点击
    这是一个创建于 1943 天前的主题,其中的信息可能已经有所发展或是发生改变。

    缘由是 618 那天看到阿里云有促销,买了一台最基本配机器。

    然后那段时间也正好“英语”上头,所以就突发奇想在命令行里查单词多酷;后面搜到有几个可以这么操作的,但都是要安装,感觉为了查单词要安装个包,多余了点,就做了个无依赖的(你要是连 curl 都没有,我很怀疑你是不是目标用户)工具。

    比如你要查 cool 这个单词的时候:

    curl v2en.co/cool
    

    或者

    curl v2en.co/凉爽的
    

    要查词组的时候:

    curl v2en.co/cool%20down
    

    后面一位知友 ChaiFeng 改进了俺之前写的 bash function,如下:

    v2() {
      declare q="$*"
      curl --user-agent curl "https://v2en.co/${q// /%20}"
    }
    
    v2-sh() {
      while echo -n "v2en> "
      read -r input
      [[ -n "$input" ]]
      do v2 "$input"
      done
    }
    

    现在在命令行里,你就可以直接这样操作了:

    $ v2 cool down
    ╔══════════════════════════════════════════════════════════════════════
    ║   _____   ____    ____   _          _____    ____  __          __ _   _ 
    ║  / ____| / __ \  / __ \ | |        |  __ \  / __ \ \ \        / /| \ | |
    ║ | |     | |  | || |  | || |        | |  | || |  | | \ \  /\  / / |  \| |
    ║ | |     | |  | || |  | || |        | |  | || |  | |  \ \/  \/ /  | . ` |
    ║ | |____ | |__| || |__| || |____    | |__| || |__| |   \  /\  /   | |\  |
    ║  \_____| \____/  \____/ |______|   |_____/  \____/     \/  \/    |_| \_|
    ║                                                                         
    ║──────────────────────────────────────────────────────────────────────
    ║ 发音:
    ║ ku:l daun (英)| kul daʊn (美)
    ║──────────────────────────────────────────────────────────────────────
    ║ 解释:
    ║ (使)变凉、冷静下来、消气、降温
    ║──────────────────────────────────────────────────────────────────────
    ║ Try curl v2en.co/:help for more commands.
    ╚══════════════════════════════════════════════════════════════════════
    
    $ v2-sh
    v2en> cool down
    ╔══════════════════════════════════════════════════════════════════════
    ║   _____   ____    ____   _          _____    ____  __          __ _   _ 
    ║  / ____| / __ \  / __ \ | |        |  __ \  / __ \ \ \        / /| \ | |
    ║ | |     | |  | || |  | || |        | |  | || |  | | \ \  /\  / / |  \| |
    ║ | |     | |  | || |  | || |        | |  | || |  | |  \ \/  \/ /  | . ` |
    ║ | |____ | |__| || |__| || |____    | |__| || |__| |   \  /\  /   | |\  |
    ║  \_____| \____/  \____/ |______|   |_____/  \____/     \/  \/    |_| \_|
    ║                                                                         
    ║──────────────────────────────────────────────────────────────────────
    ║ 发音:
    ║ ku:l daun (英)| kul daʊn (美)
    ║──────────────────────────────────────────────────────────────────────
    ║ 解释:
    ║ (使)变凉、冷静下来、消气、降温
    ║──────────────────────────────────────────────────────────────────────
    ║ Try curl v2en.co/:help for more commands.
    ╚══════════════════════════════════════════════════════════════════════
    v2en> niubility
    ╔══════════════════════════════════════════════════════════════════════
    ║  _   _  _____  _    _  ____   _____  _       _____  _______ __     __
    ║ | \ | ||_   _|| |  | ||  _ \ |_   _|| |     |_   _||__   __|\ \   / /
    ║ |  \| |  | |  | |  | || |_) |  | |  | |       | |     | |    \ \_/ / 
    ║ | . ` |  | |  | |  | ||  _ <   | |  | |       | |     | |     \   /  
    ║ | |\  | _| |_ | |__| || |_) | _| |_ | |____  _| |_    | |      | |   
    ║ |_| \_||_____| \____/ |____/ |_____||______||_____|   |_|      |_|   
    ║                                                                      
    ║──────────────────────────────────────────────────────────────────────
    ║ 解释:
    ║ 牛逼;牛 B
    ║──────────────────────────────────────────────────────────────────────
    ║ Try curl v2en.co/:help for more commands.
    ╚══════════════════════════════════════════════════════════════════════
    

    有用好玩欢迎安利给周围的朋友同事呀

    第 1 条附言  ·  2019-08-05 16:20:27 +08:00

    可以 append 了,效果应该是这样才对:

    第 2 条附言  ·  2019-08-06 15:25:09 +08:00
    关于 Windows 下会出乱码的问题,参考 #10

    如果你 curl 出来的是一堆 html 格式的 text 的话,是我这边判断 UA 太粗暴了;晚点我研究一下你们 curl 的是带的什么 UA 我再调整一下
    第 3 条附言  ·  2020-05-25 14:47:52 +08:00
    v2en.co 域名准备弃用,迁移到 d.supjohn.com

    目前 v2en.co 可使用至 6 月底,之后就不支持啦。

    另外是服务器搬美国了,速度会下降一些哈。
    70 条回复    2019-08-10 15:54:14 +08:00
    hlwjia
        1
    hlwjia  
    OP
       2019-08-05 15:30:13 +08:00
    LOL 刚有群友反馈,手机上看,简直不堪入目。。。 在手机上看这个帖子的朋友,抱歉了。。。

    下次应该贴图,好一点
    jmjc
        2
    jmjc  
       2019-08-05 16:25:03 +08:00   ❤️ 1
    有点意思,帮顶
    wqzjk393
        3
    wqzjk393  
       2019-08-05 16:35:37 +08:00   ❤️ 1
    目前用过最舒服的查单词,是 mac 下的 skim,右键查找单词无缝衔接 mac 内置词典,弹出一个框显示单词意思,随便在别的地方点一下方框就消失。感觉阅读时候,最烦的是被打断,因此专门切换到单词软件 /terminal 是一件很难受的事情。
    所以我觉得你可以往这个方向研究一下,查单词好说,但是如何能在不影响机器性能(例如全局监控鼠标动作键盘动作剪切板等等这种)的情况下不打断阅读流畅性地显示单词意思,这才是最重要的
    yl666
        4
    yl666  
       2019-08-05 16:37:22 +08:00
    Incorrect query format. See supported format
    乱码了怎么破
    leafleave
        5
    leafleave  
       2019-08-05 16:38:43 +08:00   ❤️ 1
    Windows 的 cmd 下乱码
    leafleave
        6
    leafleave  
       2019-08-05 16:38:56 +08:00   ❤️ 1
    bash 下可以
    input2output
        7
    input2output  
       2019-08-05 16:41:45 +08:00
    502
    pipmian
        8
    pipmian  
       2019-08-05 16:51:08 +08:00   ❤️ 1
    我一直在用 ydcv
    lz 这个看起来也不错,帮顶
    hlwjia
        9
    hlwjia  
    OP
       2019-08-05 16:51:34 +08:00
    @input2output 重启了一下 :D
    hlwjia
        10
    hlwjia  
    OP
       2019-08-05 16:55:14 +08:00
    @leafleave

    cmd 默认是 gbk 编码,响应是 utf8。
    用 chcp 65001 命令可设置为 utf8
    用 chcp 936 命令可以再回到 gbk

    摘自知友 张嘉越,这些全靠知友,我很少用 Windows 开发。
    hlwjia
        11
    hlwjia  
    OP
       2019-08-05 16:56:09 +08:00
    @yl666 你 curl 的时候也会 incorrect query format 吗? 这个只能拿来查中文或者英文的,你是不是加了数字还是符号?
    635614874
        12
    635614874  
       2019-08-05 16:56:12 +08:00
    @wqzjk393 敢问 skim 是什么软件?好像搜不到
    wqzjk393
        13
    wqzjk393  
       2019-08-05 17:08:23 +08:00
    @635614874 就是个 pdf 阅读器。我只是建议楼主想一下有什么方法能够优化查询方式显示方式,因为这种 陌生单词->切换->输入单词->显示单词意思->切回原来的程序 这样的效率很低而且容易打断阅读思路。
    (当然这些完全是以一个使用者角度看的,你就当是一个类似产品经理提出来的手机主题根据手机壳自动变色的建议吧手动斜眼。)
    HuasLeung
        14
    HuasLeung  
       2019-08-05 17:10:45 +08:00   ❤️ 1
    哈哈哈,有意思
    lostarray
        15
    lostarray  
       2019-08-05 17:41:11 +08:00   ❤️ 1
    @wqzjk393 #3 应该不是 Skim 自己的功能,Mac 下大部分地方都可以用系统内置的字典,右键查询、触摸板单指重按、Control+Cmd+D 都可以
    opengps
        16
    opengps  
       2019-08-05 17:42:32 +08:00   ❤️ 1
    有意思,有种回归 dos 的感觉
    lostarray
        17
    lostarray  
       2019-08-05 17:47:32 +08:00   ❤️ 1
    @lostarray #15 补充一下,触摸板查询可以配置是三指轻按或单指重按,默认好像是三指轻按,我因为习惯三指拖动就把查字典的方式改了,不过日常还是用快捷键比较多,感觉触摸板很难按下去
    ipwx
        18
    ipwx  
       2019-08-05 17:49:02 +08:00 via Android   ❤️ 1
    对不起,我没兴趣装逼。ctrl command t 就很好
    dawn009
        19
    dawn009  
       2019-08-05 18:01:45 +08:00
    我用的是 youdao
    支持在线查词(有道的 API )
    也支持本地词典( Stardict )
    hlwjia
        20
    hlwjia  
    OP
       2019-08-05 18:02:45 +08:00   ❤️ 1
    @ipwx 默认应该是 ctrl cmd d, 有时会选不准词。
    ipwx
        21
    ipwx  
       2019-08-05 18:06:38 +08:00
    @hlwjia emmmmmm 打错了真尴尬。

    选不准词的话,可能是 PDF 本身有问题,也可能是阅读器太烂。目前我用的是 PDF Expert,平时看的 PDF 大多可以查词。说真的,我觉得你做个 GUI app 会比命令行接受度更高一点……
    hlwjia
        22
    hlwjia  
    OP
       2019-08-05 18:08:05 +08:00
    @ipwx 我就是在网页上截的,刚才我随便试了一个 “日常” #17 楼的那个“日常”,然后他自动选了 “日常还是” 四个字,然后搜不出来 >_<
    heyenyan
        23
    heyenyan  
       2019-08-05 18:09:18 +08:00 via Android
    有道词典 linux 版~~
    hlwjia
        24
    hlwjia  
    OP
       2019-08-05 18:10:12 +08:00
    @ipwx 我发现了,cursor 在 “日”和“常” 中间偏左一丁点,就能取到 “日常”;但凡是“日常”中间或者“常”字上面,就会截到四个字。。。。
    yutou527
        25
    yutou527  
       2019-08-05 18:19:33 +08:00
    cool
    lleon
        26
    lleon  
       2019-08-05 18:51:57 +08:00 via iPhone
    如果能读 mdx 格式就好了
    Believer
        27
    Believer  
       2019-08-05 18:52:06 +08:00 via Android
    sdcv
    wanghui
        28
    wanghui  
       2019-08-05 18:57:50 +08:00
    cool
    zsh 里面用 bash function,需要在 v2()前加一个 function
    ipwx
        29
    ipwx  
       2019-08-05 20:21:07 +08:00
    @hlwjia 啥,你居然查的是中文词典。。。。????
    hlwjia
        30
    hlwjia  
    OP
       2019-08-05 20:23:54 +08:00
    @wanghui 应该写不写都可以的

    @Believer 还是要安装

    @lleon LOL 还要读文件呐...
    hlwjia
        31
    hlwjia  
    OP
       2019-08-05 20:25:53 +08:00
    @ipwx 我就随便试了试他的截词,没想到那么经不住考验。英文分词那么方便当然不会有问题
    jorneyr
        32
    jorneyr  
       2019-08-05 21:01:58 +08:00
    查了几次后反应就很慢了,是不是限制了访问的次数呢
    jorneyr
        33
    jorneyr  
       2019-08-05 21:05:08 +08:00
    发现用 curl 访问就没事,但是用 shell 函数访问几次后就反应很慢了,甚至没反应。
    caliburn1994
        34
    caliburn1994  
       2019-08-05 21:17:27 +08:00 via Android   ❤️ 1
    日常英语的大佬
    cyitao
        35
    cyitao  
       2019-08-05 21:38:09 +08:00   ❤️ 1
    ```bash
    npm i -g fanyi
    fanyi cool down
    ```
    酷炫 ×
    操作简单,符合直觉 √
    自动发音 √
    ClarkAbe
        36
    ClarkAbe  
       2019-08-05 23:14:02 +08:00 via iPhone   ❤️ 1
    悄悄收藏
    Tumblr
        37
    Tumblr  
       2019-08-05 23:23:05 +08:00
    同样是长单词,curl v2en.co/cunnilingus 显示效果不错,但 curl v2en.co/congratulations 简直惨不忍睹……
    我的 terminal 大小是 120 x 30 的。。。
    hlwjia
        38
    hlwjia  
    OP
       2019-08-05 23:35:53 +08:00
    @Tumblr 其实这个框右边没有封边也是这个原因,没法预知用户的 terminal 大小 🤦🤦🤦

    这个我也纠结了很久
    hlwjia
        39
    hlwjia  
    OP
       2019-08-05 23:37:50 +08:00
    @jorneyr 没有限制 rate limit 呀,怎么会这样叻?如果不是函数写错了,那肯定不是 shell 的问题,这个我觉得大概率是网络问题,没在内地机房
    pengfei
        40
    pengfei  
       2019-08-06 00:15:47 +08:00   ❤️ 1



    windows 用户
    hlwjia
        41
    hlwjia  
    OP
       2019-08-06 09:20:53 +08:00 via iPhone   ❤️ 1
    @pengfei 左边的是转码可以解决,上面某一楼有解决方案;右边的应该是我的 UA 判断不够完善,右边 curl 出来的是 html 了是浏览器里访问出来的内容了
    jorneyr
        42
    jorneyr  
       2019-08-06 09:24:15 +08:00
    @hlwjia 用 curl 访问就没问题,把函数保存到 shell 脚本里调用函数访问的话几次后就不行了。
    jorneyr
        43
    jorneyr  
       2019-08-06 09:25:45 +08:00   ❤️ 1
    @pengfei 设置控制台使用 UTF-8 编码,执行命令 chcp 65001 就可以了
    sliwey
        44
    sliwey  
       2019-08-06 09:55:33 +08:00   ❤️ 1
    群主牛逼
    CallMeHoney
        45
    CallMeHoney  
       2019-08-06 12:28:20 +08:00
    UP 用的是什么 iTerm 主题啊? 居然有颜色显示,我的只有灰蒙蒙的显示。。
    AmberJiang
        46
    AmberJiang  
       2019-08-06 14:07:06 +08:00   ❤️ 1
    默默学习收藏了 谢谢大佬们
    hlwjia
        47
    hlwjia  
    OP
       2019-08-06 15:20:14 +08:00
    @CallMeHoney 我这个是自带的 Terminal,在 Terminal 里有 theme 选一下就好了; iTerm 应该会是默认有颜色的吧。

    @jorneyr 暂时想不到是什么问题,应该不是服务端的问题,你那边的环境是怎样的?
    hlwjia
        48
    hlwjia  
    OP
       2019-08-06 15:30:55 +08:00
    @gbin @xywwf @HivenYang @adoyle @z919126592 @Egil @bolice @xiaowudesign @Syusyuly @blackboom @cckrii @SYjiang @KeleQ @codyghosf

    求回复留言帮顶,让更多 v 友看到 >_<
    gbin
        49
    gbin  
       2019-08-06 17:39:51 +08:00 via Android   ❤️ 1
    不错,支持一波
    z919126592
        50
    z919126592  
       2019-08-06 18:31:04 +08:00 via Android   ❤️ 1
    来了 帮顶
    mrfox
        51
    mrfox  
       2019-08-06 19:11:50 +08:00
    mrfox
        52
    mrfox  
       2019-08-06 19:13:21 +08:00
    还是不会在这里上图……
    mrfox
        53
    mrfox  
       2019-08-06 19:18:49 +08:00
    hlwjia
        54
    hlwjia  
    OP
       2019-08-06 20:33:52 +08:00
    @mrfox 看 #10 楼
    jorneyr
        55
    jorneyr  
       2019-08-06 20:57:40 +08:00
    @hlwjia 我使用的是 oh-my-zsh + iTerm
    Luxin
        56
    Luxin  
       2019-08-07 09:05:49 +08:00   ❤️ 1
    emmmm....我也弄了一个,本地就可以查询的.
    https://github.com/luxingwen/english-word
    hlwjia
        57
    hlwjia  
    OP
       2019-08-07 10:02:45 +08:00
    timothyye
        58
    timothyye  
       2019-08-07 21:48:46 +08:00 via Android   ❤️ 1
    mrfox
        59
    mrfox  
       2019-08-08 03:58:07 +08:00
    @timothyye 不用蹭吧,53 楼我贴的就是你的作品,WIN 下直接用,不用管编码 good
    mrfox
        60
    mrfox  
       2019-08-08 03:58:51 +08:00
    @Luxin 没有 Readme,看来是自用的
    timothyye
        61
    timothyye  
       2019-08-08 10:02:50 +08:00
    @mrfox yd 是那个 node.js 写的吧,跟我的不一样,哈哈哈
    hlwjia
        62
    hlwjia  
    OP
       2019-08-08 10:48:01 +08:00
    @timothyye star 支持! :)
    PbCopy111
        63
    PbCopy111  
       2019-08-08 12:44:49 +08:00
    我听说现在的孩子已经不学音标改成自然拼读法了。。。
    hlwjia
        64
    hlwjia  
    OP
       2019-08-08 12:52:47 +08:00
    @PbCopy111 自然拼读法是什么?

    用中文发音拼出来的?
    还是完全靠语感?
    PbCopy111
        65
    PbCopy111  
       2019-08-08 12:57:16 +08:00
    @hlwjia #64 其实,英语国家的孩子,记单词不是靠“背”,而是靠“拼读”,这就是所谓的“自然拼读”法。 自然拼读法,又称“英语自然拼读法”,自然拼读法是目前国际主流的英语教学法,它不仅是以英语为母语国家的孩子学习英语读音与拼字,增进阅读能力与理解力的教学法,更是以英语为第二语言的英语初学者学习发音规则与拼读技巧的教学方法。

    from 百度百科
    Luxin
        66
    Luxin  
       2019-08-08 15:51:00 +08:00
    Luxin
        67
    Luxin  
       2019-08-08 15:51:56 +08:00
    @mrfox emmmm,如果你懂一点点简单的 golang,很容易就看懂我的代码了
    brucmao
        69
    brucmao  
       2019-08-10 15:48:39 +08:00
    ![Snipaste_2019-08-10_15-47-44.png]( https://i.loli.net/2019/08/10/51fG3gnduImQ6BF.png)
    这个是什么原因呢,每次都要 source 一下才行
    centyuan
        70
    centyuan  
       2019-08-10 15:54:14 +08:00   ❤️ 1
    不错耶,谢谢楼主, ^_^
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.