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/neo-tree.lua |
文件查看器,不用多说,neo-tree的兼容性更好 |
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>键被配置为空格
<localleader>被配置为\
常用
key |
function |
T |
打开nvim-tree文件浏览 |
f |
打开telescope进行文件查找 |
Ctrl-h |
切换到左标签栏 |
Ctrl-l |
切换到右标签栏 |
<leader>q |
退出neovim |
<leader>s |
保存当前文件 |
<leader>S |
保存所有文件 |
<leader> |
切换回上一个buffer,用于两buffer间来回切换 |
<leader>j |
快速进行行跳转 |
, |
运行当前文件代码,需要自行配置各种语言 |
Ctrl-\ |
打开终端 |
Insert模式下特殊按键
key |
function |
Ctrl-a |
跳转到行首 |
Ctrl-e |
跳转到行尾 |
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 |
<leader>lr |
重启lsp |
]d |
跳转到函数定义 |
]i |
跳转到函数实现 |
]r |
跳转到函数引用 |
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 |
buffer
key |
function |
<leader>bb |
打开某个buffer |
<leader>bk |
关闭当前buffer |
<leader>bc |
取消高亮(可用于搜索后取消高亮) |
<leader>bo |
关闭其他buffer |
<leader>bs |
搜索当前buffer |
window
key |
function |
<leader>wo |
关闭其他窗口 |
<leader>wd |
关闭当前窗口 |
<leader>wh,j,k,l |
切换其他方向的窗口 |
<leader>ws |
水平分割窗口 |
file
key |
function |
<leader>ff |
telescope 文件浏览 |
<leader>fr |
最近打开的文件 |
<leader>fs |
在项目文件中搜索字符串 |
<leader>fp |
打开项目 |
<leader>fn |
新建文件 |
markdown
key |
function |
<leader>m |
预览markdown |
<localleader>t |
在当前位置插入目录 |
<localleader>d |
降低所有目录等级 |
<localleader>i |
升高所有目录等级 |
问题
根据文件类型启动某些功能
可以在ftplugin文件夹中放入对应文件类型的lua文件,如markdown.lua对应markdown文件.写入要执行的命令即可.例子可见ftplugin/markdown中启动markdown table mode()