precedido o seguido de?
Si es algo que comienza con 'abc' que no es (inmediatamente) seguido de 'defg', quiere bmdhacks' solution.
Si es algo que empiezan con 'abc' eso no es (inmediatamente) precedido por 'defg', que desea una búsqueda hacia atrás negativo:
/\%(defg\)\@<!abc/
Esto coincidirá con cualquier ocurrencia de 'abc', siempre y cuando no sea parte de 'defgabc'. Vea :help \@<!
para más detalles.
Si desea hacer coincidir 'abc', siempre y cuando no sea parte de, a continuación, sólo tiene que añadir un .*
'defg * abc.':
/\%(defg.*\)\@<!abc/
Matching 'abc' sólo en líneas donde 'defg' no se produce es similar:
/\%(defg.*\)\@<!abc \%(.*defg\)\@!/
Aunque, si sólo está haciendo esto para hacer un cambio, usted puede hacer esto más fácil mediante la combinación de :v//
y :s//
:%v/defg/s/abc /<whatever>/g
Esto sustituirá '< cualquiera>' por 'abc' en todas las líneas que no contengan 'defg'. Vea :help :v
para más.
¿te refieres a precedido? o seguido por? Sus ejemplos parecen implicar seguido por. – rampion