By Daniel Wood, 2 July 2019
Learn shortcuts. Get Better. The End.
... well okay not quite, but this is perhaps the single biggest piece of advice I could give anyone looking to improve their skills as a FileMaker developer.
You can learn all kinds of tricks and techniques and yeah they're all great and will make you a better developer. But if you can double or even triple the speed at which you carry out actions in FileMaker through memorising and committing keyboard shortcuts to muscle memory, you'll free up so much time to do so much more.
In this article we'll show some examples of routine tasks done with and without shortcuts to illustrate how much more efficient your development can be.
We will also cover how you can extend FileMaker's existing suite of shortcuts to fill in the gaps in the product. Some of the missing shortcuts are so critical to speedy development it's amazing they're not built in, but we'll show you how you can easily define and add your own (if you are on a mac!)
Finally we'll go into more depth about some of our favourite custom shortcuts we use, and show some cool shortcuts you might never have thought you could do.
If you're a new developer, now is the best time to learn shortcuts. Learning shortcuts as you learn FileMaker is the best way to do it.
However if you're a more experienced developer and have spent years attached to the mouse, contextual menus, or inspector to do things, then you've got a much tougher challenge ahead of you. Breaking years of habit can be hard to do, and you need to make a conscious effort to practice and use shortcuts.
FileMaker provides a full list of mac and windows shortcuts on their help documentation. A lot of people will be familiar with some of the more frequently used shortcuts (Define Database, Open Script Workspace etc). However did you know that there are literally hundreds of shortcuts!
We counted the total mac shortcuts available in FileMaker Pro, and there are around 260 give or take a few, that's quite a lot. Now, keep in mind that includes ones you might take for granted like cut/copy/paste, or arrow keys when in calculation dialogs to go to the start/end of a line - they're all considered shortcuts.
Enough preaching, time for a tangible example.
Below we have two videos. These were made for a talk I gave at the APAC Developer Day last year about this very topic.
To set the scene, we have a layout with some fields and labels, and a couple of other objects. The goal is to properly align everything nicely. In the first video we use no keyboard shortcuts - just the inspector and contextual menus. In the second video we use exclusively keyboard shortcuts.
We display a timer in both videos. In the second video we also show on-screen the keyboard shortcuts used.
First, no shortcuts:
and then with shortcuts:
Without using shortcuts we took 69 seconds, and using shortcuts the same actions took 45 seconds - a saving of 24 seconds. Or to put it another way we reduced the time by over 35%.
This is just a one minute example. If you do this kind of thing for a job developing 6+ hours a day, you can equate that to over 2 hours of saved time. Now that's an extreme example - you would have to be working exclusively in layout mode and doing a lot of manipulation to see that improvement, but this is a good illustration of how much time can be saved in increments over the course of a single day!
More to the point, I think the most important area you can learn and use shortcuts is when in layout mode. So much of layout development is making minor adjustments and then previewing your work in browse mode. This refine/preview cycle can go on for hundreds of iterations when building a layout. The quicker you can do your refinements, the more previewing you can get done in the same amount of time. You'll quickly find yourself becoming a better designer as a result.
And one final thing on the benefits. By using shortcuts you're not just getting faster at doing what you do. You will actually end up changing the way you develop. There's a tendency in developers to build something first, and refine or pretty it up later because that part of the task takes longer and is more tedious. By utilising extra shortcuts you'll find yourself doing refinements along the way rather than at the end (where they can often be forgotten about).
For the keen eye who knows their shortcuts you may have noticed in the second video a few shortcuts you may not find in the standard set that comes with FileMaker. These are custom shortcuts we have added into FileMaker to extend our full set, and add even more functionality and efficiency to development. Some extra ones in the video were:
In FileMaker you can actually add even more shortcuts to fill in the gaps where shortcuts are missing. There are a couple of ways you can do this. For this article, you'll find our method in the example file that you can download below.
Our basic steps to add custom shortcuts is:
The FileMaker preferences file (also known as the plist file), is where all settings and defaults for the FileMaker program are kept. We can add custom shortcuts to this file.
At this point because we're getting into discussing how to add custom shortcuts, we must stress that the example file is for mac users only. To this point I haven't found a good way to add custom shortcuts for FileMaker on windows. If you have a good method for doing this please get in touch and we'll update the article.
We won't go into too much detail about the specifics around building your own shortcuts because this is all covered with instruction in the example file. However to touch briefly on what is involved, let's look at some sample code:
This code is for a handful of custom shortcuts. You can see the shortcuts defined as key/string pairs of tags. This looks very much like XML. The key is the shortcut name (case sensitive and must exactly match the menu command in FileMaker). The string value is the shortcut representation. The code uses some special symbols to represent modifier keys:
the modifiers are followed by the keystroke. Note some shortcuts require special symbols to represent them, such as the arrow keys, backspace, delete key etc. We list these special characters in the example file.
The code is pasted into your FileMaker preferences file. After restarting FileMaker you should be able to use these. Here is an example of some custom shortcuts for layout object manipulation:
The example file has 46 new custom shortcuts. All of them you'll find quite intuitive and similar to other existing keyboard shortcuts in the same area of FileMaker. For example a lot of the shortcuts in the "Manage.." use command+shift as the modifiers. The custom shortcuts continue this trend so you can easily learn them:
On the mac you can add application specific shortcuts (for any app) via System Preferences -> Keyboard -> Shortcuts -> App Shortcuts.
The shortcuts you add directly into your plist file will appear here, and vice versa. We prefer modifying the plist because it allows you to easily keep your custom shortcuts, and transfer them to different computers if you need to. However this is a nice way to view all of the ones you have defined or make any minor refinements.
Of the 46 custom shortcuts we use, there are a few standouts. These are ones either used most frequently, or quite unusual or interesting ways you can use shortcuts in FileMaker, we'll go through a few here.
FileMaker doesn't provide shortcuts to toggle the data viewer or script debugger, so why not add your own. These 2 tools are used so often in development it would be criminal not to use a shortcut!
FileMaker provides a shortcut to zoom in (cmd+) and zoom out (cmd -), yet gives no shortcut to return to actual size, what gives? Let's just add our own. Most applications use cmd+0 as the standard, so we'll just use that, it's easy and intuitive for users and developers alike.
These are so critical. Completing the full set of layout manipulation shortcuts lets you never have to reach for the menus again. The best thing about these is they're intuitive and easy to learn if you already use the existing shortcuts (e.g. align edges)
Quite often when developing you need to build custom menus for certain layouts. While the users might require these, they can be incredibly frustrating for a developer especially when common commands might be missing from them. Often you just want to revert to the standard menu set - so why not bind a key to the standard menus? This lets you quickly an easily change the menu set no matter where you are.
The option to toggle sample data in layout mode is a really useful tool but is often overlooked because it is hidden away in the menus. Through using a shortcut key you can make this accessible and easy to toggle and add this valuable feature to your toolkit.
in fact you can add shortcuts for any items shown above.
Now for some cool stuff. In FileMaker there are certain menu commands that essentially do a similar thing, yet at any given point in time only one of them is able to be used.
We're talking about the "Setup…" menu commands:
There are 8 different layout objects for which there is a setup dialog, however when working in layout mode you can only select one of these objects at a time for editing in the setup dialog.
This allows us to define the exact same shortcut for every single one. THey will never end up in conflict because only one will ever be enabled at any given time. How cool is that. It also means you only ever have to remember one shortcut.
Interestingly, we found shortcuts can be applied to a lot of menus in FileMaker, not just the standard ones at the top of your screen. Take this menu for example:
Here we have a specify field dialog, and in it at the bottom is a special menu command to go to the Manage Database dialog. This is actually something we can add a shortcut to. Note this differs from the menu command File -> Manage -> Database… (the name is different).
The benefit of adding a shortcut to this item is if you have a very long list of table occurrences, you can use the shortcut to immediately access field definitions and the graph without having to exit this dialog, or go to the very bottom to access the command. Groovy. Now, you can always use the end key to jump to the bottom, followed by pressing enter, however this is a single shortcut that will instantly open the manage database dialog without the need for 2 key presses.
How many times do you open the script step pane in the workspace just to look something up, and then want to get rid of it? How often do you need more space and want to collapse the script list (but easily get it back)?
Now you can just by adding some intuitive shortcuts:
These shortcuts are very easy to learn and intuitive. Here you can also make use of a similar technique shown above with the object setup shortcuts.
If the scripts pane is hidden, then the menu command is "Show Scripts Pane". However if the scripts pane is showing, then the command changes to "Hide Scripts Pane".
At any given time only one of those two menu items appears in the menus, so you can safely attach the same shortcut key to both commands without fear of conflict:
I can't stress how great keyboard shortcuts are. I'm a total fanboy and I hope you all become fanboys and fangirls of them too. You'll find through a bit of dedication and time to learn them, you'll rapidly become a far better and faster developer as a result.
I encourage you also to make use of some of these additional custom shortcuts. There are some gaping holes in the standard set of shortcuts in FileMaker that fortunately we can patch with our own shortcuts quickly and easily.
We've referenced the example file a few times in this article, you can download it here. The example file contains further information about custom shortcuts and a step by step guide to defining your own and implementing them.
I wanted to give special mention to Matt Petrowsky from filemakermagazine.com who got me onto these custom shortcuts many years ago now. Since then I've embraced them and used them daily and am a huge advocate for them.
Matt produced a database back in 2011 to help you build these shortcuts and implement them. While the file may no longer work in later versions of FileMaker, I encourage you to check out his site and the page for his solution. I drew a lot of inspiration from his work!