ALT Linux repos
S: | 9.0.1893-alt1 |
5.0: | 7.2.148-alt2 |
4.1: | 7.2.026-alt0.M41.1 |
4.0: | 7.1.315-alt0.M40.1 |
+updates: | 7.1.315-alt0.M40.1 |
3.0: | 6.3.086-alt1 |
Group :: Editors
RPM: vim
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Особенности сборки VIm в дистрибутивах ALT Linux.
1. Разбивка на под-пакеты. {{{1
+ vim-minimal: options=TINY, GUI=none
+ vim-common: общие файлы для всех вариантов сборки
+ vim-enhanced: options=HUGE, +perl/ruby/tcl, GUI=none
+ vim-X11: общие файлы для всех GUI вариантов сборки
+ vim-X11-athena: options=HUGE, +perl/ruby/tcl, GUI=Xaw
+ vim-X11-gtk: options=HUGE, +perl/ruby/tcl, GUI=Gtk+
+ vim-X11-gtk2: options=HUGE, +perl/ruby/tcl, GUI=Gtk+2
+ vim-X11-motif: options=HUGE, +perl/ruby/tcl, GUI=Motif (OpenMotif)
+ vim-X11-neXtaw: options=HUGE, +perl/ruby/tcl, GUI=neXtaw
+ vim-devel: rpm макросы, необходимые для сборки дополнительных плагинов
Переключение между различными вариантами сборки производится при помощи
пакета alternatives.
1}}}
2. Инициализация. {{{1
Процесс инициализации VIm описан в ":help initialization", отличия в сборках
ALT Linux:
Чтение файлов конфигурации происходит в следующем порядке (* помечены файлы,
обрабатываемые GUI версией VIm):
+ /etc/vim/vimrc
+ ~/.vimrc
+ /etc/vim/gvimrc (*)
+ ~/.gvimrc (*)
По умолчанию опция 'runtimepath' выглядит следующим образом:
+ ~/.vim
+ /usr/share/vim/vimfiles
+ $VIMRUNTIME (/usr/share/vim)
+ /usr/share/vim/vimfiles/after
+ ~/.vim/after
1}}}
3. RPM макросы. {{{1
В пакете vim-devel находятся RPM макросы, облегчающие сборку дополнительных
плагинов:
3.1 Глобальные каталоги, используемые VIm: {{{2
+ %vim_dir - $VIMRUNTIME (/usr/share/vim)
+ %vim_runtime_dir - global runtime (/usr/share/vim/vimfiles)
+ %vim_after_dir - global runtime "after" (/usr/share/vim/vimfiles/after)
2}}}
3.2 Дополнительные подкаталоги в %vim_runtime_dir: {{{2
+ %vim_bitmaps_dir - .../bitmaps
+ %vim_colors_dir - .../colors
+ %vim_compiler_dir - .../compiler
+ %vim_doc_dir - .../doc
+ %vim_ftdetect_dir - .../ftdetect
+ %vim_ftplugin_dir - .../ftplugin
+ %vim_indent_dir - .../indent
+ %vim_keymap_dir - .../keymap
+ %vim_lang_dir - .../lang
+ %vim_plugin_dir - .../plugin
+ %vim_print_dir - .../print
+ %vim_syntax_dir - .../syntax
2}}}
3.3 Дополнительные подкаталоги в %vim_after_dir: {{{2
+ %vim_after_compiler_dir - .../compiler
+ %vim_after_ftplugin_dir - .../ftplugin
+ %vim_after_indent_dir - .../indent
+ %vim_after_plugin_dir - .../plugin
+ %vim_after_syntax_dir - .../syntax
2}}}
3.4 Макрос, определяющий URL по номеру скрипта: {{{2
+ %vim_script_url()
Пример использования:
Url: %vim_script_url 39
Этот макрос будет раскрыт в:
Url: http://www.vim.org/scripts/script.php?script_id=39
2}}}
3.5 Макросы для post-скриптов в пакете: {{{2
+ %update_vimhelp - обновление helptags после установки
+ %clean_vimhelp - обновление helptags после удаления пакета
Пример использования:
%post
%update_vimhelp
%postun
%clean_vimhelp
2}}}
1}}}
4. Рекомендации сборке дополнительных плагинов. {{{1
Все пакеты с дополнительными плагинами (кроме переводов официальной
документации) должны придерживаться следующих правил:
4.1 Общие рекомендации. {{{2
Имена пакетов должны иметь вид
vim-plugin-NAME[-TYPE], где
NAME - название пакета
TYPE - тип пакета (опционально)
Как правило, тип пакета зависит от его местонахождения. Рекомендуемые типы
пакетов:
.../colors - colors
.../compiler - compiler
.../ftplugin - filetype
.../indent - indent
.../plugin - не используется
.../print - print
.../syntax - syntax
Все пакеты должны иметь сборочную зависимость на vim-devel:
BuildPreReq: vim-devel
!!!ВНИМАНИЕ!!! Эта зависимость не определяется автоматически при помощи
buildreq из пакета rpm-utils.
Все пакеты должны иметь runtime зависимость на vim-common:
PreReq: vim-common
Все пакеты, содержащие документацию должны обновлять индексные файлы
справки:
%post
%update_vimhelp
%postun
%clean_vimhelp
2}}}
4.2 Расположение файлов. {{{2
Все скрипты и документация должны находиться внутри %vim_runtime_dir.
Поскольку скрипты в %vim_runtime_dir обрабатываются раньше скриптов
в $VIMRUNTIME, это позволяет переопределить стандартные цветовые схемы,
компиляторы, и т.д.
2}}}
4.3 Конфигурация по умолчанию. {{{2
Все плагины, переопределяющие стандартные скрипты из vim-common (для типов
compiler, indent, print, syntax), и все плагины с типами filetype и plugin,
должны быть по умолчанию выключены.
Механизм включения должен быть одинаковым для всех плагинов. Это достигается
добавлением следующего кода в начало скрипта:
if !exists("use_name_type")
finish
endif
где "use_name_type" - уникальная переменная, состоящая из имени плагина (не
обязательно совпадающего с именем скрипта, например плагин vimruby, скрипт
ruby.vim) и опционально типа скрипта.
Для использования плагина пользователю достаточно в .vimrc добавить строку:
let use_name_type = 1
о чём должно быть упоминание в %description пакета:
...
To enable this plugin define "use_some_filetype" variable somewhere
in your .vimrc file.
Если какие либо из плагинов попадают в основной дистрибутив VIm, в пакет
vim-common прописывается соответствующий Obsoletes:
Provides: vim-plugin-NAME-TYPE = VERSION.vim
Obsoletes: vim-plugin-NAME-TYPE <= VERSION
При этом к версии плагина, указанной в Provides пакета vim-common,
добавляется суффикс ".vim".
2}}}
4.4 Переводы официальной документации. {{{2
Структура переводов официальной документации описана в
":help help-translated". Пакет с документацией имеет следующие отличия:
1. Имя пакета vim-doc-LL, где LL - духсимвольный код языка
2. Пакет содержит только файлы %vim_dir/doc/*.LLx и %vim_dir/doc/tags-LL
3. В post-скриптах не нужно вызывать %update_vimhelp/%clean_vimhelp
2}}}
1}}}
vim:tw=78:fdm=marker:fo=tcqn21:noet:norl: