刪除與模式匹配的行并將其放入緩沖區(qū)
I正在嘗試執(zhí)行此操作:刪除與模式匹配的行,然后將這些行復(fù)制到文件中的其他位置。:g/pattern/d會(huì)刪除這些行,但當(dāng)我使用p或p時(shí),只有最后一行從內(nèi)部緩沖區(qū)插入
解答動(dòng)態(tài)
您可以刪除寄存器:
首次清潔例如,在正常模式下用qqq注冊(cè)q。
然后使用:g/PATTERN/norm!quot;qdd時(shí),用刪除的文本替換q寄存器的內(nèi)容,但如果使用quot;qp將寄存器的內(nèi)容傳遞到您想要傳遞的位置。
另一種解決方案是將:h:move與global命令結(jié)合使用。例如,移動(dòng)緩沖器:
:g/PATTERN/move$僅返回最后一行的原因是:g逐行處理找到的行。這意味著下一次刪除操作都會(huì)覆蓋所用寄存器的上一個(gè)內(nèi)容。
要克服此問題,必須使用命名寄存器(a-Z)并使用大寫名稱,這會(huì)導(dǎo)致新內(nèi)容不會(huì)覆蓋上一個(gè)內(nèi)容,而是附加到寄存器。
g/PATTERN/d a 會(huì)將所有刪除的行附加到寄存器a。
現(xiàn)在該寄存器不會(huì)為空,因此在使用它之前必須清除其內(nèi)容。
qaq將開始將宏記錄到寄存器a中,并立即再次停止,從而清除其內(nèi)容。- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。