Загрузка...
Linux
Новости, статьи, обсуждения, - все что связано с GNU Linux, FreeBSD, OpenBSD, Sun Solaris, Mac OS X и другими системами. Если вы интересуетесь данной темой - добро пожаловать в сообщество.
     

Изменяем внешний вид Vim. Часть вторая.

21.08.09, 23:40
Автор ggg

В этой статье мы научимся изменять меню, панель инструменов и внешний вид строки вкладок.

 

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

:menu menupath command

Где menupath — путь к элементу меню, а command — исполняемая команда. Рассмотрим простой пример:

:menu Tabs.Next < ESC>:tabnext< CR>

:menu Tabs.Previous < ESC>:tabprev< CR>

Таким образом мы добавим меню Tabs в котором у нас будет два пункта Next и Previous для перемещения к следующей и предыдущей вкладкам соответственно. Команды могут неправильно работать в определенных режимах, например, если мы уберем < ESC> из начала нашей команды и выполним ее в режиме вставки, то вместо того чтобы перейти к следующей вкладке к нашему тексту добавятся символы :tabnext. Для того, чтобы перед выполнением команды Vim перешел в стандартный режим (Normal Mode) а после выполнения команды вернулся к тому режиму который был можно использовать следующую конструкцию:

:amenu Tabs.Next :tabnext< CR>

Если вы хотите разделить пункты меню на логические группы, то это можно сделать с помощью добавления специального элемента — разделителя (separator) с помощью следующей команды:

:amenu Tabs.-SEP- :

Не забудте двоеточие в конце команды.

Теперь перейдем к добавлению иконок на панель инструментов. Оно очень похоже на добавление пунктов меню, просто добавлять их нужно с дополнительным параметром — путем к иконке и в специальное меню ToolBar, например так:

:amenu icon=/path/to/myicon.png ToolBar.Bufferlist :buffers< CR>

Если вы укажете только имя картинки, опустив полный путь, то Vim будет искать ее в каталоге, который можно получить командой

:echo $VIMRUNTIME

Теперь рассмотрим задачу посложнее — изменение внешнего вида строки с вкладками. Если по той или иной причине вас не устраивает стандартный вид, то его можно легко изменить командой:

:set tabline=tabline-layout

Где tabline-layout — способ отображения внешнего вида строки с вкладками. Или для графического режима (GVim) нам потребуется такая команда:

:set guitablabel

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

function ShortTabLine()

let ret = ''


for i in range(tabpagenr('$'))

" Если мы имеем дело с активной вкладкой — подсвечиваем ее красной

if i + 1 == tabpagenr()

let ret .= '%#errorMsg#'

else

let ret .= '%#TabLine#'

endif


" ищем название буфера, чтобы поместить его в название вкладки

let buflist = tabpagebuflist(i + 1)

let winnr = tabpagewinnr(i + 1)

let buffername = bufname(buflist[winnr - 1])

let filename = fnamemodify(buffername, ':t')


" Если нет названия — то так и говорим 'буфер без названия' (noname)

if filename == ''

let filename = 'noname'

endif


" Если название слишком длинное — показываем только 6 первых символов

if strlen(filename) >= 8

let ret .= '[' . filename[0:5] . '..]'

else

let ret .= '[' . filename . ']'

endif

endfor


" заполняем лишнее пространство

let ret .= '%#TabLineFill#%T'


return ret

endfunction


" устанавливаем нашу функцию в качестве обработчика строки вкладок

set tabline=%!ShortTabLine()

Итак, в этой статье мы научились работать с элементами меню, панели инструментов и изменять внешний вид строки с вкладками. В следующей статье мы освоим работу со всплывающими подсказками и проверкой орфографии.

 

ключевые слова

Комментарии

Войдите, чтобы оставить комментарий