23

In terminal emulation applications, pressing CTRL + Left / Right arrows jumps from one word to the previous or next one. Is it possible to have the same functionality in a Linux console, whether it is in text or in framebuffer modes?

In my configuration, the CTRL + arrow keys are transformed into escaped character sequences and not interpreted.

xenoterracide
  • 59,188
  • 74
  • 187
  • 252
Pedro Palhoto
  • 629
  • 1
  • 6
  • 12

7 Answers7

31

Emacs-style shortcuts Alt + f, Alt + b work by default with all readline-powered command line programs, like shells.

jesse_b
  • 37,005
alex
  • 7,223
12

This is possible if and only if the terminal sends different escape sequences for Ctrl+Left vs Left. This is not the case by default on the Linux console (at least on my machine). You can make it so by modifying the keymap. The exact file to modify may depend on your distribution; on Debian lenny, the file to modify is /etc/console/boottime.kmap.gz. You need lines like

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

You might as well choose the same escape sequences as your X terminal emulator. To find out what the control sequence is, type Ctrl+V Ctrl+Left in a shell; this inserts (on my machine) ^[O5D where ^[ is an escape character. In the keymap file, \033 represents an escape character.

Configuring the application in the terminal to decode the escape sequence is a separate problem, .

4

This is not with control + arrows, but I can type Esc B to go back a word and Esc F to go forward a word in my Mac Terminal.

Ian
  • 141
3

I use zsh, therefore I can enable this behaviour by editing the .zshrc file

The following lines have to be added:

# Enable Ctrl+arrow key bindings for word jumping
bindkey '^[[1;5C' forward-word     # Ctrl+right arrow
bindkey '^[[1;5D' backward-word    # Ctrl+left arrow

I hope this helps at least the zsh-users.

AdminBee
  • 22,803
2

You can set vim as your command line editor and then hit ESC and jump around vim style (forward, back, end, $, 0, etc)

0

On mac terminal option-left/right works for me, you can also edit it in the terminal preferences>Keyboard.

Jgible
  • 1
-1

I had this issue on Debian with an empty ~/.inputrc file. Fixed the problem by removing this file.

dr_
  • 29,602
Talkerbox
  • 101