mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-14 06:12:34 +00:00
feat: Rearranges nvim configuration
This commit is contained in:
@@ -7,16 +7,16 @@ vim.g.maplocalleader = " "
|
|||||||
-- file for projects.
|
-- file for projects.
|
||||||
|
|
||||||
-- Common settings
|
-- Common settings
|
||||||
require("user.settings")
|
require("config.settings")
|
||||||
|
|
||||||
-- Auto commands
|
-- Auto commands
|
||||||
require("user.autocmd")
|
require("config.autocmd")
|
||||||
|
|
||||||
-- Plugins
|
-- Plugins
|
||||||
require("user.plugins")
|
require("config.lazy")
|
||||||
|
|
||||||
-- Key maps
|
-- Key maps
|
||||||
require("user.keymaps")
|
require("config.keymaps")
|
||||||
|
|
||||||
-- Theme (must stay after plugins are loaded)
|
-- Theme (must stay after plugins are loaded)
|
||||||
require("user.theme")
|
require("config.theme")
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
local defaultGroupOptions = { clear = true }
|
|
||||||
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
|
|
||||||
local spellGroup = vim.api.nvim_create_augroup("SpellGroup", defaultGroupOptions)
|
|
||||||
local createCmd = vim.api.nvim_create_autocmd
|
|
||||||
|
|
||||||
-- Spell check
|
|
||||||
createCmd("BufEnter", {
|
|
||||||
pattern = { "*.md", "*.markdown", "*.txt", "*.tex" },
|
|
||||||
group = spellGroup,
|
|
||||||
callback = function(_)
|
|
||||||
vim.cmd.setlocal("textwidth=80")
|
|
||||||
vim.cmd.setlocal("spell spelllang=en_us")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Markdown
|
|
||||||
createCmd("BufWritePost", {
|
|
||||||
pattern = { "*.md", "*.markdown" },
|
|
||||||
group = markdownGroup,
|
|
||||||
callback = function(_)
|
|
||||||
local cursor = vim.fn.getpos(".")
|
|
||||||
vim.cmd("FormatWrite")
|
|
||||||
vim.fn.setpos(".", cursor)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Go
|
|
||||||
createCmd("BufWritePre", {
|
|
||||||
pattern = "*.go",
|
|
||||||
callback = function()
|
|
||||||
require("go.format").goimport()
|
|
||||||
end,
|
|
||||||
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_exec2(
|
|
||||||
[[
|
|
||||||
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""
|
|
||||||
]],
|
|
||||||
{}
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Highlight when yanking.
|
|
||||||
createCmd("TextYankPost", {
|
|
||||||
desc = "Highlight when yanking text.",
|
|
||||||
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
|
|
||||||
callback = function()
|
|
||||||
vim.highlight.on_yank()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
vim.g.mapleader = " "
|
|
||||||
vim.g.maplocalleader = " "
|
|
||||||
|
|
||||||
local keymap = vim.keymap.set
|
|
||||||
local default_options = { noremap = true, silent = true }
|
|
||||||
local wk = require("which-key")
|
|
||||||
|
|
||||||
local wk_add = function(mode, keymaps)
|
|
||||||
wk.add(keymaps, { mode = mode, silent = true })
|
|
||||||
end
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
-- Insert Mode
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
-- easier escape key mapping
|
|
||||||
keymap("i", "jk", "<ESC>", default_options)
|
|
||||||
wk_add("i", {
|
|
||||||
{ "<C-s>", "<ESC>:write<CR>a", desc = "[S]ave" },
|
|
||||||
})
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
-- Normal Mode
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
wk_add("n", {
|
|
||||||
{ "<Left>", ":vertical resize +1<CR>", desc = "Resize Pane Left" },
|
|
||||||
{ "<Right>", ":vertical resize -1<CR>", desc = "Resize Pane Right" },
|
|
||||||
{ "<Up>", "resize -1<CR>", desc = "Resize Pane Up" },
|
|
||||||
{ "<Down>", "resize +1<CR>", desc = "Resize Pane Down" },
|
|
||||||
|
|
||||||
{ "<leader>n", "<CMD>:noh<CR>", desc = "[N]o highlighting" },
|
|
||||||
{ "<leader>s", "<CMD>:set spell!<CR>", desc = "[S]pell check toggle" },
|
|
||||||
{ "<C-s>", "<CMD>:write<CR>", desc = "[S]ave" },
|
|
||||||
|
|
||||||
{ "J", ":move .+1<CR>==", desc = "Move line down" },
|
|
||||||
{ "K", ":move .-2<CR>==", desc = "Move line up" },
|
|
||||||
|
|
||||||
{ "<leader>z", "<CMD>:ZenMode<CR>", desc = "[Z]en Mode" },
|
|
||||||
})
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
-- Visual Mode
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
vim.keymap.set("v", "K", ":move '<-2<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
|
||||||
vim.keymap.set("v", "J", ":move '>+1<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
|
||||||
|
|
||||||
-- Toggle term key maps, that get attached when terminal is opened.
|
|
||||||
function _G.set_terminal_keymaps()
|
|
||||||
local opts = { buffer = 0 }
|
|
||||||
keymap("t", "<esc>", [[<C-\><C-n>]], opts)
|
|
||||||
end
|
|
||||||
vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
-- Bootstrap Lazy.
|
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
|
||||||
vim.fn.system({
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
"--filter=blob:none",
|
|
||||||
"https://github.com/folke/lazy.nvim.git",
|
|
||||||
"--branch=stable", -- latest stable release
|
|
||||||
lazypath,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
require("lazy").setup({
|
|
||||||
dev = {
|
|
||||||
path = "~/LocalProjects/plugins",
|
|
||||||
fallback = true,
|
|
||||||
},
|
|
||||||
-- Import all the plugin configs in the 'plugin' directory
|
|
||||||
{ import = "user.plugin" },
|
|
||||||
-- Plugins that don't have a configuration file.
|
|
||||||
{
|
|
||||||
"folke/zen-mode.nvim",
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"christoomey/vim-tmux-navigator",
|
|
||||||
lazy = false,
|
|
||||||
},
|
|
||||||
{ "NoahTheDuke/vim-just", ft = { "just" } },
|
|
||||||
{
|
|
||||||
"chipsenkbeil/distant.nvim",
|
|
||||||
version = "v0.*",
|
|
||||||
event = "VeryLazy",
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
checker = {
|
|
||||||
enabled = true,
|
|
||||||
notify = false,
|
|
||||||
},
|
|
||||||
change_detection = {
|
|
||||||
notify = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>ll", "<CMD>Lazy<CR>", { desc = "Open [L]azy" })
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
local o = vim.opt
|
|
||||||
local wo = vim.wo
|
|
||||||
local fn = vim.fn
|
|
||||||
|
|
||||||
vim.cmd.set("inccommand=split")
|
|
||||||
o.filetype = "on"
|
|
||||||
o.updatetime = 500 -- faster completion
|
|
||||||
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
|
||||||
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
|
||||||
o.backup = false -- creates a backup file
|
|
||||||
o.swapfile = false -- enable/disable swap file creation
|
|
||||||
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
|
||||||
o.undofile = false -- enable/disable undo file creation
|
|
||||||
o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory
|
|
||||||
o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered.
|
|
||||||
o.hidden = true -- required to keep multiple buffers and open multiple buffers
|
|
||||||
o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
|
||||||
o.fileencoding = "utf-8" -- the encoding written to a file
|
|
||||||
o.conceallevel = 0 -- so that `` is visible in markdown files
|
|
||||||
o.number = true -- set numbered lines
|
|
||||||
o.relativenumber = true -- set relative numbered lines
|
|
||||||
o.cmdheight = 1 -- space for displaying messages/commands
|
|
||||||
o.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
|
||||||
o.showtabline = 2 -- always show tabs
|
|
||||||
o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always)
|
|
||||||
o.smartcase = true -- smart case
|
|
||||||
o.smartindent = true -- make indenting smarter again
|
|
||||||
o.splitbelow = true -- force all horizontal splits to go below current window
|
|
||||||
o.splitright = true -- force all vertical splits to go to the right of current window
|
|
||||||
o.autoindent = true -- turn on auto indent.
|
|
||||||
o.expandtab = true -- convert tabs to spaces
|
|
||||||
o.smarttab = true -- turn on smart tab
|
|
||||||
o.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
|
||||||
o.tabstop = 2 -- how many columns a tab counts for
|
|
||||||
o.termguicolors = true -- set term gui colors (most terminals support this)
|
|
||||||
o.cursorline = true -- highlight the current line
|
|
||||||
o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor
|
|
||||||
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
|
||||||
o.hlsearch = false -- highlight all matches on previous search pattern
|
|
||||||
o.ignorecase = true -- ignore case in search patterns
|
|
||||||
o.foldenable = false -- disable folding; enable with zi
|
|
||||||
o.foldmethod = "expr"
|
|
||||||
o.foldexpr = "nvim_treesitter#foldexpr()"
|
|
||||||
-- o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<"
|
|
||||||
o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣"
|
|
||||||
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
|
||||||
wo.colorcolumn = "99999"
|
|
||||||
o.wildmode = "full"
|
|
||||||
o.lazyredraw = false -- do not redraw screen while running macros
|
|
||||||
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
|
||||||
o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion
|
|
||||||
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
|
||||||
o.wildignore = [[
|
|
||||||
.git,.hg,.svn
|
|
||||||
*.aux,*.out,*.toc
|
|
||||||
*.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class
|
|
||||||
*.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp
|
|
||||||
*.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg
|
|
||||||
*.mp3,*.oga,*.ogg,*.wav,*.flac
|
|
||||||
*.eot,*.otf,*.ttf,*.woff
|
|
||||||
*.doc,*.pdf,*.cbr,*.cbz
|
|
||||||
*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb
|
|
||||||
*.swp,.lock,.DS_Store,._*
|
|
||||||
*/tmp/*,*.so,*.swp,*.zip,**/node_modules/**,**/target/**,**.terraform/**"
|
|
||||||
]]
|
|
||||||
o.viminfo = "" -- disable viminfo from copying information from current session, for security.
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
-- Nightfox
|
|
||||||
--require('nightfox').load('terrafox')
|
|
||||||
vim.cmd.colorscheme "catppuccin"
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user