hx-lsp 为 Helix editor 提供 snippets 和 actions

2424-04-29

一个提供了自定义代码片段 snippets 和 Code Action 的 lsp 工具。

功能

  • Completion: snippets
    • 自定义片段
    • 全局片段
  • CodeAction: actions
    • 实现 run code
    • 通过参数实现各种脚本运行

安装

git clone https://github.com/erasin/hx-lsp.git
cd hx-lsp
cargo install --path .

在 https://github.com/erasin/helix-config/ 中有示例代码,另外我自己使用的分支已经合并了 helix#9081 Add a snippet system

blender thumbnailer 在Linux下缩略图

2024-03-26

在 Linux 安装 blender 后,检查 /usr/bin/blender-thumbnailer 缩略图生成命令是否存在。

创建缩略图生成配置文件

cd /usr/share/thumbnailers
sudo touch blender.thumbnailer
sudo hx/vim blender.thumbnailer

编辑 blender.thumbnailer

[Thumbnailer Entry]
TryExec=blender-thumbnailer
Exec=blender-thumbnailer %i %o
MimeType=application/x-blender;

在类vim/emacs/helix/vscode模态文本编辑器中使用esc键切换输入法

2024-02-22

在支持模态文本编辑的编辑器,比如 vim, helix, vscode的vim模式等,在使用 esc键后会进入默认的普通模式(normal mode),这个时候的操作基本是在英文输入状态下完成操作。再使用 ime 中文输入法的情况下,我们使用esc后必须切换回英文输入,无疑对模态操作多了一次步骤。这里我们可以在使用esc时同时切换输入法来解决该问题。

大致的解决办法是:

  1. 利用脚本以及 cli 命令 来切换系统输入法
  2. 编辑器插入模式,为 esc 配置命令切换为回英文,并记录当前的输入法
  3. 在编辑进入插入模式的时候,读取上次插入模式下的输入法并切换

下面介绍 Linux ,osx 下的切换输入法方法。

Linux gnome 环境 ibus

IBus 是一款输入法框架。具体使用可以参考 wiki-ibus

ibus 提供了工具 ibus engine 查看当前的输入法标识,使用 ibus engine rime 切换输入法为rime。 但在 gnome 4 版本中,该命令无法和gnome-shell中的系统状态的输入法保持一致。这个时候我们使用一款 gnome-shell-ibus-switcher 插件来解决该问题。 ibus-switcher 为 gnome-shell 42 版本后 提供了利用 d-bus 切换输入法的方式,从而切换系统输入法

make 和 Makefile

2024-02-22

Makefile 是一个用来管理项目中源代码编译的文件,通常在 UNIX 和类 UNIX 系统中使用。它包含了一组规则,这些规则告诉 make 工具如何根据源代码文件来构建目标文件以及最终的可执行文件。

一个简单的 Makefile 包含了以下几个部分:

  1. 变量定义: 可以定义一些变量,例如编译器名称、编译选项等。
  2. 目标与依赖关系: 定义了要构建的目标文件以及这些目标文件所依赖的源文件或其他目标文件。
  3. 规则: 每个规则包含了构建目标文件的命令。
  4. 注释: 可以使用 # 开头的行来添加注释,提高代码可读性。

vscode 在linux wayland 环境的处理

2023-07-12

Vscode 在linux 的 wayland 环境下有可能出现白色边框或者剪贴板的问题。

可以通过修改 vscode 的 .desktop 文件,追加参数 --ozone-platform=wayland 兼容 wayland环境。

由于不同的发行版路径不同,这里使用了 archlinux 的 visual-studio-code-bin,其路径为 /usr/share/applications/code.desktop

[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Refined.
GenericName=Text Editor
Exec=/usr/bin/code --ozone-platform=wayland --unity-launch %F
Icon=visual-studio-code
Type=Application
StartupNotify=false
StartupWMClass=Code
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-code-workspace;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/bin/code --ozone-platform=wayland --new-window %F
Icon=visual-studio-code

Godot 学习路径

2023-06-30

Godot引擎的路线: 以下是一个基本的学习路径,以帮助你开始使用Godot进行游戏开发:

  1. 学习基础知识:

    • 了解Godot引擎的基本概念和术语,例如场景、节点和脚本等。
    • 学习Godot的用户界面,包括编辑器的各个部分和常用工具。
  2. 掌握场景和节点:

    • 理解场景和节点的概念,以及它们之间的层次结构关系。
    • 学习如何创建、组织和管理场景中的节点。
    • 实践使用不同类型的节点,例如精灵、碰撞体和摄像机等。
  3. 使用GDScript进行编程:

    • 学习Godot的脚本语言GDScript,它类似于Python。
    • 了解GDScript的语法、变量、控制流和函数等基本概念。
    • 实践使用GDScript编写简单的脚本来控制游戏对象的行为。
  4. 掌握游戏逻辑和交互:

    • 学习如何处理用户输入,例如键盘、鼠标和触摸屏等。
    • 掌握游戏逻辑的设计和实现,例如角色移动、敌人行为和碰撞检测等。
    • 实践创建简单的游戏场景,并实现基本的玩法和交互。
  5. 图形和动画效果:

    • 学习使用Godot的绘图工具和特效来创建游戏中的图形和动画效果。
    • 了解如何加载和渲染纹理、精灵和动画等资源。
    • 实践创建各种图形效果,如粒子效果、渐变和过渡动画等。
  6. 音频和音效:

    • 学习如何在游戏中添加音频和音效。
    • 掌握Godot的音频系统,包括音乐、声音效果和音频管理等方面。
    • 实践将音频资源添加到游戏中,并实现音频的播放和控制。
  7. 游戏发布和部署:

    • 学习如何将游戏打包并发布到不同平台,如Windows、Mac、Linux和移动设备等。
    • 了解发布过程中的常见问题和最佳实践。
    • 实践将你的游戏导出并在目标平台上进行测试和部署。

HURL 中文指南 Restclient 接口测试工具

2023-06-07

Hurl 是一款定义脚本,用于测试 HTTP 请求的工具,提供了命令工具 helix 和格式化工具 hurlfmt。

简单的 Hurl 文件

创建文件 get.hurl, 追加下面的内容。

# test httpbin.org
GET https://httpbin/org/get

# 响应
HTTP/2 200 # 判定响应 
[Asserts] # 判定内容
jsonpath "$.url" == "https://httpbin/org/get"

给 helix 追加类 Zen Mode 模式

2023-04-01

Zen Mode 具体我也不太清楚, 之前在 vscode 中使用过, 但是不是太好就没有再使用了. Helix(23.03) 现在还不支持窗口尺寸变更, 我在 PR 中查阅到有人提起 Zen Mode.

这里我利用了编辑器的配置项最大行长度 text-width 和虚拟字符后支持的软换行(soft wrap)功能中的配置项 soft-wrap.wrap-at-text-width, 其中软换行的这个选项是指在设置的text-width长度位置进行换行, 而非默认的视图位置换行.

zen-mode