2022-06-12 01:04:03 +03:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
|
|
|
<!ENTITY % general-entities SYSTEM "../general.ent">
|
|
|
|
|
%general-entities;
|
|
|
|
|
]>
|
|
|
|
|
|
|
|
|
|
<sect1 id="ch-system-vim" role="wrap">
|
|
|
|
|
<?dbhtml filename="vim.html"?>
|
|
|
|
|
|
|
|
|
|
<sect1info condition="script">
|
|
|
|
|
<productname>vim</productname>
|
|
|
|
|
<productnumber>&vim-version;</productnumber>
|
|
|
|
|
<address>&vim-url;</address>
|
|
|
|
|
</sect1info>
|
|
|
|
|
|
|
|
|
|
<title>Vim-&vim-version;</title>
|
|
|
|
|
|
|
|
|
|
<indexterm zone="ch-system-vim">
|
|
|
|
|
<primary sortas="a-Vim">Vim</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
|
|
<sect2 role="package">
|
|
|
|
|
<title/>
|
|
|
|
|
|
|
|
|
|
<para>Пакет Vim содержит мощный текстовый редактор.</para>
|
|
|
|
|
|
|
|
|
|
<segmentedlist>
|
|
|
|
|
<segtitle>&buildtime;</segtitle>
|
|
|
|
|
<segtitle>&diskspace;</segtitle>
|
|
|
|
|
|
|
|
|
|
<seglistitem>
|
|
|
|
|
<seg>&vim-fin-sbu;</seg>
|
|
|
|
|
<seg>&vim-fin-du;</seg>
|
|
|
|
|
</seglistitem>
|
|
|
|
|
</segmentedlist>
|
|
|
|
|
|
|
|
|
|
<tip>
|
|
|
|
|
<title>Альтернативы Vim</title>
|
|
|
|
|
|
|
|
|
|
<para>.Если вы предпочитаете другой текстовый редактор, например, Emacs,
|
|
|
|
|
Joe или Nano, обратитесь к <ulink
|
|
|
|
|
url="&blfs-book;postlfs/editors.html"/> за рекомендациями по установке.</para>
|
|
|
|
|
</tip>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 role="installation">
|
|
|
|
|
<title>Установка пакета Vim</title>
|
|
|
|
|
|
|
|
|
|
<para>Во-первых, измените расположение файла конфигурации <filename>vimrc</filename>
|
|
|
|
|
на <filename class="directory">/etc</filename>:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="pre">echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h</userinput></screen>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Подготовьте Vim к компиляции:</para>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
|
|
|
|
|
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Скомпилируйте пакет:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="make">make</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Чтобы подготовить тесты, убедитесь, что пользователь
|
|
|
|
|
<systemitem class="username">tester</systemitem> может писать в исходное дерево:</para>
|
|
|
|
|
|
2024-02-06 12:47:50 +03:00
|
|
|
|
<screen><userinput remap="test">chown -R tester .</userinput></screen>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
|
|
|
|
|
<para>Теперь запустите тесты от имени пользователя <systemitem
|
|
|
|
|
class="username">tester</systemitem>:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="test">su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Набор тестов выводит на экран много двоичных данных. Это может вызвать
|
|
|
|
|
проблемы с настройками текущего терминала. Чтобы этого избежать, перенаправьте
|
|
|
|
|
вывод в файл журнала, как показано выше. Тест пройден успешно, если в файле
|
|
|
|
|
журнала по завершении есть надпись "ALL DONE".</para>
|
|
|
|
|
|
|
|
|
|
<para>Установите пакет:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="install">make install</userinput></screen>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Многие пользователи рефлекторно набирают <command>vi</command> вместо
|
2022-06-12 01:04:03 +03:00
|
|
|
|
<command>vim</command>. Чтобы разрешить выполнение <command>vim</command>,
|
|
|
|
|
когда пользователи вводят <command>vi</command>, создайте символическую ссылку
|
|
|
|
|
как для двоичного файла, так и для справочной страницы:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="install">ln -sv vim /usr/bin/vi
|
|
|
|
|
for L in /usr/share/man/{,*/}man1/vim.1; do
|
|
|
|
|
ln -sv vim.1 $(dirname $L)/vi.1
|
|
|
|
|
done</userinput></screen>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>По умолчанию документация Vim установливается в каталог <filename
|
2022-06-12 01:04:03 +03:00
|
|
|
|
class="directory">/usr/share/vim</filename>. Следующая символическая ссылка
|
|
|
|
|
позволяет получить доступ к документации через каталог <filename
|
|
|
|
|
class="directory">/usr/share/doc/vim-&vim-version;</filename>, что
|
|
|
|
|
согласуется с расположением документации остальных пакетов:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="install">ln -sv ../&vim-docdir;/doc /usr/share/doc/vim-&vim-version;</userinput></screen>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Если в LFS будет установлена система X Window, может потребоваться
|
|
|
|
|
перекомпилировать Vim после установки X. Vim поставляется с графической версией
|
|
|
|
|
редактора, для которой требуется установка X и некоторых дополнительных библиотек.
|
|
|
|
|
Для получения дополнительной информации об этом процессе обратитесь к документации
|
|
|
|
|
по Vim и странице установки Vim в книге BLFS по адресу <ulink
|
2022-06-12 01:04:03 +03:00
|
|
|
|
url="&blfs-book;postlfs/vim.html"/>.</para>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="conf-vim" role="configuration">
|
|
|
|
|
<title>Настройка Vim</title>
|
|
|
|
|
|
|
|
|
|
<indexterm zone="conf-vim">
|
|
|
|
|
<primary sortas="e-/etc/vimrc">/etc/vimrc</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
|
|
<para>По умолчанию <command>vim</command> работает в режиме, несовместимом с vi.
|
|
|
|
|
Это может показаться необычным для пользователей, которые в прошлом использовали
|
|
|
|
|
другие редакторы. Параметр <quote>nocompatible</quote> включен ниже, чтобы
|
|
|
|
|
подчеркнуть тот факт, что используется новое поведение. Настройка также напоминает тем,
|
|
|
|
|
кто хотел бы перейти в режим <quote>compatible</quote>, что параметр должен быть
|
|
|
|
|
первым в файле конфигурации. Это необходимо, потому что изменяются другие параметры,
|
|
|
|
|
и переопределения происходят после этой настройки. Создайте файл
|
|
|
|
|
конфигурации <command>vim</command> по умолчанию, выполнив следующие действия:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput>cat > /etc/vimrc << "EOF"
|
|
|
|
|
<literal>" Begin /etc/vimrc
|
|
|
|
|
|
|
|
|
|
" Ensure defaults are set before customizing settings, not after
|
|
|
|
|
source $VIMRUNTIME/defaults.vim
|
|
|
|
|
let skip_defaults_vim=1
|
|
|
|
|
|
|
|
|
|
set nocompatible
|
|
|
|
|
set backspace=2
|
|
|
|
|
set mouse=
|
|
|
|
|
syntax on
|
|
|
|
|
if (&term == "xterm") || (&term == "putty")
|
|
|
|
|
set background=dark
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" End /etc/vimrc</literal>
|
|
|
|
|
EOF</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Параметр <parameter>set nocompatible</parameter> заставляет <command>vim</command>
|
|
|
|
|
вести себя более правильно (по умолчанию), чем vi-совместимый способ. Удалите
|
|
|
|
|
<quote>no</quote>, чтобы сохранить старое поведение <command>vi</command>.
|
|
|
|
|
Параметр <parameter>set backspace=2</parameter> позволяет удалять символы
|
|
|
|
|
через перенос строки, автоматические отступы и начало вставки. Параметр
|
|
|
|
|
<parameter>syntax on</parameter> включает подсветку синтаксиса vim. Параметр
|
|
|
|
|
<parameter>set mouse=</parameter> позволяет правильно вставлять текст с помощью
|
|
|
|
|
мыши при работе в chroot или через удаленное соединение. Наконец, оператор
|
|
|
|
|
<emphasis>if</emphasis> с параметром <parameter>set background=dark</parameter>
|
|
|
|
|
корректирует предположение <command>vim</command> о цвете фона некоторых
|
|
|
|
|
эмуляторов терминала. Это придает подсветке лучшую цветовую схему для использования
|
|
|
|
|
на черном фоне этих программ.</para>
|
|
|
|
|
|
|
|
|
|
<para>Документацию по другим доступным параметрам можно получить, выполнив
|
|
|
|
|
следующую команду:</para>
|
|
|
|
|
|
|
|
|
|
<screen role="nodump"><userinput>vim -c ':options'</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<note>
|
2023-08-03 23:54:52 +03:00
|
|
|
|
<para>По умолчанию vim устанавливает файлы проверки орфографии только для английского
|
|
|
|
|
языка. Для установки файлов проверки орфографии других языков, скопируйте файлы
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<filename class='extension'>.spl</filename> и, при необходимости,
|
|
|
|
|
<filename class='extension'>.sug</filename> для вашего языка и кодировки символов из
|
|
|
|
|
<filename class='directory'>runtime/spell</filename>, сохраните их в
|
2022-06-12 01:04:03 +03:00
|
|
|
|
<filename class='directory'>/usr/share/&vim-docdir;/spell/</filename>.</para>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Чтобы использовать эти файлы проверки орфографии, необходимо указать параметры
|
|
|
|
|
для vim в файле <filename>/etc/vimrc</filename>, пример:</para>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
|
|
|
|
|
<screen><literal>set spelllang=en,ru
|
|
|
|
|
set spell</literal></screen>
|
|
|
|
|
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Дополнительные сведения смотрите в файле <filename>runtime/spell/README.txt</filename>.</para>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
</note>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="contents-vim" role="content">
|
|
|
|
|
<title>Содержимое пакета Vim</title>
|
|
|
|
|
|
|
|
|
|
<segmentedlist>
|
|
|
|
|
<segtitle>Установленные программы</segtitle>
|
2023-05-24 09:00:49 +03:00
|
|
|
|
<segtitle>Созданные каталоги</segtitle>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
|
|
|
|
|
<seglistitem>
|
|
|
|
|
<seg> ex (ссылка на vim), rview (ссылка на vim), rvim (ссылка на vim), vi
|
2023-07-15 20:33:43 +03:00
|
|
|
|
(ссылка на vim), view (ссылка на vim), vim, vimdiff (ссылка на vim), vimtutor
|
2022-06-12 01:04:03 +03:00
|
|
|
|
и xxd</seg>
|
|
|
|
|
<seg>/usr/share/vim</seg>
|
|
|
|
|
</seglistitem>
|
|
|
|
|
</segmentedlist>
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
<bridgehead renderas="sect3">Краткое описание</bridgehead>
|
|
|
|
|
<?dbfo list-presentation="list"?>
|
|
|
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="ex">
|
|
|
|
|
<term><command>ex</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Запускает <command>vim</command> в режиме ex</para>
|
|
|
|
|
<indexterm zone="ch-system-vim ex">
|
|
|
|
|
<primary sortas="b-ex">ex</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="rview">
|
|
|
|
|
<term><command>rview</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Это ограниченная версия <command>view</command>; никакие команды
|
|
|
|
|
оболочки не могут быть запущены, и <command>view</command> не может
|
|
|
|
|
быть приостановлен</para>
|
|
|
|
|
<indexterm zone="ch-system-vim rview">
|
|
|
|
|
<primary sortas="b-rview">rview</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="rvim">
|
|
|
|
|
<term><command>rvim</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Это ограниченная версия <command>vim</command>; никакие команды
|
|
|
|
|
оболочки не могут быть запущены, и <command>vim</command> не может
|
|
|
|
|
быть приостановлен</para>
|
|
|
|
|
<indexterm zone="ch-system-vim rvim">
|
|
|
|
|
<primary sortas="b-rvim">rvim</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="vi">
|
|
|
|
|
<term><command>vi</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Ссылка на <command>vim</command></para>
|
|
|
|
|
<indexterm zone="ch-system-vim vi">
|
|
|
|
|
<primary sortas="b-vi">vi</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="view">
|
|
|
|
|
<term><command>view</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Запускает <command>vim</command> в режиме только для чтения</para>
|
|
|
|
|
<indexterm zone="ch-system-vim view">
|
|
|
|
|
<primary sortas="b-view">view</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="vim">
|
|
|
|
|
<term><command>vim</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Сам редактор</para>
|
|
|
|
|
<indexterm zone="ch-system-vim vim">
|
|
|
|
|
<primary sortas="b-vim">vim</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="vimdiff">
|
|
|
|
|
<term><command>vimdiff</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Редактирует две или три версии файла с помощью <command>vim</command>
|
|
|
|
|
и показывает различия</para>
|
|
|
|
|
<indexterm zone="ch-system-vim vimdiff">
|
|
|
|
|
<primary sortas="b-vimdiff">vimdiff</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="vimtutor">
|
|
|
|
|
<term><command>vimtutor</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Обучает основным горячим клавишам и командам <command>vim</command></para>
|
|
|
|
|
<indexterm zone="ch-system-vim vimtutor">
|
|
|
|
|
<primary sortas="b-vimtutor">vimtutor</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="xxd">
|
|
|
|
|
<term><command>xxd</command></term>
|
|
|
|
|
<listitem>
|
2023-07-15 20:33:43 +03:00
|
|
|
|
<para>Создает шестнадцатеричный дамп данного файла; он также может выполнять
|
|
|
|
|
обратную операцию, поэтому его можно использовать для бинарных патчей</para>
|
2022-06-12 01:04:03 +03:00
|
|
|
|
<indexterm zone="ch-system-vim xxd">
|
|
|
|
|
<primary sortas="b-xxd">xxd</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
</sect1>
|