Faster Internal Linking (drag and drop link not page/right click to copy link)

First, thank you for making Scrivner. It is single-handedly the best program I have ever used! I am using it for everything now of days.

One feature I would love to see is an ability to more easily/quickly get an internal Scrivner link. When my projects start to get large it becomes tedious to use the insert internal link feature, and click through all the dropdown arrows I have for my nested folders and documents. Likewise when I drag and drop a document from the binder into the page where I want it to be located it copies all of the content instead of a link

the best workaround I’ve managed to use so far has been to drag a document binder panel to the project references panel, and then drag and drop the reference into the document where I want the link to be located, Even this is a bit time consuming though.

I would love it if I could simply right click on a document and have an option in the context menu that said “copy internal Scrivner link”

As I was composing this request I discovered that if I use hotkeys (ctrl+c, ctrl+v) I could do what I’m requesting but it would still be nice if I could just drag and drop directly. clicking on a document to then use the shortcuts still involves the back arrow to return to the document where I want to paste the link

This is a really good idea, thanks. I’ve added it to the do-do list. I can’t promise when it will be implemented, but I have it on the Mac to-do list now and will pass it on to the Windows team too.

All the best,

This is already doable in Windows by holding the Alt key when dragging and dropping from the binder. In the the upcoming 3.0 version, dropping a link will be the default behaviour, and holding Alt will drop the contents, opposite of the way it is now.

I think I have a somewhat related request. Thanks to this post, I learned that internal linking was possible in Scrivener, which I didn’t know before. Thank you!

What I would love to see is faster internal linking perhaps adopting a method like what I see in some of the newer notetaking apps, specifically Obsidian and Roam. In those applications, you can quickly insert a link while you are typing by using square brackets.

So, I can link to a file called “Here is some text” by typing “[[Here is some text]]”. Usually when I start typing the text within the square brackets, it makes suggestions based on what I’ve typed.

Good news: This is already possible in the Mac version and will be available in the 3.0 version for Windows. :slight_smile: If you’re on Mac and this isn’t working, check that “Automatically detect [[document links]]” is enabled in the Corrections tab of Scrivener > Preferences.

The Edit > Completions > Complete Document Title command (Ctrl-Esc) is also a handy with this for some longer titles or when you don’t recall the exact name. You can also create new documents with the [[ ]] method; when closing the brackets, a panel will pop up for choosing where in the binder to create the new document, and you can control the behaviour of whether and where the newly created linked document opens in the Behaviors tab of Preferences under Document Links (Open new document links in…).

Oh my goodness, you just made my day! I didn’t know this was an option at all—it wasn’t enabled before but it sure is now!

The square bracket linking method combined with ctrl-esc to auto-complete the title of documents is really useful.

FYI, here is what appears to be a minor issue:

  1. I tried the method, typed ‘[[’ then started entering a document title and completed it using ctrl-esc. Worked as expected. I complete the link by typing ‘]]’
  2. The result was text like this: ‘[[document name]]’. It was just text, not a link. However, if I right-clicked inside the brackets, an option was to open the link and this worked.
  3. I checked preferences and discovered that I had not enabled "automatically detect [[document links]]. I did so, but there was no change to this link–it still appeared only as text. The document was not rescanned for formatting as a result of the preference change.
  4. I created another link to a different document and it was recognized and formatted as a link.
  5. Closing and reopening the project did not change the formatting of the link created before “automatically detect [[document links]]” was enabled, I had to recreate the link.

I think this is by design. If you think about the nature of a Scrivener project, it’s designed for the system to only have to open the individual project components that you are actually working with. Opening a project doesn’t automatically open every single document within the project – and that’s good, as in larger projects, that could be quite a significant resource hit.

As a result, when you change a preference, Scrivener doesn’t automatically re-scan your existing projects to see if it should apply the new preference to existing text. (Indeed, with some preferences such as replacements, etc., that could be catastrophic to projects!)

All you have to do is re-type the [[reference]] in-place and Scrivener should now pick it up and do the right thing. Copying and pasting doesn’t work – but copying and pasting [[reference] and then typing the final closing square bracket manually triggered the link detection routine.

I have recently been working on including links in a long-form outline. The amount of links is daunting. Command L was working well until it became tedious to me. So I developed a method that has been working well. It involves using a program called BetterTouchTool (which I believe is free for Mac OS X) and making sure the “Automatically detect [[document links]]” is checked in the corrections setting page.

I set up BetterTouchTool to enable a specific key combination while Scrivener is the active app. Anywhere other than Scrivener, the key command does nothing.

While in Scrivener, if I find a word I would like to link, I can hit [[ and it will keep those characters, hit option right arrow and then type ]]. This action surrounds the word I am linking and, if I have linked it before, will automatically link it to an existing document. Command L does the same thing, I know, and it works gloriously, but hitting [[ before a word I want to be linked is easier for some reason.

I wanted to share this in case anyone else would benefit from this. If anyone has any suggestions for bulk linking (I’m thinking of a find and replace but find a word and replace it with the linked version of the word), I am all ears! Happy writing!

1 Like

A question for interest: does BTT support Find & Replace? If not, this sounds more like something for Keyboard Maestro… which is not free, and with which I personally have failed to become friends! :unamused:


Hey, Mark, thanks for your comment. I have used Keyboard Maestro in the past but, like you, failed to become friends with it! I do not think that BetterTouchTool has a find and replace feature.

  • Dan