forked from IvanAnishchuk/fb2-vim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfb2.vim
62 lines (60 loc) · 2.48 KB
/
fb2.vim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
unlet! did_load_ftplugin
source $VIMRUNTIME/ftplugin/xml.vim
setlocal softtabstop=1
setlocal shiftwidth=1
setlocal formatoptions=
" Чтобы видеть неразрывные пробелы:
setlocal listchars=nbsp:~
setlocal list
" Валидация FB2 клавишей F9.
let fbschema=expand("<sfile>:p:h")."/schema/FictionBook.xsd"
let mkprg="xmllint --nonet --noout --schema "
let mkprg=mkprg.fbschema." \"%\"\ 2>&1 "
" Для neovim раскомментировать следующую строку
let mkprg=mkprg."\\| sed s,{http://www.gribuser.ru/xml/fictionbook/2.0},,g; "
" Раскраска отчета (только для vim, с neovim не работает)
"let mkprg=mkprg."\\| sed 's={http://www.gribuser.ru/xml/fictionbook/2.0}==g; s=^.* validates=\e[32m&\e[0m=g; s=^.* fails to validate=\e[31m&\e[0m=g'"
execute "setlocal makeprg=".escape(mkprg, ' "|\')
set grepprg=grep\ -nH\ $*
setlocal errorformat=%E%f:%l:\ parser\ error\ :\ %m,%-Z%p^,%-C%.%#,
\%E%f:%l:\ error\ :\ %m,
\%W%f:%l:\ warning\ :\ %m,
\%E%f:%l:\ validity\ error\ :\ %m,
\%W%f:%l:\ validity\ warning\ :\ %m,
\%-Z%p^,
\%f:%l:\ element\ %.%#:\ Schemas\ validity\ error\ :\ %m,
\%-G%.%#
nmap <F9> :w<C-M>:make<C-M>
imap <F9> :w<C-M>:make<C-M>
" Ввод длинного как "--" (два тире подряд).
"imap -- -N
" Ввод открывающей и закрывающей кавычки-ёлочки как "' и "" соответственно.
"imap ' <<
"imap >>
" Ввод многоточия как "..." (три точки подряд).
"digraph ., 8230
"imap ... .,
" Ввод открывающей и закрывающей кавычки-лапки как '' и '" соответственно.
"imap '' :9
"imap ' 6
" Ввод неразрывного пробела как " " (два пробела подряд).
"imap NS
" Ввод апострофа как `.
"imap ` '9
" Добавление ударения к букве:
"nmap _a a=nr2char(0x301)
"nmap _ф _a
" Разрыв абзаца (_p)
"nmap _p d1h:if @" != " "execute "normal ul"endifi
"nmap _з _p
" Слияние двух абзацев (_P)
nmap _P ^/\c<\/p>4s l3x:if tolower(@") != ""execute "normal u"endif
nmap _З _P
" Заключение текста в emphasis и strong (_e, _s).
vmap _e c<emphasis></emphasis><Esc>10hP
vmap _у _e
vmap _s c<strong></strong><Esc>8hP
vmap _ы _s
vmap _= c<p></p><Esc>3hP
" Разбивка b64-картинки на строки по 60 символов (_b)
nmap _b ://s,\c[0-9a-z\/+]\{60\},&,g:noh