docker问题记录
列表2024-week12
列表2024-week11
列表2024-week09
frp配置记录
go101笔记
go101 笔记
列表2024-week08
#最近做的事
#自建网盘
构建网盘本身是很简单的过程,网上有很多开源的项目,比如:https://github.com/cloudreve/cloudreve
但是相应的生态太难跟进了
目前调研已知问题:
- webdav 传数据会丢失文件本来的时间信息(其它信息待确定)
- 很难有通用的手机 app
#golang struct
对齐
#相关链接
#w3m
一个命令行网页浏览工具,比较方便阅读:
1 | brew install w3m |
不过不能被wakatime
记录,突然有点不想用了。
#golang 范型
如果你经常要分别为不同的类型写完全相同逻辑的代码,那么使用泛型将是最合适的选择
在使用泛型的时候我们只能放弃使用匿名结构体,对于很多场景来说这会造成麻烦(最主要麻烦集中在单元测试的时候,为泛型做单元测试会非常麻烦)
列表2024-week07
#最近做的事
#tmux
每次要恢复一堆窗口好烦,用 tmux 了。
因为日常开发需要开 10 多个命令行窗口,每次重启都要手动开启,没想到这是我用tmux
的原因= =
1 | brew install tmux |
1 | cd |
prefix c
:创建一个新窗口,状态栏会显示多个窗口的信息。
prefix p
:切换到上一个窗口(按照状态栏上的顺序)。
prefix n
:切换到下一个窗口。
prefix <number>
:切换到指定编号的窗口,其中的<number>
是状态栏上的窗口编号。
prefix w
:从列表中选择窗口。
prefix ,
:窗口重命名。
prefix %:划分左右两个窗格。
prefix ":划分上下两个窗格。
prefix <arrow key>
:光标切换到其他窗格。<arrow key>
是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键 ↓。
prefix ;:光标切换到上一个窗格。
prefix o:光标切换到下一个窗格。
prefix {:当前窗格与上一个窗格交换位置。
prefix }:当前窗格与下一个窗格交换位置。
prefix Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
prefix Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
prefix x:关闭当前窗格。
prefix !:将当前窗格拆分为一个独立窗口。
prefix z:当前窗格全屏显示,再使用一次会变回原来大小。
prefix Ctrl+<arrow key>
:按箭头方向调整窗格大小。
prefix q:显示窗格编号。
开启自动保存会话只需要把.tmux.conf.local
的几行注释打开即可:
1 | set -g @plugin 'tmux-plugins/tmux-resurrect' |
- 自动保存会话的地址为:
/Users/onns/.local/share/tmux/resurrect
#相关链接
列表2024-week06
#最近做的事
#WaitGroup 原理
是我看到众多文章中逻辑最清晰的。
通过信号量控制并发问题,信号量的实现原理待继续阅读。
#《火星救援》
重新看了一遍经典影片,并查询了一些当初有疑问的点。
- 原著说维生素、蛋白质都足够生存,缺的只是卡路里(通过土豆获取)。
- 电影只交代了如何制造食物和水,没有谈及氧气,查了一下,已经有通过二氧化碳制取氧气和碳的设备。
#熟悉 Obsidian
有一款可以在里面边看网页边记笔记的浏览器插件
,可用性有待研究。
目前已经逐步在把工作中的文档迁移到Obsidian
,真的很利于检索文件或者内容。
想跨仓库引用笔记好像不可行,会被拷贝一份文件到当前仓库= =
#信号量
这篇文章底部有一些链接也可以同步阅读。
#内联函数inline
C 语言中的定义,在调用处展开函数。
#tmux 了解
了解下来是 screen 的升级版,但是目前应该没有类似的需求,因为工作无法远程所以不会有保持会话的需求。
#vim 技巧
- 高亮选区的范围由其两个端点界定。其中一端固定,而另一端可以随光标自由移动,我们可以用 o 键来切换其活动的端点。
- 启用了
wrap
之后,长度会折叠,出现屏幕行与实际行不同的情况。gj
作用于屏幕行,j
作用于实际行。 - 一个单词由字母、数字、下划线,或其他非空白字符的序列组成,单词间以空白字符分隔。而字串的定义则更简单,它由非空白字符序列组成,字串间以空白字符分隔。
W
、B
、E
、gE
是面向字串的移动方式。- 可视模式下,会有范围限定词,
t
是一个特殊的,代表 xml 或者 html 这类的标签选定(感觉算是特殊优化)。 m{a-zA-Z}
命令会用选定的字母标记当前光标所在位置。小写位置标记只在每个缓冲区里局部可见,而大写位置标记则全局可见。'{mark}
命令跳到位置标记所在行,并把光标置于该行第一个非空白字符上;而`{mark}
命令则把光标移动到设置此位置标记时光标所在之处,也就是说,它同时恢复行、列的位置。