Text Editing Tips And Tricks Roundup | UX
We asked the Smashing Community for their favorite text editing tricks, shortcuts, and features that save them time. Here’s a roundup of what we’ve found quite useful along with a couple of other suggestions you may find handy.
Favourite Keyboard Shortcuts
Many of you have favorite keyboard shortcuts. Some of these will be editor or operating system specific, although in many cases you’ll be able to find a similar shortcut with the tools you are using. I’ve rounded up a few from the community below.
Ste Grainer shared a tip about the movement and selection shortcuts:
The basic movement/selection shortcuts that many don’t know about:
Hold Cmd + Arrow Key to move to the beginning/end of a line or top/bottom of a document.
Hold Opt + Arrow Key to move word to word horizontally and block to block vertically.
Shift to select while doing those.
From Jo Frank:
Select all occurences of current selection (Ctrl + SHIFT + L in VSCode) and duplicate line/selection which I set up as Ctrl + D.
Loris Gillet shared a few favorite shortcuts for hopping around or deleting text:
⌥ + forward/back arrows allows to jump to the next word instead of the next letter
⌥ + up/down arrows allows to jump to the beginning/end of the paragraph
⌥ + Backspace deletes the whole word instead of letters by letters.
Many of the suggested tips came from web developers — tips for the editors they used most frequently. We also received suggestions for Android Studio from Maher Nabeel:
In Android Studio:
- Ctrl + D — Duplicate line
- Ctrl + Y — Delete line
- Ctrl + W — Select block
- Ctrl + O — Override methods
- Ctrl + ALT + L — Reformat code
Editor Shortcut Cheatsheets
As we can see from the tips already posted, learning the keyboard shortcuts for your editor saves a lot of time. It is always worth taking a look at what is available for your editor, as learning a few of these shortcuts can save a lot of typing over the course of a day writing code.
On Twitter, Tobin Saunders recommended the Atom Editor Cheat Sheet which is a detailed list of shortcuts for Atom. I also took a look at what was available for other frequently used editors.
Visual Studio Code
The VS Code website has a number of downloadable cheatsheets in PDF format, if you find it useful to keep a cheatsheet printed out on your desk.
Joel Reis noted that if you are switching to VS Code from Sublime Text, Atom, Vim or Visual Studio, then you can download the keymap extensions. This means that you can maintain the keyboard shortcuts from your previous editor. This tip was also noted on Smashing Magazine earlier this year when Burke Holland shared with us some of the things that you might be surprised to find that VS Code can do, in his article “Visual Studio Code Can Do That?”
A good selection of Sublime Text 3 shortcuts for Windows, Mac, and Linux can be found here.
We also have an article here on Smashing Magazine in which Jai Panda shares some of his favorite Sublime Text Tips and Tricks.
Customizing Your Environment
Our keyboards and default computer settings are designed more for typing text than typing code. Some commenters have made changes to their defaults in order to make it faster to type the things they most often need to type.
Alex Semenikhine made this suggestion:
I minimize the number of times I have to hold Shift and press a button. If I make brackets (
)) far more often than I use
0, I customize the keyboard to reflect that, my 9 is
(and Shift + 9 is
Paul van den Tool sets his ‘Key Repeat’ and ‘Delay Until Repeat’ to their highest setting in order that his cursor just “flies across the screen when using the arrows.”
Jarón Barends told us how he, “created Alt + ; as a shortcut to insert a semicolon at the end of a current line.”
A number of people mentioned the text expansion system of Emmet. If you hand-code a lot of HTML and CSS then Emmet can save you a great deal of typing time. When writing HTML, Emmet abbreviations will be familiar to anyone who understands CSS. For example, if you want to create an unordered list inside a
div element, you could use the following:
Which would then turn into:
The abbreviation is exactly the selector that would select the
li in CSS. A
div with a
ul as a direct child, and a
li as a direct child of the
ul. Take a look at the Emmet Cheat Sheet for more examples.
Emmet is built into VS Code and is available as a plugin for many other editors.
Use A Clipboard Manager
Erik Verbeek suggests using a clipboard manager so that you can grab copied code from the history. He suggests using ClipMenu for OS X, which sadly seems to be discontinued.
Similar tools include:
- CopyClip for MacOS
- PasteBot for MacOS
- Ditto for Windows
- 1Clipboard Windows and MacOS (currently in Beta)
Many editors also include a clipboard history for copy and paste actions within the editor. On Twitter, @codevoodoo noted that Webstorm had such a feature. There is a Clipboard History extension for VS Code and a package for Atom; Sublime Text has this built in, as this tutorial on the Sublime Text Clipboard History explains.
A Collection Of Recommended Tools
There were a few specific tools recommended in the comments, so here is a roundup of useful tools you may not have heard of.
People who like Vim, really really like Vim. It certainly comes with a learning curve, however, if you are very keen on optimizing your keyboard editing then the time invested is likely to be worth it. As Jess Telford points out, you can do things like type
13k to move the cursor 13 lines up.
Take a look at the Vim Cheat Sheet for a list of commands. You can use Vim emulation in many other editors. The key mapping mentioned earlier for VS Code include mappings for Vim, and there is a plugin available for Atom as well.
Prettier is an open-source opinionated code formatting tool. Using Prettier ensures that all code is formatted to a consistent style. This is incredibly helpful when working in a team as it means that a consistent style is enforced, without anyone really needing to think about it.
There are downloads available for several editors, in order that you can use Prettier within whichever environment you chose.
I had not heard of the tool AutoHotkey until this suggestion from @Hobbesenero. AutoHotkey is an automation scripting language for Windows. Using the scripting language you can create shortcuts for common tasks, for example, to insert a template.
Converting Text Formats With Pandoc
One of my favorite tools is Pandoc. I use Pandoc when I need to convert one text format to another. One of the really useful things Pandoc can do is turn HTML or Markdown into EPUB format. I frequently do this in order to turn a set of notes into a file I can read using iBooks on my iPad. I do this in order to have an easily accessible set of notes for my workshops or to turn lengthy documentation into an easy to read offline format to read on an airplane.
Pandoc can convert from and to many different file formats. In addition to creating quick EPUB files, I also use it to convert copy from Word documents to Markdown or other useful formats. This can be very useful if you get some messy copy from a client that needs to be converted to enter into a CMS.
TextExpander And Typinator
TextExpander is available for MacOS and Windows and is a tool that helps you create snippets which can be inserted using keyboard shortcuts or common abbreviations. TextExpander was recommended by Anders Norén. If you prefer a solution that isn’t a subscription service then you might like to give Typinator a try.
These text expansion tools can be useful outside of writing code. If you often find yourself typing the same information in answer to emails or support requests, creating a shortcut to insert that text can quickly pay dividends in terms of time saved.
Recommended on Facebook by Dennis Germundal, Textwasher is a very simple tool for cleaning any formatting from text.
Add Your Suggestions In The Comments
There are a vast number of ways to enhance productivity in the tools we use every day, and it is also incredibly easy to completely overlook them. I hope that among these suggestions there will be something for you to try out. Or perhaps this will be a prompt for you to dig a little deeper into the documentation for your editors and other tools. I have certainly been inspired to do so.
If you missed the tweet and have some great tips to share, then add them to the comments. We’d love to hear them!