четвер, 8 листопада 2007 р.

Покращення інформативності рядка стану для VIM.

Автор: Кім Шульц (Kim Shultz)
Переклад: Андрій Боровий
Оригінал статті

В нижньому кутку редактора Vim знаходяться дві речі: буфер командного рядка (де вводяться команди) та рядок стану. У первинній конфігурації рядок стану є простим та неінформативним, однак це можна змінити за допомогою простих методів.

Цей розділ є витягом з нещодавно опублікованої книжки Hacking Vim.
Праворуч, первинний рядок стану відображає номер поточного рядка та колонки, а ліворуч - назву відкритого файлу, якщо такий є. Як тільки виконується команда Vim, замість рядка стану відображається буфер команд. Якщо ж команда виводить повідомлення, вони з'являються в правому кутку рядка стану.
Такий рядок стану цілком підходить для простого та швидкого редагування файлів. Однак, якщо Ви використовуєте Vim щодня і редагуєте різні формати файлів - значно зручніше використовувати більш інформативний рядок стану.
Команда, яка визначає вигляд рядка стану викликається наступним чином:

:set statusline format
де format
рядок у printf-подібному форматі, який описує вигляд статусу рядка. Зазирнувши у довідкову систему Vim, за допомогою :help 'statusline', Ви помітите, що рядок стану може показувати різну інформацію. Деякі параметри можуть бути більш корисними для щоденного використання, ніж інші.
Мій рядок стану містить наступну інформацію:
  1. ім'я файла, який я наразі редагую;
  2. формат цього файлу (DOS або UNIX);
  3. тип файлу, визначений Vim для цього файлу;
  4. символьний та шістнадцятковий код поточного символу;
  5. місце знаходження в документі у вигляді номера рядка та позиції в цьому рядку;
  6. довжина файлу (кількість рядків).

За допомогою наступної команди Ви отримаєте рядок стану із зазначеними вище параметрами:

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\
[TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\
[POS=%04l,%04v][%p%%]\ [LEN=%L]

Я додав квадратні дужки для кожного параметру, щоб легше розрізняти їх між собою. Ці дужки є естетичним додатком, який Ви можете безпечно видалити.
Однак, навіть після введення цієї команди Ви не побачите жодних змін, рядок стану все ще буде мати старий вигляд, як при первинному встановленні. Це пояснюється тим, що Vim первинно не відображає рядок стану. Натомість він показує буфер команди з невеликою кількістю інформації. Для того, щоб Vim відобразив справжній рядок стану, слід змінити параметри у vimrc. Слід ввести команду, яка накаже програмі, виводити рядок стану як ще один останній рядок у вікні редактора.

:set laststatus=2

Після цього Ви побачите, що буфер команди залишився на своєму ж місці. Правда тепер з'явилося місце для рядка статусу, і Ви завжди будете мати на видному місці дані про поточний файл. Звісно, рядок стану займає певне місце області редагування. При потребі Ви можете видалити його до кінця сесії редагування, виконавши в середовищі Vim команду:

:set laststatus=0

Перемикання меню та рядка інструментів


Якщо Ви працюєте з Vim у консольному режимі, Вам не звикати до відсутності меню та рядка інструментів у верхній частині редактора. Зазвичай, Gvim, первинно використовуються обидва елементи.
Багато користувачів переконані, що наявність додаткового місця для редагування є значно важливішим, ніж наявність меню та рядка інструментів. Однак, деякі скрипти з меню додають більшої функціональності, а тому корисно мати під руками меню. Вирішити цю проблему можна за допомогою тимчасового вмикання/вимикання меню та рядка інструментів.
Наступний код прив'язує комбінацію Ctrl+F2 режиму увімкнення меню та рядка інструментів у Gvim. Щоб увімкнути цю можливість, додайте до файлу vimrc наступний код:

map   :if &guioptions =~# 'T'
\set guioptions-=T
\set guioptions-=m
\else
\set guioptions+=T
\set guioptions+=m
\endif

Тепер, якщо Вам не потрібне меню та рядок інструментів, натиснувши Ctrl+F2, Ви звільните місце для тексту. Для того, щоб приховати лише меню або лише рядок інструментів, слід трішки відредагувати файл налаштувань vimrc. Щоб ховати лише меню, використайте:

:set guioptions-=m 

Щоб сховати рядок інструментів:

:set guioptions-=T 

Інші частини графічного інтерфейсу можна змінювати за допомогою команд setguioptions. Отримати перелік того, що Ви можете змінити, можна за допомогою команди :help 'guioptions'.

Немає коментарів: