前言

在使用Mac时,或者说搭建学习某些教程时,总会看到大佬们在输入代码的时候输入一般,就会提示剩下的命令,看着就很酷,本人在Windows环境下试过多种方法都难以达到那种效果,在Rust中文社区看到了这么一个Rust的开源项目,输入拓展工具——espanso,在输入关键词后就会匹配输入文本,虽然未能达到那种提示的效果,但是现在这种效果已经非常满意了。接下来就带大家先体验一下这个软件的效果吧。

可以看到,当输入 :date 的时候,会自动替换为2022/10/1,这种输入方式是不是很酷呢,通过这个软件,大家可以通过自定义关键词来输入我们想要的内容,从而提供工作效率,就和emmet这类插件一样,快捷输入内容。


一、安装

首先需要打开官网
由于本人用的是Windows系统,所以这里显示Get Started on Windows,如果你是用的其他系统,显示会有不一样的,接下来就会跳转到安装页面
中间两个按钮,左边意思是以安装模式安装,右边意识是解压安装,Windows安装模式就很舒服,因此这里直接选择了安装模式,下载完成打开安装包,会有以下提示

这里是用的英文系统,在中文系统下位置是一样的,要点击详细信息,然后再点击无论如何都要运行,就会打开安装程序了,安装就是一路下一步,这里就不再赘述了。

如果你的电脑右下角状态栏那有这个图标,则代表你已经安装成功了。

二、使用

1.体验HelloWorld

安装完成后就是老规矩,hello world,随便找一处文本输入的地方(或者打开一个记事本),然后输入

:espanso

如果你安装的没有问题的话,就会变成

Hi there!

效果如下

当输入关键字:date的时候,就会触发Espanso的规则,将其替换为当前时间,如下图所示

他的逻辑是这样的

2.自定义匹配规则

Espanso的配置文件是使用的yml,它的配置文件目录并不是固定位置的,而是随操作系统的不同而变化的:

  • Linux: $XDG_CONFIG_HOME/espanso (比如. /home/user/.config/espanso)
  • macOS: $HOME/Library/Application Support/espanso (比如 /Users/user/Library/Application Support/espanso)
    • 注意: 从以前的0.7.3版本迁移时,出于兼容性目的,配置目录将位 $HOME/Library/Preferences/espanso
  • Windows: {FOLDERID_RoamingAppData}\espanso (比如. C:\Users\user\AppData\Roaming\espanso)

当找到这个目录以后,会发现目录是这个样子的

  • config目录下是一些配置文件,主要是配置Espanso的一些参数和选项,config/default.yml文件下的配置将会默认应用到所有的程序。
  • match目录下的配置文件是一般来说编写匹配规则的地方,一些默认的匹配规则就在match/base.yml文件中,packages目录就和他的名字一样,是进行包管理的。这个软件也是只是包管理来下载第三方匹配规则的,一些大佬已经写好的规则你可以直接拿过来用,可以说是相当方便了。

如果你没有进行其他操作,base.yml应该是下面这样的

# espanso match file

# For a complete introduction, visit the official docs at: https://espanso.org/docs/

# You can use this file to define the base matches (aka snippets)
# that will be available in every application when using espanso.

# Matches are substitution rules: when you type the "trigger" string
# it gets replaced by the "replace" string.
matches:
  # Simple text replacement
  - trigger: ":espanso"
    replace: "Hi there!"

  # NOTE: espanso uses YAML to define matches, so pay attention to the indentation!

  # But matches can also be dynamic:

  # Print the current date
  - trigger: ":date"
    replace: "{{mydate}}"
    vars:
      - name: mydate
        type: date
        params:
          format: "%m/%d/%Y"

  # Print the output of a shell command
  - trigger: ":shell"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "echo 'Hello from your shell'"
          
  - trigger: ":br"
    replace: "Best Regards,\nJon Snow"

  # And much more! For more information, visit the docs: https://espanso.org/docs/

注意:yml格式

  1. value之前有一个空格
  2. 集合中value与之间的 - 之间存在一个空格

从文档中可以看到,matches节下面配置的就是一对一对的触发器,trigger指的是匹配输入的字符串,replace代表要替换的内容,在我们一开始演示的例子中,使用以下代码就可以实现了

matches:
  # 简单的文本替换
  - trigger: ":espanso"
    replace: "Hi there!"

Espanso支持更多的高级功能,如果你对齐感兴趣,可以去官方的操作文档学习,以提高你的使用体验。在后续的文章中,可能会向大家更加深入的介绍Espanso的匹配规则编写。

三、包管理

Espanso提供了强大的包管理功能,通过别人分享的第三方包,你只需要几行命令就可以把别人写好的匹配规则拿来使用,十分方便,接下来就为大家介绍一下Espanso如何来安装第三方包。

首先需要打开其提供的仓库espansohub

在下方填入你的搜索关键词就可以找到你想要的包了
但是很多时候我们很难知道自己想要的是什么包,最主要是你不知道有什么样的包,所以我更加建议你到目录来找你所需要的或者可能感兴趣的包,由于网站是国外的,国内可能打开很慢,建议使用魔法,因为没有魔法也是安装不了包的
以安装Emoji表情包为例,
左侧勾选Emoji,右侧选择Basic Emoji来安装基础的表情包功能,进入以后界面是这样的
左上方是包信息,有关包的描述,版本等内容,右上方是安装命令,直接复制,在命令行运行就可以直接进行安装了,下方是源码,如果你没有魔法,建议直接复制,要比命令行还要快。

这里贴出其源码

matches:
  - trigger: ":lol"
    replace: "😂"
  - trigger: ":llol"
    replace: "😂😂😂😂"
  - trigger: ":sad"
    replace: "☹"
  - trigger: ":ssad"
    replace: "☹☹☹☹"
  - trigger: ":sml"
    replace: "😊"
  - trigger: ":strong"
    replace: "💪"
  - trigger: ":stlol"
    replace: "💪😂"
  - trigger: ":ba"
    replace: "😎"
  - trigger: ":ok"
    replace: "👍"
  - trigger: ":ook"
    replace: "👍👍👍👍"
  - trigger: ":happy"
    replace: "😄"
  - trigger: ":cry"
    replace: "😭"
  - trigger: ":wow"
    replace: "😮"

你只要将其加到base.yml,就可以起到效果了,当然,通过包管理工具安装的是会自动安装的,还会包含一些包的相关信息

四、获取源码

Espanso是使用Rust制作的开源项目,其源码可以在Github上找到。链接就不直接提供了,建议打开Github,搜索espanso,你就可以找到该项目。
如果你对该项目感兴趣,可以研究一下其源码。


总结

本期内容就到此为止了,主要为大家介绍了Rust的开源项目Espanso的安装和使用,通过使用Espanso来提高大家的工作效率,如果你对该项目感兴趣,去阅读源码,提高自身技术水平,那就更好不过了。


本人创建了一起学Rust社区,欢迎各位对rust感兴趣的朋友加入

 http://t.csdn.cn/AsEZ9 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐