jbwqfy.com Open in urlscan Pro
172.67.220.97  Public Scan

URL: https://jbwqfy.com/
Submission: On July 23 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Eric's Blog 時光荏苒,歲月如梭
 * 首頁
 * 歸檔
 * 分類
 * 標簽
 * 開源
 * 想法
 * 維基
 * 相冊
 * 友鏈
 * 關于


 * NEOVIM 调色板插件 CPICKER.NVIM
   
   2024-07-14
   Eric Wong
   
   辅助分享
   neovim
    * 啓用插件
    * 操纵界面
    * 後續計劃
   
   由于偶然需要点窜 Neovim 的高亮,触及到色彩调剂,以往利用的是外部辅助,往返切换很是麻烦。也找了一些 Neovim/Vim
   的插件,可是利用的感受确切不尽如人意。 是以,本身实现了一个精练版本的调色板插件 cpicker.nvim,該插件存儲于 SpaceVim 的
   bundle/cpicker.nvim 文件夹内。 为了便利伶仃利用,手动同步更新到 wsdjeg/cpicker.nvim。
   
   
   啓用插件
   
   若是是 SpaceVim 用户,只需要启用 tools#cpicker 模块便可:
   
   [[layers]]
     name = 'tools#cpicker'
   
   
   对非 SpaceVim 用户,可以用插件办理器安裝:
   
   Plug 'https://spacevim.org/git/repos/SpaceVim/'
   Plug 'wsdjeg/cpicker.nvim'
   
   
   
   操纵界面
   
   
   
   操纵快捷鍵:
   
   按鍵 功能描述 h / <Left> 減小光標下的值 l / <Right> 增加光標下的值 <Enter> 複制光標下的顔色值
   
   
   後續計劃
   
    * 今朝撑持的格式包含:RGB、HSL、HSV、CMYK,計劃再增加一些经常利用的格式。
    * 增加顔色同化調整面板
   
   閱讀全文
   
   --------------------------------------------------------------------------------


 * NEOVIM 缓冲区(BUFFER)相干事务
   
   2024-07-07
   Eric Wong
   
   學習筆記
   neovim
    * 启事
    * 獲取可用事务列表
    * 事务的觸發時機
      * BufAdd
      * BufNew
      * BufNewFile
    * 測試示例
   
   
   启事
   
   比来在利用 SpaceVim 的標簽栏(tabline)时发现,对新增的空内容的缓冲区(buffer),標簽栏上方实在不会列出。
   查抄源码发现標簽栏跟踪缓冲区新增的代码只监听了:BufNewFile 跟 BufReadPost 事务。
   
   vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufReadPost' }, {
     callback = vim.schedule_wrap(function(event)
       if
         vim.api.nvim_buf_is_valid(event.buf)
         and index(right_hide_bufs, event.buf) == -1
         and index(visiable_bufs, event.buf) == -1
         and index(left_hide_bufs, event.buf) == -1
       then
         table.insert(right_hide_bufs, event.buf)
       end
     end),
     group = tabline_augroup,
   })
   
   
   測試發現 :enew 号令及 :new 号令並不會觸發這兩個事务。点窜源碼增加監聽 BufNew 事务。
   
   固然题目是修复了,可是我感觉有需要清算下缓冲区相干事务的觸發時機。
   
   
   獲取可用事务列表
   
   可利用号令 :echo getcompletion('Buf', 'event') 快速查看当前 Neovim 版本撑持的缓冲区事务列表。
   
   
   事务的觸發時機
   
   
   BUFADD
   
    1. 新增一個緩沖區至緩沖區列表
    2. 将一个 unlisted 缓冲区添加进 listed 缓冲区列表
    3. 点窜 listed 缓冲区列表中某个缓冲区的名称
   
   
   BUFNEW
   
    1. 新增一個緩沖區
    2. 点窜緩沖區的名稱
   
   
   BUFNEWFILE
   
    1. 當開始編輯一個不存在的文件時
   
   
   測試示例
   
   通過一些實例來測試事务觸發的時機,測試代碼以下:
   
   需要忽视掉落 *Cmd 事务,避免文件讀寫掉敗。
   
   local log = require("spacevim.logger").derive("logevent")
   local group = vim.api.nvim_create_augroup("logevent", { clear = true })
   vim.api.nvim_create_autocmd(
   	vim.tbl_filter(function(e)
   		return not vim.endswith(e, "Cmd")
   	end, vim.fn.getcompletion("Buf", "event")),
   	{
   		callback = vim.schedule_wrap(function(event)
   			log.debug(event.event .. event.buf)
   		end),
   		group = group,
   	}
   )
   
   
    1. 執行号令::new
   
   [ logevent ] [13:20:39:562] [ Debug ] BufNew5
   [ logevent ] [13:20:39:562] [ Debug ] BufAdd5
   [ logevent ] [13:20:39:562] [ Debug ] BufAdd5
   [ logevent ] [13:20:39:562] [ Debug ] BufLeave4
   [ logevent ] [13:20:39:562] [ Debug ] BufEnter5
   [ logevent ] [13:20:39:562] [ Debug ] BufWinEnter5
   
   
    1. 執行号令::enew
   
   [ logevent ] [13:22:42:452] [ Debug ] BufNew6
   [ logevent ] [13:22:42:452] [ Debug ] BufAdd6
   [ logevent ] [13:22:42:452] [ Debug ] BufAdd6
   [ logevent ] [13:22:42:452] [ Debug ] BufLeave4
   [ logevent ] [13:22:42:452] [ Debug ] BufWinLeave4
   [ logevent ] [13:22:42:452] [ Debug ] BufHidden4
   [ logevent ] [13:22:42:452] [ Debug ] BufEnter6
   [ logevent ] [13:22:42:452] [ Debug ] BufWinEnter6
   
   
    1. 執行号令: :echo bufadd('')
   
   [ logevent ] [13:47:57:482] [ Debug ] BufNew6
   
   
    1. echo nvim_create_buf(v:false, v:true)
   
   [ logevent ] [14:25:06:555] [ Debug ] BufNew5
   
   
    1. echo nvim_create_buf(v:true, v:true)
   
   [ logevent ] [14:26:32:389] [ Debug ] BufNew11
   [ logevent ] [14:26:32:389] [ Debug ] BufAdd11
   [ logevent ] [14:26:32:389] [ Debug ] BufAdd11
   
   
   當打開一個文件後,執行 :set nobuflisted, 在執行 :set buflisted
   
   [ logevent ] [14:38:15:888] [ Debug ] BufDelete4
   [ logevent ] [14:38:19:857] [ Debug ] BufAdd4
   [ logevent ] [14:38:19:857] [ Debug ] BufAdd4
   
   
   打開一個存在的文件::e README.md
   
   [ logevent ] [14:44:15:717] [ Debug ] BufNew8
   [ logevent ] [14:44:15:717] [ Debug ] BufAdd8
   [ logevent ] [14:44:15:717] [ Debug ] BufAdd8
   [ logevent ] [14:44:15:717] [ Debug ] BufLeave4
   [ logevent ] [14:44:15:717] [ Debug ] BufWinLeave4
   [ logevent ] [14:44:15:717] [ Debug ] BufHidden4
   [ logevent ] [14:44:15:717] [ Debug ] BufReadPre8
   [ logevent ] [14:44:15:717] [ Debug ] BufReadPost8
   [ logevent ] [14:44:15:717] [ Debug ] BufReadPost8
   [ logevent ] [14:44:15:717] [ Debug ] BufEnter8
   [ logevent ] [14:44:15:717] [ Debug ] BufWinEnter8
   
   
   打開一個不存在的新文件: :e newfile.txt
   
   [ logevent ] [14:45:56:519] [ Debug ] BufNew10
   [ logevent ] [14:45:56:519] [ Debug ] BufAdd10
   [ logevent ] [14:45:56:519] [ Debug ] BufAdd10
   [ logevent ] [14:45:56:519] [ Debug ] BufLeave4
   [ logevent ] [14:45:56:519] [ Debug ] BufWinLeave4
   [ logevent ] [14:45:56:519] [ Debug ] BufHidden4
   [ logevent ] [14:45:56:519] [ Debug ] BufNewFile10
   [ logevent ] [14:45:56:519] [ Debug ] BufEnter10
   [ logevent ] [14:45:56:519] [ Debug ] BufWinEnter10
   
   
   閱讀全文
   
   --------------------------------------------------------------------------------


 * (NEO)VIM 括号补全插件比较
   
   2024-06-27
   Eric Wong
   
   辅助分享
   vim  neovim
    * 启事
    * 實現邏輯及功能比較
      * auto-pairs
      * neopairs.vim
      * nvim-autopairs
    * 維護狀態
   
   
   启事
   
   輸入模式下,成對符號的自動補全一向是比較经常利用的功能。利用了很多年 delimitMate , 根基功能正常,可是偶然会呈现卡屏现象,等一段时候或按下
   ctrl-c 可以結束卡屏,可是會輸入很多個 <Plug>delimitMate( 。 可是这一现象并没有法百分百重现。
   
   想著這麽多年過去了,會不會有新的更好用的插件,因而搜了下,今朝已知的括號補全插件有:
   
    * delimitMate
    * neopairs.vim:需要 exists('#CompleteDone') == 1
    * nvim-autopairs:需要 Neovim 0.7.0+
    * mini.pairs
    * auto-pairs
    * autoclose.nvim
    * ultimate-autopair.nvim
   
   
   實現邏輯及功能比較
   
   
   AUTO-PAIRS
   
   仓库中 Vim 脚本只有 plugin/auto-pairs.vim (673 行)。 监听 BufEnter 事务,映照 g:AutoPairs
   所設定的成對符號。
   
   
   NEOPAIRS.VIM
   
   通過監聽 CompleteDone 事务,判定补全 item 的结尾是不是匹配设定的成对符号。
   
   
   NVIM-AUTOPAIRS
   
   是利用 Lua 实现的 Neovim 插件。在 nvim-autopairs.setup 函數裏利用以下三組事务監聽來實現補全。
   
   local group = api.nvim_create_augroup('autopairs_buf', { clear = true })
   api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, {
     --- M.on_attach
   })
   api.nvim_create_autocmd('BufDelete', {
     ---
   })
   api.nvim_create_autocmd('FileType', {
     ---
   })
   
   
   在 M.on_attach 函數裏,首要有一個 expr 映照及一個 InsertCharPre 事务監聽:
   
   local enable_insert_auto = false -- 初始化是不是插入的 flag
   local expr_map = function(key)
       api.nvim_buf_set_keymap(bufnr, 'i', key, '', {
         expr = true
         --- 设定 expr 映照
       })
   end
   for _, rule in pairs(rules) do
      -- 按照每个法则映照快捷键,并计较是 enable_insert_auto 值
   end
   if enable_insert_auto then
       api.nvim_create_autocmd('InsertCharPre', {
         --- 若是 enable_insert_auto 为 true, 则监听 InsertCharPre 事务
       })
   end
   
   
   
   維護狀態
   
   repo Github stars Issues pull requests last commit auto-pairs 4.1k 138 Open /
   155 Closed 27 Open / 53 Closed Feb 27, 2019 delimitMate 2k 47 Open / 219
   Closed 5 Open / 36 Closed Dec 14, 2020 nvim-autopairs 3k 12 Open / 287 Closed
   1 Open / 157 Closed May 20 2024 neopairs.vim 31 0 Open / 4 Closed 0 Open / 0
   Closed Mar 16, 2016
   
   mini.pairs 仓库有2个:mini.nvim、mini.pairs。 由于 mini.nvim 仓库实际上是由几十个自力插件组合而成,其
   Issues 跟 pull requests 列表应对到 mini.pairs 上到底有多少,没法评估。
   
   auto-pairs 有一个较活跃的 fork 版本LunarWatcher/auto-pairs,今朝維護狀態正常:
   
   閱讀全文
   
   --------------------------------------------------------------------------------


 * LUA 与 VIM SCRIPT 之间函数彼此调用
   
   2024-06-11
   Eric Wong
   
   學習筆記
   neovim
    * 启事
    * 根基兼容邏輯
    * Vim Script 中调用 Lua
    * Lua 中调用 Vim Script 函数
   
   
   启事
   
   在利用 Neovim 之前,一向利用的是 Vim Script 写 Vim 脚本。随着 Neovim 的呈现,和 Lua
   的速度上风,因而将之前写的插件利用 Lua 进行重写了。 在这里记录一些从 Vim Script 切换到 Lua 碰到的一些题目,和前后兼容的写法。
   
   
   根基兼容邏輯
   
   個人比較垂青腳本的向後兼容,在非需要的情況下,對外的接口函數不會改變,通過以下一個示例大年夜致揭示了若何做到前後版本的腳本兼容。
   
   比如,初期的 Vim Script 脚本实现的脚本以下:
   
   autoload/test.vim
   
   function! test#test(name)
     echo "hello " . name
   endfunction
   
   
   那么,对 Neovim 新版本的撑持,可利用 Lua 实现近似的功能:
   
   lua/test.lua
   
   local M = {}
   
   function M.test(name)
     print('hello ' .. name)
   end
   
   return M
   
   
   为了让前面的 test.vim 利用 Lua 函数,可以做以下点窜:
   
   function! test#test(name)
     if has('nvim')
       lua require('test').test(vim.api.nvim_eval('name'))
     else
       echo "hello " . name
     endif
   endfunction
   
   
   以上函數存在一個問題,就是每次調用時,都會去檢測一次版本,可以將腳本点窜爲:
   
   if has('nvim')
     function! test#test(name)
       lua require('test').test(vim.api.nvim_eval('name'))
     endfunction
   else
     function! test#test(name)
       echo "hello " . name
     endfunction
   endif
   
   
   這樣一來,版本檢測僅僅在這個腳本文件被讀取載入時才執行一次,在這之後 test#test(name) 這個函數的本體僅限于一行代碼。
   
   lua require('test').test(vim.api.nvim_eval('name'))
   
   
   
   VIM SCRIPT 中调用 LUA
   
   上述的示例中只有一種調用编制,即便用 :lua 号令,該号令利用有兩種编制。
   
   lua print('hello')
   
   
   lua << EOF
     print('hello')
   EOF
   
   
   别的,利用 :lua 号令,若是碰到 Vim Script 函数本来需要有返回值的话,比较麻烦,可利用 luaeval() 函數,比如:
   
   function! test#test(name)
     call luaeval("require('test').test(vim.api.nvim_eval('name'))")
     " 也可利用 return 返回值
     return luaeval("require('test').test(vim.api.nvim_eval('name'))")
   endfunction
   
   
   Neovim 0.5.0 增加了 v:lua,可以加倍便利地在 Vim Script 中调用 Lua, 示例以下:
   
   function! test#test(name)
     " 这里可以直接利用参数,而不需要利用 nvim_eval
     return v:lua.require('test').test(a:name)
   endfunction
   
   
   
   LUA 中调用 VIM SCRIPT 函数
   
   Neovim 供给了 vim.fn 和 nvim_call_function(fn, argv)。
   
   -- built-in functions
   vim.fn.executable(var)
   
   -- User autoload function
   vim.fn['test#test'](name)
   
   
   对 Vim 的 funcref 变量,可利用以下编制调用:
   
   function! s:test_hello(name)
     
   endfunction
   
   let s:fn = function('s:test_hello')
   
   function! test#run(fn)
     if type(a:fn) == 2
       let fn = string(a:fn)[10:-3]
     elseif type(a:fn) == type('')
       let fn = a:fn
     endif
     call v:lua.require('test').run(fn)
   endf
   
   
   閱讀全文
   
   --------------------------------------------------------------------------------


 * 更新 NEOVIM 碰到的题目
   
   2024-03-11
   Eric Wong
   
   學習筆記
   neovim
    * 启事
    * 升级 Neovim
    * 不兼容的改動
      * vim.o.v_te 報錯
      * 窗口豆割高亮 VertSplit 掉效
      * treesitter 高亮報錯
    * 切回穩定版
   
   
   启事
   
   由于在保护 SpaceVim 这一项目,固然我本身今朝平常利用 neovim-0.9.5,可是还有很多用户会利用 neovim-nightly 版本。
   是以,升级至逐日构建版本测试 SpaceVim。
   
   
   升级 NEOVIM
   
   Windows 下升级也比较简单,利用 scoop 号令便可:
   
   scoop uninstall neovim
   scoop install neovim-nightly
   
   
   
   不兼容的改動
   
   安裝后,启动一堆弊端,也做了一部分修复,commits 以下:
   
   * 2ad0da42 - perf(treesitter): add default setup function (Eric Wong 49 minutes ago)
   * f8b280e0 - fix(flygrep): remove `t_ve` option (Eric Wong 68 minutes ago)
   * c46968d5 - fix(colorscheme): link WinSeparator to VertSplit (Eric Wong 79 minutes ago)
   * 9ee8606e - fix(telescope): fix deoplete autocmd (Eric Wong 82 minutes ago)
   * 74c93c6c - chore(treesitter): update nvim-treesitter to 0.9.1 for Nvim-0.8.x (Eric Wong 2 hours ago)
   
   
   
   VIM.O.V_TE 報錯
   
   本来,在我的代碼裏有很多通過設置 &v_te 選項來實現点窜光標的造型。可是升級到新版本後,就報以下錯誤:
   
   Error detected while processing function SpaceVim#plugins#flygrep#open:
   line    1:
   E5108: Error executing lua C:\Users\wsdjeg\.SpaceVim\/lua/spacevim/plugin/flygrep.lua:780: Unknown option 't_ve'
   stack traceback:
   	[C]: in function '__index'
   	C:\Users\wsdjeg\.SpaceVim\/lua/spacevim/plugin/flygrep.lua:780: in function 'open'
   	[string ":lua"]:1: in main chunk
   
   
   檢查了下源碼,原來是因爲執行了 vim.o.v_te,嘗試做了一些測試,增加exists()判斷,可恨的是 exists('&t_ve') 竟然返回 1。
   那么就没法判定了,只能是删除这些设置。
   
   
   窗口豆割高亮 VERTSPLIT 掉效
   
   更新後,豆割窗口的豎線沒有高亮了。查了下 :hi VertSplit,輸出結果顯示高亮設置正常。看了 :h hl-VertSplit
   才知道,本来豆割窗口的高亮组名称点窜了。 点窜成了 WinSeparator。是以在 ColorScheme 的 autocmd 内增加了:
   
   hi link WinSeparator VertSplit
   
   
   
   TREESITTER 高亮報錯
   
   这是我碰到最无语的弊端。每当打开 lua 文件、help 文件 就会弹出報錯 treesitter parser 不存在。开初我觉得是
   nvim-treesitter 的题目,更新并增加建设禁用所有的高亮都不可。
   
   報錯以下:
   
   Error detected while processing function startify#open_buffers[13]..<SNR>276_open_buffer[12]..BufReadPost Autocommands for "*":
   Error executing lua callback: ...s\neovim-nightly\current\share\nvim\runtime\filetype.lua:30: Error executing lua: ...s\neovim-nightly\current\share\nvim\runtime\filetype.lua:31: function startify#open_buffers[13]..<SNR>276_open_buffer[12]..BufReadPost Autocommands for "*"..FileType Autocommands for "*"..function <SNR>1_LoadFTPlugin[20]..script D:\Scoop\apps\neovim-nightly\current\share\nvim\runtime\ftplugin\lua.lua: Vim(runtime):E5113: Error while calling lua chunk: ...rrent\share\nvim\runtime/lua/vim/treesitter/language.lua:104: no parser for 'lua' language, see :help treesitter-parsers
   stack traceback:
   	[C]: in function 'error'
   	...rrent\share\nvim\runtime/lua/vim/treesitter/language.lua:104: in function 'add'
   	...t\share\nvim\runtime/lua/vim/treesitter/languagetree.lua:112: in function 'new'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:41: in function '_create_parser'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:108: in function 'get_parser'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:416: in function 'start'
   	...ovim-nightly\current\share\nvim\runtime\ftplugin\lua.lua:2: in main chunk
   
   
   執行 :help treesitter-parsers 一样報錯,理解为打开 help 文件也報錯,同只執行 :h。
   
   Error detected while processing modelines[274]..FileType Autocommands for "*"..function <SNR>1_LoadFTPlugin[20]..script D:\Scoop\apps\neovim-nightly\current\share\nvim\runtime\ftplugin\help.lua:
   E5113: Error while calling lua chunk: ...rrent\share\nvim\runtime/lua/vim/treesitter/language.lua:104: no parser for 'vimdoc' language, see :help treesitter-parsers
   stack traceback:
   	[C]: in function 'error'
   	...rrent\share\nvim\runtime/lua/vim/treesitter/language.lua:104: in function 'add'
   	...t\share\nvim\runtime/lua/vim/treesitter/languagetree.lua:112: in function 'new'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:41: in function '_create_parser'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:108: in function 'get_parser'
   	...ightly\current\share\nvim\runtime/lua/vim/treesitter.lua:416: in function 'start'
   	...vim-nightly\current\share\nvim\runtime\ftplugin\help.lua:2: in main chunk
   
   
   因而,禁用 SpaceVim 的 treesitter 模块,任然報錯。查看了 neovim-nightly
   的源码,发现,本来在这几个文件里面默许增加了:vim.treesitter.start()
   
    * D:\Scoop\apps\neovim-nightly\current\share\nvim\runtime\ftplugin\help.lua
    * D:/Scoop/apps/neovim-nightly/0.10.0-2559/share/nvim/runtime/ftplugin/lua.lua
    * 等等,懶得去一個個搜了。
   
   執行 cat
   D:/Scoop/apps/neovim-nightly/0.10.0-2559/share/nvim/runtime/ftplugin/lua.lua,
   发现就两行代码,也没有任何条件判定跟 error handle。
   
   -- use treesitter over syntax
   vim.treesitter.start()
   
   
   
   切回穩定版
   
   說實話,沒空去這樣試錯。
   
   scoop uninstall neovim-nightly
   scoop install neovim
   nvim --version
   NVIM v0.9.5
   Build type: RelWithDebInfo
   LuaJIT 2.1.1703942320
   Compilation: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe /MD /Zi /O2 /Ob1  -W3 -wd4311 -wd4146 -DUNIT_TESTING -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_WIN32_WINNT=0x0602 -DMSWIN -DINCLUDE_GENERATED_DECLARATIONS -ID:/a/neovim/neovim/.deps/usr/include/luajit-2.1 -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/build/src/nvim/auto -ID:/a/neovim/neovim/build/include -ID:/a/neovim/neovim/build/cmake.config -ID:/a/neovim/neovim/src -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include -ID:/a/neovim/neovim/.deps/usr/include
   
      system vimrc file: "$VIM\sysinit.vim"
     fall-back for $VIM: "C:/Program Files (x86)/nvim/share/nvim"
   
   Run :checkhealth for more info
   
   
   閱讀全文
   
   --------------------------------------------------------------------------------


 * 修复 GIT CLONE 题目: GNUTLS_HANDSHAKE() FAILED
   
   2024-02-23
   Eric Wong
   
   學習筆記
   git
    * 前因
    * 嘗試診斷
    * 从头編譯
   
   
   前因
   
   今天在 wsl 内将 ~/.SpaceVim 倉庫的遠程地址設置成 https://spacevim.org/git/repos/SpaceVim/
   后,再執行 git pull 出現錯誤:
   
   fatal: unable to access 'https://spacevim.org/git/repos/SpaceVim/': gnutls_handshake() failed: Error in the pull function.
   
   
   可是,恢复成 github 或 gitlab 仓库地址后,就又可以執行 git pull 了。
   
   
   嘗試診斷
   
   執行以下号令,看看收集链接到底如何回事:
   
   GIT_CURL_VERBOSE=1 git pull
   
   
   輸出爲:
   
   23:29:04.865626 http.c:664              == Info: Couldn't find host spacevim.org in the (nil) file; using defaults
   23:29:04.884061 http.c:664              == Info:   Trying 104.21.53.107:443...
   23:29:05.085433 http.c:664              == Info:   Trying 2606:4700:3037::ac43:d405:443...
   23:29:05.085549 http.c:664              == Info: Immediate connect fail for 2606:4700:3037::ac43:d405: Network is unreachable
   23:29:05.085601 http.c:664              == Info:   Trying 2606:4700:3032::6815:356b:443...
   23:29:05.085623 http.c:664              == Info: Immediate connect fail for 2606:4700:3032::6815:356b: Network is unreachable
   23:29:05.118268 http.c:664              == Info: Connected to spacevim.org (104.21.53.107) port 443 (#0)
   23:29:05.138108 http.c:664              == Info: found 372 certificates in /etc/ssl/certs
   23:29:05.138186 http.c:664              == Info: GnuTLS ciphers: NORMAL:-ARCFOUR-128:-CTYPE-ALL:+CTYPE-X509:-VERS-SSL3.0
   23:29:05.138223 http.c:664              == Info: ALPN, offering h2
   23:29:05.138240 http.c:664              == Info: ALPN, offering http/1.1
   23:29:05.149601 http.c:664              == Info: gnutls_handshake() failed: Error in the pull function.
   23:29:05.149680 http.c:664              == Info: Closing connection 0
   fatal: unable to access 'https://spacevim.org/git/repos/SpaceVim/': gnutls_handshake() failed: Error in the pull function.
   
   
   
   从头編譯
   
   刪除已有 git:
   
   sudo apt uninstall git
   
   
   下载 git 源码
   
   wget "https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.xz"
   tar -xvf git-2.9.5.tar.xz
   
   
   安裝依賴
   
   sudo apt-get update
   sudo apt-get install curl jq -y
   sudo apt-get install build-essential autoconf dh-autoreconf -y
   sudo apt-get install libcurl4-openssl-dev gettext -y
   
   
   編譯
   
   make configure
   ./configure --prefix=/usr --with-openssl
   make -j4
   
   
   安裝
   
   sudo make install
   
   
   閱讀全文
   
   --------------------------------------------------------------------------------

1/17
最新發布
 * Neovim 调色板插件 cpicker.nvim
 * Neovim 缓冲区(buffer)相干事务
 * (Neo)Vim 括号补全插件比较
 * Lua 与 Vim Script 之间函数彼此调用
 * 更新 Neovim 碰到的题目
 * 修复 git clone 题目: gnutls_handshake() failed
 * 《熱辣滾燙》觀後感
 * 从 Github 迁徙到 Gitlab
 * 很是棒的安卓输入法 fcitx-android
 * Neo-tree.nvim 糟的体验

分類
 * 生活隨筆 24
 * 學習筆記 63
 * 辅助分享 10
 * 工作資料 2

標簽云
回憶 lisp 高中 vim 蘇大年夜 java lua love ruby spacevim blog ecl movie rust zig nodejs
winrar neovim gallery life lifestyle fcitx gitlab git





xxfseo.com