C'est une fonction que je souhaitais également ! Mais pas seulement pour le mot sous le curseur, aussi pour une sélection visuelle ou un mouvement.
En conséquence (et en m'appuyant sur vos réponses), j'ai ajouté ceci à mon fichier .vimrc :
nnoremap <leader>g :set operatorfunc=SubstituteOperator<cr>g@
vnoremap <leader>g :<c-u>call SubstituteOperator(visualmode())<cr>
function! SubstituteOperator(type)
if a:type ==# 'v'
execute 'normal! `<v`>"my'
elseif a:type ==# 'char'
execute 'normal! `[v`]"my'
else
return
endif
let sub = input("substitute '".getreg("m")."' with ... : ")
execute "%s/".getreg("m")."/".sub."/gc"
endfunction
Je peux maintenant appuyer sur des éléments tels que \sw
, \sf;
o \si(
en mode normal ou \s
en mode visuel et j'obtiens une invite me demandant si je veux remplacer ma sélection par quelque chose d'autre.
(Pour l'instant, je ne sais pas si je veux le même message que @Lieven...)
0 votes
Vous pouvez également utiliser n pour suivant et b pour retour (précédent) match.
0 votes
@Orwellophile seulement
n
fonctionne pour moib
revient à la valeur par défaut (début du mot)#
fonctionne pour moi comme prévu, ce qui remonte au mandat précédent.0 votes
@JohnnyQ Désolé Johnny, je devais être sous l'emprise de la colle.
n
pour le prochain etN
pour le précédent. C'est écrit sur mon clavier, je ne sais donc pas comment j'ai pu me tromper.