Add at least one additional definition:
(global-set-key (kbd "C-i") 'universal-argument)
(define-key universal-argument-map (kbd "C-i") 'universal-argument-more)
See additional universal-... definitions in both bindings.el and simple.el that may be rebound if so desired.
Not sure I understand your question. Are you asking how, in each major mode, to bind to C-o whatever that mode normally binds to C-e?
If so, then in after-change-major-mode-hook add a function such as this:
(defun my-remap-C-e-to-C-o ()
"Remap whatever command is locally bound to `C-e` to `C-o`."
(let* ((map (current-local-map))
First, in general, Isearch uses the minibuffer only for M-e. So your minibuffer-local-isearch-map key binding is useless here. That's the keymap used when editing after M-e.
Second, your isearch-mode-map binding means that C-h ends up deleting the char in the buffer you're searching, not deleting a char from the search string. The current buffer remains ...
(global-set-key [f2] nil)
will 'unbind' f2, so you don't need to worry about accidentally entering 2C mode.
There's no general way to disable all the function keys, but you can rebind them however you like, just like other keys. F5-F9 are reserved for user's to bind as they like, so they shouldn't be bound to anything already. Some package developers ...
I can't really answer on why some keybinding are put under , and some under C-c.
To know the difference between the two, you can check what bindings they prefix with the shortcut , C-h and C-c C-h.
Other usefull bindings are:
C-h m to show what the current major mode bindings are
C-h k C-c [ to know what's bound to C-c [
C-h f org-agenda-file-to-front ...