Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been a Windows programmer for a decade or more now, and I'm currently doing my first ever Macintosh project.

One of the things that is driving me bonkers is how the keyboard maps differently. There's the little things, like how the equivalent of ALT+TAB in Windows is COMMAND+TAB, which for a standard USB keyboard winds up being WINDOWS+TAB. Then there's the really annoying things, like maneuvering through text in a document is different. In Windows if I want to select a line's text I can position my cursor at the end with the END key, hold SHIFT and hit HOME. On the Macintosh the END key takes you to the end of the document (which, to be fair, is somewhat logical) and holding down SHIFT and the HOME key just selects the entire document up until the cursor. The ALT+arrow keys are more what I'm looking to do.

My attitude towards this has been basically to suck it up and learn the new way of doing things and adapt to the idea of going back and forth. My reasoning is that this likely won't be the last new platform I ever program for in my career and it probably benefits me both as a programmer and a computer user to be flexible. In addition, there's always going to be machines I go to where mapping the keyboard isn't in place already, or may not be an option (i.e., helping troubleshoot a QA machine). Plus not everything I'm used to in Windows is going to have a Macintosh equivalent.

However, right now I'd be considerably more productive if I were to make things more like Windows.

For people who have been working with multiple platforms, do you change the mappings to make everything like what you're familiar with? Or do you do what I'm currently doing which is to suck it up and learn the different way of doing things?

share|improve this question
My personal favorite is Command+Q when trying to type an @ –  Flo Apr 9 '14 at 10:07

4 Answers 4

up vote 5 down vote accepted

No, I just adapt to the new environment best I can. Trying to configure everything as before usually just leads to more pain (all within reasonable limits of course).

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly.

Specialization is for insects.

share|improve this answer

I went through this about 5 years ago. I got used to the command/ctrl difference pretty quickly, but the home and end keys drove me crazy. I found a program called Double Command that switched the function of these with their Mac equivalents (which are CMD → for end and CMD ← for home).

The problem with this utility was that certain platform-agnostic applications (usually Java-based like IntelliJ) already re-mapped the home and end keys to other things and because underneath that was already doing the translation, it essentially reverted those keys in those programs, or worse, did nothing. After a couple upgrades to new versions of Mac OS, the Double Command program kept crashing and eventually I gave up, and learned to use the built in commands.

I wish I would have just gone with that at first. I find that now I can switch between a PC and Mac quite seamlessly, which I think is subconsciously linked to the feel of the keyboard that I'm using. Anytime I've ever plugged a PC keyboard into a Mac, I've been totally lost and confused.

[Edit] Oh, I will say that if my IDE on a PC supports it, I do add additional key mappings to use Mac-standard window commands:

  • Ctrl+W: close window
  • Ctrl+L: go to line
  • Ctrl+G: find next
  • Shift Ctrl+G: find previous
share|improve this answer

I just install Vim. Then, it doesn't matter what the platform is; I've got my .vimrc. :)

That said, I do try to learn the keyboard shortcuts of the platform. I just tend to use different platforms so scarcely, that I never get the time to do so.

share|improve this answer

I don't remap the whole platform, but when I went to a place using emacs after years of DOS and Windows programming, I did remap the cursor-manipulation keys (Shift-Home, Ctrl-End, ...) to match the shortcuts that are hard-wired into my fingers.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.