is there a file for the autocorrect function?

It’s tiring press F12, Correct, Edit Substitutions, button +, type change " " for " "…
for each substitution that I want.
Don’t we have in Scrivener some file where I could put and write all the words which I need autocorrect?

Short answer, no.

Long answer, the substitutions list is stored in the registry, as explained in these posts by intrepid users who figured it out:



Aggravated answer, who in the :smiling_imp: :smiling_imp: :imp: thought that was a good idea? It seems to me a perfect example of something the Windows registry is not intended for. Does anyone here know whether this is done better in the betas of v. 3?

Hi David,

In the first thread I linked to in my prior post, rwfranz explains how substitutions are stored in both v1.9 and the beta, which is in the registry. I believe we can safely assume v3 will do the same.


I am guessing that this is a “feature” of the text framework provided by Qt.

The good news is that it shouldn’t be that hard to have a small helper script where you can dump the list to CSV, edit it, and reload it from CSV to registry. Drop me a PM if you would want to see something like that and I’ll see if I can’t work one up.

JimRac, apologies for not following the links. It does sound like v. 3 will still use the registry; if that’s what Qt requires, as devinganger suggests, then we’re stuck with it. (Which only pushes the “who the :smiling_imp: :smiling_imp: :imp:” question back onto Qt, where I imagine a lot of such questions have been lodged.) I note in that thread that rwfranz also thinks that using the registry for the autocorrect list is less than ideal. devinganger, thanks for the offer, but while I’ll occasionally touch the registry for a specific purpose, this seems wildly unlikely to be one of them. I make little use of autocorrect in Scriv anyway, preferring to do that in the word processor where I write final drafts (which has a lovely plain-text file for the purpose, as well as a dialog in the program).

No worries!

PS. I just looked at HKEY_CURRENT_USER\Software\Scrivener\Scrivener\Options. Besides a binary list of AutoCorrect substitutions, there is a welter of settings that, in my semi-informed opinion, belong in an .ini file. Urph. Guess we will be stuck with this behavior.

.INI files are so 16-bit Windows (Windows 3.1 and Windows for Workgroups 3.1.1). It has LONG been Microsoft recommended best practice to move anything you would have put into an INI file into the Registry. That’s what the registry is for.

Thanks, Devin. I respect your knowledge and experience on this. And I suspect that part of the aim is to keep users from inadvertently gumming up the works by directly editing an INI file. OK, so default fonts and all that go in the registry, I can accept that.

But (and I know there’s nothing we, and maybe L&L’s programmers, can do about this) I still maintain that an auto-correct word list has no business in the registry. It is something that users should be able to edit, either through a dialog in the program, or even directly, if they can find it, because what’s the worst that can happen? They make a mistake, they fix a mistake, they make another mistake. Nothing that could prevent the program from working, I’d think, they’d just have to re-fix their re-mistake.

I also use Evernote, and interestingly, there’s a discussion going on in their forums just now about why the user spelling dictionary word list got a checksum applied to it awhile back, making it impossible to edit (without some actual computer chops), but without having a dictionary editing function added to the program. Again, if the user makes a mistake or just changes their mind, there’s no way to correct it. That little gem apparently came courtesy of Google’s Chromium Embedded Framework 3.

Sigh. There are much worse problems in the world, and I need not to get so worked up about this.

You make some good points. Some dev friends of mine suggested to me a couple of reasons why this is not always the case:

  1. The routines that read/write information from the registry are pretty well tested for security and performance. Since the registry hive is already loaded when the user logs on, you don’t have to open additional file handles or use other resources.

  2. Opening a new file to parse it is just another chunk of extra code to have to debug and maintain (parsing routines are usually simple but dealing with file corruption scenarios can quickly get out of hand – perhaps the reason why the files you mentioned got a checksum attached). Some of those functions, depending on how big your files are expected to get, may be trying to use techniques like memory mapping and that opens the code up to security escalation bugs like stack overflows and such. I realize this may sound really stupid in a program like Scrivener that is entirely obsessed with lots of files on disk…:slight_smile: but again, this may be the implementation decision followed by the Qt framework as part of an overall push for writing secure code.

  3. The feature may not have been intended for a large number of items, so a handful of items in the registry makes sense for that use case. At the very least, a quick pop over to the Wish List to ask for a better method to work with items in bulk would allow L&L to see if there are other use cases that make sense.

Note I’m not trying to advocate for the correctness or not of the implementation…just trying to provide some perspective on why things may be the way they are. I myself am not a fan of the type of control where you have to singularly add/remove items from a list and that’s the only way to manipulate the list – I always end up want a way to bulk edit them. :slight_smile:

Thanks, Devin. That’s helpful. I would like to suggest (very carefully, because I got in trouble for this on the Evernote forums) that the way some programmers have to think to do what they do and the way most writers have to think to do what they do are not always exactly in the same area, zip, or planetary code. Using the registry in this way is a model of efficiency and security. It is also a way to keep people from having ready access to their own word lists, which I imagine can be particularly frustrating for writers of imaginative fiction and not-terribly-imaginative arcane scholarship.

I have a massive list of autocorrect terms in my main word processor, which help me not only with my ever-increasing number of frequent typos, but also let me type “ote” and have it expanded to “Old Testament.” The word processor maintains this list as a plain-text file (with all the programming risks you specified), and I’d love to be able to import that list into Scrivener without any registry honkage.

What format does your plain-text file store your autocorrect terms in? Can you give an example of a couple of the entries?

Hello, everybody.

I would immensely appreciate a development that make possible a “batch” for autocorrect in Scrivener. Or if devinganger could provide a script that changed the registry.

You see, I have an historic of RSI and can’t type with the same frequency and speed of other persons.
Neither I wish forfeit my passion for writing. I really need to use abbreviations. Actually, the Brazilian Portuguese has a lot of diacritic accents, that require exhaustive use of key combinations, true straining.


The first line beginning with ; is a comment to tell the program what to do with the following items. Each item is a correctable term followed by a space followed by the correction. Very 1980s, I’m sure. A long list of common typos with their corrections (as above) comes preloaded with the program. Users can add their own typical errors, and also common terms they use for which they want a quick expansion–e.g., I type my 3 initials (which don’t form a word) and the autocorrect changes it to my full name.