V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xx0219
V2EX  ›  macOS

Mac 老司机: Ulysses + KeyboardMaestro 快捷键:怎么实现如下功能:

  •  
  •   xx0219 · 2016-11-24 22:25:25 +08:00 · 2931 次点击
    这是一个创建于 2956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    <button class="num" id="num1">1</button>
    <button class="num" id="num2">2</button>

    ~~ ~~~
    ~~ <button class="num" id="num1">1</button>
    ~~ <button class="num" id="num2">2</button>
    ~~ ~~~
    ~~ {: .language-ruby}

    其实就是 在 MD 软件 按下一个快捷键 就自动实现 jekyll blog 里面的代码高亮而已....

    也就是任意 一段代码
    1.每行前面加上 两波浪号 (这个功能 ulysses 有自带快捷键可以实现.可能需要设置.)
    2.代码首尾 加上 ~~ ~~~
    3.最后一行 加上 ~~ {: .language-ruby}

    之前我的解决方法是 把代码剪切 存到一个变量 ... 然后粘贴回去...
    但是 不知道是系统问题 还是软件问题... 经常出错 但是有时候又是成功的...

    强迫症 实在是受不了了....

    第 1 条附言  ·  2016-11-29 20:27:53 +08:00

    解决方法终于找到啦....

    具体步骤:

    • 鼠标选选中需要高亮的脚本.
    • 按下快捷键 ⌘.

    KM脚本详细解释:

    1. 复制光标选中的内容到 剪切板
    2. 主要脚本
    3. 设置延迟. 必须.. 时间可以看着改...
    4. 粘贴

    主要脚本:

    1. export LANG="zh_CN.UTF-8" 解决中文乱码问题.
    2. pbpaste 把复制的内容 粘贴到终端中 进行操作.
    3. sed 's/^/~~ /; 1{x;p;x;}; $G'
    • s/^/~~ /; 每行前面都加上 ~~ .
    • 1{x;p;x;}; 在首行上方插入空行.
    • $G 在尾行下方插入空行.
    1. sed '1s/^$/~~ ~~~/; $s/^$/~~ ~~~/' 把第一行和最后一行的内容变成 ~~ ~~~
    2. sed '$G' 尾行再增加一行空行.
    3. sed '$s/^$/~~ {: .language-ruby}/' 把新空行的内容改成~~ {: .language-ruby}
    4. pbcopy 复制修改后的内容到剪切板

    非常感谢大家的帮助哈.

    7 条回复    2016-11-29 20:25:33 +08:00
    laxapple
        1
    laxapple  
       2016-11-25 00:23:08 +08:00
    思路没问题,具体怎么出错?
    我估计你需要在一些关键步骤间加个 0.x 秒的延迟
    minamike
        2
    minamike  
       2016-11-25 09:33:01 +08:00
    这个 shell script 应该可以:

    pbcopy|pbpaste|sed -e 's#^#~~ #'|awk '1; BEGIN {print "~~ ~~~ "}'|awk '1; END {print "~~ ~~~ "}'|awk '1; END {print "~~ {:.language-ruby}"}'|pbcopy

    选中需要格式的文本 运行这个 script 再粘贴应该就可以了
    minamike
        3
    minamike  
       2016-11-25 10:01:49 +08:00
    @minamike 我错了 把前面的 pbcopy| 去掉,改成

    pbpaste|sed -e 's#^#~~ #'|awk '1; BEGIN {print "~~ ~~~ "}'|awk '1; END {print "~~ ~~~ "}'|awk '1; END {print "~~ {:.language-ruby}"}'|pbcopy
    idigital
        4
    idigital  
       2016-11-25 10:19:45 +08:00
    你看看是没复制上还是没粘贴上
    xx0219
        5
    xx0219  
    OP
       2016-11-29 19:27:44 +08:00
    @minamike 你好 我自己研究了下 自己写了个
    pbpaste | sed 's/^/~~ /; 1{x;p;x;}; $G' | sed '1s/^$/~~ ~~~/; $s/^$/~~ ~~~/' | sed '$G' | sed '$s/^$/~~ {: .language-ruby}/' | pbcopy

    现在的问题是 英文 正常能高亮了. 但是中文 就全部显示成问好 ? 了..... 知道怎么弄么?
    minamike
        6
    minamike  
       2016-11-29 19:58:55 +08:00
    @xx0219 貌似是和 unicode 编码有关的 我也不清楚 我以前也遇到过 在 terminal 里运行输出就正常 其他地方运行输出就变问号 😂
    minamike
        7
    minamike  
       2016-11-29 20:25:33 +08:00   ❤️ 1
    @xx0219 试试这个
    export __CF_USER_TEXT_ENCODING=0x1F5:0x8000100:0x8000100; pbpaste | sed 's/^/~~ /; 1{x;p;x;}; $G' | sed '1s/^$/~~ ~~~/; $s/^$/~~ ~~~/' | sed '$G' | sed '$s/^$/~~ {: .language-ruby}/' | pbcopy
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2441 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:55 · PVG 23:55 · LAX 07:55 · JFK 10:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.