mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Compare commits
10 Commits
86e3b29730
...
208b190a65
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
208b190a65 | ||
|
|
602254a881 | ||
|
|
7022eefe22 | ||
|
|
dee7768162 | ||
|
|
22b33871ef | ||
|
|
aab74751f4 | ||
|
|
5dbe643ea2 | ||
|
|
b41998828d | ||
|
|
3670a19e51 | ||
|
|
545c6f4b92 |
@ -74,7 +74,7 @@ and how to set up on different platforms (Linux, macOS, and Windows).
|
|||||||
+ Asynchronous code execution via [asyncrun.vim](https://github.com/skywind3000/asyncrun.vim).
|
+ Asynchronous code execution via [asyncrun.vim](https://github.com/skywind3000/asyncrun.vim).
|
||||||
+ Code highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter).
|
+ Code highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter).
|
||||||
+ Code editing using true nvim inside browser via [firenvim](https://github.com/glacambre/firenvim).
|
+ Code editing using true nvim inside browser via [firenvim](https://github.com/glacambre/firenvim).
|
||||||
+ Color theme via [vim-gruvbox8](https://github.com/lifepillar/vim-gruvbox8) and other beautiful themes.
|
+ Beautiful colorscheme via [sainnhe/gruvbox-material](https://github.com/sainnhe/gruvbox-material) and other colorschemes.
|
||||||
+ Markdown writing and previewing via [vim-markdown](https://github.com/plasticboy/vim-markdown) and [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim).
|
+ Markdown writing and previewing via [vim-markdown](https://github.com/plasticboy/vim-markdown) and [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim).
|
||||||
+ LaTeX editing and previewing via [vimtex](https://github.com/lervag/vimtex) <sup id="a1">[1](#f1)</sup>.
|
+ LaTeX editing and previewing via [vimtex](https://github.com/lervag/vimtex) <sup id="a1">[1](#f1)</sup>.
|
||||||
+ Animated GUI style notification via [nvim-notify](https://github.com/rcarriga/nvim-notify).
|
+ Animated GUI style notification via [nvim-notify](https://github.com/rcarriga/nvim-notify).
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
|
--- This module will load a random colorscheme on nvim startup process.
|
||||||
|
|
||||||
local utils = require('utils')
|
local utils = require('utils')
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
-- Theme to directory name mapping, because theme repo name is not necessarily
|
-- Colorscheme to its directory name mapping, because colorscheme repo name is not necessarily
|
||||||
-- the same as the theme name itself.
|
-- the same as the colorscheme name itself.
|
||||||
M.theme2dir = {
|
M.colorscheme2dir = {
|
||||||
gruvbox8 = "vim-gruvbox8",
|
gruvbox8 = "vim-gruvbox8",
|
||||||
onedark = 'onedark.nvim',
|
onedark = 'onedark.nvim',
|
||||||
edge = 'edge',
|
edge = 'edge',
|
||||||
@ -89,35 +91,36 @@ M.catppuccin = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Use a random theme from the pre-defined list of themes.
|
--- Use a random colorscheme from the pre-defined list of colorschemes.
|
||||||
M.rand_theme = function ()
|
M.rand_colorscheme = function ()
|
||||||
local theme = utils.rand_element(vim.tbl_keys(M.theme2dir))
|
local colorscheme = utils.rand_element(vim.tbl_keys(M.colorscheme2dir))
|
||||||
|
|
||||||
if not vim.tbl_contains(vim.tbl_keys(M), theme) then
|
if not vim.tbl_contains(vim.tbl_keys(M), colorscheme) then
|
||||||
local msg = "Invalid theme: " .. theme
|
local msg = "Invalid colorscheme: " .. colorscheme
|
||||||
vim.notify(msg, vim.log.levels.ERROR, { title = 'nvim-config' })
|
vim.notify(msg, vim.log.levels.ERROR, { title = 'nvim-config' })
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load the theme, because all the themes are declared as opt plugins, the theme isn't loaded yet.
|
-- Load the colorscheme, because all the colorschemes are declared as opt plugins, so the colorscheme isn't loaded yet.
|
||||||
local status = utils.add_pack(M.theme2dir[theme])
|
local status = utils.add_pack(M.colorscheme2dir[colorscheme])
|
||||||
|
|
||||||
if not status then
|
if not status then
|
||||||
local msg = string.format("Theme %s is not installed. Run PackerSync to install.", theme)
|
local msg = string.format("Colorscheme %s is not installed. Run PackerSync to install.", colorscheme)
|
||||||
vim.notify(msg, vim.log.levels.ERROR, { title = 'nvim-config' })
|
vim.notify(msg, vim.log.levels.ERROR, { title = 'nvim-config' })
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set the theme.
|
-- Load the colorscheme and its settings
|
||||||
M[theme]()
|
M[colorscheme]()
|
||||||
|
|
||||||
if vim.g.logging_level == 'debug' then
|
if vim.g.logging_level == 'debug' then
|
||||||
local msg = "Colorscheme: " .. theme
|
local msg = "Colorscheme: " .. colorscheme
|
||||||
|
|
||||||
vim.notify(msg, vim.log.levels.DEBUG, { title = 'nvim-config' })
|
vim.notify(msg, vim.log.levels.DEBUG, { title = 'nvim-config' })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
M.rand_theme()
|
-- Load a random colorscheme
|
||||||
|
M.rand_colorscheme()
|
||||||
@ -1,7 +1,7 @@
|
|||||||
scriptencoding utf-8
|
scriptencoding utf-8
|
||||||
|
|
||||||
" Plugin specification and lua stuff
|
" Plugin specification and lua stuff
|
||||||
lua require('lua-init')
|
lua require('plugins')
|
||||||
|
|
||||||
" Use short names for common plugin manager commands to simplify typing.
|
" Use short names for common plugin manager commands to simplify typing.
|
||||||
" To use these shortcuts: first activate command line with `:`, then input the
|
" To use these shortcuts: first activate command line with `:`, then input the
|
||||||
|
|||||||
@ -245,6 +245,7 @@ fi
|
|||||||
|
|
||||||
echo "Setting up config and installing plugins"
|
echo "Setting up config and installing plugins"
|
||||||
if [[ -d "$NVIM_CONFIG_DIR" ]]; then
|
if [[ -d "$NVIM_CONFIG_DIR" ]]; then
|
||||||
|
rm -rf "$NVIM_CONFIG_DIR.backup"
|
||||||
mv "$NVIM_CONFIG_DIR" "$NVIM_CONFIG_DIR.backup"
|
mv "$NVIM_CONFIG_DIR" "$NVIM_CONFIG_DIR.backup"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
12
init.lua
12
init.lua
@ -21,12 +21,12 @@ if nvim_ver ~= expected_ver then
|
|||||||
end
|
end
|
||||||
|
|
||||||
local core_conf_files = {
|
local core_conf_files = {
|
||||||
"globals.vim",
|
"globals.vim", -- some global settings
|
||||||
"options.vim",
|
"options.vim", -- setting options in nvim
|
||||||
"autocommands.vim",
|
"autocommands.vim", -- various autocommands
|
||||||
"mappings.vim",
|
"mappings.vim", -- all the user-defined mappings
|
||||||
"plugins.vim",
|
"plugins.vim", -- all the plugins installed and their configurations
|
||||||
"themes.lua",
|
"colorschemes.lua", -- colorscheme settings
|
||||||
}
|
}
|
||||||
|
|
||||||
-- source all the core config files
|
-- source all the core config files
|
||||||
|
|||||||
@ -1,3 +1,6 @@
|
|||||||
|
local api = vim.api
|
||||||
|
|
||||||
|
local exclude_ft = { "help", "git", "markdown", "snippets", "text", "gitconfig", "alpha" }
|
||||||
require("indent_blankline").setup({
|
require("indent_blankline").setup({
|
||||||
-- U+2502 may also be a good choice, it will be on the middle of cursor.
|
-- U+2502 may also be a good choice, it will be on the middle of cursor.
|
||||||
-- U+250A is also a good choice
|
-- U+250A is also a good choice
|
||||||
@ -5,19 +8,22 @@ require("indent_blankline").setup({
|
|||||||
show_end_of_line = false,
|
show_end_of_line = false,
|
||||||
disable_with_nolist = true,
|
disable_with_nolist = true,
|
||||||
buftype_exclude = { "terminal" },
|
buftype_exclude = { "terminal" },
|
||||||
filetype_exclude = { "help", "git", "markdown", "snippets", "text", "gitconfig", "alpha" },
|
filetype_exclude = exclude_ft,
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.cmd([[
|
local gid = api.nvim_create_augroup("indent_blankline", { clear = true })
|
||||||
function! Should_activate_indentblankline() abort
|
api.nvim_create_autocmd("InsertEnter", {
|
||||||
if index(g:indent_blankline_filetype_exclude, &filetype) == -1
|
pattern = "*",
|
||||||
IndentBlanklineEnable
|
group = gid,
|
||||||
endif
|
command = "IndentBlanklineDisable"
|
||||||
endfunction
|
})
|
||||||
|
|
||||||
augroup indent_blankline
|
api.nvim_create_autocmd("InsertLeave", {
|
||||||
autocmd!
|
pattern = "*",
|
||||||
autocmd InsertEnter * IndentBlanklineDisable
|
group = gid,
|
||||||
autocmd InsertLeave * call Should_activate_indentblankline()
|
callback = function()
|
||||||
augroup END
|
if not vim.tbl_contains(exclude_ft, vim.bo.filetype) then
|
||||||
]])
|
vim.cmd [[IndentBlanklineEnable]]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|||||||
@ -34,7 +34,7 @@ cmp.setup({
|
|||||||
{ name = 'nvim_lsp' }, -- For nvim-lsp
|
{ name = 'nvim_lsp' }, -- For nvim-lsp
|
||||||
{ name = 'ultisnips' }, -- For ultisnips user.
|
{ name = 'ultisnips' }, -- For ultisnips user.
|
||||||
{ name = 'path' }, -- for path completion
|
{ name = 'path' }, -- for path completion
|
||||||
{ name = 'buffer', keyword_length = 4 }, -- for buffer word completion
|
{ name = 'buffer', keyword_length = 2 }, -- for buffer word completion
|
||||||
{ name = 'omni' },
|
{ name = 'omni' },
|
||||||
{ name = 'emoji', insert = true, } -- emoji completion
|
{ name = 'emoji', insert = true, } -- emoji completion
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
-- Some utility stuff
|
|
||||||
require 'utils'
|
|
||||||
|
|
||||||
-- plugin installation
|
|
||||||
require 'plugins'
|
|
||||||
Loading…
x
Reference in New Issue
Block a user