[AHKv2]用Autohotkey提升Python编写效率

注 本文使用的是V2版本的语法

进入环境和调库

一般来说,在命令行中启用Python,通常需要进入conda环境,而使用最多的则是基础环境,即conda activate命令。在进入conda环境之后,便可输入Python,进入交互编程界面了。

而进入python之后,最常用的命令则是导入numpy以及matplotlib.pyplot这两个模块。

故而通过下面两个替代,分别用cpyimn完成这两个需求。

#HotIf WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
::cpy:: conda activate `n python

#HotIf WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
::imn::import numpy as np`nimport matplotlib.pyplot as plt`n

上面是V2的语法,如果使用V1,则HotIf可用IfWinActivate代替,即

#IfWinActive ahk_class CASCADIA_HOSTING_WINDOW_CLASS

除了在命令行中使用Python,Jupyter notebook也是常见的用于快速验证的Python IDE,而在命令行中进入notebook环境,也同样需要先开启conda。在进入notebook环境后,活动窗口也从命令行变成浏览器,故而添加如下内容。

#HotIf WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
::cju:: conda activate `n jupyter notebook

#HotIf WinActive("ahk_class Chrome_WidgetWin_1")
::imn::import numpy as np`nimport matplotlib.pyplot as plt`n

绘图定制

在Python中,用matplotlib绘图时,会经常定制一些重复的设置,比如添加网格、紧凑布局等,以下列代码为例。

import numpy as np
import matplotlib.pyplot as plt

xs = np.random.rand(100)
plt.plot(xs)
plt.grid()
plt.tight_layout()
plt.show()

其中grid用于添加网格;tight_layout用于紧凑布局;show用于展示图像,绘图结果如下。

在这里插入图片描述

由于plt.grid, plt.tight_layout基本在每次绘图时都需要进行调用,故而可以用autohotkey对其映射

#HotIf WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
::adplt::plt.grid() `nplt.tight_layout() `nplt.show() `n

adplt即advanced plt,表示“高级”绘图。

复制代码

在Python的交互式命令行中,除了输入的命令之外,还往往有输出。而在交流代码时,一般只需要复制输入的内容即可,AHK可以做到这一点。

由于在交互式命令行中,Python命令都是以>>>或者…开头的,故而可以复制剪贴板后,提取出以这两种符号开头的行,然后删除这两种符号。

#HotIf WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
!C::{
    send "^c"
    sleep 200
    c := ""
    loop parse A_Clipboard, "`n"{
        if(inStr(A_LoopField, ">>> ") == 1)
            c := c strReplace(A_LoopField, ">>> ")
        if(inStr(A_LoopField, "... ") == 1)
            c := c strReplace(A_LoopField, "... ")
    }
    A_Clipboard := c
    return
}

其基本逻辑是,发送Ctrl+C,将选中文字发送给剪贴板。然后复制剪贴板内容,并通过loop parse对其进行按行遍历,如果该行中存在>>>或者…,则将其删除后添加到新的字符串中。最后,再将新的字符串赋值给剪贴板。

这里面需要注意的是,必须在发送Ctrl+C之后进行延时,否则可能在调用循环时,剪贴板的内容并没有更新。

效果如下

在这里插入图片描述

————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议
原文链接:https://blog.csdn.net/m0_37816922/article/details/131821313

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值