Как я могу достичь конкретного отступа проекта в vim?
Я работаю над несколькими проектами, каждый из которых использует разные стили отступов (для разных типов файлов). Например, 1 вкладка на уровень отступа, 2 или 4 пробела и т.д. Как я могу автоматизировать переключение между этими разными стилями? Я обычно предпочитаю отступы с вкладками, но я устал от необходимости вводить: set expandtabs все время, когда работает с кодом с пространственным разделением. Возможные решения включают загрузку части конфигурации vim на основе пути к файлу или некоторой конфигурации в корне проекта. Есть ли плагин, чтобы решить это для меня элегантным способом?
Ответы
Ответ 1
- Посмотрите параметр
cinoptions
и softtabstop
(и expandtab
, но вы это знаете).
-
В вашем '~/.vimrc' определите автоматические команды ввода буфера для каждого каталога, в котором вы сохраняете источники какого-либо проекта, например:
augroup ProjectSetup
au BufRead,BufEnter /path/to/project1/* set et sts=2 cindent cinoptions=...
au BufRead,BufEnter /path/to/project2/* set noet sts=4 cindent cinoptions=...
augroup END
Если у проекта есть смесь языков и для этого нужны разные настройки, вы также можете
добавьте расширения, например:
au BufRead,BufEnter /path/to/project1/*.{c,h} set noet sts=0 cindent cinoptions=...
au BufRead,BufEnter /path/to/project1/*.py set et sts=4
Ответ 2
Я использую плагин localvimrc, который делает именно то, что вы просите:
Иногда, когда вы работаете над разными проектами, у вас есть проблема, что они используют разные отступы, расширение вкладок и так далее. Вам нужен vimrc для каждого проекта, который отменяет ваши предпочтительные настройки с ~/.vimrc
Ответ 3
EditorConfig и его плагин Vim:
Что такое EditorConfig?
EditorConfig помогает разработчикам определять и поддерживать согласованное кодирование стили между различными редакторами и IDE. Проект EditorConfig состоит из формата файла для определения стилей кодирования и коллекции плагинов текстового редактора, которые позволяют редакторам читать формат файла и придерживаться определенных стилей. Файлы EditorConfig легко читаются и они прекрасно работают с системами контроля версий.
Среди всего прочего он позволяет установить отступы, которые будут применяться только для этого проекта. Это очень простой и, что наиболее важно, стандартизированный способ, поддерживаемый многими различными редакторами и IDE, так что он установит правильные отступы не только для вас, но и, вероятно, для всех людей, работающих над проектом.
Вам просто нужно создать файл .editorconfig
в корне проекта, и Vim автоматически найдет его (при условии, что у вас установлен плагин), установив правильные значения. Создание файлов .editorconfig
для каждого проекта позволяет добиться того, что вам нужно - отступа для конкретного проекта.
Пример файла конфигурации:
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[*.{js,html}]
indent_size = 2
[*.css]
indent_size = 4
Ответ 4
Да, есть: Если вы используете Project Plugin, вы можете указать файл, содержимое которого оценивается каждый раз, когда вы открываете файл проекта (этот файл называется in.vim
). Противоположностью in.vim
является out.vim
: этот выполняется каждый раз, когда вы покидаете проект.