hardmode.vim (5201B)
1 " Arrows 2 nnoremap h :echo "Use \<C-h\>"<CR> 3 nnoremap l :echo "Use \<Space\>"<CR> 4 nnoremap j :echo "Use +"<CR> 5 nnoremap k :echo "Use -"<CR> 6 nnoremap e :echo "Use ge"<CR> 7 nnoremap b :echo "Use ge"<CR> 8 nnoremap $ :echo "Use g$ or g_"<CR> 9 nnoremap ^ :echo "Use g^ or g0"<CR> 10 nnoremap 0 :echo "Use g0 or g^"<CR> 11 nnoremap _ :echo "Use g0 or g^"<CR> 12 nnoremap r :echo "Use gr"<CR> 13 nnoremap R :echo "Use gR"<CR> 14 nnoremap ~ :echo "Use g~"<CR> 15 nnoremap * :echo "Use g*"<CR> 16 nnoremap # :echo "Use g#"<CR> 17 nnoremap zb :echo "Use z-"<CR> 18 nnoremap zt :echo "Use z\<CR\>"<CR> 19 nnoremap zz :echo "Use z."<CR> 20 nnoremap <C-b> :echo "Use z^"<CR> 21 nnoremap <C-f> :echo "Use z+"<CR> 22 nnoremap <C-u> :echo "Use z^z. or Hz."<CR> 23 nnoremap <C-d> :echo "Use z+z. or Lz."<CR> 24 nnoremap <Left> :echo "Use \<C-h\>"<CR> 25 nnoremap <Right> :echo "Use \<Space\>"<CR> 26 nnoremap <Up> :echo "Use -"<CR> 27 nnoremap <Down> :echo "Use +"<CR> 28 nnoremap <BS> :echo "Use \<C-h\>"<CR> 29 vnoremap <Left> :<C-u>echo "Use \<C-h\>"<CR>gv 30 vnoremap <Right> :<C-u>echo "Use \<Space\>"<CR>gv 31 vnoremap <Up> :<C-u>echo "Use -"<CR>gv 32 vnoremap <Down> :<C-u>echo "Use +"<CR>gv 33 vnoremap h :<C-u>echo "Use \<C-h\>"<CR>gv 34 vnoremap l :<C-u>echo "Use \<Space\>"<CR>gv 35 vnoremap j :<C-u>echo "Use +"<CR>gv 36 vnoremap k :<C-u>echo "Use -"<CR>gv 37 vnoremap <BS> :<C-u>echo "Use \<C-h\>"<CR>gv 38 inoremap <Left> <C-o>:echo "Use \<C-h\>"<CR> 39 inoremap <Right> <C-o>:echo "Use \<Space\>"<CR> 40 inoremap <Up> <C-R>=pumvisible() ? "\<lt>Up>" : "\<lt>C-o>:echo \"Use -\"\<lt>CR>"<CR> 41 inoremap <Down> <C-R>=pumvisible() ? "\<lt>Down>" : "\<lt>C-o>:echo \"Use +\"\<lt>CR>"<CR> 42 inoremap <BS> <C-o>:echo "Use \<C-h\>"<CR> 43 inoremap <CR> <C-o>:echo "Use \<C-g\>u\<CR\>"<CR> 44 inoremap <C-g>u<CR> <C-g>u<CR> 45 inoremap <C-u> <C-o>:echo "Use \<C-g\>u\<C-u\>"<CR> 46 inoremap <C-g>u<C-u> <C-g>u<C-u> 47 cnoremap <BS> <NOP> 48 cnoremap <C-p> <C-U>:echo "Use \<C-f\>"<CR> 49 cnoremap <C-n> <C-U>:echo "Use \<C-f\>"<CR> 50 cnoremap <Up> <C-U>:echo "Use \<C-f\>"<CR> 51 cnoremap <Down> <C-U>:echo "Use \<C-f\>"<CR> 52 53 " Windows 54 nnoremap <C-W><C-W> <NOP> 55 56 " Jumps 57 nnoremap <C-O> <NOP> 58 nnoremap <C-I> <NOP> 59 60 " Commands 61 cabbrev wq echo 'Use ZZ' 62 cabbrev q! echo 'Use ZQ' 63 cabbrev q echo 'Use ZQ' 64 cabbrev w echo 'Use up' 65 66 " Visual 67 map v :echo 'Use marks'<CR> 68 map V :echo 'Use marks'<CR> 69 " map <C-V> <NOP> 70 71 " Registers 72 for s:i in ['_','"','*','+','~','-','.',':','%','#','/','=','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] 73 for s:j in ["p","P","y","Y","c","C","d","D"] 74 execute 'nnoremap ' . s:j . ' :echo "Use registers instead of ' . s:j . '"<CR>' 75 execute 'nnoremap "' . s:i . s:j . ' "' . s:i . s:j 76 execute 'vnoremap ' . s:j . ' :<C-U>echo "Use registers instead of ' . s:j . '"<CR>' 77 execute 'vnoremap "' . s:i . s:j . ' "' . s:i . s:j 78 endfor 79 for s:j in ["yy","cc","dd"] 80 execute 'nnoremap ' . s:j . ' :echo "Use registers instead of ' . s:j . '"<CR>' 81 execute 'nnoremap "' . s:i . s:j . ' "' . s:i . s:j 82 endfor 83 endfor 84 85 86 function! SwitchReadOnly() abort 87 if &modifiable 88 setlocal nomodifiable 89 nnoremap <buffer> - :echo "Use \<C-y\>"<CR> 90 nnoremap <buffer> + :echo "Use \<C-e\>"<CR> 91 nnoremap <buffer> <CR> :echo "Use \<C-e\>"<CR> 92 nnoremap <buffer> { :echo "Use z^z. or Hz."<CR> 93 nnoremap <buffer> } :echo "Use z+z. or Lz."<CR> 94 nnoremap <buffer> <C-p> :echo "Use \<C-y\>"<CR> 95 nnoremap <buffer> <C-n> :echo "Use \<C-e\>"<CR> 96 nnoremap <buffer> <Space> :echo "Use zl"<CR> 97 nnoremap <buffer> <C-h> :echo "Use zh"<CR> 98 nnoremap <buffer> w :echo "Use zL"<CR> 99 nnoremap <buffer> ge :echo "Use zH"<CR> 100 nnoremap <buffer> g0 :echo "Use zL"<CR> 101 nnoremap <buffer> g$ :echo "Use zH"<CR> 102 else 103 setlocal modifiable 104 nunmap <buffer> - 105 nunmap <buffer> + 106 nunmap <buffer> <CR> 107 nunmap <buffer> { 108 nunmap <buffer> } 109 nunmap <buffer> <C-p> 110 nunmap <buffer> <C-n> 111 nunmap <buffer> <Space> 112 nunmap <buffer> <C-h> 113 nunmap <buffer> w 114 nunmap <buffer> ge 115 nunmap <buffer> g0 116 nunmap <buffer> g$ 117 endif 118 endfunction 119 120 command M call SwitchReadOnly() 121 122 autocmd BufReadPost * 123 \ setlocal nomodifiable 124 \| if !&modifiable 125 \| nnoremap <buffer> - :echo "Use \<C-y\>"<CR> 126 \| nnoremap <buffer> + :echo "Use \<C-e\>"<CR> 127 \| nnoremap <buffer> <CR> :echo "Use \<C-e\>"<CR> 128 \| nnoremap <buffer> <C-p> :echo "Use \<C-y\>"<CR> 129 \| nnoremap <buffer> <C-n> :echo "Use \<C-e\>"<CR> 130 \| nnoremap <buffer> <C-n> :echo "Use \<C-e\>"<CR> 131 \| nnoremap <buffer> { :echo "Use z^z. or Hz."<CR> 132 \| nnoremap <buffer> } :echo "Use z+z. or Lz."<CR> 133 \| nnoremap <buffer> <Space> :echo "Use zl"<CR> 134 \| nnoremap <buffer> <C-h> :echo "Use zh"<CR> 135 \| nnoremap <buffer> w :echo "Use zL"<CR> 136 \| nnoremap <buffer> ge :echo "Use zH"<CR> 137 \| nnoremap <buffer> g0 :echo "Use zH"<CR> 138 \| nnoremap <buffer> g$ :echo "Use zL"<CR> 139 \| endif