文章
全部技术笔记,按发布时间排序。
bash 键盘高级操作技巧
移动光标 按键 | 行为 -- | -- Ctrl-a | 移动光标到行首。 Ctrl-e | 移动光标到行尾。 Ctrl-f | 光标前移一个字符;和右箭头作用一样。 Ctrl-b | 光标后移一个字符;和左箭头作用一样。 Alt-f | 光标前移一个字(word\单词)。 Alt-b | 光标后移一个字(word\
VSCode一些技巧和快捷键
VSCode 一些技巧和快捷键 如何让 VSCode 打开文件始终在新标签页打开? VSCode 有一个默认设定,单击一个右侧侧边栏的文件是预览模式,如果不输入任何任何文本就始终保持预览模式。 预览模式是的打开一个新文件,然后再打开一个新文件,第二个就会占用第一个窗口。详细信息可以查看:https://code.vis
用 JS 和 Go 来实现中英文简单排版
业界最为标准的中英文排版格式,中文和英文之间加空格,中文和数字之间加空格。现在微信(安卓 6.6.2 测试版)已经支持。 原理其实这个很简单,就是匹配相连接的中文和英文(包括数字),然后在中间加一个空格即可。接下来用 JS 和 Golang 实现。需要注意的是已经符合排版的就不需要加空格了。 匹配中文是用的 [\u4e
十行代码将 Nodejs fs 模块转换无回调(promisify)形式
promisify 是指将 Node.js 回调风格的函数转化为 Promise 形式,这样就可以使用 then().catch() 的方式避免回调地狱。 那么什么 Node.js 回调风格呢?简单讲就是回调函数参数中的第一个参数必须是 error,其余是必要的参数。 举个例子。 fs.open(path, flags
Go语言结构体和JSON序列化
一个结构体( struct )就是一个字段的集合,而 type 的含义跟其字面意思相符。这有点类似 JS 中的对象。 匿名字段 匿名字段类似下面这种方式 如果变量中的 Student 也有 Human 中的 name 字段,Go 不会重写而是优先最外层访问。s.Human.name 就是访问 Human 内的,s.na
为什么 git pull 会修改文件权限和所属用户以及用户组?
问题过程 首先 git clone 之后进行改变用户组 然后使用 git pull 更新本地仓库,这里明显发现已经发生了变化。 注意:git pull = git fetch + git merge 下面会更多用 git merge 说明。 当然如果修改了权限,git pull 之后也会变成默认权限(根据 umask
Go 语言延迟调用和错误处理
Go 支持使用关键字 defer 创建函数内延迟语句(进栈),当函数在 return 之前,这些 defer 语句会按照先进后出执行(出栈)。 如下所示,在 test 函数 return 之前所有进入 defer 栈的语句都会先执行。 需要注意的是,编译器在到达 defer 语句的时候要进行确认参数值以及类型,分配堆栈
不常见的 NPM 包管理技巧
除了使用 npmjs.com 这个集中包托管网站,npm 还可以使用 Git 和本地包来安装。 和正常的 npm install package-name 语法一样,只不过下面的 package-name 全部换成了 url。 使用 Git 包 官方在文档里定义的 url 的格式是 ://[ [: ]@] [: ][:
JS BigInt 尝鲜
JavaScript 所有数字内部都是 float64 类型,所以数值的精度最多只能到 53 个二进制位,大于这个范围的整数是无法精确表示的。 在很多金融场景如果使用 JS 的话就得使用一些 BigNumber 库。其中以太坊 web3.js 使用的是最为流行的是 bignumber.js,并且包含 .d.ts 类型提
TypeScript 导入 JSON Module
这是我在知乎问题 Typescript有什么冷门但是很好用的特性? 的回答。 Node.js 模块是允许直接导入 JSON 文件的,但是 ES Module 现在还不支持,TS 在 2.9 (18年5月17日还未发布)之前也不支持。日常中使用 JSON 最多的场景就是 配置文件了,如果要使用的话需要使用下面一些 tri