Eu tenho um arquivo com vários padrões de usuário. Quero alterar parte do texto, mas estou tendo dificuldades para encontrar um substituto e um correspondente. Usando o seguinte exemplo:
###############################################################################
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
###############################################################################
# Trackpad: enable tap to click for this user and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
Eu gostaria de substituir # Trackpad: ...
porrunning "Trackpad: ..."
Quebrando o problema, eu vim com algo usando um testador de regex:
/\n\n#\s(.*)/g
Se eu tentar usar isso no Vim, não funcionará para mim:
:/\n\n#\s(.*)/running "\1"/g
Acho que meu problema se resume a duas perguntas específicas:
- Como evitar a pesquisa de
\n
caracteres e garantir#
que não apareça no final do grupo de pesquisa? - Como posso usar efetivamente grupos de captura?
Existem ótimas respostas abaixo. Difícil escolher entre os três, no entanto, sinto que a resposta escolhida é a mais precisa para minhas especificações originais. Eu recomendo que você tente todas as três respostas com o arquivo real para ver como você se sente sobre elas.
:%s/\v\n\n#\s+(.*)/^M^Mrunning "\1"/
(adicionou a bandeira "mágica"). É realmente difícil escolher uma resposta correta para minha pergunta original, mas acho que essa resposta é a mais próxima da resposta original esperada. É também o único que funciona em todo o arquivo sem a necessidade de selecionar um intervalo.