Version: (using KDE KDE 3.1.1) Installed from: SuSE RPMs OS: Linux When editing a command line in Konsole, you can only jump between words with alt+{left|right}arrow. This UI is inconsistent to other KDE applications in which ctrl+{left|right}arrow is used for the same thing. I think this is a problem in Konsole rather than bash as it works fine when using xterm. ctrl+{left|right}arrow does nothing in Konsole, so it can be safely added without breaking expected behavior of other users.
It's an unimplemented feature. Ctrl+Arrow in Konsole sends the same escape code as the arrow key alone. In xterm, it sends a lowercased version of the escape sequence. For reference: - for the LeftArrow key, xterm sends ESC[D - for Ctrl+LeftArrow (grey keys), xterm sends ESC[d - for the numeric keypad, Ctrl or Alt with one the keys generates a completely different sequence
As requested, I confirm that this report is still valid for KDE 3.2.2 (Debian testing/unstable).
Created attachment 7114 [details] My own keytab file, supporting Ctrl-<Key>
I can confirm this Bug. The Problem is, that konsole often does not distinguish between Ctrl-<Key> and <Key>. This can be fixed with a custom key-mapping, placed in ~/.kde/share/apps/konsole/, which can than be chosen from the konsole menu. I attached my own keytab and a patch between it and the standard keytab. I would propose to refine the standard keytabs.
Created attachment 7177 [details] Diff to default.keytab
Just a quick note that this bug hasn't been fixed as of KDE 3.3.2. Maybe next time? :)
Still not implemented in KDE 3.4.
I'll look at this after 92749 is commited.
bug still not fixed in kde 3.4.1 Why not patch the default default keytab file in the repository? Thanks
With the commit of 92749, Konsole now behaves like xterm does. Ctrl+LeftArrow = 5D Ctrl+RightArrow = 5C Alt+LeftArrow = 3D Alt+RightArrow = 3C
In KDE 3.5, the behaviour of Konsole in fact matches xterm. Thanks! However, jumping between words now neither works using Alt-<arrow> not Ctrl-<arrow>. I assume that this is not an error in Konsole, but rather in my shell configuration. Any pointers on how to get the desired behaviour, i.e. to use Ctrl+<arrow> to jump between words?
You can configure your shell to match those escape sequences. Bash uses libreadling, so you should tweak your '~/.inputrc'. Here is a snippet from mine, which might not work for you out of the box, but you get the idea (see 'man readline'): ---------------------------------------------------------------------- ... #insert space, move back a char: bound to 'Insert' "": " \C-b" #"^[Od": backward-word #"^[Oc": forward-word #"^[[D": backward-word #"^[[C": forward-word # # Fix Home and End for German users # $if term=xterm "\e[7~": beginning-of-line "\e[8~": end-of-line "\e[1;5D": backward-word "\e[1;5C": forward-word $endif ----------------------------------------------------------------------
sorry for the typo, it is 'libreadline' and not 'libreadling' of course
Thanks for the hint, Martin! I've added the backward-word and forward-word lines to my ~/.inputrc and now Konsole and bash work together like a charm. As far as I'm concerned, this resolves my bug report. Regards, Georg
Why not implement this fix in 3.4?