冯岳松

Results 8 issues of 冯岳松

安装zsh页面,1. 一个一键安装 zsh 的脚本oh-my-zsh 2. 使用 curl 来安装zsh 这两处都安装的是oh-my-zsh,是一个美化zsh终端的插件,需要提前已经安装好zsh,而并不是真正安装zsh终端。 由于macOS系统默认终端是zsh,运行命令不会出问题,可以安装oh-my-zsh插件, 但如果是Linux系统并且没有安装zsh终端,运行安装命令后会报错并提示安装zsh,如下: ```bash root@VM-0-16-ubuntu:~# sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" Zsh is not installed. Please install zsh first. ``` 安装zsh终端则需要按照[此处](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH)教程。

[antigen](https://github.com/zsh-users/antigen)是[zsh-users](https://github.com/zsh-users)组织(zsh community projects)发布的zsh插件管理包(The plugin manager for zsh) 建议使用antigen来安装oh-my-zsh,而非在oh-my-zsh的GitHub直接安装,原因有以下几点: 1. zsh-users组织发布了很多zsh插件,如语法高亮([zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)),自动补全([zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)),额外自动提示([zsh-completion](https://github.com/zsh-users/zsh-completions)),fish历史树搜索([zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search))。这些插件都是zsh常用甚至必备插件,如不使用antigen,则需要一个一个手动安装,使用antigen可以十分方便地安装(只需要在配置文件中加一行)。 2. 同时也完全支持oh-my-zsh的各种插件、主题,也可以选择其他zsh美化插件,插件的安装只需要在配置文件中加一行代码,source一下或者下次启动zsh终端就会自动安装,十分方便。 3. 对于macOS系统,oh-my-zsh需要从GitHub安装,而antigen已经提交到homebrew,直接使用命令`brew install antigen`即可完成安装,也不用手动更新,只需要更新homebrew即可更新到最新版的antigen。 4. 配置文件.zshrc十分简单,比oh-my-zsh简单很多,如下: ```vim #anigen路径 source /path-to-antigen/antigen.zsh #使用oh-my-zsh,也可以选择其他美化插件 antigen use oh-my-zsh # oh-my-zsh的插件 antigen bundle...

;l // 光标移动到右窗口 ;h // 光标移动到左窗口 当多个窗口打开时,光标移动到右窗口正常秒移,但光标移动到左窗口有一秒以上延迟,影响体验。

The development of Deoplete for code completion is finished. The author plans to migrate to ddc.vim Are we still suggested to use Deoplete? Or is there plan for ALE to...

enhancement

```c tls_send(&conn, (uint8_t *)buf, sizeof(buf), &sentlen); // sizeof(buf) > 20000 ``` TLCP协议,发送包时,包长度较大(如超过20000),接收端tls_recv接收时会解密失败,报错: tls.c: 387: tls_cbc_decrypt: tls ciphertext mac check failure,调试发现mac和hmac一致性检查不通过: ```c if (gmssl_secure_memcmp(mac, hmac, sizeof(hmac)) != 0) { error_puts("tls ciphertext...

最近在集成GmSSL3.0到某国产商业数据库,以使用TLCP协议做加密通信。过程中发现两个问题: 1. 项目需要在堆内存上分配TLS_CTX和TLS_CONNECT结构体的空间,目前没有类似的接口,只能手动malloc(sizeof(TLS_CTX)),就需要知道结构体的大小,需要引入GmSSL头文件。 但项目是以动态加载函数的方式来使用第三方库,其实没有必要引入第三方库头文件。 参考其他库的接口设计(如OpenSSL),基本为每个结构体提供了init/destroy接口,用于给结构体分配内存返回指针、销毁内存,这样只需要动态加载这个接口函数就可以分配空间,不需要手动malloc/free,也就不需要知道结构体的大小、不用引入头文件。而GmSSL库tls.h中的init不负责分配内存,只负责初始化。 2. 由于产品中有国际加密算法,使用了OpenSSL,所以引入了OpenSSL头文件,发现与GmSSL有结构体重名冲突,同时使用时编译不通过,需要手动将GmSSL库头文件中的结构体及被使用到的地方改名,使编译通过(头文件中结构体改名不影响已经生成好的动态库,依然可以正常使用)。改动的结构体如下: AES_KEY -> AES_KEY_GM SHA256_CTX -> SHA256_CTX_GM SHA512_CTX -> SHA512_CTX_GM MD5_CTX -> MD5_CTX_GM 关于上述内存分配释放接口与重名冲突的问题,是工业上使用GmSSL3.0可能会遇到的,希望可以给作者提一下建议。

With the following table in markdown: ``` ## 窗口与跳转 | 快捷键| 原指令 | 描述 | -----| ----- | ---- | | CTRL-O或CTRL-I | 返回光标上一个/下一个所在位置 |;n| :NERDTreeToggle | 打开目录 | |...

fix a bug on macOS and FreeBSD platform (issue #179)