September 23rd, 2005 • 2:42 pm
Modern word processors such as Microsoft Word 2004 and Apple’s Pages already have smart behaviours when it comes to cutting and pasting text and these smart behaviours tend to apply to dragging and dropping as well. These “smart” behaviours usually try to adjust spaces before and after pasted words depending on the context where the words are pasted.
I have already noted some not-so-smart limitations of these smart cut-and-paste features, especially when it comes to editing in a foreign language such as French or to properly preserve text formatting options.
Today, I thought of another improvement that could easily be implemented in word processors and text editors and would make perfect sense in the context of “smart” text drag-and-drop. It has to do with the destination of a drag-and-drop operation.
When you select a block of text in a document and then drag it with your mouse to another location in the document, Mac OS X “previews” the location where the text is going to be dropped by drawing a blinking vertical bar under your mouse pointer. You will notice that this blinking vertical bar can be anywhere in the document, including right in the middle of a word. For example, in the screen shot below, I am dragging the word “notice” and the blinking bar is right in the middle of “example” (after the “ex“), which is where the word “notice” will be inserted if I drop it now:
Now think about it: How likely is it that I will want to drop a whole word such as “notice” right in the middle of an existing whole word such as “example?” How many times does a writer actually find himself in a situation where this is exactly what he wants to do?
How many times, on the other hand, does a writer find himself in the situation where he simply wants to change the location of a whole word or a whole phrase in a sentence? It could be an adverb that is not in the right location, or a phrase that is not in the right order in the sentence. In such situations, the writer wants to be able to easily select the whole word(s), and then easily move them to their new location.
Selecting whole words is easy: You can just double-click on a word to select it as a whole and then extend your selection word by word to the right or to the left by dragging the mouse pointer. Alternatively, you can use option-shift-Left and option-shift-Right to select entire words with the keyboard.
But what about moving the text? With the keyboard, it’s fairly easy. Once you’ve selected the words, you can cut them to the Clipboard with command-X, then using option-Left and option-Right to move the insertion point from word to word with the keyboard, and then use command-V to paste the contents of the Clipboard. If you are lucky, the “smart cut-and-paste” feature in your word processor or text editor will be smart enough to adjust the punctuation (spaces, punctuation marks, etc.) according to the next context for the text.
But what if you are using the mouse? Like I said, selecting whole words with the mouse is easy. But what about moving them? Well, that’s where text drag-and-drop is not so smart. Regardless of the nature of the selection, text drag-and-drop will always offer to drop the text anywhere you want to, including, as we’ve seen above, right in the middle of an existing word.
Now, it seems to me that, when I select entire words, the word processor or text editor should be smart enough to guess that, in all likelihood, I will not want to drop my selection right in the middle of an existing word, but rather somewhere in between two existing words. In other words, it seems to me that, by default, the text drag-and-drop behaviour should not offer me to drop the text in the middle of a word, but instead should only show possible destinations before or after existing whole words.
Of course, there are always exceptions to the rule, and there probably should be a way to override the default behaviour, maybe with a modifier key. But by default, I really think that, when the selection consists of entire words (i.e. when the user has clearly indicated that he wanted to select entire words, by double-clicking on them or using option-shift-Left and option-shift-Right to select them), then the text drag-and-drop behaviour should assume that the user wants to drop that text somewhere in between words, and not in the middle of existing words.
Currently, the default behaviour makes it far too easy to accidentally drop the text in the middle of an existing word when you don’t mean to do that. In order to avoid such an accident, you need to make sure that your blinking vertical bar indicating the destination of the drag-and-drop operation is exactly where you want it.
A smart word processor/text editor should not require such accurate mouse movements by default, especially when, in most common scenarios, the user will not want to drop the text in the middle of existing words.
It would be a fairly simple and basic improvement, but it would be significant for writers, because shuffling words around is, after all, a very common operation when you are a writer. Unfortunately, it often feels like word processors and text editors were designed by engineers, and not by writers.