Aşağıdaki çözümü kullanabilirsiniz:
İlk v$önce imleçten satırın sonuna kadar metni seçmek için düğmelerini kullanın . Ardından aşağıdaki komutu kullanın:
:s/\%V\ /_/g
Daha \%Vönce görsel olarak seçilen alandaki metnin değiştirileceğini belirtin, bkz :h /\%V.
Örneğinizi alırsam:
function my_function(argument, another argument, but there are spaces)
İmlecim 40. sütundaysa ve az önce yazdığım komutu kullanırsam:
function my_function(argument, another argument,_but_there_are_spaces)
Yorumunuza cevap olarak şunları da kullanabilirsiniz:
\%# imleç konumundan eşleşen
\%>23c 23. sütundan sonra eşleşir.
\%>'m bir işaretin konumundan sonra eşleşen
Bkz :h /\%#, :h /\%>cve :h /\%>'m.
@ User9433424 yorumunda kullanmanın bir yolunu verdi \%#. İşaretli desen için zekayı ayarlayabilir mave ardından kullanabilirsiniz:
:s/\%>'a /_/g
@ User9433424 tarafından verilen paternin açıklaması aşağıdadır:
:s/\v(%#.*)@<= /_/
:s/ substitution command
\v Enable the very magic mode
%#.* Any characters from the cursor position
@<= Check for matches just before what follows
space Followed by a space
/_/ Substitute the matches by underscores
Görmek isteyeceksiniz :h \vve:h /\@<=
\%#. Yani, kullanabilirsiniz::s/\v(%#.*)@<= /_/g. Bu@<=, imleç konumundan sonra ( ) karakterden önce gelen bir boşluk olarak tanımlanabilir .