生如夏花

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

Tabby高亮异常

Tabby 颜色异常的根因并非 Tokyonight 覆盖了高亮,而是 Tabby 在 VimEnter 阶段与 ColorScheme 存在启动时序竞争,导致偶发错过 ColorScheme 事件而未正确刷新动态高亮组(TabbyHL_xxx),将 Tabby 延迟到 VeryLazy 加载后即可彻底规避该问题。

Linux内核模块

本文介绍了Linux内核模块的机制,包括内核模块的特点、构建过程、模块操作命令、模块参数、导出符号、模块声明与描述以及模块引用计数。

内核模块允许动态加载功能到内核中,避免了内核重编译的需要。

文章通过示例代码详细解释了如何编写、编译和操作内核模块,以及如何使用模块参数和导出符号。此外,还讨论了模块的许可证声明、作者信息、描述等元数据,以及如何使用模块引用计数来防止模块在使用中被卸载。

VLC之组播功能测试

通过VLC配置组播服务器和客户端,体验视频基础组播功能。同时在支持IPTV的路由器上可以体验在WAN->LAN的视频播放、桌面共享等功能。

同时排查常见问题,当组播客户端无法接收到数据时,常见原因是组播服务器没有将数据发出到正确的网络接口。

套接字基础

套接字地址结构的传递既有用户态到内核态(如bind函数)也有内核态传递到用户态(如accept函数),对于应用程序来说,传给内核的套接字地址结构需要类型强制转换为struct sockaddr*,而接收内核传出的套接字地址结构时需要采用struct sockaddr_storage*

对于ASCII字符串格式的地址转换建议有线采用inet_ptoninet_ntop这两个函数,因为同时兼容IPv4和IPv6。

WindowsTerminal配置

本文介绍了如何配置Windows Terminal以提高使用效率。

首先,通过修改注册表,将Windows Terminal添加到右键菜单,并支持定位到当前目录以及以管理员身份打开。其次,提供了一个详细的配置备份示例,包括字体设置、下拉列表等。用户需将示例中的路径和图标替换为个人环境中的相应值。通过这些配置,可以提升Windows Terminal的便捷性和个性化。

Diagnostic

本文介绍了Neovim的诊断系统,它提供了一个统一框架来管理来自不同工具的代码问题反馈。

诊断信息由诊断提供者产生,需要创建命名空间、设置配置参数、生成诊断信息,并通过API将诊断信息设置到当前buffer。

诊断信息包含严重程度、位置、消息等字段。Nvim提供的API分为两类:一类作用于诊断生产者,一类作用于诊断消费者。诊断处理器负责渲染诊断信息,可通过vim.diagnostic.show()函数显示给用户。

内置处理器包括virtual_text、virtual_lines、signs和underline。自定义处理器可以通过添加到vim.diagnostic.handlers表来实现。