This being a community of ASCII gamers (largely), perhaps everybody here is already savvy enough to figure out a fix to this problem but it took me long enough so maybe this will help somebody else:
I have a laptop without a number pad and so diagonals tend to be pretty awkward; the YUBN keys are reasonable compromises if they alone are an option - often though they're part of the 'vi' keys (YU, HJKL, BN) and so things like 'kick' have to be remapped, which in Nethack is something ridiculous like Ctrl+X.
This fix allows you to use the extremely convenient Shift+Left or Right to go diagonally up & left/right and Ctrl+Left or Right to go diagonally down & left/right; naturally your left hand tends to hover around that area so it makes the whole thing a breeze, for some reason this isn't common in even new-ish roguelikes (only ADOM does this and even that may be a NOTEYE interface feature).
Anyway, you'll need the free and lightweight 'Auto Hot Key' programme which can be downloaded at autohotkey.com. Once downloaded, simply create a new ahk file (you'll find the option in the Right Click > New > AHK file menu, otherwise you can create a text file and rename the extension .ahk) and paste this in (without the lines):
------------------------------
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
+Left::
Send 7
return
+Right::
Send 9
return
^Left::
Send 1
return
^Right::
Send 3
-------------------------------
Then open the file to run the script, a little icon will now reside in your notifications bar that you might want to set to 'hide', and if you're likely to play these games a lot then maybe put it in your 'StartUp' folder so you don't have to keep opening it.
The stuff at the top is the default coding it recommends so don't ask me what that all does. The rest of it tells the computer to map Shift ("+") or Control ("^") and either Left or Right to the horizontal number keys that control diagonal movement. In the unlikely case that the game you're playing doesn't use the horizontal numbers for movement and only uses the number pad then instead of "1" or "9" with "Numpad1" or "Numpad9"; if you have an even more unusual setup for movement then replace those numbers with whichever keys control your diagonal movement.
I can't tell you how much better it feels to play Nethack with easy diagonal movement...but I'm going to try - it feels great. I think I'd prefer this to a number pad anyway because there's less movement involved.
Hope this helps someone else as much as it did me.
-RiC