【问题标题】:Can Notepad++ execute a definable command that will be executed when opening a certain filetype?Notepad++ 可以执行打开某个文件类型时将执行的可定义命令吗?
【发布时间】:2019-10-24 10:31:35
【问题描述】:

是否可以在打开任何 .xml 文件时始终执行 XML 插件的“Pretty print(仅限 XML,带换行符)”命令,或者在打开 .json 文件时始终执行 JSTool 插件的“JSFormat”命令?我目前使用的 Ctrl-Alt-Shift 组合太多了。

【问题讨论】:

  • 您尝试过以下解决方案吗?

标签: notepad++


【解决方案1】:

一个可能的解决方案如下:

  • 为 Notepad++ 安装 PythonScript 插件
  • 编写访问插件菜单及其工具的 python 脚本
  • 确保脚本在 Notepad++ 启动时运行

安装 PythonScript 插件

  • 如果您的 Notepad++ 版本高于 7.6.3,请关注此GUIDE,否则您可以通过插件菜单下的插件管理器安装它

  • 如果您在上述步骤中遇到任何问题,请参考this 和安装指南here

  • 这假设您已安装 Python 解释器 v2.7,如果没有,您可以从 here 安装它

注意:对于 Notepad++ v7.8,这是来自github 的插件合作者的更新,

有关与当前 N++ 7.8 版本兼容的版本,请参阅 https://github.com/bruderstein/PythonScript/releases/tag/v1.5.2。 Pythonscript 也将在 PluginAdmin 的下一个 N++ 版本中再次可用。

Python 脚本

  • 脚本应执行以下操作:
    • 检查打开文件的语言类型
    • 根据类型执行插件工具
  • 要检查语言类型,请使用成员函数getCurrentLang
  • 要执行插件工具,使用成员函数runPluginCommand
if notepad.getCurrentLang() == LANGTYPE.XML:
    notepad.runPluginCommand("XML Tools","Pretty print (XML only - with line breaks)")

elif notepad.getCurrentLang() == LANGTYPE.JSON:
    notepad.runPluginCommand("JSTool","JSFormat")

启动

  • 将上述脚本附加到startup.py请参考this以查找startup.py
  • 还要确保在 Python 脚本配置窗口中将 Initialisation 设置为 ATSTARTUP您可以在 Plugins->PythonScripts->Configuration 下找到它

参考文献

【讨论】:

  • 漂亮,但我的机器出现问题。我升级到 7.8 并且 PythonScript 可用,但似乎没有运行任何脚本(一些示例脚本似乎有点,但通常会因访问冲突错误而停止,startup.py 似乎没有效果)。我想我会等到 PythonScripts 支持 v7.8 后再试。
猜你喜欢
  • 2013-08-16
  • 1970-01-01
  • 2016-07-13
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
相关资源
最近更新 更多