Нужна такая функциональность:
обычное меню в GUI, в котором можно было при клике получить в режиме вставки различные фрагменты кода. Этих фрагментов будет много, поэтому привязка горячих клавиш не нужна.
Как можно это реализовать?
меню вставляемых фрагментов
Модератор: /dev/random
-
SilentOS
- Сообщения: 251
- Статус: Важный воевода
- ОС: SuSE
-
ZyX
- Сообщения: 355
- ОС: Gentoo
Re: меню вставляемых фрагментов
Насчёт меню в GUI не знаю, но можно сделать так: по клавиатурному сочетанию
запоминается текущее состояние (буфер, позиция в буфере), затем в текущем окне
открывается новый буфер (так как он выполняет роль меню, то в нём отключается
modifiable), в буфере на каждой строке либо сами фрагменты кода, либо их
названия. Для буфера назначено сочетание, в первом случае копирующее текущую
строку, закрываующее буфер, восстанавливающее состояние и вставляющее код. Во
втором случае при открытии буфер заполняется из списка списков первыми
значениями списка второго уровня (списка соответствий название — код), при
нажатии сочетания определяется номер строки, запоминается второе значение из
списка второго уровня, буфер закрывается, состояние восстанавливается,
полученное значение вставляется. Думаю, идея понятна.
-
Luinnar
- Сообщения: 246
- ОС: Solaris, Debian, Ubuntu
Re: меню вставляемых фрагментов
Вот пример добавления меню "Encoding" с тремя пунктами:
Код: Выделить всё
menu Encoding.windows-1251 :e! ++enc=cp1251<CR>
menu Encoding.koi8-r :e! ++enc=koi8-r<CR>
menu Encoding.utf-8 :e! ++enc=utf-8<CR>По аналогии можете сделать менюшку для ваших целей.
Например для вставки слова "test" через меню "Codes" нужно добавить следующей код в .vimrc:
Код: Выделить всё
menu Codes.test atest<ESC>или только для режима вставки:
Код: Выделить всё
imenu Codes.test testСпасибо сказали:
-
SilentOS
- Сообщения: 251
- Статус: Важный воевода
- ОС: SuSE
Re: меню вставляемых фрагментов
Спасибо, с вставкой кусков кода все получилось
UPD. И еще, изучая этот замечательный редактор, столкнулся с конкретным торможением gvim в документах с числом строк больше 800. Это его нормальное поведение, или ему что-то "мешает" ? Консольный vim на том же документе просто летает.