diff options
| author | Vito G. Graffagnino <vito@graffagnino.xyz> | 2022-06-03 13:33:33 +0100 |
|---|---|---|
| committer | Vito G. Graffagnino <vito@graffagnino.xyz> | 2022-06-03 13:33:33 +0100 |
| commit | f7951158836b388292d22d619f19f24cf3951f88 (patch) | |
| tree | b53453b80436529eadca8337f8c9bd371c3cb627 | |
| parent | c186d228bb09715aa3edcf51ff26a0042a54502a (diff) | |
| parent | 2ea76f22329a1523502787ba13d62da1eb36bf58 (diff) | |
Merge branch '02-keymaps' into vgg
| -rw-r--r-- | init.lua | 1 | ||||
| -rw-r--r-- | lua/user/keymaps.lua | 66 | ||||
| -rw-r--r-- | lua/user/options.lua | 72 |
3 files changed, 104 insertions, 35 deletions
@@ -1,3 +1,4 @@ require "user.options" +require "user.keymaps" diff --git a/lua/user/keymaps.lua b/lua/user/keymaps.lua new file mode 100644 index 0000000..e66fca5 --- /dev/null +++ b/lua/user/keymaps.lua @@ -0,0 +1,66 @@ +local opts = { noremap = true, silent = true } + +local term_opts = { silent = true } + +-- Shorten function name +local keymap = vim.api.nvim_set_keymap + +--Remap space as leader key +-- keymap("", "<Space>", "<Nop>", opts) +vim.g.mapleader = "," +vim.g.maplocalleader = "," + +-- Modes +-- normal_mode = "n", +-- insert_mode = "i", +-- visual_mode = "v", +-- visual_block_mode = "x", +-- term_mode = "t", +-- command_mode = "c", + +-- Normal -- +-- Better window navigation +keymap("n", "<C-h>", "<C-w>h", opts) +keymap("n", "<C-j>", "<C-w>j", opts) +keymap("n", "<C-k>", "<C-w>k", opts) +keymap("n", "<C-l>", "<C-w>l", opts) + +keymap("n", "<leader>e", ":Lex 30<cr>", opts) + +-- Resize with arrows +keymap("n", "<C-Up>", ":resize +2<CR>", opts) +keymap("n", "<C-Down>", ":resize -2<CR>", opts) +keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts) +keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts) + +-- Navigate buffers +keymap("n", "<S-l>", ":bnext<CR>", opts) +keymap("n", "<S-h>", ":bprevious<CR>", opts) + +-- Insert -- +-- Press jk fast to enter +keymap("i", "jk", "<ESC>", opts) + +-- Visual -- +-- Stay in indent mode +keymap("v", "<", "<gv", opts) +keymap("v", ">", ">gv", opts) + +-- Move text up and down +keymap("v", "<A-j>", ":m .+1<CR>==", opts) +keymap("v", "<A-k>", ":m .-2<CR>==", opts) +keymap("v", "p", '"_dP', opts) + +-- Visual Block -- +-- Move text up and down +keymap("x", "J", ":move '>+1<CR>gv-gv", opts) +keymap("x", "K", ":move '<-2<CR>gv-gv", opts) +keymap("x", "<A-j>", ":move '>+1<CR>gv-gv", opts) +keymap("x", "<A-k>", ":move '<-2<CR>gv-gv", opts) + +-- Terminal -- +-- Better terminal navigation +keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", term_opts) +keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", term_opts) +keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", term_opts) +keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts) diff --git a/lua/user/options.lua b/lua/user/options.lua index 1414e3d..38f6efd 100644 --- a/lua/user/options.lua +++ b/lua/user/options.lua @@ -1,38 +1,40 @@ --- :help options -vim.opt.backup = false -- creates a backup file -vim.opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard -vim.opt.cmdheight = 2 -- more space in the neovim command line for displaying messages -vim.opt.completeopt = { "menuone", "noselect" } -- mostly just for cmp -vim.opt.conceallevel = 0 -- so that `` is visible in markdown files -vim.opt.fileencoding = "utf-8" -- the encoding written to a file -vim.opt.hlsearch = true -- highlight all matches on previous search pattern -vim.opt.ignorecase = true -- ignore case in search patterns -vim.opt.mouse = "" -- allow the mouse to be used in neovim -vim.opt.pumheight = 10 -- pop up menu height -vim.opt.showmode = true -- we don't need to see things like -- INSERT -- anymore -vim.opt.showtabline = 2 -- always show tabs -vim.opt.smartcase = true -- smart case -vim.opt.smartindent = true -- make indenting smarter again -vim.opt.splitbelow = true -- force all horizontal splits to go below current window -vim.opt.splitright = true -- force all vertical splits to go to the right of current window -vim.opt.swapfile = false -- creates a swapfile -vim.opt.termguicolors = true -- set term gui colors (most terminals support this) -vim.opt.timeoutlen = 1000 -- time to wait for a mapped sequence to complete (in milliseconds) -vim.opt.undofile = true -- enable persistent undo -vim.opt.updatetime = 300 -- faster completion (4000ms default) -vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited -vim.opt.expandtab = true -- convert tabs to spaces -vim.opt.shiftwidth = 2 -- the number of spaces inserted for each indentation -vim.opt.tabstop = 2 -- insert 2 spaces for a tab -vim.opt.cursorline = true -- highlight the current line -vim.opt.number = true -- set numbered lines -vim.opt.relativenumber = true -- set relative numbered lines -vim.opt.numberwidth = 4 -- set number column width to 2 {default 4} -vim.opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time -vim.opt.wrap = false -- display lines as one long line -vim.opt.scrolloff = 8 -- is one of my fav -vim.opt.sidescrolloff = 8 -vim.opt.guifont = "monospace:h17" -- the font used in graphical neovim applications +local options = { + backup = false, -- creates a backup file + clipboard = "unnamedplus", -- allows neovim to access the system clipboard + cmdheight = 2, -- more space in the neovim command line for displaying messages + completeopt = { "menuone", "noselect" }, -- mostly just for cmp + conceallevel = 0, -- so that `` is visible in markdown files + fileencoding = "utf-8", -- the encoding written to a file + hlsearch = true, -- highlight all matches on previous search pattern + ignorecase = true, -- ignore case in search patterns + mouse = "", -- allow the mouse to be used in neovim + pumheight = 10, -- pop up menu height + showmode = true, -- we don't need to see things like -- INSERT -- anymore + showtabline = 2, -- always show tabs + smartcase = true, -- smart case + smartindent = true, -- make indenting smarter again + splitbelow = true, -- force all horizontal splits to go below current window + splitright = true, -- force all vertical splits to go to the right of current window + swapfile = false, -- creates a swapfile + termguicolors = true, -- set term gui colors (most terminals support this) + timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds) + undofile = true, -- enable persistent undo + updatetime = 300, -- faster completion (4000ms default) + writebackup = false, -- if a file is being edited by another program (or was written to + -- file while editing with another program), it is not allowed to be edited + expandtab = true, -- convert tabs to spaces + shiftwidth = 2, -- the number of spaces inserted for each indentation + tabstop = 2, -- insert 2 spaces for a tab + cursorline = true, -- highlight the current line + number = true, -- set numbered lines + relativenumber = true, -- set relative numbered lines + numberwidth = 4, -- set number column width to 2 {default 4} + signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time + wrap = false, -- display lines as one long line + scrolloff = 8, -- is one of my fav + sidescrolloff = 8, + guifont = "monospace:h17", -- the font used in graphical neovim applications +} vim.opt.shortmess:append "c" |
