Dynamically linking text that may change

Hello! This is my first time posting here, so forgive me if I’m breaking any kind of protocol, or posting rule.

I have a character’s name that I keep changing, as well as working titles, locations, etc. I wanted to know if there was a way, or feature that allows me to change it one place, thereby changing the, in all of the other places in the binder. This would save me a lot of time by avoiding the search and replace feature.

I’m not aware of any functionality that would let you use a dynamic placeholder like that, but have you considered just using placeholder text? BOB1, GEORGE1, ROOM1, etc. – something that is a totally unique string of text that will not appear inside of another word (Ed is great until you consider “died” and “tied” both have Ed inside).

Once you’re done with the project, search and replace your placeholders with your final names, locations, etc. Take a snapshot before you do it so you can revert.

Yeah, that’s always possible. But it would seem like it would be a handy tool to have. A search and replace for an entire binder can be risky, so I’m rather surprised such a feature is non-existent.

Well, Scrivener does have replacement codes, but they’re meant to be invoked at compile-time for things like heading numbers, your information, etc. – a one-time replacement instead of an ongoing dynamic field that substitutes the current value in real time (like Word’s data fields).

With a macro tool, you could easily build a routine to take a snapshot, perform all the substitutions, run a compile, save the output to a specific location, and revert the snapshot back so you could see how the draft was coming along with minimal bother.

In order for such a feature to exist and not be a risk to your text (by, for instance, changing every “ed” to “Jeremy” by accident), it would require that you mark every instance of a character’s name somehow, so that it’s not the software’s fault when you change a character’s name.

As such, you should consider just marking your character names explicitly and using the tools at hand. For instance, you could put brackets around every instance of [Ed] or [Edward], so that searching for [Ed] and replacing it with [Steve] couldn’t possibly change words that contained “Ed”. You could probably set up autocomplete so that typing “[St” would prompt you with “[Steve]”, and you could set up the compile panel’s “Replacements” field to strip away [ and ] at compile time, to make sure you don’t leave them in by accident.

I get that there isn’t an existing solution other than to develop a custom macro, or finding a roundabout way. However, I believe these powerful features exist in some other writing applications such as CeltX. So I don’t think its an unreasonable request for the developers to figure out in the next version.

Not unreasonable, but it might be a lot more work to put in place than you might think, depending on the underlying design of Scrivener and its data format. That’s the problem with making comparisons to other applications – they may have approached basic design goals and choices from a completely different angle, making some features easier to do while others are harder.

Worth dropping a note in the Wish List forum, though.