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

closed as primarily opinion-based by Snowman, MichaelT, gnat, Kilian Foth, GlenH7 Mar 9 at 14:05

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

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

5 Answers 5

up vote 10 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 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 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 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

I used to change the mappings but it didn't work out well and now I don't.

As I switched from Windows to Linux (Ubuntu) to Mac's, I found this to be a common problem. Most notably for the ctrl vs command key stuff between Linux and OSX.

So initially I would remap keys to match what I used on the previous system. Initially this seemed like a good idea but over time I moved away from it and used each system 'raw' without remapping. The issues that led me to do this were:

  • I was unable to use anyone elses computer without remapping (and unmapping when I was done.
  • Other folks were not able to use my computer with unmapping / remapping when done.
  • Some programs respected the mappings, some had issues with it
  • The documentation becomes 'wrong' as it refers to the originally intended keys for that system.
  • I made vim and tmux my main editor / window control programs and so I either have the same keys mapped or the command such as ctrl-a are the same in both Linux and OSX.

As others have mentioned, I've got used to the differences over time. I do feel that this took me longer because I do use an external keyboard and so I really have to do the mental switch in my mind, clued in by looking at the screen desktop. It didn't seem like it would take initially but after a few weeks to months I don't notice it much at all. There still occasions where I pause to think but they are on the order of under about a second.

share|improve this answer

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