Eu tenho um bom número de arquivos de origem de classes PHP que posso listar usando o comando grep -r "class " *
com cada arquivo contendo o class <MyClass>
padrão.
Por exemplo, um desses arquivos contém:
<?php
class NavlinkItem {
var $id;
var $name;
var $description;
var $image;
var $imageOver;
var $url;
var $blankTarget;
var $language;
var $templateModelId;
var $navlinkId;
function NavlinkItem($id = '') {
}
Gostaria de substituir o function NavlinkItem
padrão pelo function __construct
padrão.
O NavlinkItem
padrão pode ser derivado do nome real do system/navlink/NavlinkItem.php
arquivo de origem e posso obtê-lo comexpand('%:t:r')
Eu posso armazenar o NavlinkItem
padrão em um a
registradorlet @a = expand('%:t:r')
Eu quero fazer uma substituição no conteúdo desse registroexecute 's/function ' . getreg('a') . '/function __construct/'
O padrão parece ser encontrado, pois é destacado em amarelo.
Mas o comando ainda dá erro e mostra a E486: Pattern not found: function NavlinkItem
mensagem.
Você precisa usar
%
o símbolo no início do regex se todo o documento deve ser pesquisado, em vez de apenas a linha atual.Então
execute '%s/function ' . getreg('a') . '/function __construct/'
deve funcionar.