如何为 Kate 编写一个插件或脚本,它采用 unicode 代码点并在光标处插入相应的 unicode 字符?

如何为 Kate 编写一个插件或脚本,它采用 unicode 代码点并在光标处插入相应的 unicode 字符?

根据代码点输入任意 Unicode 字符很简单,例如在 Gedit 中(按Ctrl+ Shift+ u,输入(十六进制)代码点,按 Enter)。

人们甚至可以使用终端。例如,执行echo -e '\u2603'会产生一个雪人☃。这里 2603 又是十六进制的代码点。

然而,KDE 的 Kate 目前(截至版本 19.12.3)似乎没有类似的功能。

确实,可以使用 Gedit 或终端来生成符号,然后将其复制并粘贴到 Kate 中。但这很尴尬。

同时,Kate 也支持插件和脚本。遗憾的是,我找不到任何关于如何编写它们的教程(除了这个,从 2004 年开始,它非常简洁,几乎不符合教程的资格,而且无论如何可能已经过时了)。

如果该插件能够实现与 Gedit 相同的功能,那就太好了,因为它输入 Unicode 字符的方法似乎是一种非常标准的方法。

但不必这样做。也许 Kate 插件(或 Kate 脚本?)可以这样工作:按下键盘快捷键时,会出现一个标准的 KDE 弹出对话框,提示您输入 Unicode 十六进制代码。输入代码后,我们按“回车”,相应的 Unicode 字符就会插入到 Kate 中光标的当前位置。

毫无疑问,还有其他有意义的进入方法。关键是Unicode字符必须在光标当前位置输入。

Kate 使用插件(或脚本)可以做这样的事情吗?编写适当的插件(或脚本)有多困难?如何编写和安装这样一个插件?

答案1

你有没有尝试过字符选择?您可以在那里搜索所需的符号,然后将其复制到剪贴板,然后粘贴到 Kate。

在此输入图像描述

答案2

从版本 21.12 开始,Kate 附带了一个 Latex 补全插件,应该能够提供此功能。

https://github.com/KDE/kate/tree/master/addons/latexunicodecompletion

可以在设置中启用该插件。启用插件后,打开一个新文件,然后键入“\u”,后跟您要查找的任何符号。

图像


使用脚本执行此操作

var katescript = {
    "author": "name <email>",
    "license": "LGPLv2+",
    "revision": 1,
    "kate-version": "5.1",
    "functions": ["do_my_stuff"],
    "actions": [
        {   "function": "do_my_stuff",
            "name": "User visible name of the action",
            "category": "Editing",
            "shortcut": "Ctrl+Shift+A",
            "interactive": "false"
        }
    ]
};

require("range.js");
require("cursor.js");

function help(cmd) {
    if (cmd == "do_my_stuff") return i18n("Does xyz");
    return "";
}

function isCursorOnUnicode() {
    // code to check 
    return Range();
}

function do_my_stuff() {
    debug(document.mimeType());

    var range = isCursorOnString();
    if (!range.isValid()) {
        return;
    }

    var text = document.text(range);
    if (text == "")
        return;

    document.editBegin();

    var insertText = "...";
    document.insertText(range.start, insertText);
    var endCur = range.end;
    endCur.setPosition(endCur.line, endCur.column + insertText.length);
    document.insertText(endCur, ")");

    document.editEnd();
}

上面的脚本实际上并没有做任何事情,而是展示了如何编写一个能够执行您想要的操作的脚本。该脚本支持 ECMAScript 版本 6,因此可以使用 Set 等类型。

脚本最重要的部分是顶部的标题var katescript = {...。 Kate 将使用此标头来使您的脚本正常工作。在此标头中,您指定运行脚本后将执行的函数。在我们的例子中,这个函数是"function": "do_my_stuff".您还可以拥有其他功能,但它们在 UI 中不可见。

如何调用脚本?

菜单栏 -> 工具 -> 脚本 -> 编辑 -> YOUR_SCRIPT_NAME

这可能很乏味,所以另一种方法是点击F7然后输入函数的名称,即do_my_stuff,您的脚本将被调用。

您可能已经注意到,您还可以使用快捷方式调用脚本。在本例中,快捷方式为Ctrl+Shift+A,但您可以将其更改为其他任何内容,只要它不与其他快捷方式冲突即可。

您可以在此处找到有关 Kate 公开的所有可用函数的文档:https://docs.kde.org/stable5/en/kate/katepart/dev-scripting.html

希望这能回答您的问题。

相关内容