This post is a simple but powerful tip. If you’re not using Xcode’s Open Quickly, today’s post should help you dramatically improve your efficiency when navigating code. When I showed Open Quickly to a colleague for the first time, their response was “that’s a game changer!”
Accessing Open Quickly
There are two ways to access Open Quickly:
- Menu: File > Open Quickly
- Keyboard shortcut: Command + Shift + O (⇧⌘O)
Great. What does it do?
Once you have the Open Quickly dialog open you may use it to search and open files or symbols. A symbol can include a variable, enum, type, constant, method, or class. The search uses a fuzzy match. This means you can search for files and symbols even if you only remember a few of its characters. For example, if I have a function called updateBottomLayoutConstraintWithNotification: I could just enter ‘upblaconnotif’:
Open Quickly provides a list of matching files and symbols. For each match, you’re given the matches type (in the example M for Method). The full filename or symbol is also displayed along with its location in your workspace. Remember that the search is fuzzy, so you can add as many or as little characters as you like. Finally, the search is case insensitive.
OK, how do I Open a File?
You can use the arrow keys to navigate through the list of matches, then kit the enter key. Double-clicking the desired match will also open it. Holding the Option key when opening the match will open it in the Assistant Editor. Holding Option-Shift will allow you to choose where the match is opened.
Searching for a Specific File Type
To search for a specific file type, add a dot to your search and the file extension you want:
Search for a Line Number
A line number can be specified too. This can be particularly useful when you want to direct a colleague to the exact location of some code. It’s also great for finding the exact location of a crash from a crash report:
Type in your search text and add a colon with the line number your’e interested in.
Apple’s documentation on Open Quickly can be found here.