如何使塊居中而不使其內(nèi)容居中
對(duì)于視覺(jué)塊選擇,:center命令將使所選內(nèi)容居中,而不是將塊作為一個(gè)整體。有沒(méi)有一種方法可以在不使內(nèi)容錯(cuò)位的情況下,將塊作為一個(gè)整體居中?頁(yè)情境:畢達(dá)哥拉
解答動(dòng)態(tài)
\
\a2
\c2
\
\uuub2 結(jié)果:
畢達(dá)哥拉斯:\
\a2
\c2
\
b2 Ex預(yù)期:
畢達(dá)哥拉斯:\
\a2
\c2
\
uuuuuuuub2
我不認(rèn)為有一種內(nèi)在的方法實(shí)現(xiàn)你想做的,所以我決定自己去實(shí)現(xiàn)。我得到了一個(gè)有效的解決方案,但這種文本操作有大量的角落案例,它們很可能不是由我的解決方案處理的。希望這能給你一些靈感來(lái)編寫你自己的(更好的)解決方案。另外,可能已經(jīng)有一個(gè)插件可以做你想做的事情,但我不知道。
的想法是創(chuàng)建一個(gè)CenterFn(),它可以做很多事情事情:檢查一下最后一個(gè)選擇是一個(gè)視覺(jué)塊(處理其他類型的選擇是留給讀者的練習(xí))。注意:如果復(fù)制粘貼代碼,請(qǐng)確保使用ctrl+vctrl+V插入^V字符獲取所選內(nèi)容使用此內(nèi)容確定塊的大。吹谝粋(gè)選定列和最后一個(gè)最遠(yuǎn)列之間的差值)獲取要居中的空間大?A楦欣叢矗篽:center如果textwidth的值或80。給定空格的大小和塊的大小,確定需要在塊前面添加多少空白添加填充 此:
功能中心fn()引用;如果上次視覺(jué)選擇未處于塊模式,則中止警告:引號(hào)之間的字符是通過(guò)gt;gt;if(visualmode())插入的!=quot;)echomquot;return endifquot;ay讓selectedText=getreg('a',1,v:true)最后讓@a=a\u save endtryquot;以獲取選擇中最長(zhǎng)行的長(zhǎng)度讓startCol=getpos(lt;lineLen?lineLen:maxLen)endfor let endCol=startCol+maxLenamp;textwidth!= 0 ? quot;獲取填充的大小讓padSize=size/2-(endCol-startCol)/2quot;'gt;norm!quot;Ilt;,”lt;C-ult;,”>;在command prompt.
I中,我針對(duì)您的特定測(cè)試用例測(cè)試了此解決方案,它可以工作,但它需要一些返工,例如,如果您想在like之前使用一些文本將塊居中這個(gè):
XXXPythagoras:XXXXXX\XXX
\XXXa2
\c2XXX
\XXX
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu伊薩戈拉斯:XXXXXX
\XXX
\XXX a2
\c2XXX
\XXX
uuuuuuuuuu124; 快速完成臟:
先選擇列為V形塊。然后按40Igt;gt;,其中quot;是要添加到圖片中心的空間數(shù)。
或者可以使用:h v>;向右移動(dòng)任意數(shù)量的shiftwidth()。- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無(wú)關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。