VIM可以自动缩进SQL吗?

发布于 2024-12-22 06:33:38 字数 237 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

你另情深 2024-12-29 06:33:38

通过安装 python 模块 sqlparse,这使得 sqlformat 命令在您的终端中可用。

从 vim 中pip install sqlparse

您可以使用

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

来附加快捷方式 ,pt< /strong> 我将以下配置添加到我的 .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 --帮助

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:

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

You can customize sqlformat a bit. See

sqlformat --help

哆兒滾 2024-12-29 06:33:38

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

If you use coc.nvim then you can add the coc-sql extension.

ゃ人海孤独症 2024-12-29 06:33:38

您可以使用 vim-autoformat 插件:

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

如果您看到此消息:vim 不支持 python,您应该使用 python 支持重建您的 vim 或安装 neovim 的 python 客户端

You can use the vim-autoformat plugin:

  • Install vim-autoformat with your favourite plugin-manager (I prefer lightweight vim-plug)
  • Install sqlparse with pip
  • Add the following lines to your vim/nvim config
noremap <F3> :Autoformat<CR>
let g:formatdef_sql = '"sqlformat --reindent --keywords upper - identifiers lower -"'
let g:formatters_sql = ['sql']

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

維他命╮ 2024-12-29 06:33:38

就像 Valerio 的回答一样,我建议使用 sqlformat albiet 与 Vim 的内置 formatprg,默认为 gq

setlocal formatprg=sqlformat\ --reindent\ --keywords\ upper\ --identifiers\ lower\ -

我的 ~/.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 is gq by default.

setlocal formatprg=sqlformat\ --reindent\ --keywords\ upper\ --identifiers\ lower\ -

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 simply gggqG to reindent the entire buffer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文