跳转至

vim

实现一个neovim插件nvim_rotate_chars来轮转代码

文章介绍了如果实现一个轮转代码的neovim插件,简单的策略就是a->b, b->c, …, z->a。 试想一下你的代码经过轮转以后会是怎么样,轮转一个位置、n个位置呢?配上快捷键,在别人看你代码的时候,轮转一下字符,向左转了还能支持向反方向转回来。需要实现如下功能:

  • 支持指定轮转的步数、方向(即向左向右);
  • 支持unicode字符,比如中文字符的改变;
  • neovim配置快捷键和command命令行输入;
  • 采用rust和lua编写,基于nvim-oxi,和传统rpc不同,直接调用c-api bind。

听起来还有点传统的代码加密算法的意思,旋转加密或者叫轮转机加密。

实现一个neovim插件转换unicode字符到中文显示

上一篇讲了如何通过nvim-oxi实现一个neovim插件nvim_rotate_chars来轮转字符,这一篇通过采用相关技术实现了一个unicode字符表示转换成汉字显示。这些工具在日常开发和工作中都可以用到,自己实现一个也可以学到新东西练练代码手感。

之前在文章unicode编码和utf-8转换不同语言实现的差别?以及locale杂谈中讲到过由于系统的locale设置不正确,遇到unzip解压出来的中文文件名称都变成了unicde的16进制字符表示。当然也介绍了如何使用python、c++以及rust实现转换。在这里我们将实现移植到了neovim插件中,打开文件一键转换。

Core模块

LazyHandler手动类和继承机制实现

在~/lua/lazy/core/handler/init.lua文件中,定义了LazyHandler类。handler类中定义了四个具体的子类型,分别是keys、event、cmd和ft。分别在cmd.lua、event.lua、ft.lua和keys.lua文件中定义了具体的handler实现。

helix-gpt如何实现AI code以及如何调试?

helix-gpt如何实现ai编码功能的?

helix-gpt是个language server,通过调用大语言模型,实现对代码的智能提示和编辑,由于是使用大模型处理,所有和语言无关,所有语言都可以使用。helix本身内置languageserver协议,因为都采用了lsp协议。其实vim、vscode也是可以用的,我们看到的Github Copilot、文心快码、通义灵码等应用都是这样实现的。