When nano is running, in the bottom appears the menu options based on ^#, for example


etc ..

Each one represents

  • ctrl + o
  • ctrl + x


Reason of this post: when a new linux user - nobody has born with knowledge - see these menu options/items using uppercase characters he could assume the following:

  • ctrl + shift + o
  • ctrl + shift + x

Therefore, why not from the beginning show ^o and ^x - it through with lowercase? Why uppercase? - Is there a historical reason?

This scenario applies for example for the less command too, about:

f ^F ^V SPACE * Forward one window (or N lines).
b ^B ESC-v *    Backward one window (or N lines).
z * Forward one window (and set window to N).
w * Backward one window (and set window to N).

Observe ^F and ^B - so why not ^f and ^b?


1 Answer 1


First reason is obviously that, on keyboards, the alphabetical keys are labeled using uppercase characters. If I need a user to type a key, isn't it more obvious to use its precise label irrespective of what it is going to be translated into) ?

Second reason is that, under ansi/VT-52 compatible terminals, the Control key was not sending any keycode to the system. The terminal was instead waiting for an alphabetic key to be entered before sending the associated ascii character transposed in the 000(8)-037(8) range.

Shift (which also did not transmit any keycode per se) was just ignored leading the terminal to output the same ascii char in Ctrl-O or Ctrl-Shift-O sequences anyway.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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