Showing posts with label shortcut. Show all posts
Showing posts with label shortcut. Show all posts

20 February 2016

Memorising Keyboard Shortcuts

Two months ago I found a set of flashcards with IDE shortcuts and started learning them. After using the cards for some time, I noticed that memorising all the shortcuts is really hard for me. While many key combinations are sort of mnemonic, e.g. Ctrl-Alt-m to extract a method, some are not, e.g. Ctrl-Alt-l to format the source. I struggled to remember the shortcuts, mixing up the modifier keys all the time. It was frustrating to answer a card wrong for the n-th time and I had to reduce the number of cards I studied each day.

There is not much information in a key sequence like Alt-F12 to make it a reasonable entity to remember. There is no story around it, nothing to relate to. I have heard of people being able to remember huge numbers by translating them into sequences of pictures - a story, which is much easier to keep in memory.

Old KeyboardOn my German QWERTZ keyboard there are 105 keys. Ignoring the number block and a few other keys, there are up to 70 keys which might be used in shortcuts. There are three modifier keys which can be combined into eight combinations. (I ignored the Windows and Menu keys and till now have not seen an IDE that made a difference between left and right Shift or Alt.) Not all combinations of keys are special, e.g. Shift-a is just an A - I counted 400 potential shortcuts to activate IDE functions. Further some shortcuts mean (hopefully similar but) different things in different contexts, e.g. inside the editor window or navigator.

Modifier Keys
I do not know how translating the shortcut into a story might help, but I will experiment with hints for modifier combinations at least, because I never seem to get them right. Changing the order of modifier keys between shortcut descriptions makes things more difficult and I have not found an order which is easier to remember for me. Any ideas anyone?

Maybe some research is needed: The Control key was created to zero the leftmost two bits of the generated ASCII character. This created values below 32 which controlled where the next character would be placed on the display device. Its symbol is the helm, U+2388 (⎈). The Alt key was used to set the high bit of the signal generated by the other key. Its symbol is the alternative key, U+2387 (⎇). The third modifier is the Shift key, shown as an upwards white arrow, U+21E7 (⇧). It is the oldest of the three keys as it was used in typewriters to shift up the case stamp to change to capital letters.

By position on the keyboard and their prior usage, I sort Control before Alt, as in Ctrl-Alt-Delete. I am not sure where to put the Shift. JetBrains' Help puts the Shift between Control and Alt. The question for me is if Shift is a part of the character, e.g. uppercase A. I will have to experiment with Ctrl-Shift-Alt-something and Ctrl-Alt-Shift-something.

Visual Hints
I noticed that I take visual hints from the question, i.e. the typeface and text describing the shortcut, e.g. "Switch between views". Maybe that is how the brain works but this is not the kind of memory link I want to establish between the desired action in the IDE and the shortcut that activates it. Maybe I need a more visual representation to remember the shortcuts. The symbols (helm, alternate, upwards arrow) are very different and could be useful.

I experimented with Anki and it is possible to add pictures to the flashcards. I plan to create a new deck of cards containing a picture marking the actual keys on a keyboard. I hope that the visual representation of the keys will help me remembering them. Unfortunately images if keyboards make some shortcuts layout specific, e.g. Ctrl-z is in a different location on an US/UK layout than on my German one. As I plan to master both layouts, I will have to create and study the visual layouts of the relevant shortcuts twice.

Muscle Memory
Knowing the list of available functionality and their key combinations can only be the beginning of my "I know all shortcuts journey". There is no doubt I will need to practise typing them. I hope that knowing them will shorten the actual practise needed. Using flashcards allows me to study a few shortcuts whenever I have an extra minute, e.g. on the subway or when I am early for an appointment.

Going Crazy
I am already working on my "absolute mastery" deck. It will contain all the shortcuts of Eclipse, IDEA, Vim and possibly other tools like Word or Firefox, using both pictures of the US and German keyboard layouts when necessary. Creating all these images will take some time - coding time of course, as I will not draw them manually ;-)

6 January 2016

IDE Shortcut Flashcards

From time to time I need to look up certain keyboard shortcuts in IntelliJ IDEA or PyCharm. (This would not be necessary would I use my proper keyboard always.) While there are official productivity guides, I usually just google the shortcut. There are plenty of pages listing the basic and more useful ones, nothing special indeed. But the one Google showed me the last time was special: 69 things you should know about IntelliJ IDEA by Krzysztof Grajek.

Remember theseThe list of IntelliJ IDEA commands was as expected, but at the end Krzysztof had put something new: flashcards. Flashcards are a great way to learn short facts. While I am aware of flashcards, I have not thought about nor used them since many years. I got curious and immediately downloaded them.

The package was an apkg, a file format used by Anki, a free flashcard application. According to Wikipedia Anki is most feature complete and available on many platforms, including smart phones. The apkg file is just a zip including a SQLite database, so it is pretty light-weight.

Unfortunately Krzysztof's original deck was created for the Mac version of IntelliJ, so I had to translate and verify it. Some shortcuts did not map to Windows keys (or were not available any more), so my IntelliJ IDEA shortcuts for Windows flashcards just contain 59 cards. There were several keys I did not know and a few I had never heard about. I recommend you instal the mobile version of Anki and start learning more shortcuts today!

There is also a community sharing Anki decks and I immediately looked for Eclipse shortcuts. I found a large deck of 91 cards for Eclipse, which - again - was created for the Mac version of Eclipse. I translated and verified them as well, which was much easier because I have been using Eclipse for more than ten years. Here are the Eclipse shortcuts for Windows flashcards.

Download 59 IntelliJ Shortcuts Win.apkg here. Download 91 Eclipse Shortcuts Win.apkg here.

31 July 2011

Finally a Proper Keyboard

At last GeeCON I met Hamlet D'Arcy and he distributed keyboard stickers with IntelliJ IDEA's keymap. I had them lying around for some time because I did not want to put them on my primary keyboard (because it does not have any labels). Last week I cleaned my old Silicon Graphics keyboard and boosted it with these stickers. Doesn't it look great?

Silicon Graphics Keyboard with IntelliJ IDEA Keybinding
I had to customize the stickers to my German keyboard. The Shift and Enter keys are shorter and I had to cut their stickers. Then I thought about changing the keymap inside IDEA and to put the stickers on the keys where they would be on an English keyboard. But I got confused, and in the end I put the stickers on their according places. I only changed the binding for [ to ö and ] to ä because 8 and 9 where [ and ] are on, were already taken.

29 August 2010

Productivity Tip: Folder Names

post it boardI want to be productive. I like the feeling of GTD. I believe that even small things make a difference in productivity. For example assigning a keyboard shortcut to the calculator application. I don't use the calculator very often, but when I do, I have this warm and cosy feeling that I saved one or two seconds to open it. I'm always assigning keyboard shortcuts. I have been doing it since the early days of Windows 3.1.

One trick I found recently is to name folders beginning with different letters. For example some time ago my main work folder contained subfolders article, code, community, posts, presentation and resource. To speed up folder switching I renamed them to article, blog, community, develop, presentation and resource. Now all folders start with a different letter. Each folder is uniquely accessible by pressing a single key in explorer or any navigator. The same is true for drives.

Finding names can be difficult. They should describe the files inside them. If I don't find a proper synonym or word in a different language, I don't change it.