How can I remap arrows keys to other short cut? I am a programmer, I need to use arrows keys a lot, so can I remap these keys to other keys?

I have downloaded the karabiner, however, I cannot define the complex modifications rules myself, karabiner only provide default rules. Yet, I want some new rule, like arrow up can be triggered by fn + i.
As you are a programmer you won't have any difficulty in editing Karabiner-Elements Complex Modifications yourself.

They are to be found at: ~/.config/karabiner/karabiner.json and can even be edited or expanded with BBEdit (or TextEdit).
Here's an example how I configured my own arrow key(s):

{ "description": "Up_arrow to Page_up",
  "manipulators": [
                   { "from": { "key_code": "up_arrow",
                               "modifiers": {
                                     "mandatory": ["left_control"] }
                             },
                     "to":   [ { "key_code": "page_up" } ],
                     "type": "basic"
                            }


Here's the JSON Reference Manual: https://pqrs.org/osx/karabiner/json.html