Geoff-Hart.com: Editing, Writing, and Translation

Home Services Books Articles Resources Fiction Contact me Français

You are here: Articles --> 2022 --> Keyboard movement shortcuts for writers and editors
Vous êtes ici : Essais --> 2022 --> Keyboard movement shortcuts for writers and editors

Keyboard movement shortcuts for writers and editors

By Geoffrey Hart

Previously published as: Hart, G. 2022. Keyboard movement shortcuts for writers and editors, Part 3 of 3. Tips for customizing your keyboard. https://americaneditor.wordpress.com/2022/07/04/7624/

In my previous article about automatic text, I discussed how paying attention to what we type most often can help us create typing shortcuts that make our writing and editing work go much faster. That’s all very well, but if you pay attention while you’re editing a manuscript (including revising your own manuscripts), you’ll notice that moving around a manuscript probably consumes more time than repeatedly retyping certain words or phrases. If you’re reaching for the mouse each time you want to move the cursor to a new position or holding down an arrow key, you’re wasting significant amounts of time.

In my 2011 article “Save time by mastering the basics: efficient movement within a file,” I showed how mastering only three keyboard shortcuts saved me up to 20 minutes per day compared with using the mouse or just holding down the arrow keys to move the cursor. In this article, I’ll go much further and show you all the keyboard shortcuts I currently use to move around a document.

Note: Although I’ve emphasized the time savings permitted by these shortcuts, I also want to remind you of the “repetitive” part of “repetitive stress injury.” As we grow older, our bodies take longer to recover from hours of clicking the mouse and pressing the keyboard’s movement keys. Anything we can do to limit that repetition reduces the stress on our bodies and improves our recovery times.

In Effective Onscreen Editing and Write Faster With Your Word Processor, I provide a high-level overview of how these customizations work, supported by examples. However, given space constraints, I provided only a few examples. To remedy that lack, I’ve written this article to provide a comprehensive list of the movement shortcuts I use most frequently every time I sit down to write or revise a manuscript.

Because most writers and editors use Microsoft Word, I’ll focus on how Word implements these movement shortcuts. Most other word processors should offer similar features, although you’ll have to do a bit of research to learn how.

Customizing the keyboard

To use the movement shortcuts in this article, you’ll first need to learn how customize your keyboard shortcuts in Word:

For built-in Word commands, select the category of command at the left of the dialog box (e.g., “Home tab” for commands that appear in the Ribbon’s Home tab), and the specific command at the right side of the dialog box. You can scroll down through the list of commands, or click inside the list and start typing the first letters of a command’s name to move directly to that command. At the bottom of the dialog box, choose which template or document should store the shortcut. If you choose “Normal.dotm,” the shortcut will be available in any document on your computer. However, you could also create customized shortcuts for specific purposes, such as if you need to move to HTML < > tags so you can edit them, and store those shortcuts in a separate template or document. Another interesting example: If you’re writing or editing a novel and need to move to each instance of a character’s name to ensure that your physical description of the character is correct, you could use the instructions later in this article to create a search shortcut (e.g., press the F1 key) that moves to the next instance of the character’s name.

To assign a keyboard shortcut, click to position the cursor in the “Press new keyboard shortcut” field and type the new shortcut. If that shortcut has already been assigned to a command, Word will display the command that is currently associated with that shortcut. If you don’t want to replace that command, press the Backspace key to delete the new keyboard shortcut and try again with a new shortcut. If you don’t use that particular command and want to use the new shortcut for your own purposes, click the “Assign” button.

Note: Keyboard shortcuts are stored in the Normal.dotm template unless you specify another destination, so if you’ve done a lot of work customizing Word, be sure to include that template in your backups. To find the template’s location:

If you select the category “User templates,” the path to your templates appears at the right side of the dialog box. You won’t be able to see the whole path, so click the “Modify” button. Word then displays a standard “File Open” dialog box that you can navigate to learn the whole path to your templates. Because this folder is buried annoyingly deep in your computer’s file system, move to that folder only once, but create a shortcut (Windows) or alias (Mac) that points to this directory and move that alias to your desktop or Documents folder. You can now reach your custom templates in a single step.

Most of the keyboard shortcuts I’ve proposed in this article will work equally well in Macintosh and Windows versions of Word, although some have already been assigned to a specific commands that I never use; if you use them, you’ll need to choose a different shortcut. Choosing shortcuts is easier for Mac users because the Mac operating system doesn’t use the Control key for most functions, unlike in Windows. Thus, the Control key on a Mac is available for all shortcuts, whereas you may not want to override certain Windows keyboard shortcuts based on the Control key (e.g., Control+C to copy text).

Note: Mac keyboards have an “Option” key that occupies the same position as the “Alt” key in a Windows keyboard. I use “Alt/Option” to indicate that your shortcut should use whichever of these two keys appears on your keyboard.

If you’ve set Word to warn you if the Normal.dotm template changes, you’ll receive this warning once you finish customizing your keyboard shortcuts and quit Word for the day. Always confirm that you want to save the changes; otherwise, you’ll have to recreate all the customizations. To ensure that I don’t get busy with other things and forget, I’ll often quit Word as soon as I finish a batch of customizations, and save those changes when Word asks me to confirm that I really want to update the template.

How to use this article

This article contains a great many shortcuts, and it would be unwise (and probably discouraging) to try memorizing them all in a single go. You’ll find it much more effective to pick a few of the shortcuts that seem likely to save you the most time, and practice them until they become part of your muscle memory and you can use them without thinking. In the time you save once you’ve learned these shortcuts, pick a few new shortcuts and practice them too. Soon, you’ll find that you’re using most of these commands (possibly with a quick glance back at this article for a refresher) without much thought and zipping around documents like a honeybee who drank too much espresso.

Note: The shortcuts I’ve chosen make perfect sense to me. They may be meaningless and confusing to you. Choose shortcuts that make sense to you, since you’re the one who will be using them.

I recommend that you record your keystroke definitions in a simple table created in Word. This way, you can periodically consult the table to see which ones you’ve forgotten to use or should be using more often. It also lets you easily implement your shortcuts on another computer, if necessary. Although you could copy the Normal.dotm template to your new computer, I’ve found that moving a template from Mac Word to Windows Word sometimes creates problems, such as a loss of certain customizations. Your mileage may vary, but I’ve found fewer problems when I recreated customizations under both operating systems.

The movement shortcuts I’ll describe in this article can be divided into three categories:

Built-in commands

As noted in the previous section, you’ll use the Customize Keyboard dialog box to find the commands you need. Once you’ve found them, try using the following shortcuts:

Movement

Built-in command

Suggested keyboard shortcut

Explanation

Start of current sentence

SentLeft

Control+Alt/Option+Home

SentLeft should also move to the start of a sentence in right-to-left languages.

End of current sentence

SentRight

Control+Alt/Option+End

SentRight should also move to the end of a sentence in right-to-left languages.

Next tracked change

ToolsRevisionMarksNext

Control+Alt/Option+[down arrow]

 

Previous tracked change

ToolsRevisionMarksPrev

Control+Alt/Option+[up arrow]

 

Shortcuts based on macros

Once again, you’ll use the “Customize Keyboard” dialog box to find the commands you need. However, for this category of commands, you’ll first need to create a macro—which isn’t nearly as intimidating as it seems. Once you’ve recorded the macro and confirmed that it works by running it a couple times, open the “Customize Keyboard” dialog box and scroll through the “Category” list until you reach “Macros”. You can then select your new macro from the list at the right side of the dialog box and assign a keyboard shortcut.

To record a macro:

If you’re uncomfortable with recording macros, you can instead create them by copying the macro instructions someone else has created. I’ve provided the macro instructions I use later in this article. To copy the instructions I’ve provided:

Here are two useful movement macros that shift the cursor five positions left or right of the current position:

Movement to record

Suggested keyboard shortcut

Explanation or macro instructions

5 words/positions to the right

Control+5

Sub MoveFiveWordsRight()
Selection.MoveRight Unit:=wdWord, Count:=5
End Sub

5 words/positions to the left

Control+Alt/Option+5

Sub MoveFiveWordsLeft()
Selection.MoveLeft Unit:=wdWord, Count:=5
End Sub

I chose five because that seems to be the most common large within-sentence move I make in the manuscripts I edit. If five doesn’t fit the way you work, it’s easy to change that: Simply edit the macro, and replace the “5” with whatever number of positions you want to use. Here and for subsequent macros, you can also copy the macro instructions (starting with the “Sub” line that contains its name and ending with the “End Sub” line and paste the instructions into the macro editor. Change the name and the details. For example, to move only four words left, change the name to MoveFourWordsLeft() and change the “count” to 4.

Combine the search function with macros

For this category of movement shortcut, you’ll use the same method described in the previous section to record a macro. This time, however, the macro uses the Search (Find) function to move to the next or previous instance of the thing you’re searching for. To record macros in this category:

The macro you’ve just recorded will find what you’re looking for and politely close the dialog box to get it out of your way. In the following table, I’ve provided shortcuts for most searches to move to both the previous instance and the next instance of the search string. However, if (like me) you find yourself running out of memory space to remember all these shortcuts, it’s not necessary to do this. You could instead use your macro to move to the next or previous instance of the search term. You can then press the Control+PageDown (Windows) or Command+PageDown (Mac) shortcut once to move to the next instance, then press Control+PageUp (Windows) or Command+PageUp (Mac) shortcut twice to move to the previous instance. These shortcuts are worth learning because you can also use them in searches that are not recorded as macros.

Note: These macros can be revised or copied and revised easily to use new search patterns. For example, if you want to find only whole words, change the “MatchWholeWord” text to “True” (without the quotes). For movements such as “next comma,” you could also create a macro for “previous comma” simply by changing the “Forward” text to “False” (without the quotes).

Movement to record

Suggested keyboard shortcut

Explanation or macro instructions

Next period

Control+[period key]

Sub MoveToPeriod()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "."
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next comma

Control+[comma key]

Sub MoveToComma()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ","
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next semicolon

Control+[semicolon key]

Sub MoveToSemicolon()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ";"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next colon

Control+Shift+[semicolon key]

Sub MoveToColon()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ":"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next punctuation (any)

Control+Alt/Option+[right arrow]

If you don’t want to record separate shortcuts for each punctuation symbol, you can use this shortcut instead.

Sub MoveRightToPunctuation()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "[.,;:\?\!]"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = True
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Previous punctuation (any)

Control+Alt/Option+[left arrow]

If you don’t want to record separate shortcuts for each punctuation symbol, you can use this shortcut instead.

Sub MoveLeftToPunctuation()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "[.,;:\?\!]"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = True
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next number

Control+3

Mnemonic: The number sign (#) appears above the 3 on your keyboard.

Sub MoveToNumber()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Previous number

Control+Alt/Option+3

Sub MoveToPreviousNumber()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^#"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next letter

Control+4

Mnemonic: Programmers use the $ to represent a letter rather than a number, and the $ appears above the 4 on your keyboard. Alternatively: The 4 appears beside the 3 that I used to search for numbers, so you can search for letters and numbers using adjacent keys.

Sub MoveToNextLetter()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^$"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Previous letter

Control+Alt/Option+4

Mnemonic: Programmers use the $ to represent a letter rather than a number, and the $ appears above the 4 on your keyboard. Alternatively: The 4 appears beside the 3 that I used to search for numbers, so you can search for letters and numbers using adjacent keys.

Sub MoveToPreviousLetter()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^$"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Next left bracket

Control+9

Mnemonic: The left bracket appears above the 9 on your keyboard.

Sub MoveToLeftBracket()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "("
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Previous left bracket

Control+Alt/Option+9

Mnemonic: The left bracket appears above the 9 on your keyboard.

Sub MoveToPreviousLeftBracket()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "("
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next right bracket

Control+0

Mnemonic: The right bracket appears above the 0 on your keyboard.

Sub MoveToRightBracket()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ")"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Previous right bracket

Control+Alt/Option+0

Mnemonic: The right bracket appears above the 9 on your keyboard.

Sub MoveToPreviousRightBracket()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ")"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .MatchByte = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute
End Sub

Next left square bracket

Control+[

Sub MoveToNextLeftSquareBracket()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "["
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Next right square bracket

Control+]

Sub MoveToNextRightSquareBracket()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "]"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Next bookmark

Control+Shift+B

I use [ ] as a bookmark because it’s short and won’t appear in most manuscripts. If you prefer, choose your own bookmark character!

Sub FindNextBookmark()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "[]"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Previous bookmark

Control+Alt+Option+ Shift+B

I use [ ] as a bookmark because it’s short and won’t appear in most manuscripts. If you prefer, choose your own bookmark character!

Sub FindPrevBookmark()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "[]"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Next instance of selected text

Control+Alt/Option+F

Select the text you want to find before you run the macro. This macro then copies it to the clipboard and pastes it into the search dialog box.

Sub FindSelectedText()
    Selection.Copy
' Define selection as variable
    Dim MyFoundText$
    MyFoundText$ = Selection
    Selection.Find.ClearFormatting
    With Selection.Find
       .Text = MyFoundText$
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Previous instance of selected text

Control+Alt/Option+Shift+F

Select the text you want to find before you run the macro. This macro then copies it to the clipboard and pastes it into the search dialog box.

Sub FindSelectedTextPrevious()
Selection.Copy
' Define selection as variable
    Dim MyFoundText$
    MyFoundText$ = Selection
    Selection.Find.ClearFormatting
    With Selection.Find
       .Text = MyFoundText$
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Next year

Control+Y

I use this for checking literature citations using the author/date system. Note that you can edit this macro to find any repeating pattern of characters (e.g., change ^# to ^$ to find a pattern with four consecutive letters).

Sub FindYear()
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^#^#^#^#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

 


©2004–2024 Geoffrey Hart. All rights reserved.