概念:
- 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
中,注釋掉該插件,然後打開 Nvim, 使用init.vim
指令清除該插件):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
git config --global http.version HTTP/1.1