summary refs log tree commit diff
path: root/.vim/lua/hardmode.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/hardmode.lua')
-rw-r--r--.vim/lua/hardmode.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/.vim/lua/hardmode.lua b/.vim/lua/hardmode.lua
new file mode 100644
index 0000000..ed7d4ac
--- /dev/null
+++ b/.vim/lua/hardmode.lua
@@ -0,0 +1,38 @@
+-- hard mode means we're not using the arrow keys!
+-- map them to more useful actions instead
+-- https://coderoncode.com/posts/vim-is-the-perfect-ide
+
+local cmd = vim.cmd
+local u   = require('utils')
+
+local bail = ':silent! echohl ErrorMsg | echo "HARD MODE: hjkl operation only" | echohl None<CR>'
+
+u.map('n', 'R<up>', ':resize +2<CR>')
+u.map('n', 'R<down>', ':resize -2<CR>')
+u.map('n', 'R<left>', ':vertical resize +2<CR>')
+u.map('n', 'R<right>', ':vertical resize +2<CR>')
+
+u.map('n', 'W<up>', ':wincmd k<CR>')
+u.map('n', 'W<down>', ':wincmd j<CR>')
+u.map('n', 'W<left>', ':wincmd h<CR>')
+u.map('n', 'W<right>', ':wincmd l<CR>')
+
+u.map('n', 'Wm<up>', ':wincmd K<CR>')
+u.map('n', 'Wm<down>', ':wincmd J<CR>')
+u.map('n', 'Wm<left>', ':wincmd H<CR>')
+u.map('n', 'Wm<right>', ':wincmd L<CR>')
+
+u.map('n', '<up>', bail)
+u.map('n', '<down>', bail)
+u.map('n', '<left>', bail)
+u.map('n', '<right>', bail)
+
+u.map('v', '<up>', bail)
+u.map('v', '<down>', bail)
+u.map('v', '<left>', bail)
+u.map('v', '<right>', bail)
+
+u.map('i', '<up>', '<esc>' .. bail)
+u.map('i', '<down>', '<esc>' .. bail)
+u.map('i', '<left>', '<esc>' .. bail)
+u.map('i', '<right>', '<esc>' .. bail)