概念:
- Neovim,由于vim的现在代码量30万,维护起来不好维护,于是从最开始的vim分支fork的一条分支,使vim重生!
安装步骤:
1,安装
brew install neovim
更改别名,鸟枪换炮。
# edit ~/.zshrcalias vim='nvim'alias vi='nvim'
2,插件
1,安装插件管理器
很多丰富的功能依赖于插件的加持,在安装插件之前,需要先安装插件的管理方式,这里使用 vim-plug
, 命令如下:
#注意这是vim用户的情况
curl -fLo ~/.vim/autoload/plug.vim --create-dirs <https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim>
#注意这才是neovim用户,
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs <https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim>
⚠️ tips:如果vim用户neovim用户搞错了之后之后就无法调用plug这个函数安装插件了,切记。
大多数情况下,我们在国内执行如上命令,都会得到如下回复:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
,此时将如下一组数据写入到hosts以避开这个报错:
echo "199.232.28.133 raw.githubusercontent.com" >> /etc/hosts
然后再来执行上边的安装命令,即可成功了。
2,配置插件
插件的管理维护依赖于配置文件:~/.config/nvim/init.vim
,标准的语法格式如下:
call plug#begin()call plug#end()
所需要安装的插件写在这两个语句中间,然后通过插件管理的命令进行配置:
- 安装插件:
:PlugInstall
- 更新插件:
:PlugUpdate
- 删除插件:
:PlugClean
(首先在init.vim
中,注释掉该插件,然后打开 Nvim, 使用:PlugClean
命令清除该插件) - 查看插件状态:
:PlugStatus
- 升级 vim-plug:
:PlugUpgrade
3,插件大全
1,底部状态栏vim-airline
默认的iterm2的vim界面中,底部状态栏内容很少,通过配置这个插件,可以让状态栏内容更加丰富一些。
正像上边说的,应该严格按照如上语法要求,将要安装的插件写入到配置文件中:
$ cat ~/.config/nvim/init.vim
call plug#begin()
Plug 'vim-airline/vim-airline'
call plug#end()
然后输入vim进入到neovim中,接着键入:PlugInstall
回车进行安装,其实这个地方编辑的时候已经支持补全,键入 P然后tab一下,就会补全为 Plug了
。看到Done则说明已经安装成功了
然后通过两次 :q
退出编辑器,接着再次进入,就能看到插件已经生效了:
MarkDown渲染
-
组件
Plug 'iamcco/mathjax-support-for-mkdp' Plug 'iamcco/markdown-preview.vim'
-
nvim需要支持python3,需要安装pynvim
pip3 install --user --upgrade pynvim
【Git】git push提示: error: RPC failed; curl 92 HTTP/2
背景 似乎我没有操作什么,昨天提交正常,今天就不能用了,可能是我升级了什么,从提示的内容来看是因为curl发起请求协议问题(92 错误码: CURLE_HTTP2_STREAM, 可能是curl的一个bug)
排查
$ curl -V
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
Release-Date: 2021-6-23
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets
CURL从7.62.0开始,默认选项是:CURL_HTTP_VERSION_2TLS
在此之前,默认值是: CURL_HTTP_VERSION_1_1
解决 修改协议: 因为是git调用,所以在GIT层面修改配置
git config --global http.version HTTP/1.1
使用git push上传成功