How do I jump to the next or previous word with CTRL + arrow keys in a console?
Solution 1
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, .
Solution 2
Emacs-style shortcuts Alt + f, Alt + b work by default with all readline-powered command line programs, like shells.
Solution 3
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.
Related videos on Youtube
artkoenig
Updated on September 17, 2022Comments
-
artkoenig over 1 year
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.
-
Tam Borine about 8 yearsyou are only explaining how you got the
"\033O5D"
code, but completely omitting where you got thekeycode 105
andF100
codes from. Besides, I get^[[1;5B
and^[[1;5A
for ctrl+Down and Ctrl+Up. How should I handle the1;
part? -
Gilles 'SO- stop being evil' about 8 years@MartinVegter Check the existing file for keycodes, or use the
showkey
program. The1;
part isn't different from the rest:"\033[1;5B"
and so on. -
Tam Borine about 8 yearsOK the
keycode 105
can be found usingshowkey
. But where did you get theF100
? -
Gilles 'SO- stop being evil' about 8 years@MartinVegter Pick one that isn't already in use. A different one per keychord (I just fixed a typo in my answer).