基于行計數(shù)設(shè)置行號
如果文件有大量行,我希望啟用行號,否則默認(rèn)情況下不啟用行號。如果我運行命令:if行(“$”)>;150
解答動態(tài)
:設(shè)置編號
endif
當(dāng)vim打開時,文件行按預(yù)期啟用/不變。把這條線放進(jìn)我的初始化vim(對于neovim)沒有效果。我做錯了什么?謝謝!
腳本初始化vim只有在您第一次啟動Neovim或手動獲取文件源時才執(zhí)行(vimrc和vim也是如此)技巧:
augroup ShowLineNumberForLongFiles自動駕駛!autocmd BufEnter*if line('$')>;150setlocal number
endifaugroup end 每當(dāng)您輸入新的緩沖器組的第一行(autocmd!)有什么辦法讓大家清場嗎內(nèi)容。這個有助于避免在手動獲取配置文件時堆積腳本。
請注意,我將設(shè)置更改為setlocal,以確保該選項僅應(yīng)用于當(dāng)前緩沖區(qū)。
以下是一些相關(guān)的幫助主題,您可以閱讀以獲取更深入的信息平面:
:小時au命令:h:自動抄送:h BufEnter:小時A組:h:來源:h集:h setlocal此處適合使用自動命令…
autocmd BufReadPost*if line('$')>;150:setlocal number
else
:setlocal nonnumber
endif OR,您可以使用MartinTournoij的這一出色的增強功能。結(jié)果是一樣的,但占用的空間要小得多空格:
autocmd BufReadPost*讓gt;150 解釋:首先,gt;150基本上返回true或false。由于'number'應(yīng)該設(shè)置為true或false,我們也可以直接從條件結(jié)果let&l:number=…
中賦值,不管怎樣,這種自動命令方法都可以完成一些事情…
確保在加載任何緩沖區(qū)后(當(dāng)已知行數(shù)時)進(jìn)行檢查。使用特定于緩沖區(qū)的設(shè)置,而不是全局設(shè)置設(shè)置。顯式根據(jù)需要啟用或禁用以確保正確的設(shè)置。 請注意,如果文件具有設(shè)置/取消設(shè)置具有優(yōu)先級的行號的模型線,并且將覆蓋此行號。
如果在通常使用自動命令之前未使用這些命令,則初始化vim文件。您應(yīng)該將它們包含在一個自動命令組中,如下所示…
augroup initvimucs au![auto commands go here]augroup end 這可以確保在重新加載時不會多次輸入這些命令初始化vim.
Update:我不知道您是否在考慮這個問題,但值得指出的是(再次向MartinTournoij表示贊同)這是靜態(tài)的,即行號取決于緩沖區(qū)負(fù)載,以及隨后是否超過或低于150行什么都不會改變。這是絕對可能的擴(kuò)展,所以它是動態(tài)的。如果你對此感興趣,請告訴我- End
免責(zé)聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。