As I can see whenever I edit F-curves of the bone it moves along its local axis. Is it possible to switch to global or are there any ways to edit curves in global? I found its difficult to edit my character movements when all of its bones are somewhat rotated and I need to precisely edit its global position change.
No it's not possible to adjust bones directly in global space with f-curves, because they are always parented to the armature or to themselves into bone chains. Such behavior you want only works on objects which transformation does not depend on other objects.
However by changing the rig design you can control the bones in global space with constraints:
Here the root bone follows global transforms of an empty. To control a bone further down the chain you would need to setup an IK for that bone in chain.
But what you probably want is to have the bone animate locally, then at some point swith to global control and transform it precisely and then back switch to local am I right.. You can do this by animating the constraint's influence - the procedure:
The constraint's influence is 0 and the bone is controlled locally. The Empty is at some random location.
Align the Empty Transforms to the bone with copying the bone's matrix to the Empty's matrix in Python Console:
a.) Select bone:
mat = bpy.context.active_pose_bone.matrix
b.) Select Empty:
bpy.context.active_object.matrix_world = mat
Now when they are aligned keyframe the influence to 1. The bone is controlled globally with that Empty now.
When you are done with global select the bone and hit Ctrl+A > Apply Visual Transform to Pose. Then keyframe the bone and influence back to 0.