大部分lsp都自带代码格式化功能,有少部分是不带的。比如:lua-language-server 就不带格式化功能。平时写lua我就手动格式化代码,或者选择代码后,按=号格式化。虽然也不影响使用,但是总没有自动格式化来的爽快。写代码就是要爽才行。
项目地址:
https://github.com/mhartington/formatter.nvim
安装
根据自己使用的插件管理器,自行调整。
" vim-plug
Plug 'mhartington/formatter.nvim'
" 配置格式化快捷键
nnoremap <silent> <leader>f :Format<CR>
配置
默认安装后是无法使用的,要进行一些配置。我这里以lua语言为例,其他的语言请参照:
https://github.com/mhartington/formatter.nvim/blob/master/CONFIG.md
安装lua-fmt
lua-fmt提供了一个接口来格式化符合单一和一致标准的 Lua 代码。
项目主页:https://github.com/trixnz/lua-fmt
npm i -g lua-fmt
配置formatter.nvim
创建配置文件~/.config/nvim/after/plugin/formatter.lua
我的内容如下:
local status, formatter = pcall(require, "formatter")
if (not status) then
return
end
formatter.setup(
{
filetype = {
lua = {
-- luafmt
function()
return {
exe = "luafmt",
args = {"--indent-count", 2, "--stdin"},
stdin = true
}
end
}
}
}
)
--配置保存文件自动格式化代码
vim.api.nvim_exec(
[[
augroup FormatAutogroup
autocmd!
autocmd BufWritePost *.rs,*.lua FormatWrite
augroup END
]],
true
)
总结
简单方便,实用!