diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/init.lua | 1 | ||||
-rw-r--r-- | nvim/lua/keymaps.lua | 2 | ||||
-rw-r--r-- | nvim/lua/lsp.lua | 22 | ||||
-rw-r--r-- | nvim/lua/options.lua | 54 | ||||
-rw-r--r-- | nvim/lua/plugins.lua | 86 | ||||
-rw-r--r-- | nvim/lua/term.lua | 2 |
6 files changed, 100 insertions, 67 deletions
diff --git a/nvim/init.lua b/nvim/init.lua index cf11420..4b295d5 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,5 +1,6 @@ require('options') require('keymaps') +require('lsp') require('plugins') require('colorscheme') require('term') diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua index 26037c6..4f4a489 100644 --- a/nvim/lua/keymaps.lua +++ b/nvim/lua/keymaps.lua @@ -11,7 +11,7 @@ vim.g.mapleader = "'" -- Normal mode -- ----------------- --- Hint: set `:h vim.map.set()` +-- Hint: see `:h vim.map.set()` -- Better window navigation vim.keymap.set('n', '<C-h>', '<C-w>h', opts) vim.keymap.set('n', '<C-j>', '<C-w>j', opts) diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua new file mode 100644 index 0000000..343c76b --- /dev/null +++ b/nvim/lua/lsp.lua @@ -0,0 +1,22 @@ +-- Remove Global Default Key mapping +vim.keymap.del("n", "grn") +vim.keymap.del("n", "gra") +vim.keymap.del("n", "grr") +vim.keymap.del("n", "gri") +vim.keymap.del("n", "gO") + +-- Create keymapping +-- LspAttach: After an LSP Client performs "initialize" and attaches to a buffer. +vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local keymap = vim.keymap + local lsp = vim.lsp + local bufopts = { noremap = true, silent = true } + + keymap.set("n", "gr", lsp.buf.references, bufopts) + keymap.set("n", "gd", lsp.buf.definition, bufopts) + keymap.set("n", "<space>rn", lsp.buf.rename, bufopts) + keymap.set("n", "K", lsp.buf.hover, bufopts) + keymap.set("n", "<space>f", lsp.buf.format, bufopts) + end +}) diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua index 1d4826e..ae802be 100644 --- a/nvim/lua/options.lua +++ b/nvim/lua/options.lua @@ -8,6 +8,8 @@ vim.opt.tabstop = 2 -- number of visual spaces per TAB vim.opt.softtabstop = 2 -- number of spaces in tab when editing vim.opt.shiftwidth = 2 -- insert 2 spaces on a tab vim.opt.expandtab = true -- tabs are spaces +vim.opt.smartindent = true +vim.opt.smarttab = true -- UI config vim.opt.number = true -- show absolute number @@ -30,3 +32,55 @@ vim.opt.undolevels = 1000 -- Number of undo levels vim.opt.backspace = { "indent", "eol", "start" } -- Backspace behavior vim.opt.foldmethod = "marker" vim.opt.conceallevel = 2 + +-- Plugins +-- emmet +vim.g.user_emmet_leader_key = '<C-a>' + +-- zig +vim.g.zig_fmt_autosave = 1 + +-- markdown +vim.g.vim_markdown_folding_disabled = 1 +vim.g.vim_markdown_folding_level = 3 +vim.g.vim_markdown_toc_autofit = 1 +vim.g.vim_markdown_emphasis_multiline = 0 +vim.g.tex_conceal = "" +vim.g.vim_markdown_math = 1 +vim.g.vim_markdown_conceal_code_blocks = 1 +vim.g.vim_markdown_fenced_languages = { 'c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini' } +vim.g.vim_markdown_follow_anchor = 1 +vim.g.vim_markdown_math = 1 +vim.g.vim_markdown_frontmatter = 1 +vim.g.vim_markdown_toml_frontmatter = 1 +vim.g.vim_markdown_strikethrough = 1 +vim.g.vim_markdown_no_extensions_in_markdown = 1 +vim.g.vim_markdown_autowrite = 1 +vim.g.vim_markdown_auto_insert_bullets = 0 +vim.g.vim_markdown_new_list_item_indent = 0 +vim.g.vim_markdown_edit_url_in = 'tab' + +-- NERDTree +vim.g.NERDTreeGitStatusUseNerdFonts = 1 +vim.g.NERDTreeGitStatusShowClean = 1 +vim.g.NERDTreeDirArrowExpandable = '>' +vim.g.NERDTreeDirArrowCollapsible = '<' +vim.g.NERDTreeMapToggleHidden = 'z' + +-- goyo +vim.g.goyo_width = '90%' +vim.g.goyo_height = '100%' + +-- limelight +vim.g.limelight_conceal_ctermfg = 'gray' +vim.g.limelight_conceal_guifg = 'gray' + +-- devicon +vim.g.airline_powerline_fonts = 1 +vim.g.webdevicons_enable_nerdtree = 1 + +-- vim-indent-guides +vim.g.indent_guides_enable_on_vim_startup = 0 + +-- vim-signify +vim.opt.updatetime = 100 diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua index 0801939..f90b09c 100644 --- a/nvim/lua/plugins.lua +++ b/nvim/lua/plugins.lua @@ -5,21 +5,37 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable rtelease + "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ + -- LSP manager + { "mason-org/mason.nvim", opts = {} }, + { + "mason-org/mason-lspconfig.nvim", + dependencies = { + "mason-org/mason.nvim", + "neovim/nvim-lspconfig", + }, + opts = { + ensure_installed = { "pylsp", "clangd", "rust_analyzer", "zls" }, + }, + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require("lspconfig") + + lspconfig.pylsp.setup({}) + end, + }, "tanvirtin/monokai.nvim", - 'preservim/nerdtree', - 'ziglang/zig.vim', "lervag/vimtex", 'tomasiser/vim-code-dark', 'flazz/vim-colorschemes', - 'tomasiser/vim-code-dark', - 'flazz/vim-colorschemes', 'ZachIndigo/vim-preglow', 'axvr/org.vim', 'ziglang/zig.vim', @@ -44,63 +60,3 @@ require("lazy").setup({ 'ryanoasis/vim-devicons', {'akinsho/toggleterm.nvim', version = "*", config = true}, }) - --------------------- --- Plugin Options -- --------------------- - --- emmet -vim.g.user_emmet_leader_key='<C-a>' - --- zig config -vim.g.zig_fmt_autosave = 1 - --- latex live preview -vim.g.livepreview_previewer = 'zathura' -vim.g.livepreview_use_biber = 1 -vim.g.livepreview_cursorhold_recompile = 0 - --- vim-markdown -vim.g.vim_markdown_folding_disabled = 1 -vim.g.vim_markdown_folding_level = 3 -vim.g.vim_markdown_toc_autofit = 1 -vim.g.vim_markdown_emphasis_multiline = 0 -vim.g.tex_conceal = "" -vim.g.vim_markdown_math = 1 -vim.g.vim_markdown_conceal_code_blocks = 1 -vim.g.vim_markdown_fenced_languages = { 'c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini' } -vim.g.vim_markdown_follow_anchor = 1 -vim.g.vim_markdown_math = 1 -vim.g.vim_markdown_frontmatter = 1 -vim.g.vim_markdown_toml_frontmatter = 1 -vim.g.vim_markdown_strikethrough = 1 -vim.g.vim_markdown_no_extensions_in_markdown = 1 -vim.g.vim_markdown_autowrite = 1 -vim.g.vim_markdown_auto_insert_bullets = 0 -vim.g.vim_markdown_new_list_item_indent = 0 -vim.g.vim_markdown_edit_url_in = 'tab' - --- NERDTree config -vim.g.NERDTreeGitStatusUseNerdFonts = 1 -- use nerd fonts -vim.g.NERDTreeGitStatusShowClean = 1 -- default: 0 -vim.g.NERDTreeDirArrowExpandable = '>' -vim.g.NERDTreeDirArrowCollapsible = '<' -vim.g.NERDTreeMapToggleHidden = 'z' - --- Goyo config -vim.g.goyo_width = '90%' -vim.g.goyo_height = '100%' - --- limelight config -vim.g.limelight_conceal_ctermfg = 'gray' -vim.g.limelight_conceal_guifg = 'gray' - --- devicon config -vim.g.airline_powerline_fonts = 1 -vim.g.webdevicons_enable_nerdtree = 1 - --- vim-indent-guides config -vim.g.indent_guides_enable_on_vim_startup = 0 - --- vim-signify config -vim.opt.updatetime=100 diff --git a/nvim/lua/term.lua b/nvim/lua/term.lua index 9f3062d..e7aac4e 100644 --- a/nvim/lua/term.lua +++ b/nvim/lua/term.lua @@ -7,7 +7,7 @@ require("toggleterm").setup{ return vim.o.columns * 0.4 end end, - open_mapping = [[<c-\>]], -- or { [[<c-\>]], [[<c-¥>]] } if you also use a Japanese keyboard. + open_mapping = [[<leader>`]], -- or { [[<c-\>]], [[<c-¥>]] } if you also use a Japanese keyboard. hide_numbers = true, -- hide the number column in toggleterm buffers shade_filetypes = {}, autochdir = false, -- when neovim changes it current directory the terminal will change it's own when next it's opened |