簡體   English   中英

如何在vim中以可視逐行模式為每行運行命令

[英]How to run command for every line in visual linewise mode in vim

我有以下CSS,我想在每行的開頭(使用Sass)用“ //”注釋掉。

a:focus {                                                                                                                  
    outline: thin dotted;                                                                                           
}

將光標放在第一行上,進入可視的逐行模式,然后選擇3行V j j 發表評論我型 / / ESC。 我希望發生的是所有行都帶有文本“ //”,但是只修改了第一行。

另外,如果我使用可視的逐塊模式來選擇(即Ctrl-v j j )行,然后按I / / ESC,則將收到所有以“ //”開頭的行的預期結果。

我的假設是,逐行和逐行模式只是選擇文本的不同方式。 如果我想選擇所有倍數行的文本,則選擇命令可以互換,只要我能夠選擇要修改的文本即可。 但是上面的行為使我相信我尚不了解其中的差異。

是否可以使用可視的逐行模式來完成此任務,或者僅僅是工作的錯誤工具? 此外,將非常感謝您提供有關兩種模式之間差異的文檔。

如果您處於逐行可視模式,則可以使用normal來完成所需的操作。

:'<,'>norm I//

normal在正常模式下在每行上運行命令I//

逐字符,逐行和逐塊可視模式都允許您跨多行選擇文本。

當您不關心或不想處理“線條”時,逐字符可視模式主要有用。

當處理整條線很重要時,將使用逐行可視模式。

逐塊可視模式是在多個相似行之間重復更改的便捷方法。 我喜歡將其視為“窗口內的窗口”,使我可以對當前緩沖區的一個子集進行操作。

您選擇的那個取決於您計划對該選擇進行的操作,但是它們的行為在執行可視模式命令時有所不同:由於Ex命令始終是逐行的,因此除了第一個命令外,它們都不關心可視模式的細節。行和所選內容的最后一行。

我更喜歡使用可視模式並調用:'<,'>s#^#//#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM