config-neovim/init.lua
2024-09-07 22:15:57 +08:00

74 lines
2.2 KiB
Lua

-- enable 24-bit color for nvim-notify
vim.o.termguicolors = true
-- Disable intro message on startup, or many other plugins will
-- close this message on load, which may cause a flash of intro message.
vim.opt.shortmess:append({ I = true })
vim.o.tabstop = 4
vim.o.shiftwidth = 0
vim.o.softtabstop = -1
vim.o.shiftround = true
vim.o.expandtab = true
vim.o.autoindent = true
vim.o.smartindent = true
vim.o.list = true
vim.o.relativenumber = true
vim.o.number = true
vim.o.colorcolumn = "101"
vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.keymap.set("n", "\\\\", "<cmd>split<cr>", { silent = true })
vim.keymap.set("n", "||", "<cmd>vsplit<cr>", { silent = true })
vim.keymap.set("n", "<leader>q", "<cmd>wincmd q<cr>", { silent = true })
vim.keymap.set("n", "<C-h>", "<cmd>wincmd h<cr>", { silent = true })
vim.keymap.set("n", "<C-j>", "<cmd>wincmd j<cr>", { silent = true })
vim.keymap.set("n", "<C-k>", "<cmd>wincmd k<cr>", { silent = true })
vim.keymap.set("n", "<C-l>", "<cmd>wincmd l<cr>", { silent = true })
vim.keymap.set("n", "<leader><C-h>", "<cmd>wincmd H<cr>", { silent = true })
vim.keymap.set("n", "<leader><C-j>", "<cmd>wincmd J<cr>", { silent = true })
vim.keymap.set("n", "<leader><C-k>", "<cmd>wincmd K<cr>", { silent = true })
vim.keymap.set("n", "<leader><C-l>", "<cmd>wincmd L<cr>", { silent = true })
vim.keymap.set("n", "]b", "<cmd>bnext<cr>", { silent = true })
vim.keymap.set("n", "[b", "<cmd>bprevious<cr>", { silent = true })
vim.keymap.set("n", "<leader>c", "<cmd>bdelete<cr>", { silent = true })
vim.keymap.set("n", "<leader>nh", "<cmd>nohlsearch<cr>", { silent = true })
-- Load custom config
custom = {
full_feature = false,
proxy_url = "",
}
local custom_config_path = vim.fn.stdpath("config") .. "/custom.lua"
local ok, t = pcall(dofile, custom_config_path)
if ok then
for k, v in pairs(t) do
custom[k] = v
end
end
-- Use lazy.nvim as plugin manager, and load plugin's config
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("plugins")