User-definable variables

OK, I know 1.1 just came out :slight_smile: but I’ve spent the last month getting famliar with the demo version and just paid my license fee for the update to 1.1 … and so now I want to add to the Wish List forum anyway!

First off, I really like this app. 8) I’ve just started going back to a stalled writing project recently, and Scrivener is doing a marvelous job of helping me gather up old drafts, write new outlines, and generally keep piles of notes all conviently together. Much coolness! :smiley: And I’m sure I’ve still lots to learn about using Scrivener ever more efficiently.

But on to my Wish …

Some day, when new features are once again, being considered and implemented, I would love to see support for user-definable variables (sort of like Mellel has). In my outlining and drafting stages (and onwards :wink:) I am continuously changing my mind about what characters and places are named, and wish I could do so without resorting to Find ‘n’ Replace.

For example, I might have a protagonist in my draft named “John” (and sometimes referred to as “Johnny”). I’d like to define a variable $hero that was somehow aware of an associated $hero-alt variable. I’d assign $hero the value “John”, and the app would ask if I wanted to also change associated variable $hero-alt. I would, and I’d give it the value “Johnny”. After writing a lot about the adventures of good ol’ John(ny), I would suddenly realize “Fred(dy)” was a much better name :wink: so I’d go back to my variables and set $hero-alt to “Freddy”, and the app would ask if I wanted to also change the associated variable $hero. I would, and I’d set it to “Fred”. Then, everywhere in the draft that I’d referred to my protagonist with the $hero or $hero-alt variables, his name would be marvelously transformed to its new version without me having to manually go through the find and replace process.

OK, the concept of associated variables which the app is aware are somehow related to each other goes beyond what Mellel’s variables can do :slight_smile: but I thought it would be cool. Really, any support for variables would be cool! :slight_smile:


I recently had to change all instances of name x to name y, and all instances of name y to name x. This in a novel draft of 120,000 words.

While I could have done it with a Project Replace, to me it was safer (and more instructive) to enter the character name in the search box, locate the instances, and make the changes by hand. That forced me to re-read the lines, recall the context, and make a considered decision.

In a few instances, I did not change the names and instead revised the context. So I’d make little use of the variable you describe, because I’d rather avoid automation in the revising process.

Maybe I misunderstand your idea, but I don’t see where the hero and hero-alt substitutions are significantly simpler or more effective than a plain global replace John=Fred & Johnny=Freddy.

For my own work, I agree with Druid that

I have changed characters’ names a few times, and every time but one I wound up going back to the original names. But then, I usually work a character for a while before I give him/her a “final” name. The name then becomes a part of the character, and I’m no more likely to change Alan to Mark than to make him Greek rather than Swedish.

Another risk factor is that, no matter what I call a character in the narrative, there remain the names used in dialogue, where his boss might call him “John” and his girl-friend call him “Johnny” and his mother call him “Jonothan.” Too much flexibility to trust to automated variables.


Funny you mention that… I do the exact opposite. I wrote my completed first draft and followed that with three further drafts (well, rather solid cut’n’polishes rather than complete new drafts).

Only when I was going through the manuscript for the fifth time, did I decide on all the character’s names. I think I changed about 7 or 8 different names in that final draft…

I changed both first name and surname of the protagonist, changed his wife’s first name as well, changed evil guy #1s surname and his wife’s name as well, and changed several other supporting characters names. An d they all stuck and work better than the originals, but I don’t think I could have got to them until I had done the entire thing.

As for how I replaced them - I did a global search and replace as well, but then did a very careful read through. You have to be careful of all those possessives… make sure you change all your John’s to Fred’s, and depending on where you place your apostrophe with names ending in -s, you need to watch those especially carefully.


Well, obviously I can’t – don’t :slight_smile: – speak for everyone, but searching and replaceing names in Word I always found tedious. I’ve also drafted in Framemaker and Mellel, both of which let me define variables, and just for my part found it easier to keep a list of character name variables. I didn’t much go for grinding through miles of text, clicking OK for each instance …

Mileage varies, of course!

That’s why I define variables for each variant. When John/Johnny/Jonathan needs to transform into Fred/Freddy/Frederick, I just redefine each variable – and done. (I’m pretty consistent with apostrophe usage, so that’s not ended up being a problem when I’ve used this sort of technique in other apps.)


I think what PJS meant was using Edit > Find > Project Replace in Scrivener, which will replace all instances of a word in one click. This is ideally suited to changing names (although I would still always prefer to use the project search and document search in conjunction, just to be safe - I always like to see with my own eyes what has been changed).

I’m afraid - even when feature freeze gets lifted in the future - I’m not really sure I see variables in this way as something that fits into Scrivener. I can understand your reasoning for wanting them, I’m just not sure I see them as part of Scrivener.

Thanks for your kind words about Scrivener, though, and welcome to the forums!

All the best,