VIM可以自动缩进SQL吗?
“SQL 语句缩进良好实践”似乎是可接受的格式编写 SQL 块。
是否有一个 Vim 缩进/语法文件符合这个标准,或者至少接近这个标准?
目前,我的 Vim 左键几乎显示了所有内容,并且只缩进了某些关键字。
"SQL Statement indentation good practice" appears to be the accepted format for writing SQL blocks.
Is there a Vim indent/syntax file that would adhere to this standard, or at least be close?
Currently my Vim left alights pretty much everything and only indents certain keywords.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
通过安装 python 模块 sqlparse,这使得
sqlformat
命令在您的终端中可用。从 vim 中
pip install sqlparse
您可以使用
:%!sqlformat --reindent --keywords upper --identifiers lower -
来附加快捷方式 ,pt< /strong> 我将以下配置添加到我的
.vimrc
配置文件中:您可以稍微自定义 sqlformat。看
By installing the python module sqlparse, which makes the
sqlformat
command available in your terminal.pip install sqlparse
from vim you can use
:%!sqlformat --reindent --keywords upper --identifiers lower -
in order to attach a shortcut ,pt I added following configuration to my
.vimrc
config file:You can customize sqlformat a bit. See
"SQLUtilities : SQL 实用程序 - 格式化、生成 - 列列表、数据库程序”有 SQL Utilities 插件,功能强大。以及“如何在 Vim 中自动格式化和自动大写 SQL ”是一个相关的讨论。
"SQLUtilities : SQL utilities - Formatting, generate - columns lists, procedures for databases" has the SQL Utilities plugin, which is capable. And "How to auto-format and auto-capitalize SQL in Vim" is a related discussion.
如果您使用 coc.nvim 那么您可以添加 coc-sql 扩展。
If you use coc.nvim then you can add the coc-sql extension.
您可以使用 vim-autoformat 插件:
vim-autoformat
你最喜欢的插件管理器(我更喜欢轻量级 vim-plug)sqlparse
与pip
如果您看到此消息:
vim 不支持 python
,您应该使用 python 支持重建您的 vim 或安装 neovim 的 python 客户端You can use the vim-autoformat plugin:
vim-autoformat
with your favourite plugin-manager (I prefer lightweight vim-plug)sqlparse
withpip
If you see this message:
vim has no support for python
, you should rebuild your vim with python support or install python-client for neovim就像 Valerio 的回答一样,我建议使用 sqlformat albiet 与 Vim 的内置
formatprg
,默认为gq
。我的
~/.vim/after/ftplugin/sql.vim
文件下有上面的行。这允许您使用 Vim 的内置
gq
来对抗任何选择,或者针对 sql 中已知的 Vim 对象,或者简单地使用gggqG
来重新缩进整个缓冲区。Like Valerio's answer, I recommend using sqlformat albiet with Vim's builtin
formatprg
, which isgq
by default.I have the line above under my
~/.vim/after/ftplugin/sql.vim
file.This allows you to use Vim's builtin
gq
against any selection, or against known Vim's objects within sql, or simplygggqG
to reindent the entire buffer.