“SQL Statement indentation good practice”似乎是编写SQL块的可接受格式。
是否存在符合此标准的Vim缩进/语法文件,或者至少是否接近?
目前,我的Vim几乎可以放下所有内容,只会缩进某些关键字。
答案 0 :(得分:12)
安装python模块 sqlparse
pip install sqlparse
你可以使用
:%!sqlformat --reindent --keywords upper --identifiers lower -
为了不附加快捷方式,pt 我将以下配置添加到我的.vimrc配置文件中:
autocmd FileType sql call SqlFormatter()
augroup end
function SqlFormatter()
set noai
" set mappings...
map ,pt :%!sqlformat --reindent --keywords upper --identifiers lower -<CR>
endfunction
您可以稍微自定义sqlformat。见
sqlformat --help
答案 1 :(得分:10)
“SQLUtilities : SQL utilities - Formatting, generate - columns lists, procedures for databases”有SQL Utilities插件,它有能力。 “How to auto-format and auto-capitalize SQL in Vim”是一个相关的讨论。
答案 2 :(得分:3)
您可以使用vim-autoformat插件:
vim-autoformat
(我更喜欢轻量级vim-plug)sqlparse
pip
noremap <F3> :Autoformat<CR>
let g:formatdef_sql = '"sqlformat --reindent --keywords upper - identifiers lower -"'
let g:formatters_sql = ['sql']
如果您看到此消息:vim has no support for python
,您应该使用python支持重建vim,或者为neovim安装python-client
答案 3 :(得分:3)
如果您使用coc.nvim,则可以添加coc-sql extension。