在Mac上使用Homebrew安装现代化VIM——Neovim

概念:

  • 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则说明已经安装成功了

在Mac上使用Homebrew安装现代化VIM——Neovim

然后通过两次 :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上传成功

上一篇:Elasticsearch 单机部署


下一篇:oeasy教您玩转vim - 87 - # 内容查找grep命令