diff --git a/pizero/init.lua b/pizero/init.lua new file mode 100644 index 0000000..795ffb6 --- /dev/null +++ b/pizero/init.lua @@ -0,0 +1,91 @@ +-- ---------------------------------------------- +-- Globals +-- ---------------------------------------------- +local set = vim.opt +local g = vim.g +local fn = vim.fn +local map = vim.keymap.set +local api = vim.api +local opt = vim.opt + +-- Turn on relative numbers +set.relativenumber = true +-- Turn off line wrapping +set.wrap = false +-- Disable cmdline from bottom +-- set.cmdheight = 0 +-- Ignore case while searching except when the search term contains capital letters +set.ignorecase = true +set.smartcase = true +-- Use 4 spaces and properly adjust them for files using TAB, +-- except for Haskell +vim.api.nvim_create_autocmd("FileType", { + pattern = "*", + callback = function() + local tabsize + if string.find(" haskell ", ' ' .. vim.bo.filetype .. ' ') then + tabsize = 2 + else + tabsize = 4 + end + set.tabstop = tabsize + set.shiftwidth = tabsize + set.softtabstop = tabsize + end, +}) +set.expandtab = true +-- Show LSP signs in the number column +set.signcolumn = 'number' +-- Turn on spell checking +set.spell = true +-- Enable mouse support +set.mouse = 'n' + +-- Disable unused plugins +g.loaded_perl_provider = 0 +g.loaded_node_provider = 0 +g.loaded_ruby_provider = 0 +g.loaded_python_provider = 0 + +-- ---------------------------------------------- +-- Keymaps +-- ---------------------------------------------- + +-- Change the leader and localleader +g.mapleader = ',' +g.maplocalleader = ';' + +-- Use ctrl-[hjkl] to select the active split! +map('n', '', ":wincmd k", { silent = true }) +map('n', '', ":wincmd j", { silent = true }) +map('n', '', ":wincmd h", { silent = true }) +map('n', '', ":wincmd l", { silent = true }) + +-- Use ,dd for deleting without putting into buffer +map({ 'v', 'n' }, 'd', '"_d', { remap = false }) +map('n', 'D', '"_D', { remap = false }) +map('n', 'x', '"_x', { remap = false }) + +-- Insert a newline in normal mode by ,o and ,O +map('n', 'o', ":call append(line('.'), repeat([''], v:count1))", { remap = false }) +map('n', 'O', ":call append(line('.')-1, repeat([''], v:count1))", { remap = false }) + +-- Use ,u for redo +map('n', 'u', "", { remap = false }) + +-- Browser like keymaps +map('n', 'k', ":tabnext", { remap = false }) +map('n', 'j', ":tabprevious", { remap = false }) +map('n', 'w', ":bdelete", { remap = false }) +map('n', 'W', ":bdelete!", { remap = false }) +map('n', 't', ":tabnew", { remap = false }) +map('n', 'q', ":qa", { remap = false }) +map('n', 'Q', ":qa!", { remap = false }) +map('n', 's', ":w", { remap = false }) +map('n', 'S', ":x", { remap = false }) + +-- Clear search highlight by Esc in normal mode +map('n', '', ':noh', { remap = false }) + +-- Find files using fzf by ,f +map('n', 'f', ':Files', { remap = false })