VIM可以自动提交SQL吗?

Mik*_*ike 10 sql vim indentation auto-indent

" SQL语句缩进良好实践 "似乎是编写SQL块的可接受格式.

是否存在符合此标准的Vim缩进/语法文件,或者至少是否接近?

目前我的Vim几乎可以放下所有东西,只会缩进某些关键字.

Val*_*ini 12

通过安装python模块sqlparse

pip install sqlparse

从vim你可以使用

:%!sqlformat --reindent --keywords upper --identifiers lower -

为了不附加快捷方式,我将以下配置添加到我的.vimrc配置文件中:

autocmd FileType sql call SqlFormatter()
augroup end
function SqlFormatter()
    set noai
    " set mappings...
    map ,pt  :%!sqlformat --reindent --keywords upper --identifiers lower -<CR>
endfunction
Run Code Online (Sandbox Code Playgroud)

您可以稍微自定义sqlformat.看到

sqlformat --help


Zso*_*kai 10

" SQLUtilities:SQL实用程序 - 格式化,生成 - 列列表,数据库过程 "具有SQL Utilities插件,该插件具有此功能.并且" 如何在Vim中自动格式化和自动大写SQL "是一个相关的讨论.


luc*_*yan 5

您可以使用vim-autoformat插件:

  • vim-autoformat使用你最喜欢的插件管理器安装(我更喜欢轻量级vim-plug
  • 安装sqlparse使用pip
  • 将以下行添加到您的 vim/nvim 配置中
noremap <F3> :Autoformat<CR>
let g:formatdef_sql = '"sqlformat --reindent --keywords upper - identifiers lower -"'
let g:formatters_sql = ['sql']
Run Code Online (Sandbox Code Playgroud)

如果您看到此消息:vim has no support for python,您应该使用 python 支持重建您的 vim 或为 neovim安装python-client

  • Vim-autoformat 现在默认支持 sqlformat。 (2认同)

Dza*_*ton 5

如果您使用coc.nvim,那么您可以添加coc-sql 扩展名

  • 这是我采用的解决方案... `:CocCommand` 带您到一个模糊查找器 - 输入 `sql.Format` 就可以了。 (3认同)