diff --git a/init.lua b/init.lua index c599d3b..ccf90e0 100644 --- a/init.lua +++ b/init.lua @@ -18,6 +18,10 @@ vim.opt.scrolloff = 8 vim.api.nvim_set_option("clipboard", "unnamedplus") +ALPHABET_LOWER = 'abcdefghijklmnopqrstuvwxyz' +ALPHABET_UPPER = string.upper(ALPHABET_LOWER) +DIGITS = '0123456789' + do local move_left = '' local move_down = '' @@ -35,6 +39,15 @@ do vim.api.nvim_set_keymap('t', move_right, 'wincmd l', {silent = true}) end +do -- always global marks + for i = 1, #ALPHABET_LOWER do + local lower = string.sub(ALPHABET_LOWER, i, i) + local upper = string.sub(ALPHABET_UPPER, i, i) + vim.api.nvim_set_keymap('n', 'm' .. lower, 'm' .. upper, {silent = true}) + vim.api.nvim_set_keymap('n', "'" .. lower, "'" .. upper, {silent = true}) + end +end + do -- building, errors and folder navigation ---comment ---@param key string @@ -72,6 +85,16 @@ vim.g.python_indent = { -- Fixes retarded default python indentation. vim.o.exrc = true -- Allows project specific .nvim.lua config files. +--better scrolling +vim.cmd [[ noremap M0w ]] +vim.cmd [[ noremap M0w ]] + +--move buffer to window +vim.cmd [[ nnoremap bh :let buf=bufnr('%')h:buffer =buf ]] +vim.cmd [[ nnoremap bj :let buf=bufnr('%')j:buffer =buf ]] +vim.cmd [[ nnoremap bk :let buf=bufnr('%')k:buffer =buf ]] +vim.cmd [[ nnoremap bl :let buf=bufnr('%')l:buffer =buf ]] + vim.cmd [[ autocmd FileType * set formatoptions-=cro ]] -- Disable automatic comment. -- HELPER FUNCTIONS @@ -175,9 +198,9 @@ do -- To create a script that runs when typing the command "er", -- create a script called ".r.sh" in the current directory. - local alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' - for i = 1, #alphabet do - local char = alphabet:sub(i, i) + local characters = ALPHABET_LOWER .. ALPHABET_UPPER .. DIGITS + for i = 1, #characters do + local char = characters:sub(i, i) vim.keymap.set( 'n', "e" .. char, @@ -436,6 +459,9 @@ require('lazy').setup( } lspconfig.sqlls.setup{} lspconfig.rust_analyzer.setup{} + lspconfig.hls.setup{ + filetypes = { 'haskell', 'lhaskell', 'cabal' } + } vim.keymap.set("n", "ca", vim.lsp.buf.code_action, { desc = "Perform code action" }) vim.keymap.set("n", "rn", vim.lsp.buf.rename, { desc = "Rename token under cursor" })