Может ли VIM автоиндентировать SQL?
"Хорошая практика отступов SQL-предложений" представляется принятым форматом для записи блоков SQL.
Есть ли файл отступа/синтаксиса Vim, который бы соответствовал этому стандарту или, по крайней мере, был близок?
В настоящее время мой Vim оставляет много всего и только отступы некоторых ключевых слов.
Ответы
Ответ 1
" SQLUtilities: Утилиты SQL - Форматирование, генерация - списки столбцов, процедуры для баз данных" имеет плагин SQL Utilities, который способен. И Как автоматически форматировать и автоматически использовать SQL в Vim - это связанное обсуждение.
Ответ 2
Установив модуль python sqlparse
pip install sqlparse
из vim вы можете использовать
:%!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
Ответ 3
Вы можете использовать плагин 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']
Если вы видите это сообщение: vim has no support for python
, вы должны перестроить свой vim с поддержкой python или установить python-client для neovim
Ответ 4
Если вы используете coc.nvim, вы можете добавить расширение coc-sql.