5

I have a bit of an issue coming up with good names for my characters. So what I usually do is give each character an abbreviation or some sort of nickname as a placeholder while I'm writing my story.

Is there a way in Scrivener to define the name of your character just once and have it update anywhere? For example...

{Char1} went to school.

When I define "Char1" as Joe, the above sentence will automatically be turned to:

Joe went to school.

  • Although it isn't Scrivener, Scrivenvar has the feature you want. Moreover, if you use R Markdown (edit using .Rmd files), it allows writing with R, backed by Renjin. – Dave Jarvis Nov 25 '17 at 16:50
4

I don't think you can directly create your own custom placeholders in Scrivener. As far as I know, you can do three things:

1. Use the existing placeholder tags

When you click on Help > Placeholder Tags List… you can see a list of predefined tags that you can insert into your document and that will get replaced by the appropriate information when you compile your finished document. The information that most of these placeholder tags get replaced by cannot be changed by you (e.g. the current page number), but others are replaced by information that you enter. For example you can use the project title tag as the name of one character, and the author's surname tag as the name of another. You can define five tags under Project > Meta-Data Settings > Project Properties.

2. Define automatic replacements when you compile

When you compile your final document, you have the option to define character strings and what you want them to get replaced by under Compile > All Options > Replacements > Project Replacements. Here you can define replacements similar to a normal search & replace.

3. Manually search and replace.

Under Edit > Find > Project Replace… you can perform a manual search and replace.


Be careful.

Some names are embedded grammatically different than others. For example, if you replace "John" in "John's" by "James", the outcome will not be what you expect. For cases like this, the third, manual option is the safest, as it allows you to find all instances of a name automatically, but authorize replacements on an individual basis.

| improve this answer | |
  • Too bad... I guess this is a feature to suggest to the developers. – noClue Jan 24 '17 at 23:38
3

This has come up for me with things like consistent spelling of made up names (Baelish, Balish) or placeholder ones (SoAndSo1, OrbThingy). I think everyone else has already covered options for text you've already written. For replacements as you type:

Did you forget what you named someone or something or how you spelled it?

Substitution text (across all projects) aka Auto-Correct

Options->Corrections->'Edit Substitutions' This may work well in your case as you are using a tag it can't mistake for a normal word.

  1. Hit the '+' button on the 'Substitutions' dialogue.
  2. Enter '{char1}' in the 'Replace' field & 'Joe' in the 'With' field. Or 'SoAndSo1'->'Fred'.

A simpler token like 'char/' works too. The backslash is so that 'chart' doesn't become 'Joet'.

You can do this for long or awkward phrases too ('dna/' -> 'deoxyribonucleic acid').

Again this will perform the substitution across all projects. You can change it for each story or try something like below.

Did you name someone something long or awkward to type?

Auto-Complete List (project specific)

Options->Corrections->'Suggest completions as you type' to enable it.

This is different from the Auto-correct feature. Think word completion. Because this is a complete not a replace you it won't work with random tags or variables.

  1. Under the Project Menu (Windows shortcut: Ctrl+Shift+4) to add to the word list.
  2. As you write, any time you type the first few letters, it pops up a list.
  3. Hit enter to accept or else keep typing.

This works best for long words or phrases (deoxyribonucleic acid) or words with tricky spellings or diacrtics (Tenochtitlán) rather than a tag. Any text you don't want to type out, really (Paula, Frederick) or your tag ({char1}).

References

http://www.stevechatterton.com/working-faster-in-scrivener-with-auto-complete-list.html http://www.stevechatterton.com/working-faster-in-scrivener-with-additional-substitutions.html

| improve this answer | |
1

Scrivener provides a set of pre-defined placeholder tags (https://scrivener.tenderapp.com/help/kb/windows/placeholder-tags-list) which are automatically rendered as text and numbers during compilation. Custom placeholder tags are not supported.

Why would you want to write in such an unnatural way, using code chunks instead of names? It looks jarring and will make it hard to read and edit, for it breaks the natural flow of the text.

How about just call him Joe, then do a Project Replace if you change your mind?

| improve this answer | |
  • 1
    Because replacing names across documents can lead to unexpected results, which @what has a good example of. I would like to be in full control in changing ONLY what I want, and nothing else. Maybe this is just because I'm a programmer, but I wouldn't find the code chunks jarring at all. Why would it bother anyone? Once you type {Char1}, it would immediatly get replaced with the corresponding name anyway. All it does is make sure that the same name is written everywhere. Maybe it could be highlighted to show that it's a tag, kinda like in Word, but other than that, nobody would see the code. – noClue Jan 24 '17 at 23:36
  • @noClue one has to use global replace carefully, but using placeholders is basically the same thing, unless you expect the application handle the "s" at the end of the possessive pronouns internally—which is, while not difficult, still not implemented (just like custom placeholders), so it is still not possible. You can add it to the wishlist on Scrivener support forums—I find the developer(s) very friendly and responsive—if you gain enough supporters, they might throw it in. – Lew Jan 25 '17 at 0:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.