Trying to map <Ctrl>+<hjkl> to <Left Down Up Right> globally (Vim-like arrow keys) with xmodmap
Solution 1
It is surely very strange idea to turn Ubuntu into the codename "VimOS". I think much more adequate to map Vim's keys to some free and equable more cluster of the keyboard. Or definitely NOT due to it is also might be useful.
However I do not deletes my first suggest about Vim mappings and should to say that answer to your question exist here:
System wide vim-style (hjkl) navigation
Partially I agree this view (thanks to shell hell):
NOTE 3: Setting up Ctrl / Meta + H,J,K,L keybindings seems to be simplest way to have vim-style navigation but it’s not. First: you would have to do this on per application basis which is tiresome process. Second: you’ll probably end up breaking default mappings for any given application. Last but not least: some apps e.g. rtorrent or htop don’t let you change their defaults, save by patching their sourcecode. For similar reasons you won’t get job done with Super / Hyper, either.
And also I found near answer here:
Superuser: Mapping Super+hjkl to arrow keys under X
Vim uses a switching modes to mapping keys. So xmodmap for Vim it is some pluggable globals what breaks classic Vim experience. Even so to claim it sounds pathetic ;)
Vim supports several editing modes - normal, insert, replace, visual, select, command-line and operator-pending. You can map a key to work in all or some of these modes.
Mapping keys in Vim - Tutorial (Part 1)
Mapping keys in Vim - Tutorial (Part 2)
Mapping keys in Vim - Tutorial (Part 3)
Solution 2
I have Tux-J and Tux-K mapped to Up and Down in KDE, it is relevant for all applications. It is actually rather easy to configure.
- Go here:
System Settings -> Custom Shorcuts -> Preset Actions
- Now right-click
Preset Actions
and chooseNew -> Global Shortcut -> Send Keyboard Input
- Call the new shortcut
VIM-J
- In the Trigger tab click the Shortcut button and them press Tux-J.
- In the Action tab enter
Down
- At the bottom of the window click
Apply
. - Check that the shortcut works. If so, then configure the remaining HK and L keys.
Enjoy!
Related videos on Youtube
StrugglingProgrammer
The road to success is paved with compilation errors.
Updated on September 18, 2022Comments
-
StrugglingProgrammer over 1 year
I am trying to map Ctrl+H,J,K,L to arrow keys Left,Down,Up,Right, respectively, on Ubuntu OS (globally, not inside Vim).
I've attempted the solution posted here, but the modifier commands are not working. Here is what I am trying:
xmodmap -e "keycode 45 Control_L = k Up" xmodmap -e "keycode 45 control = k Up"
(keycode 45 maps to
K
)Neither commands work. (They give no errors, but Ctrl+K is not remapped to Up Arrow)
Is there a way to do this xmodmap, and if not, is there a cleaner workaround?
Thanks!
Edit: I have found my answer here - thanks to swift
-
StrugglingProgrammer almost 10 yearsHi swift, thanks for the reply. Perhaps I was unclear in asking my question. I am not attempting to do any key remaps inside of Vim. I'm actually trying to map ctrl+hjkl to arrow keys-left, down, up, right, respectively, on my GNU/Linux Ubuntu distribution. The post I linked claims that this is possible (indirectly), but I am unable to achieve this successfully.
-
swift almost 10 yearssorry, I understood your first edition not right. ok, will update answer )
-
jeremyjjbrown almost 6 yearsVimOS! Where do I get it?
-
swift over 2 yearsMake it from xmonad! 😃