nvim
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
require('core.keymaps')
|
||||
require('core.settings')
|
||||
@@ -0,0 +1,78 @@
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Keymaps for better default experience
|
||||
vim.keymap.set({ "n", "v" }, "<Space>", "<Nop>", { silent = true })
|
||||
|
||||
-- Space + s saves the file
|
||||
vim.keymap.set("n", "<Leader>s", ":write<CR>", { silent = true })
|
||||
|
||||
-- Move normally between wrapped lines
|
||||
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
|
||||
-- Shift + q - Quit
|
||||
vim.keymap.set("n", "Q", "<C-W>q")
|
||||
|
||||
-- vv - Makes vertical split
|
||||
vim.keymap.set("n", "vv", "<C-W>v")
|
||||
-- ss - Makes horizontal split
|
||||
vim.keymap.set("n", "ss", "<C-W>s")
|
||||
|
||||
-- Quick jumping between splits
|
||||
vim.keymap.set("n", "<C-j>", "<C-w>j")
|
||||
vim.keymap.set("n", "<C-k>", "<C-w>k")
|
||||
vim.keymap.set("n", "<C-h>", "<C-w>h")
|
||||
vim.keymap.set("n", "<C-l>", "<C-w>l")
|
||||
|
||||
-- Indenting in visual mode (tab/shift+tab)
|
||||
vim.keymap.set("v", "<Tab>", ">gv")
|
||||
vim.keymap.set("v", "<S-Tab>", "<gv")
|
||||
|
||||
-- Move to the end of yanked text after yank and paste
|
||||
vim.cmd("vnoremap <silent> y y`]")
|
||||
vim.cmd("vnoremap <silent> p p`]")
|
||||
vim.cmd("nnoremap <silent> p p`]")
|
||||
|
||||
-- Space + Space to clean search highlight
|
||||
vim.keymap.set("n", "<Leader>h", ":noh<CR>", { silent = true })
|
||||
|
||||
-- Fixes pasting after visual selection.
|
||||
vim.keymap.set("v", "p", '"_dP')
|
||||
|
||||
-- Select all
|
||||
vim.keymap.set("n", "<C-a>", "gg<S-v>G")
|
||||
|
||||
-- Save with root permission (not working for now)
|
||||
--vim.api.nvim_create_user_command('W', 'w !sudo tee > /dev/null %', {})
|
||||
|
||||
-- Disable continuations
|
||||
vim.keymap.set("n", "<Leader>o", "o<Esc>^Da", opts)
|
||||
vim.keymap.set("n", "<Leader>O", "O<Esc>^Da", opts)
|
||||
|
||||
-- Jumplist
|
||||
vim.keymap.set("n", "<C-m>", "<C-i>", opts)
|
||||
|
||||
-- New tab
|
||||
vim.keymap.set("n", "te", ":tabedit")
|
||||
vim.keymap.set("n", "<tab>", ":tabnext<Return>", opts)
|
||||
vim.keymap.set("n", "<s-tab>", ":tabprev<Return>", opts)
|
||||
|
||||
-- Resize window
|
||||
vim.keymap.set("n", "<C-w><left>", "<C-w><")
|
||||
vim.keymap.set("n", "<C-w><right>", "<C-w>>")
|
||||
vim.keymap.set("n", "<C-w><up>", "<C-w>+")
|
||||
vim.keymap.set("n", "<C-w><down>", "<C-w>-")
|
||||
|
||||
-- Diagnostics
|
||||
vim.keymap.set("n", "<C-j>", function()
|
||||
vim.diagnostic.goto_next()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>r", function()
|
||||
require("craftzdog.hsl").replaceHexWithHSL()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>i", function()
|
||||
require("craftzdog.lsp").toggleInlayHints()
|
||||
end)
|
||||
@@ -0,0 +1,96 @@
|
||||
-- Set <space> as the leader key
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Set highlight on search
|
||||
vim.o.hlsearch = true
|
||||
|
||||
-- Make line numbers default
|
||||
vim.wo.number = true
|
||||
|
||||
-- Enable mouse mode
|
||||
vim.o.mouse = "a"
|
||||
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
|
||||
-- Enable break indent
|
||||
vim.o.breakindent = true
|
||||
|
||||
-- No swap files
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.writebackup = false
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or capital in search
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.wo.signcolumn = "yes"
|
||||
|
||||
-- Decrease update time
|
||||
vim.o.updatetime = 250
|
||||
vim.o.timeoutlen = 300
|
||||
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
|
||||
-- NOTE: You should make sure your terminal supports this
|
||||
vim.o.termguicolors = true
|
||||
|
||||
-- Don't show modes (insert/visual)
|
||||
vim.opt.showmode = true
|
||||
|
||||
-- " Open splits on the right and below
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = true
|
||||
|
||||
-- " update vim after file update from outside
|
||||
vim.opt.autoread = true
|
||||
|
||||
-- " Indentation
|
||||
vim.opt.autoindent = true
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.smarttab = true
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
|
||||
-- " Always use spaces insted of tabs
|
||||
vim.opt.expandtab = true
|
||||
|
||||
-- " Don't wrap lines
|
||||
vim.opt.wrap = true
|
||||
-- " Wrap lines at convenient points
|
||||
vim.opt.linebreak = true
|
||||
|
||||
-- " Show line breaks
|
||||
vim.opt.showbreak = "↳"
|
||||
|
||||
-- " Start scrolling when we'are 8 lines aways from borders
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.sidescrolloff = 15
|
||||
vim.opt.sidescroll = 5
|
||||
|
||||
-- " This makes vim act like all other editors, buffers can
|
||||
-- " exist in the background without being in a window.
|
||||
vim.opt.hidden = true
|
||||
|
||||
-- " Add the g flag to search/replace by default
|
||||
vim.opt.gdefault = true
|
||||
|
||||
-- Lazy redraw
|
||||
vim.o.lazyredraw = true
|
||||
|
||||
-- Spell checker
|
||||
|
||||
vim.opt.spelllang = "en_us"
|
||||
vim.opt.spell = true
|
||||
|
||||
-- Remove $
|
||||
|
||||
vim.cmd("set nolist")
|
||||
Reference in New Issue
Block a user