This problem is actually solved in year 2012 when EVIL is mature.
Simple solution,
Please use Spacemacs+Evil. Vim key bindings make sure you type less keys when dealing with text. Use space as leader key so you don't need move finger from its default position too frequently.
In other words, if you don't use key like Ctrl/Alt/Shift/Win/Cmd/Esc, you solve the problem from root cause.
Advanced solution,
Please use Evil. Then measure your frequency of key pressing by using package keyfreq
.
See http://blog.binchen.org/posts/how-to-be-extremely-efficient-in-emacs.html for tech details.
If you want to start optimization immediately without using keyfreq
, here is my one year data you can use,
https://gist.github.com/redguardtoo/99e69fe3ecfccadeacdb6f1c40978b0c
This solution works on any environment. It also immediately speedup you productivity so you can code much faster. In summary, there is NO side effect at all.
BTW, at the beginning, you only need optimize top 20 commands.
6008 13.33% evilmi-jump-items %, <visual-state> %, <normal-state> %
4292 9.53% winum-select-window-2 , 2, M-2
3806 8.45% winum-select-window-1 , 1, M-1
2522 5.60% switch-to-shell-or-ansi-term , x z, C-x C-z
2280 5.06% my-counsel-recentf , r r
1910 4.24% my-multi-purpose-grep , q q
1791 3.98% back-to-previous-buffer , b b
1561 3.46% winum-select-window-3 , 3, M-3
1379 3.06% counsel-etags-find-tag-at-point C-]
1222 2.71% eval-expression , e e, M-:, M-ESC :
1153 2.56% evil-visualstar/begin-search-forward <visual-state> *
971 2.16% my-evil-goto-definition g t
793 1.76% copy-to-x-clipboard , a a
654 1.45% pop-tag-mark C-t
633 1.40% counsel-imenu , i i
616 1.37% paste-from-x-clipboard , z z
539 1.20% winum-select-window-4 , 4, M-4
522 1.16% toggle-full-window , f f
420 0.93% evil-toggle-input-method C-\
371 0.82% git-add-current-file , v a
322 0.71% evilnc-comment-or-uncomment-lines , c i, M-;
302 0.67% backward-delete-char-untabify
295 0.65% my-split-window-vertically , x 2, C-x 2
285 0.63% find-file-in-project-by-selected , k k
279 0.62% delete-other-windows , x 1, , s 1, C-w C-o, C-w o, C-x 1, <menu-bar> <file> <one-window>
278 0.62% langtool-goto-next-error , l l
273 0.61% find-function , h f, C-h C-f, <f1> C-f, <help> C-f
270 0.60% kill-buffer , x k, C-x k
261 0.58% my-split-window-horizontally , x 3, C-x 3
251 0.56% narrow-or-widen-dwim , w w
235 0.52% counsel-find-file , x f
224 0.50% winner-undo , u u, C-c <left>, C-x 4 u
203 0.45% beginning-of-defun , b f, <C-M-home>, C-M-a, ESC <C-home>
202 0.45% c-electric-backspace
201 0.45% evil-a-paren
190 0.42% counsel-describe-variable C-h v, <f1> v, <help> v
187 0.42% org-shifttab
187 0.42% wg-create-workgroup SPC s s
186 0.41% evil-surround-region <visual-state> S
155 0.34% ffip-diff-find-file
154 0.34% flyspell-goto-next-error , f e
153 0.34% counsel-etags-find-tag , f t
152 0.34% ivy-switch-buffer-by-pinyin , x b