РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ VIM - Брам Мооленаар

Работа с графическим интерфейсом

Vim прекрасно работает в консоли, но версия с графическим интерфейсом имеет несколько своих изюминок. Команды, которые используют имена файлов могут пользоваться системным диалогом для выбора файла. При выборе вариантов можно также использовать диалог. Быстрые клавиши помогают использовать меню более эффективно.

31.1    Использование диалога для выбора файлов
31.2    Подтверждение выбора
31.3    Быстрые кнопки в меню
31.4    Положение окна Vim на экране и его размеры
31.5    Разное

Следующая глава: Создание новых команд
Предыдущая глава: Редактирование программ
Содержание: Руководство пользователя Vim


31.1 Использование диалога для выбора файлов

При использовании меню Файл/Открыть... вы увидите обычный системный диалог для выбора файлов. С его помощью можно легко находить необходимый файл для редактирования. Но что если вам нужно разделить экран и открыть новый файл в новом окне? Меню не предлагает такой операции

Замечание переводчика: уже давно предлагает, на момент перевода этого документа. Ищите в  Файл/Разделить и открыть... Но этот раздел все равно полезен, для понимания, как вызывать диалог выбора файла из какой-нибудь другой команды.

Вместо того, чтобы выполнять две операции, Окно/Разделить и затем Файл/Открыть, попробуем выполнить всё одной командой.

Поскольку большинство команд выполняется в Vim из командной строки, нет ничего необычного в том, что из командной строки можно также открыть и диалог для выбора файла. Чтобы использовать такой диалог вместе с командой разделения экрана, напишите в командной строке перед командой split слово "browse":

:browse split

После выбора файла, будет выполнена команда ":split" с загрузкой выбранного файла в новое окно. Если вы откажитесь от выбора файла, то ничего не произойдёт -- окно разделяться не будет.

Вы также можете указать аргумент. С его помощью можно подсказать диалогу, где нужно начать выбор файла. Пример:

:browse split /etc

Покажет в диалоге для выбора файлов каталог "/etc".

Команда ":browse" может предшествовать практически любой команде, которая открывает файл.

Если каталог не указан, то Vim сам решит, откуда лучше начать выбор файла. По умолчанию будет использоваться тот же каталог, что и в прошлый раз. Если вы используете ":browse split", чтобы выбрать файл в "/usr/local/share", то в следующий раз при выполнении команды ":browse" диалог будет открыт на каталоге "/usr/local/share".

Это можно изменить при помощи опции 'browsedir'. Она может иметь одно из трёх значений:

last Использовать последний каталог (по умолчанию)
buffer Использовать каталог, в котором находится файл в текущем буфере
current Использовать текущий каталог

Например, если вы находитесь в каталоге "/usr" и редактируете файл "/usr/local/share/readme", то команды

:set browsedir=buffer
:browse edit

откроют диалог в каталоге "/usr/local/share". Команды

:set browsedir=current
:browse edit

откроют каталог в "/usr".

Замечание: Чтобы не пользоваться лишний раз мышью, большинство диалогов для выбора файла позволяют использовать клавиатуру для перемещения по диалогу. Мы не затрагиваем этот вопрос здесь, поскольку для каждой системы метод будет свой. Vim использует по возможности стандартный системный диалог для выбора файлов, поэтому обращайтесь за дополнительной информацией к документации по вашей системе.

Если вы используете консольную версию, то для выбора файлов можно использовать модуль проводника по файловой системе. Однако, консольный проводник не работает по команде ":browse". См. |проводник_по_файловой_системе|.


31.2 Подтверждение выбора

Vim предохраняет вас от случайной перезаписи файла и других возможных потерь информации. Если вы делаете что-то не совсем правильное с точки зрения Vim, то он выдаёт сообщение об ошибке и предлагает добавить к команде символ ! в том случае, если вы уверены в своих действиях.

Чтобы лишний раз не набирать команду с добавлением !, вы можете попросить Vim выводить диалог с запросом на подтверждение той или иной операции. Тогда вы сможете нажать на кнопку "Да" или на кнопку "Отмена" для сообщения редактору о своём решении.

Например, у вас в окне есть файл с несохранёнными изменениями и начинаете редактировать в том же окне новый файл при помощи команды

:confirm edit foo.txt

Vim покажет окно диалога, которое выглядит примерно так:

+---------------------------------------+
|                           |
|   ? Сохранить изменения в "bar.txt"?  |
|                         |
|       Да    Нет    Отмена           |
+---------------------------------------+

Теперь вы можете сделать выбор. Для сохранения изменений нажмите на кнопку "Да". Если вы не хотите сохранять изменения, то нажмите на кнопку "Нет". Если вы забыли, что делали до этого и хотите проверить изменения, то нажмите на кнопку "Отмена" и тогда вы вернётесь к редактированию старого файла.

Как и ":browse", команда ":confirm" может быть добавлена к большинству команд, которые приводят к редактированию другого файла. Можно даже сочетать обе команды:

:confirm browse edit

это приведёт к появлению диалога в том случае, если текущий буфер содержит изменения. При нажатии кнопки "Нет" появится окно диалога для выбора файла.

Замечание: Для выбора также можно использовать клавиатуру. Обычно выбор решения можно изменить с помощью кнопки <Tab> и кнопок управления курсором. Решение подтверждается нажатием <Enter>. Впрочем, это также зависит от операционной системы.

Команда ":confirm" работает также и в консольной версии. В этом случае, вместо диалога Vim выводит сообщение внизу окна и просит нажать ту или иную кнопку для выбора

    :confirm edit main.c
<    Сохранить изменения в "Без имени"? ~
    [Д]а, (Н)ет, (О)тмена:  ~

Для выбора можно пользоваться одной кнопкой. Вам не потребуется при этом дополнительно нажимать <Enter>.


31.3 Быстрые кнопки в меню

Любую команду Vim можно выполнить при помощи клавиатуры. В то же время, меню предлагают простой способ выбора команд, без необходимости вспоминать как они называются. Недостаток меню в том, что приходится отрывать руки от клавиатуры, чтобы пользоваться мышью.

Во многих случаях необходимые пункты меню можно выбрать с помощью клавиатуры. Чаще всего для этого требуется использовать кнопку <Alt> в сочетании с подчёркнутой буквой в том или ином пункте меню, хотя это может зависеть от операционной системы. Например, для открытия меню "Окно" нажмите <A-О> (комбинация кнопок <Alt> и О).

В меню "Окно" также подчёркнута буква "Р" в пункте "Разделить". Чтобы выбрать этот пункт, отпустите кнопку <Alt> и нажмите кнопку "Р".

После выбора первого пункта в меню с помощью кнопки <Alt>, можно также пользоваться клавишами управления курсором для перемещения по различным меню. <Right> выбирает подменю, а <Left> его закрывает. Меню также можно закрыть кнопкой <Esc>. Кнопка <Enter> выбирает необходимый пункт меню.

В вашей системе может существовать конфликт между использованием кнопки <Alt> для выбора пунктов в меню и использованием этой кнопки в клавиатурных привязках. Опция 'winaltkeys' помогает настроить использование кнопки <Alt> в редакторе Vim.

Значение этой опции по умолчанию, "menu", является самым интеллектуальным из возможных: если быстрая клавиша используется в меню, то её нельзя использовать в привязках. Все неиспользованные в меню клавиши могут использоваться в привязках.

Значение "no" позволяет не использует кнопку <Alt> для выбора меню. Это значит, что все клавиши доступны для использования в привязках, но для выбора пункта меню придётся использовать мышь.  

Значение "yes" означает, что Vim использует кнопку <Alt> исключительно для выбора меню.


31.4 Положение окна Vim на экране и его размеры

Чтобы узнать текущее положение окна Vim на экране монитора, наберите команду:

:winpos

Эта команда работает только в версии с графическим интерфейсом. Её вывод выглядит примерно так:

Положение окна: X 272, Y 103 ~

Положение окна указывается в пикселах. Вы можете использовать числа с этой командой для перемещения окна Vim. Например, чтобы переместить окно на 100 пикселов влево:

:winpos 172 103

Замечание: Между выводом команды :winpos и действительным положением экрана возможно небольшое расхождение, вызванное шириной границы окна. Эта величина добавляется экранным менеджером.

Вы можете использовать такую команду в сценарии запуска Vim, чтобы запускать редактор в строго определённом месте экрана.

Размер окна Vim  вычисляется в символах. Физический размер экрана, таким образом, зависит от размера используемого фонта. Чтобы посмотреть текущий размер, пользуйтесь командой:

:set lines columns

Чтобы изменить размер, установите новые значения для опций 'lines' и/или 'columns':

:set lines=50
:set columns=80

Получить информацию о размере окна Vim также можно и в консоли, однако установка размера в консоли работает не на всех терминалах.

Вы можете запустить версию gvim для X-Windows с аргументом, определяющим размер и положение окна на экране:

gvim -geometry {ширина}x{высота}+{x_координата}+{y_координата}

где {ширина} и {высота} указаны в символах, а {x_координата} и {y_координата} даются в пикселах. Пример:

gvim -geometry 80x25+100+300

31.5 Разное

Вы можете использовать gvim для редактирования постовых сообщений. Для этого вам необходимо указать в постовой программе, что для редактирования сообщений необходимо использовать gvim. Однако, вы увидите, что этого недостаточно: почтовая программа будет считать, что редактор уже завершил работу, хотя Vim все ещё запущен!

Дело в том, что gvim по умолчанию отделяется от оболочки, из которой он был запущен. Это сделано для того, чтобы при запуске gvim из терминала вы могли продолжать работу в терминале. Однако, если вам действительно требуется, чтобы запускающая программа дожидалась окончания работы gvim, то вам потребуется указать при запуске ключ "-f":

gvim -f file.txt

В этом случае Vim будет блокировать оболочку до тех пор, пока вы не закончите редактирование текста.

ОТЛОЖЕННЫЙ ЗАПУСК ГРАФИЧЕСКОГО ИНТЕРФЕЙСА

На Unix можно запускать Vim в терминале с последующим переходом к графическому интерфейсу. Это удобно в тех случаях, когда в одной оболочке выполняется сразу же несколько задач. Если позднее вам потребуется перейти в режим с графическим интерфейсом, то для этого достаточно набрать:

:gui

Vim откроет окно и перестанет использовать терминал, которым можно продолжать пользоваться для иных целей. Ключ "-f" в этом случае может быть использован для запуска графического интерфейса в качестве активной задачи: ":gui -f".

ФАЙЛ ЗАПУСКА GVIM

При запуске gvim будет выполняться файл gvimrc, подобно использованию файла vimrc при запуске Vim. Файл gvimrc можно использовать для указания настроек, которые используются редактором только в режиме графического интерфейса. Например, в этом файле можно настроить значение опции 'lines':

    :set lines=55

Вряд ли вы захотите изменять значение этой опции в консольном режиме, поскольку обычно это значение фиксировано (за исключением xterm, который поддерживает изменение размеров окна).

Поиск файла gvimrc ведётся в тех же местах, что и для файла vimrc. Обычно это "~/.gvimrc" на Unix и "$VIM/_gvimrc" на MS-Windows.

Если по каким-либо причинам вы не хотите использовать обычный файл gvimrc, то при запуске можно указать другой файл с помощью аргумента "-U":

gvim -U thisrc ...

Это позволяет запускать gvim по разному для различных задач редактирования. Например, можно указать другой размер шрифта.

Чтобы полностью отказаться от чтения файла gvimrc, используйте:

gvim -U NONE ...

Следующая глава: Создание новых команд
Авторские права: см. Авторские права