"Edit with external editor" option

Since you use Sublime Edit, and your primary complaint with the folder sync feature is that it requires frequently going to the file system, you should know that is not necessary! Sublime Edit is, like many modern coding editors (including Vim, even vanilla, but can be enhanced further by plug-ins) also a capable project level tool. It’s also very easy to get started with it:

  1. Instead of opening one single file, try opening the entire sync folder at the root level.
  2. If nothing special happened, you may have the sidebar disabled on start, use the View ▸ Side Bar ▸ Show Side Bar menu command.

Thus far this would suffice for simple editing sessions. You have accelerated access to sidebar files via the universal “Goto Anything”, can do cross-file searching and replacing with Find ▸ Find in Files, etc. Stuff like that is going to be a lot more efficient than going back to Scrivener, searching there, locating the chunk of text you want to edit and then using a command to open a separate window in your editor.

  1. But you can go a little further by making this a saved project, by using Projects ▸ Save Project As…, and now you have a simple thing you can double-click on, as well as define special settings to (like maybe a more prose-oriented theme than coding).

This is after all a barebones IDE. It is designed to make working with a network of interrelated files as easy as possible. If you’re Alt-Tabbing out to Windows File Explorer to open .txt files in Sublime, you can do much better.

There are other tools that work excellently with sync folders. Even other complex software that offers similar tools can be coupled together with Scrivener’s folder system. Ulysses for example (a Mac-only writing tool), has an external folder feature, and plays nicely with Scrivener. I’m also using a tool called nvUltra which is basically a tool that makes editing a folder full of files as easy as a streamlined notepad tool (anyone that used Notational Velocity or nvAlt knows what that is about). It’s an excellent “front end” to an external sync folder, particularly if you use Markdown to write.

It should be enabled by default, but make sure the option to take snapshots is enabled. There is no reason to turn that off in my opinion, as it records a complete record of all syncs in both directions. If you accidentally edit the same resources in two places, you can resolve the conflict with the backup copy created by snapshots.

That is something the aforementioned beta can do. It can optionally convert paragraph and indent formatting to literal whitespace, based on simple 10-pitch math. It is capable enough to even generate a screenplay, which is very strict in terms of spacing.

What most people mean when they refer to external file editing is an inside-out approach, where the host software creates a temp file somewhere and then requests that file be opened by X software (or the system default), and the proceeds to aggressively poll that temp file for changes to the disk, updating the internal store as it does.

The other method of handling this problem is of course the watch folder, or the sync folder as we call it. With this model the software either actively polls or is commanded to sync with an entire group of files via some “inbox” or public storage area that extends internal storage into the file system.

We feel this is the best approach for Scrivener, because Scrivener is less about “documents” and more about outlines. It encourages an approach where individual items in the binder are short and to the point, meaning one might have to use “Open in External Editor” fifteen times to actually open an entire chapter—and then you’ve got fifteen aggressive I/O monitors slowing the system down.

Another complication has been pointed out already, and that is that Scrivener has a variety of features that no other editor on the market has. Most of those features are accomplished via the plumbing that is provided by using a rich text editing system—which means any kind of syncing that drops to plain-text destroys those special features (never mind italics).

The external folder sync feature does its best to avoid that kind of destruction, by operating at a paragraph level of granularity, and providing additional conversion and processing routines to round-trip stuff other editors can’t do. I’m not sure if an actively polled external temp file system could provide the same level of protection without demanding even more resources from the machine.

To conclude: this has been requested before, and this probably won’t be the last time it is requested—our answer remains the same: there is a feature for this already. It’s not that we do not see the merits in this capability, and all of your arguments for it, and where Scrivener has weaknesses, are sound (I don’t get why there is such a backlash against that here). It’s just that our approach isn’t quite what you had in mind, and so your best bet is to find ways to make that feature work well for you.

2 Likes