add table-mode and toggleterm,change readme

This commit is contained in:
gameloader 2022-10-07 19:27:54 +08:00
parent 1291acb250
commit 2d25c86d3c
8 changed files with 242 additions and 110 deletions

View File

@ -14,8 +14,10 @@ require("plugin-config/mason")
require("plugin-config/lualine")
require("plugin-config/notify")
require("plugin-config/nvim-autopairs")
require("plugin-config/table-mode")
require("plugin-config/project")
require("plugin-config/dashboard")
require("plugin-config/toggleterm")
require("plugin-config/coderunner")
require("plugin-config/lazygit")
-- require("plugin-config/neogit")

View File

@ -1,72 +1,68 @@
local M = {}
M.load_default_options = function()
local set_options = {
backup = false, -- creates a backup file
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
cmdheight = 1, -- more space in the neovim command line for displaying messages
completeopt = { "menuone", "noselect" },
conceallevel = 0, -- so that `` is visible in markdown files
fileencoding = "utf-8", -- the encoding written to a file
foldmethod = "manual", -- folding, set to "expr" for treesitter based folding
foldexpr = "", -- set to "nvim_treesitter#foldexpr()" for treesitter based folding
guifont = "monospace:h17", -- the font used in graphical neovim applications
background = "light", -- set the background to light or dark
hidden = true, -- required to keep multiple buffers and open multiple buffers
hlsearch = true, -- highlight all matches on previous search pattern
ignorecase = true, -- ignore case in search patterns
mouse = "a", -- allow the mouse to be used in neovim
pumheight = 10, -- pop up menu height
showmode = false, -- we don't need to see things like -- INSERT -- anymore
showtabline = 2, -- always show tabs
smartcase = true, -- smart case
smartindent = true, -- make indenting smarter again
splitbelow = true, -- force all horizontal splits to go below current window
splitright = true, -- force all vertical splits to go to the right of current window
swapfile = false, -- creates a swapfile
termguicolors = true, -- set term gui colors (most terminals support this)
timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds)
title = true, -- set the title of window to the value of the titlestring
-- opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
undodir = undodir, -- set an undo directory
undofile = true, -- enable persistent undo
updatetime = 100, -- faster completion
writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
expandtab = true, -- convert tabs to spaces
shiftwidth = 2, -- the number of spaces inserted for each indentation
tabstop = 2, -- insert 2 spaces for a tab
cursorline = true, -- highlight the current line
number = true, -- set numbered lines
numberwidth = 4, -- set number column width to 2 {default 4}
signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
wrap = true, -- display lines as one long line
-- shadafile = join_paths(get_cache_dir(), "lvim.shada"),
scrolloff = 8, -- minimal number of screen lines to keep above and below the cursor.
sidescrolloff = 8, -- minimal number of screen lines to keep left and right of the cursor.
showcmd = false,
ruler = false,
laststatus = 3,
}
local set_options = {
backup = false, -- creates a backup file
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
cmdheight = 1, -- more space in the neovim command line for displaying messages
completeopt = { "menuone", "noselect" },
conceallevel = 0, -- so that `` is visible in markdown files
fileencoding = "utf-8", -- the encoding written to a file
foldmethod = "manual", -- folding, set to "expr" for treesitter based folding
foldexpr = "", -- set to "nvim_treesitter#foldexpr()" for treesitter based folding
guifont = "monospace:h17", -- the font used in graphical neovim applications
background = "light", -- set the background to light or dark
hidden = true, -- required to keep multiple buffers and open multiple buffers
hlsearch = true, -- highlight all matches on previous search pattern
ignorecase = true, -- ignore case in search patterns
mouse = "a", -- allow the mouse to be used in neovim
pumheight = 10, -- pop up menu height
showmode = false, -- we don't need to see things like -- INSERT -- anymore
showtabline = 2, -- always show tabs
smartcase = true, -- smart case
smartindent = true, -- make indenting smarter again
splitbelow = true, -- force all horizontal splits to go below current window
splitright = true, -- force all vertical splits to go to the right of current window
swapfile = false, -- creates a swapfile
termguicolors = true, -- set term gui colors (most terminals support this)
timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds)
title = true, -- set the title of window to the value of the titlestring
-- opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
undodir = undodir, -- set an undo directory
undofile = true, -- enable persistent undo
updatetime = 100, -- faster completion
writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
expandtab = true, -- convert tabs to spaces
shiftwidth = 2, -- the number of spaces inserted for each indentation
tabstop = 2, -- insert 2 spaces for a tab
cursorline = true, -- highlight the current line
number = true, -- set numbered lines
numberwidth = 4, -- set number column width to 2 {default 4}
signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
wrap = true, -- display lines as one long line
-- shadafile = join_paths(get_cache_dir(), "lvim.shada"),
scrolloff = 8, -- minimal number of screen lines to keep above and below the cursor.
sidescrolloff = 8, -- minimal number of screen lines to keep left and right of the cursor.
showcmd = false,
ruler = false,
laststatus = 3,
}
for k, v in pairs(set_options) do
vim.opt[k] = v
end
for k, v in pairs(set_options) do
vim.opt[k] = v
end
local let_options = {
-- disable netrw at the very start of your init.lua (strongly advised)
loaded = 1,
loaded_netrwPlugin = 1,
-- set leaderkey to space
mapleader = " ",
}
local let_options = {
-- disable netrw at the very start of your init.lua (strongly advised)
loaded = 1,
loaded_netrwPlugin = 1,
-- set leaderkey to space
mapleader = " ",
}
for k, v in pairs(let_options) do
vim.g[k] = v
end
end
for k, v in pairs(let_options) do
vim.g[k] = v
end
end
return M
return M

View File

@ -18,6 +18,20 @@ wk.register({
-- 代码相关
map("n", ",", ":RunCode<CR>", opt)
-- markdown related
-- markdown 相关
wk.register({
["<Leader>m"] = { ":MarkdownPreview<CR>", "Markdown preview" },
})
-- markdown table
-- markdown 表格
wk.register({
["<Leader>t"] = {
name = "+Table",
},
})
-- git related
-- git 相关
wk.register({

View File

@ -1,45 +1,53 @@
require('Comment').setup{
---Add a space b/w comment and the line
padding = true,
---Whether the cursor should stay at its position
sticky = true,
---Lines to be ignored while (un)comment
ignore = "^$",
---LHS of toggle mappings in NORMAL mode
toggler = {
---Line-comment toggle keymap
line = 'gcc',
---Block-comment toggle keymap
block = 'gbc',
},
---LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
---Line-comment keymap
line = 'gc',
---Block-comment keymap
block = 'gb',
},
---LHS of extra mappings
extra = {
---Add comment on the line above
above = 'gcO',
---Add comment on the line below
below = 'gco',
---Add comment at the end of line
eol = 'gcA',
},
---Enable keybindings
---NOTE: If given `false` then the plugin won't create any mappings
mappings = {
---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}`
basic = true,
---Extra mapping; `gco`, `gcO`, `gcA`
extra = true,
---Extended mapping; `g>` `g<` `g>[count]{motion}` `g<[count]{motion}`
extended = false,
},
---Function to call before (un)comment
pre_hook = nil,
---Function to call after (un)comment
post_hook = nil,
}
require("Comment").setup({
---Add a space b/w comment and the line
padding = true,
---Whether the cursor should stay at its position
sticky = true,
---Lines to be ignored while (un)comment
ignore = "^$",
---LHS of toggle mappings in NORMAL mode
toggler = {
---Line-comment toggle keymap
line = "gcc",
---Block-comment toggle keymap
block = "gbc",
},
---LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
---Line-comment keymap
line = "gc",
---Block-comment keymap
block = "gb",
},
---LHS of extra mappings
extra = {
---Add comment on the line above
above = "gcO",
---Add comment on the line below
below = "gco",
---Add comment at the end of line
eol = "gcA",
},
---Enable keybindings
---NOTE: If given `false` then the plugin won't create any mappings
mappings = {
---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}`
basic = true,
---Extra mapping; `gco`, `gcO`, `gcA`
extra = true,
---Extended mapping; `g>` `g<` `g>[count]{motion}` `g<[count]{motion}`
extended = false,
},
---Function to call before (un)comment
pre_hook = nil,
---Function to call after (un)comment
post_hook = nil,
})
-- cancel auto next line comment
-- 取消换行后自动添加注释
vim.api.nvim_create_autocmd("BufEnter", {
callback = function()
vim.opt.formatoptions = vim.opt.formatoptions - { "o" }
end,
})

View File

@ -0,0 +1,5 @@
local let_table_settings = {}
for k, v in pairs(let_table_settings) do
vim.g[k] = v
end

View File

@ -0,0 +1,8 @@
require("toggleterm").setup({
open_mapping = [[<C-\>]],
insert_mapping = true,
start_in_insert = true,
autochdir = true,
auto_scroll = false, -- automatically scroll to the bottom on terminal output
direction = "horizontal",
})

View File

@ -14,6 +14,10 @@ return require("packer").startup(function()
end,
})
-- a good terminal
-- 一个好的nvim内终端
use({ "akinsho/toggleterm.nvim", tag = "*" })
-- git plugin like magit
-- 类似magit的插件neogit
-- use({ "TimUntersberger/neogit", requires = "nvim-lua/plenary.nvim" })
@ -22,6 +26,17 @@ return require("packer").startup(function()
-- 使用lazygit接口
use("kdheepak/lazygit.nvim")
----------------- markdown --------------------
-- markdown preview
-- markdown自动预览
use({
"iamcco/markdown-preview.nvim",
})
-- markdown table
-- 优化markdown添加表格
use("dhruvasagar/vim-table-mode")
-- nvim-tree for file manage
use({
"kyazdani42/nvim-tree.lua",

View File

@ -0,0 +1,84 @@
# Neovim 配置
这次决定从头开始打造自己的编辑器,其中所有的功能都是自行组装
使用的插件列表如下
| name | decription |
|---------------------------------|---------------------------------------------------------------------|
| nvim-telescope/telescope.nvim | 查找,过滤,预览文件 |
| kdheepak/lazygit.nvim | 与lazygit进行集成,需要自行安装lazygit,用法可参考lazygit的github页面 |
| nvim-treesitter/nvim-treesitter | 高性能的语法高亮 |
| folke/which-key.nvim | 快捷键弹窗查看和更方便的快捷键设置 |
| akinsho/bufferline.nvim | 顶部标签栏 |
| hrsh7th/nvim-cmp | 优秀的补全插件 |
| hrsh7th/cmp-path | 补全路径 |
| hrsh7th/cmp-buffer | 缓冲区内重复单词补全 |
| hrsh7th/cmp-nvim-lsp | 补全与lsp的集成 |
| kyazdani42/nvim-tree.lua | 文件查看器,不用多说 |
| numToStr/Comment.nvim | 强大的注释插件 |
| windwp/nvim-autopairs | 括号自动补全 |
| ahmedkhalf/project.nvim | 出色的项目管理工具,可与telescope集成 |
| jose-elias-alvarez/null-ls.nvim | 代码格式化工具,还可提供其他与lsp集成的功能 |
| neovim/nvim-lspconfig | 快速的lsp配置工具 |
| williamboman/mason.nvim | lsp-installer作者的新作,方便管理lsp dap linter formatter等 |
| rafamadriz/friendly-snippets | 自定义各种语言的一些代码模板 |
| nvim-lualine/lualine.nvim | 底部状态栏 |
| wbthomason/packer.nvim | 大名鼎鼎的包管理工具 |
| rcarriga/nvim-notify | 现代化的消息弹窗提示 |
| akinsho/toggleterm.nvim | 优秀的nvim集成终端 |
| mfussenegger/nvim-dap | neovim 的dap实现 |
## 快捷键
\<leader>键被配置为空格
### 常用
| key | function |
|----------------|-------------------------------------------|
| n | 打开nvim-tree文件浏览 |
| f | 打开telescope进行文件查找 |
| Ctrl-h | 切换到左标签栏 |
| Ctrl-l | 切换到右标签栏 |
| \<leader>q | 退出neovim |
| \<leader>s | 保存当前文件 |
| \<leader>S | 保存所有文件 |
| \<leader><tab> | 切换回上一个buffer,用于两buffer间来回切换 |
### Packer
| key | function |
|-------------|------------------------|
| \<leader>pi | 包同步PackerSync |
| \<leader>pc | 包清理PackerClean |
| \<leader>ps | 包状态查看PackerStatus |
### lsp
| key | function |
|-------------|---------------------------------|
| \<leader>li | 安装当前文件语言对应的lsp服务 |
| \<leader>lI | 打开Mason安装lsp dap 等任意服务 |
| \<leader>ll | 打开Mason查看安装的服务 |
| \<leader>lu | 卸载当前语言对应的lsp |
### git
| key | function |
|------------|-----------------|
| \<leader>g | 打开lazygit界面 |
### dap
| key | function |
|-------------|-----------|
| \<leader>db | 打断点 |
| \<leader>de | 停止debug |
| \<leader>dc | 清理断点 |
| \<leader>dr | 开始debug |
| \<Ctrl-n> | step into |
| \<Ctrl-o> | step over |