Клуб пользователей редактора vim
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 4 most recent journal entries recorded in
Клуб пользователей редактора vim's LiveJournal:
Friday, May 12th, 2006 | 3:20 pm [do_]
 |
http://www.vim.org/tips/tip.php?tip_id=1229При отладке VIM-скриптов, как в общем, и при любой отладке, время от времени приходится делать какие-то небольшие изменения в коде, потом снова запускать функцию, чтобы посмотреть, правильно ли она работает, потом снова делать изменения и т.п. Совершенно неудобно для этого каждый раз перезапускать VIM, но не очень удобно и каждый раз запускать скрипт из командной строки Ex. Так что предлагаю такой mapping, каковым пользуюсь сам: noremap <silent> <F9> :exec 'source '.bufname('%')<CR>Можно прописывать его в vimrc, ежели, конечно, клавиша F9 ещё не занята, но еще лучше прописать следующее: noremap <silent><buffer> <F9> :exec 'source '.bufname('%')<CR>в файл $VIMRUNTIME/ftplugins/vim.vim Тогда этот mapping будет работать только для VIM-скриптов, что правильно. Правда, к сожалению, я не в курсе, насколько идеологически правильно изменять самостоятельно vim.vim Upd:Тут нам пишут, что лучше прописать автокоманду в vimrc, чем изменять vim.vim: autocmd filetype vim :nmap :exec 'source '.bufname('%')<CR>Пожалуй, да, так лучше. | Friday, January 20th, 2006 | 1:35 pm [do_]
 |
Compiler-скрипт для bash(само собой, он ничего не компилирует, просто находит синтаксические ошибки):
" Vim Compiler File
if exists("current_compiler")
finish
endif
let current_compiler = "bash"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=bash\ -n\ %
CompilerSet errorformat=%f:\ line\ %l:\ %m
let &cpo = s:cpo_save
unlet s:cpo_save
| | Thursday, December 22nd, 2005 | 10:08 pm [do_]
 |
Генерация цветовой подсветки синтаксиса для LJ ..как известно, vim умеет генерить HTML-код для цветовой подсветки синтаксиса таким образом, что на итоговой страничке он выглядит так же, как в окне редактора. Всё бы хорошо, да вот незадача -- цвет фона и дефолтный цвет шрифа забиваются в атрибуты тэга <body>, и при копировании данного куска кода в LJ-пост эти цвета пропадают, что приводит порой к довольно неудобоваримым последствиям, если цвет фона редактора и цвет фона журнала не совпадают. Предлагаю небольшую функцию, которая решает данную проблему.
fun! MyToHtml(line1, line2)
exec a:line1.','.a:line2.'TOhtml'
%g/<body/normal k$dgg
%s/<body\s*\(bgcolor="\#[a-f0-9]\{6\}"\)\s*text=\("\#[a-f0-9]\{6\}"\)\s*>/<table><tr><td \1><font color=\2>/
%s#</body>\(.\|\n\)*</html>#</font></td></tr></table>#i
endf
command -range=% MyToHtml :call MyToHtml(<line1>,<line2>)
|
Теперь выделяете нужный кусок кода, и набираете :MyToHtml Ну, если ничего не выделить, то сгенерится страничка для всего буфера, само собой ;-/ ..а вот тот же кусок кода, сгенерённый TOhtml без всякой дополнительной обработки, для сравнения: fun! MyToHtml(line1, line2)
exec a:line1.','.a:line2.'TOhtml'
%g/<body/normal k$dgg
%s/<body\s*\(bgcolor="\#[a-f0-9]\{6\}"\)\s*text=\("\#[a-f0-9]\{6\}"\)\s*>/<table><tr><td \1><font color=\2>/
%s#</body>\(.\|\n\)*</html>#</font></td></tr></table>#i
endf
command -range=% MyToHtml :call MyToHtml(<line1>,<line2>)
я думаю, разница налицо ;-/ | Monday, December 5th, 2005 | 2:45 pm [do_]
 |
Скрипт для автоматической генерации switch для данного enum Работает так: наводишь на имя enum, или на его член, или на переменную (глобальную или член класса) типа enum, и набираем :EnumToSwitch.Либо из меню можно выбрать. Если ничего не найдётся, то скрипт переспросит ещё раз. ( скрипт )Upd: Забыл сказать -- работает он только для 7.0 версии, которая пока альфа. Там просто слишком много добавлено в области скриптования, в частности типы List и Dictionary, возможность посмотреть спиок тагов и QuickFix list |
|