lfs-ru/chapter08/vim.xml

304 lines
14 KiB
XML
Raw Permalink Normal View History

<?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>
2024-04-12 09:38:42 +03:00
<para>Если вы предпочитаете другой текстовый редактор, например, Emacs,
2024-04-12 09:31:55 +03:00
Joe или Nano, обратитесь к <xref linkend="postlfs-editors"/> за рекомендациями по установке.</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"' &gt;&gt; src/feature.h</userinput></screen>
<para>Подготовьте Vim к компиляции:</para>
<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>
<screen><userinput remap="test">chown -R tester .</userinput></screen>
<para>Теперь запустите тесты от имени пользователя <systemitem
class="username">tester</systemitem>:</para>
<screen><userinput remap="test">su tester -c "TERM=xterm-256color LANG=en_US.UTF-8 make -j1 test" \
&amp;> vim-test.log</userinput></screen>
<para>Набор тестов выводит на экран много двоичных данных. Это может вызвать
проблемы с настройками текущего терминала (особенно, когда мы переопределяем
переменную <envar>TERM</envar>, чтобы удовлетворить некоторые требования набора
тестов). Чтобы этого избежать, перенаправьте вывод в файл журнала, как показано
выше. Тест пройден успешно, если лог по завершении содержит текст:
<computeroutput>ALL DONE</computeroutput>.</para>
<para>Установите пакет:</para>
<screen><userinput remap="install">make install</userinput></screen>
<para>Многие пользователи рефлекторно набирают <command>vi</command> вместо
<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>
<para>По умолчанию документация Vim установливается в каталог <filename
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>
<para>Если в LFS будет установлена система X Window, может потребоваться
перекомпилировать Vim после установки X. Vim поставляется с графической версией
редактора, для которой требуется установка X и некоторых дополнительных библиотек.
Для получения дополнительной информации об этом процессе обратитесь к документации
2024-04-12 09:31:55 +03:00
по Vim и странице установки Vim из дополнительного раздела книги:
<xref linkend="vim-ext"/>.</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 &gt; /etc/vimrc &lt;&lt; "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 (&amp;term == "xterm") || (&amp;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 устанавливает файлы проверки орфографии только для английского
языка. Для установки файлов проверки орфографии других языков, скопируйте файлы
<filename class='extension'>.spl</filename> и, при необходимости,
<filename class='extension'>.sug</filename> для вашего языка и кодировки символов из
<filename class='directory'>runtime/spell</filename>, сохраните их в
<filename class='directory'>/usr/share/&vim-docdir;/spell/</filename>.</para>
<para>Чтобы использовать эти файлы проверки орфографии, необходимо указать параметры
для vim в файле <filename>/etc/vimrc</filename>, пример:</para>
<screen><literal>set spelllang=en,ru
set spell</literal></screen>
<para>Дополнительные сведения смотрите в файле <filename>runtime/spell/README.txt</filename>.</para>
</note>
</sect2>
<sect2 id="contents-vim" role="content">
<title>Содержимое пакета Vim</title>
<segmentedlist>
<segtitle>Установленные программы</segtitle>
2023-05-24 09:00:49 +03:00
<segtitle>Созданные каталоги</segtitle>
<seglistitem>
<seg> ex (ссылка на vim), rview (ссылка на vim), rvim (ссылка на vim), vi
(ссылка на vim), view (ссылка на vim), vim, vimdiff (ссылка на vim), vimtutor
и 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>
<para>Создает шестнадцатеричный дамп данного файла; он также может выполнять
обратную операцию, поэтому его можно использовать для бинарных патчей</para>
<indexterm zone="ch-system-vim xxd">
<primary sortas="b-xxd">xxd</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>