cfanzp

Linux开发笔记

lua-pbc(lua的protobuf库)如何使用?

lua-pbc(lua的protobuf库)如何使用? lua-pbc是什么? lua-pbc,即lua protocol buffer fro c,是云风写的一个给lua使用的protobuf封包解包的库,如果你想用skynet来写游戏等服务端应用,lua-pbc是不错的选择。 lua-pbc github地址为: https://github.com/cloudwu/pbc 关于pbc的设计,大家可以看一下云风的博客: https://blog.codingnow.com/2011/12/protocol_buffers_for_c.html lua-pbc如何使用? 这里有几个接个api需要熟悉一下 编写protobuf的proto文件 User.proto 1 2 3 4 package tutorial; message User { optional string name = 1; } 引入模块protobuf 1 local pb = require "protobuf" 注册文件 1 pb.register_file "User.pb" encode 1 2 3 4 local msg_table = { name = "test1" } pb.encode("tutorial.User",msg_table}, decode 1 local msg_table = pb.decode("tutorial.Person", buf) 使用感受 lua-pbc使用了很长一段时间,官方skynte升级支持lua5.4以后,pbc还是可以正常工作的。 pbc的接口设计是比较简洁的,用起来也非常方便。想深入了解的同学,建议去看看源码。 参考 pbc: https://github.com/cloudwu/pbc pbc binding lua: https://github.

vim交换文件是否应该开启?

vim交换文件是否应该开启? 在vim的使用过程中默认会产生交换文件。交换文件会记录文件修改的过程。如果不小心断电或者意外关闭了文件而没有保存,可以通过交换文件进行恢复。 交换文件如何使用? 启用交换文件 1 set swapfile 关闭交换文件 1 set noswapfile 上述设置方法只是针对当前文件生效,如果想对所有文件生效需要在.vimrc中进行设置。 .vimrc中的设置关闭交换文件的方法也很简单,只需要加上一行: 1 set noswapfile 查看当前交换文件的名称 1 :swapname 查看交换文件的用法 1 :help swap-file 交换文件有哪些作用? 1. 恢复文件 在正常关闭情况下,交换文件会被删除,非正常关闭的情况下,交换文件不会被删除,下次你打开文件的时候,会提示你是否需要从交换文件恢复。 2. 检测多处修改 交换文件还有一个作用,就是避免Vim的多个实例编译同一文件。 总结 在我看来作为程序员应该是需要养成习惯,及时对修改的文件进行保存的。并且做好了一个功能,就应该即使提交到代码库进行保存。如果能保证做到及时保存,及时提交到代码仓库。交换文件是不需要开启的。 如果你是一个Vim新手,建议还是开启swapfile 等你对vim熟悉了,并且有良好的保存习惯,完全可以关闭swapfile

Vim常用插件有哪些?

Vim常用插件有哪些? Vim的插件真的很多,Vim好用主要原因是它基本的移动命令,几大模式,但是要提高开发效率,插件也是比不可少的。这里简单罗列一下我平时用得比较多的几款插件。 molokai配色方案 1 Plug 'git://github.com/tomasr/molokai.git' 树形插件:nerdtree 1 Plug 'preservim/nerdtree' 函数标签栏:tagbar 1 Plug 'majutsushi/tagbar' 对齐工具:tabular 1 Plug 'godlygeek/tabular' 文件查找插件:ctrlp 1 Plug 'ctrlpvim/ctrlp.vim' 文本查找插件:ag.vim 1 Plug 'git://github.com/rking/ag.vim.git' markdown预览插件 1 Plug 'iamcco/markdown-preview.vim' fzf 查找插件 1 Plug 'junegunn/fzf.vim' LeaderF查找插件 1 Plug 'Yggdroot/LeaderF', { 'do': './install.sh' } 上面罗列的插件已经很多了,平时用上这些插件,对于日常的开发基本就已经够用了。有空详细介绍一下上面的各个插件的用法。 更多vim用发可以浏览: https://cfanzp.com/categories/vim/

skynet学习资源汇总

skynet学习资源汇总 学习使用skynet已经有一段时间了,最初学习skynet是直接拿着skynet的源码已经官方例子,一点点地自己看,自己跑demo,慢慢才熟悉了skynet。这过程中就踩了不少坑,这里收集了一些skynet的学习资源,在此记录一下。 skynet的github地址: https://github.com/cloudwu/skynet skynet官方帮助文档: https://github.com/cloudwu/skynet/wiki skynet作者博客: https://blog.codingnow.com/ skynet sample: https://github.com/cloudwu/skynet_sample skynet pbc: https://github.com/cloudwu/pbc 我的skynet学习笔记: https://cfanzp.com/categories/skynet/ skynet资源:http://forthxu.com/blog/skynet.html skynet视频教程 4小时玩转skynet: https://www.bilibili.com/video/BV1AV411r71g

Go基本环境配置

Go基本环境配置 下载 https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz 环境变量配置 https://blog.csdn.net/Deronn/article/details/108364612 1 2 3 4 5 export GO111MODULE=on export GOPROXY=https://goproxy.cn export GOROOT=/usr/local/go export GOPATH=~/go/path export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 环境变量生效 1 2 source /etc/profile ##在当前bash环境下读取并执行profile中的命令。 go env 初始化项目 gin demo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package main import "github.com/gin-gonic/gin" func main() { // 创建一个默认的Gin引擎 r := gin.Default() // 定义一个简单的GET请求路由 r.GET("/", func(c *gin.Context) { c.String(200, "Hello, Gin!") }) // 启动HTTP服务器,监听在 8080 端口 r.