nvim使用技巧
本文总结记录一些neovim的使用技巧。包括根据上下文判断是否扩展tab(expandtab)、在已修改的文件位置之间跳转、将选中的字符作为文件名在新标签页打开。
专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等
本文总结记录一些neovim的使用技巧。包括根据上下文判断是否扩展tab(expandtab)、在已修改的文件位置之间跳转、将选中的字符作为文件名在新标签页打开。
tmux是一种终端多路复用器:它可以在一个屏幕上创建、访问和控制多个终端。
启动tmux时,它会创建一个带有单一窗口的新会话并显示在屏幕上。 屏幕底部的状态行显示当前会话的信息,并用于输入交互式命令。
本文目前主要记录了一些tmux使用的快捷键、常用配置以及插件使用方法。
本文主要记录一下在Linux命令行环境中如何对新磁盘进行分区并格式化,以及对已有分区如何进行扩容。
使用的分区工具是fdisk,格式化工具为mkfs,验证的环境为Ubuntu24.04虚拟机。
使用parted工具扩容已有分区,e2fsck检查文件系统是否被破坏,resize2fs扩容文件系统以适应分区大小。
VMware为虚拟机提供三种上网方式,分别是桥接模式、仅主机以及NAT模式,同时会在宿主机上创建两个虚拟网卡,分别是VMnet1:仅主机模式和VMnet8:NAT模式。
为什么桥接模式没有在宿主机上创建虚拟网卡呢?这是因为桥接模式是通过虚拟网桥将虚拟机的网卡和宿主机的网卡桥接在一起的(类似于宿主机物理网卡和虚拟机网卡通过虚拟交换机连接在一起)。
如上节所述,poll函数是另一个支持I/O多路转接的函数。
与select不同的是poll函数支持更多的条件,而非select函数仅有的三种条件(可读、可写以及异常)。
同时poll函数是以struct pollfd数组类型保存文件描述符(没有文件描述符的数量限制),并为每个文件描述符指定关注的哪些条件,而select函数则是另一种角度,为每个条件设置哪些文件描述符。
Windows下neovim的相关配置。
默认情况下nvim的配置文件位置在~/AppData/Local/nvim/init.lua,如果设置了XDG_CONFIG_HOME,则配置文件位置在$XDG_CONFIG_HOME/nvim/init.lua。
记录一下vim操作空白字符的相关方式,现在包括删除空行、删除行首空格以及删除行尾空格。
PKCS(Public Key Cryptography Standards)公钥加密标准包含了一系列公钥密码学标准,其中包含了数据填充的相关规范。
当涉及到块加密算法(例如AES)时,PKCS#7(扩展了PKCS#5)是一种常用的填充方式。
当数据长度不是加密算法所要求块大小(AES块大小为16字节)的整数倍时,就需要使用填充算法来确保数据能够被正确地加密和解密。
本文记录了如何在neovim中配置自定义的swapfile路径。
Lua配置: vim.go.directory = vim.fn.expand('~/.nvim/swapfiles//') .. ',!,'
当一个进程需要从多个文件描述中读,并写入多个文件描述符中(例如TCP服务器)。
当一个进程需要对一个文件描述符同时进行读写,两者并没有前后关系。如果采用阻塞I/O,那么没有数据读就会阻塞,进而导致进程无法处理写入,写阻塞时同理。
上述问题的一个解决方法是采用多线程,每个线程中对一个描述符进行阻塞I/O,缺点是线程实现复杂,同时进程支持的线程数量有限。
本节主要记录一下学习modbus的编程实践,给出了一个读取modbus数据的示例。
数据提供源是Win上的Modbus Slave软件。
依赖库是libmodbus。
C语言结构体不同字段之间按照系统位数进行数据对齐,32位系统4字节对齐,64位系统8字节对齐。
GCC编译器默认会进行数据对齐,但也提供了专用属性__attribute__((packed))使结构体采用紧凑模式,不对数据进行对齐,此时sizeof获得的大小为结构体各字段的大小。