Online video hd

Смотреть нежное видео

Официальный сайт audiophilesoft 24/7/365

Смотреть видео бесплатно

klen 20.04.2010 15:06

Мой конфигеще один .vimrc

Ну и я приобщусь:


  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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
" ------------------------------
" .vimrc klen <[email protected]>

" ------------------------------
" Setup

if !exists('s:loaded_my_vimrc')
" Don't reset twice on reloading - 'compatible' has SO many side effects.
set nocompatible " to use many extensions of Vim.

" Create special directory for backup and swap
if finddir($HOME.'/.data/') == ''
silent call mkdir($HOME.'/.data/')
endif

if finddir($HOME.'/.data/backup') == ''
silent call mkdir($HOME.'/.data/backup')
endif
set backup " make backup file and leave it around
set backupdir=$HOME/.data/backup " where to put backup file
set backupskip&
set backupskip+=svn-commit.tmp,svn-commit.<0-9>*.tmp

if finddir($HOME.'/.data/swap') == ''
silent call mkdir($HOME.'/.data/swap')
endif
set directory=$HOME/.data/swap " where to put swap file

if finddir($HOME.'/.data/sessions') == ''
silent call mkdir($HOME.'/.data/sessions')
endif
let g:session_dir = $HOME.'/.data/sessions'

endif

set hidden " не требовать сохранения буфера
set title " показывать имя файла в заголовке окна
set autoread " отслеживать изменения файлов
set visualbell " ошибки без писка
set modeline " читать параметры конфигурации из открытого файла
set magic " добавим магии

" Indent and tabulation
set autoindent " копирует отступ от предыдущей строки
set smartindent " включаем 'умную' автоматическую расстановку отступов
set expandtab " tab with spaces
set smarttab
set shiftwidth=4 " Размер сдвига при нажатии на клавиши << и >>
set softtabstop=4 " Табуляция 4 пробела
set shiftround " удалять лишние пробелы при отступе

" Backup and swap files
set history=400 " history length
set viminfo+=h " save history
set sessionoptions-=blank " dont save blank vindow
set sessionoptions-=options " dont save options

" Search options
set hlsearch " Подсветка результатов
set ignorecase " Игнорировать регистр букв при поиске
set incsearch " При поиске перескакивать на найденный текст в процессе набора строки
set smartcase " Игнорировать предыдущую опцию если в строке поиска есть буквы разного регистра

" Localization
set langmenu=none " Always use english menu
set keymap=russian-jcukenwin " Переключение раскладок клавиатуры по <C-^>
set iminsert=0 " Раскладка по умолчанию - английская
set imsearch=0 " Раскладка по умолчанию при поиске - английская
set spelllang=en,ru " Языки для проверки правописания
set encoding=utf-8
set fileencodings=utf-8,cp1251,koi8-r,cp866
set termencoding=utf-8

" Строка статуса и командная строка
set laststatus=2 " всегда отображать статусную строку для каждого окна
set shortmess=atToOI
set showcmd " show command
set showmode " show mode
set statusline=%&lt;%f%h%m " filename and modify flag
set statusline+=%#Error#%r%*%= " read only and separator
set statusline+=\ type=%Y
set statusline+=\ format=%{&fileformat;}
set statusline+=\ file=%{&fileencoding;}
set statusline+=\ enc=%{&encoding;}
set statusline+=\ %b\ 0x%B\ %l,%c%V\ %P
set wildmenu " использовать wildmenu ...
set wildcharm=&lt;TAB> " ... с авто-дополнением
set wildignore=*.pyc " Игнорировать pyc файлы
set cmdheight=2 " Command line height 2

" Отображение
set foldenable
set foldclose=all
set foldmethod=syntax
set foldnestmax=3 "deepest fold is 3 levels
set foldopen=block,insert,jump,mark,percent,quickfix,search,tag,undo " This commands open folds
set listchars=eol:$,tab:>-,trail:·,nbsp:~,extends:>,precedes:&lt;
set wrap " перенос строк
set linebreak " перенос строк по словам, а не по буквам
set showmatch " подсвечивать скобки
set winminheight=0 " минимальная высота окна
set winminwidth=0 " минимальная ширина окна
set lazyredraw " перерисовывать буфер менее плавно
set confirm " использовать диалоги вместо сообщений об ошибках
set shortmess=fimnrxoOtTI " использовать сокращённые диалоги

" Редактирование
set backspace=indent,eol,start
set clipboard+=unnamed " включаем X clipboard
set virtualedit=all " On virtualedit for all mode
set go+=a " выделение в виме копирует в буфер системы

" Скролл
set scrolloff=4 " 4 символа минимум под курсором
set sidescroll=4
set sidescrolloff=10 " 10 символов минимум под курсором при скролле

" Customization
syntax on
" enable mouse
if &term; =~ "xterm"
set t_Co=256 " set 256 colors
set background=dark " set background color to dark
colorscheme wombat256
set ttyfast

set mouse=a
set mousemodel=popup
endif
set mousehide " Hide the mouse when typing text

" Опции автодополнения
set completeopt=menu
set infercase " предлагать авто-дополнение на основе уже введённого регистра

" Перемещать курсор на следующую строку при нажатии на клавиши вправо-влево и пр.
set whichwrap=b,s,&lt;,>,<,>,l,h

" Подключение тег файла
set tags=tags

" set custom map leader to ','
let mapleader = ","

" Plugins setup
" Taglist
let Tlist_GainFocus_On_ToggleOpen = 1 " Jump to taglist window to open
let Tlist_Close_On_Select = 0 " Close taglist when a file or tag selected
let Tlist_Exit_OnlyWindow = 1 " If you are last kill your self
let Tlist_Show_One_File = 1 " Displaying tags for only one file
let Tlist_Use_Right_Window = 1 " split to rigt side of the screen
let Tlist_Compart_Format = 1 " Remove extra information and blank lines from taglist window
let Tlist_Compact_Format = 1 " Do not show help
let Tlist_Enable_Fold_Column = 0 " Don't Show the fold indicator column
let Tlist_WinWidth = 30 " Taglist win width
let Tlist_Display_Tag_Scope = 1 " Show tag scope next to the tag name
let Tlist_BackToEditBuffer = 0 " If no close on select, let the user choose back to edit buffer or not

let Grep_Skip_Dirs = 'RCS CVS SCCS .svn .git'
let Grep_Cygwin_Find = 1

" Comment with space
let NERDSpaceDelims = 1

" Enable extended matchit
runtime macros/matchit.vim

" ------------------------------
" Functions

" Подсветка текущей раскладки
fun! KeyMapHighlight()
if &iminsert; == 0
hi StatusLine ctermfg=White ctermbg=Blue
else
hi StatusLine ctermbg=Red
endif
endfun
call KeyMapHighlight()

" Биндинг клавиш"
fun! Map_ex_cmd(key, cmd)
execute "nmap ".a:key." " . ":".a:cmd."<CR>"
execute "cmap ".a:key." " . "<C-C>:".a:cmd."<CR>"
execute "imap ".a:key." " . "<C-O>:".a:cmd."<CR>"
execute "vmap ".a:key." " . "<Esc>:".a:cmd."<CR>gv"
endfun

" Биндинг переключалки опций
fun! Toggle_option(key, opt)
call Map_ex_cmd(a:key, "set ".a:opt."! ".a:opt."?")
endfun

" передвигаемся по вкладкам
fun! TabJump(direction)
let l:tablen=tabpagenr('$')
let l:tabcur=tabpagenr()
if a:direction=='left'
if l:tabcur>1
execute 'tabprevious'
endif
else
if l:tabcur!=l:tablen
execute 'tabnext'
endif
endif
endfun

" Sessions
fun! SessionRead(name)
let s:name = g:session_dir.'/'.a:name.'.session'
if getfsize(s:name) >= 0
echo "Reading " s:name
exe 'source '.s:name
exe 'silent! source '.getcwd().'/.vim/.vimrc'
else
echo 'Not find session: '.a:name
endif
endfun

fun! SessionInput(type)
let s:name = input(a:type.' session name? ')
if a:type == 'Save'
call SessionSave(s:name)
else
call SessionRead(s:name)
endif
endfun

fun! SessionSave(name)
exe "mks! " g:session_dir.'/'.a:name.'.session'
echo "Session" a:name "saved"
endfun

" Omni and dict completition
fun! AddWrapper()
if exists('&omnifunc;') && &omnifunc; != ''
return "\<C-X>\<C-o>\<C-p>"
else
return "\<C-N>"
endif
endfun
" ------------------------------
" Autocommands

if has("autocmd")

filetype plugin indent on

augroup vimrcEx
au!

" Подсветка раскладки
au WinEnter * :call KeyMapHighlight()

" Auto reload vim settins
au! bufwritepost rc.vim source ~/.vimrc

" Highlight insert mode
au InsertEnter * set cursorline
au InsertLeave * set nocursorline
" au InsertEnter * highlight CursorLine ctermbg=DarkBlue
" au InsertLeave * highlight CursorLine ctermbg=236

" New file templates
au BufNewFile * silent! 0r $HOME/.vim/templates/%:e.tpl

"Omni complete settings
" au FileType python set omnifunc=pythoncomplete#Complete
au FileType javascript set omnifunc=javascriptcomplete#CompleteJS
au FileType html set omnifunc=htmlcomplete#CompleteTags
au FileType css set omnifunc=csscomplete#CompleteCSS

" Autosave last session
if has('mksession')
au VimLeavePre * :call SessionSave('last')
endif

" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
" Also don't do it when the mark is in the first line, that is the default
" position when opening a file.
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") &lt;= line("$") |
\ exe "normal! g`\"" |
\ endif

augroup END

endif

" ------------------------------
" Hot keys
"

" Text navigation
imap &lt;M-l> &lt;Right>
imap &lt;M-h> &lt;Left>
imap &lt;M-j> &lt;Down>
imap &lt;M-k> &lt;Up>
nnoremap &lt;Space> &lt;C-d>

" Set paste mode for paste from terminal
nmap &lt;silent> ,p :set invpaste&lt;CR>:set paste?&lt;CR>
" Новая строка и выход из режима вставки
map &lt;S-O> i&lt;CR>&lt;ESC>
" Drop hightlight search result
map &lt;silent> &lt;leader>n :silent :nohls&lt;CR>
" Omni and dict completition on space
inoremap &lt;Nul> &lt;C-R>=AddWrapper()&lt;CR>
inoremap &lt;C-Space> &lt;C-R>=AddWrapper()&lt;CR>
" Fast scrool
nnoremap &lt;C-e> 3&lt;C-e>
nnoremap &lt;C-y> 3&lt;C-y>


" allow command line editing like emacs
cnoremap &lt;C-A> &lt;Home>
cnoremap &lt;C-B> &lt;Left>
cnoremap &lt;C-E> &lt;End>
cnoremap &lt;C-F> &lt;Right>
cnoremap &lt;C-N> &lt;Down>
cnoremap &lt;C-P> &lt;Up>

" Close cwindow
noremap &lt;silent> ,ll :ccl&lt;CR>
noremap &lt;silent> ,nn :cn&lt;CR>

" Window commands
noremap &lt;silent> ,h :wincmd h&lt;CR>
noremap &lt;silent> ,j :wincmd j&lt;CR>
noremap &lt;silent> ,k :wincmd k&lt;CR>
noremap &lt;silent> ,l :wincmd l&lt;CR>
noremap &lt;silent> ,sb :wincmd p&lt;CR>
noremap &lt;silent> ,cj :wincmd j&lt;CR>:close&lt;CR>
noremap &lt;silent> ,ck :wincmd k&lt;CR>:close&lt;CR>
noremap &lt;silent> ,ch :wincmd h&lt;CR>:close&lt;CR>
noremap &lt;silent> ,cl :wincmd l&lt;CR>:close&lt;CR>
noremap &lt;silent> ,cw :close&lt;CR>

" Buffer commands
noremap &lt;silent> ,bp :bp&lt;CR>
noremap &lt;silent> ,bn :bn&lt;CR>
noremap &lt;silent> ,bw :w&lt;CR>
noremap &lt;silent> ,bd :bd&lt;CR>
noremap &lt;silent> ,ls :ls&lt;CR>

" Delete all buffers
nmap &lt;silent> ,da :exec "1," . bufnr('$') . "bd"<cr>

" Search the current file for the word under the cursor and display matches
nmap &lt;silent> ,gw :Rgrep&lt;CR>

" Search the current file for the WORD under the cursor and display matches
" nmap <silent> ,gW
" \ :vimgrep /<C-r><C-a>/ %<CR>:ccl<CR>:cwin<CR><C-W>J:set nohls<CR>

" Работа с вкладками
" новая вкладка
call Map_ex_cmd("<C-W>t", ":tabnew")
" предыдущая вкладка
nmap Z :call TabJump('left')&lt;cr>
" следующая вкладка
nmap X :call TabJump('right')&lt;cr>
" первая вкладка
call Map_ex_cmd("<A-UP>", ":tabfirst")
" последняя вкладка
call Map_ex_cmd("<A-DOWN>", ":tablast")
" переместить вкладку в начало
nmap Q :tabmove 0&lt;cr>
" переместить вкладку в конец
call Map_ex_cmd("<C-DOWN>", ":tabmove")

" Переключение раскладок будет производиться по <C-F>
cmap &lt;silent> &lt;C-F> &lt;C-^>
imap &lt;silent> &lt;C-F> &lt;C-^>X&lt;Esc>:call KeyMapHighlight()&lt;CR>a&lt;C-H>
nmap &lt;silent> &lt;C-F> a&lt;C-^>&lt;Esc>:call KeyMapHighlight()&lt;CR>
vmap &lt;silent> &lt;C-F> &lt;Esc>a&lt;C-^>&lt;Esc>:call KeyMapHighlight()&lt;CR>gv

" Запуск/сокрытие плагина NERDTree
call Map_ex_cmd("<F1>", "NERDTree")

" Toggle cwindow
call Map_ex_cmd("<F2>", "cw")

" Запуск/сокрытие плагина Tlist
call Map_ex_cmd("<F3>", "TlistToggle")

call Toggle_option("<F6>", "list") " Переключение подсветки невидимых символов
call Toggle_option("<F7>", "wrap") " Переключение переноса слов

" Меню работы с (VCS plugin
map &lt;F9> :emenu VCS.&lt;TAB>
menu VCS.VimDiff :VCSVimDiff&lt;CR>
menu VCS.Commit :VCSCommit&lt;CR>
menu VCS.Revert :VCSRevert&lt;CR>
menu VCS.Add :VCSAdd&lt;CR>
menu VCS.Delete :VCSDelete&lt;CR>
menu VCS.Log :VCSLog&lt;CR>
menu VCS.Update :VCSUpdate&lt;CR>

" Закрытие файла
call Map_ex_cmd("<F10>", "qall")
call Map_ex_cmd("<S-F10>", "qall!")

" Список регистров
call Map_ex_cmd("<F11>", "reg")

" Список меток
call Map_ex_cmd("<F12>", "marks")

nmap &lt;Leader>ss :call SessionInput('Save')&lt;CR>
nmap &lt;Leader>sr :call SessionInput('Read')&lt;CR>
nmap &lt;Leader>sl :call SessionRead('last')&lt;CR>
com! Ssave :call SessionSave(&lt;args>)
com! Sread :call SessionRead(&lt;args>)

" Some gui settings
if has("gui_running")
" Set up the gui cursor to look nice
set guicursor=n-v-c:block-Cursor-blinkon0
set guicursor+=ve:ver35-Cursor
set guicursor+=o:hor50-Cursor
set guicursor+=i-ci:ver25-Cursor
set guicursor+=r-cr:hor20-Cursor
set guicursor+=sm:block-Cursor-blinkwait175-blinkoff150-blinkon175
set guioptions=ac
set guifont=Monaco\ 11
colorscheme wombat256
if !exists("g:vimrcloaded")
winpos 0 0
if ! &diff;
winsize 130 90
else
winsize 227 90
endif
let g:vimrcloaded = 1
endif
endif

if !exists('s:loaded_my_vimrc')
" Автозагрузка настроек из текущей директории
exe 'silent! source '.getcwd().'/.vim/.vimrc'
endif

let s:loaded_my_vimrc = 1 " Fin
set secure " must be written at the last. see :help 'secure'.




Тэги: vim vimrc конфиг
+ 6 -
Похожие Поделиться

xtavras 20.04.2010 16:15 #
+ 3 -
Сломал колесико мыши в Google Reader.
s2h 20.04.2010 17:48 #
+ 1 -
кат! раздери мой ридер!

я представляю себе, что вимом удобно пользоваться, в связи с этим вопрос, я состарюсь, если сейчас начну учится его использовать?
klen 21.04.2010 00:22 #
+ 0 -
Привыкнуть к vim можно и за неделю. Главное понимать зачем вам это нужно.
klen 20.04.2010 18:57 #
+ 0 -
Простите, думал спойлер это и есть кат.
shidoh 20.04.2010 21:06 #
+ 2 -
А vim с таким конфигом не поработит мой комп... а вместе с ним и остальную вселенную?
sattellite 21.04.2010 02:48 #
+ 0 -
А вот и мой конфиг. Немногим больше =)

" Summary: Plugin:
" * Разные настройки
" * Помощь: man/perldoc <F1> manpageview
" * Сохранение <F2>
" * Исполняемый файл <F3>
" * Вкл/Выкл вставку as-is <F4>
" * Перекодирование между KOI<->WIN<->DOS <F6>
" * Выход (если все файлы записаны) <F10>
" * Проверка на ошибки perl-скрипта при записи<F11>, <F12>
" * Переключение между файлами (NORMAL) <Tab>, <S-Tab>
" * Выделение текста <Shift>+Arrows
" <Shift>+<Home>,<End>
" * Запоминание выделенного текста <Ctrl>+<Insert>
" * Прокрутка текста без смещения курсора <Ctrl>+Arrows
" * Переход по tag-ссылкам <Alt>+Arrows
" * За|Рас-комментирование #, <Alt>+#, commentify
" <Ctrl>+C
" * Полноэкранный режим
" * Проверка правописания
" * Transparent editing of gpg encrypted files
" * Ускоренное открытие больших файлов
" * Подсветка синтаксиса
" * Разная мелочь для удобства


""" Разные настройки
""" (все переменные комментировать лень, так что - :help)
set number
set fileencodings=utf-8
set nobackup
set textwidth=74
set shiftwidth=4
set tabstop=8
set softtabstop=4
set nohlsearch
set incsearch
set nowrap
set sidescroll=1
set sidescrolloff=1
set wildmenu
set showcmd
set comments-=:%
set comments+=fb:*,fb:+,fb:.
set mouse=a
set completeopt-=menu
set spellfile=~/.vim/spell/en.ascii.add,~/.vim/spell/ru.koi8-r.add
" Есть два варианта indent-а: 'filetype' и 'smart', включать можно один из них
" filetype indent on
set smartindent
inoremap # X#
" Во избежание потенциальных проблем с безопасностью
set modelines=0

syntax sync fromstart

""" Поддержка командного режима при русской раскладке (аналог langmap для UTF-8)
map ё `
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х <
map ъ >
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map б ,
map ю .
map Ё ~
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >

""" Просмотр документации man/info/perldoc.
""" Plugin: manpageview + мой патч
""" <F1> вызывает man для текущего слова (в perl-скриптах вызывает perldoc)
""" :Man manpage
""" :Man infopage.i
""" :Man perlpage.pl
""" :help manpageview
""" Окна с документацией можно быстро закрыть: q .
""" Для использования из командной строки добавить в ~/.bashrc:
""" function man() { vim -c "Man $1 $2"; }
""" function info() { vim -c "Man $1.i"; }
let g:manpageview_pgm="LANG= man" " I hate russian man pages!!! :-E~
imap <F1> <Esc>:exe "Man ".expand("<cword>")<CR>
nmap <F1> :exe "Man ".expand("<cword>")<CR>
autocmd FileType vim :nmap <buffer> <F1> :exe "help ".expand("<cword>")<CR>
autocmd FileType vim :imap <buffer> <F1> <Esc>:exe "help ".expand("<cword>")<CR>
autocmd FileType perl :nmap <buffer> <F1> :exe "Man ".expand("<cword>").".pl"<CR>
autocmd FileType perl :imap <buffer> <F1> <Esc>:exe "Man ".expand("<cword>").".pl"<CR>
autocmd FileType perl :setlocal iskeyword=@,48-57,_,192-255,:
autocmd FileType man :nmap <buffer> q :call QuitHelp()<CR>
autocmd FileType info :nmap <buffer> q :call QuitHelp()<CR>
autocmd FileType help :nmap <buffer> q :call QuitHelp()<CR>
function QuitHelp()
bd
if bufname("%")==""
q
endif
endfunction


""" Сохранение: <F2>
nmap <F2> :w<CR>
vmap <F2> <ESC>:w<CR>
imap <F2> <C-O>:w<CR>
cmap <F2> <Esc><Esc>:w<CR>


""" Исполняемый файл: <F3>
nmap <F3> :silent !chmod a+x %<CR>
vmap <F3> <ESC>:silent !chmod a+x %<CR>
imap <F3> <C-O>:silent !chmod a+x %<CR>
cmap <F3> <Esc><Esc>:silent !chmod a+x %<CR>


""" Вкл/Выкл вставку as-is: <F4>
""" в NORMAL: i и <Insert> всегда входят в INSERT с nopaste
""" в NORMAL: <F4> входит в INSERT с paste
""" в INSERT: <F4> переключает paste/nopaste
nnoremap <F4> :set paste<CR>i
nnoremap i :set nopaste<CR>i
nnoremap <Insert> :set nopaste<CR><Insert>
imap <F4> <C-O>:set paste<CR>
set pastetoggle=<xF4>


""" Перекодирование файла между русскими кодировками: <F6>
""" (кодировки выбираются через меню)
set wcm=<Tab>
menu Encoding.Koi->UTF :silent %!iconv -c -f koi8-r -t utf-8 <CR>
menu Encoding.UTF->Koi :silent %!iconv -c -f utf-8 -t koi8-r<CR>
menu Encoding.Win->UTF :silent %!iconv -c -f cp1251 -t utf-8 <CR>
menu Encoding.UTF->Win :silent %!iconv -c -f utf-8 -t cp1251<CR>
menu Encoding.Dos->UTF :silent %!iconv -c -f cp866 -t utf-8 <CR>
menu Encoding.UTF->Dos :silent %!iconv -c -f utf-8 -t cp866 <CR>
map <F6> :emenu Encoding.<TAB>


""" Выход (если файл записан) <F10>
nmap <F10> :qa<CR>
vmap <F10> <Esc>:qa<CR>
imap <F10> <Esc>:qa<CR>
cmap <F10> <Esc><Esc>:qa<CR>


""" Проверка на ошибки perl-скрипта при записи на диск
""" Переход к следующей/предыдущей ошибке <F12>/<F11>
set makeprg=$VIMRUNTIME/tools/efm_perl.pl\ -c\ %\ $*
autocmd FileType limbo setlocal makeprg=<<\ %\ ==\ *.b\ >>\ &&\ limbo\ -g\ -w\ %
set errorformat=%f:%l:%m
"nmap <F11> :cprevious<CR>
"nmap <F12> :cnext<CR>
"imap <F11> <C-O>:cprevious<CR>
"imap <F12> <C-O>:cnext<CR>
nmap <F11> :call QFprevorclose()<CR>
nmap <F12> :call QFnextorclose()<CR>
imap <F11> <C-O>:call QFprevorclose()<CR>
imap <F12> <C-O>:call QFnextorclose()<CR>
autocmd BufWritePost * call Make()
function Make()
if &ft == "perl" || &ft == "limbo"
silent! make
cwindow 3
" при открытии/обновлении quickfix window глючит подсветка
if bufwinnr("$") > 1
redraw!
endif
endif
endfunction
function QFprevorclose()
try
cprevious
catch
cclose
endtry
endfunction
function QFnextorclose()
try
cnext
catch
cclose
endtry
endfunction


""" Переключение между открытыми файлами: <Tab>, <Shift>+<Tab>
"nmap <Tab> :cclose<CR>:tabn<CR>
"nmap <S-Tab> :cclose<CR>:tabp<CR>
"set hidden
nmap <Tab> :tabn<CR>
nmap <S-Tab> :tabp<CR>
set hidden

""" Запоминание выделенного текста (в буфер VIM и в X Clipboad): Ctrl-Insert
""" Вырезание выделенного текста (в буфер VIM и в X Clipboad): Shift-Del
vmap <silent> <Esc><2;5~ y:call system("echo -n \"".escape(getreg(""),"\\\"$`")."\" \| xclip")<CR>gvv
vmap <silent> <Esc><3;2~ d:call system("echo -n \"".escape(getreg(""),"\\\"$`")."\" \| xclip")<CR>


""" Переход по tag-ссылкам: <Alt>+Arrows
autocmd FileType man let b:tag_regex="\\S\\+(.)"
autocmd FileType help let b:tag_regex="|\\S\\+|\\|'\\S\\+'\\|{\\S\\+}"
autocmd FileType perl let b:tag_regex="\\<\\w\\+\\(::\\|(\\)"
nmap <Esc><1;3A :call search(b:tag_regex,"bW")<CR>
nmap <Esc><1;3B :call search(b:tag_regex,"W")<CR>
nmap <Esc><1;3C <C->>
nmap <Esc><1;3D <C-T>


""" Проверка правописания
autocmd FileType mail,text,note,asciidoc,html,vim,perl,limbo,changelog setlocal spell spelllang=en,ru


" Transparent editing of gpg encrypted files.
" By Wouter Hanegraaff <[email protected]>
" Folding permanence added by me.
augroup encrypted
au!

" First make sure nothing is written to ~/.viminfo while editing
" an encrypted file.
autocmd BufReadPre,FileReadPre *.gpg set viminfo=
" We don't want a swap file, as it writes unencrypted data to disk
autocmd BufReadPre,FileReadPre *.gpg set noswapfile
" Switch to binary mode to read the encrypted file
autocmd BufReadPre,FileReadPre *.gpg set bin
autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2
autocmd BufReadPost,FileReadPost *.gpg '<,'>!gpg --decrypt 2> /dev/null
" Switch to normal mode for editing
autocmd BufReadPost,FileReadPost *.gpg set nobin
autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save
autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r")

" Save&Restore folding
autocmd BufReadPost,FileReadPost *.gpg loadview
autocmd BufWritePre,FileWritePre *.gpg mkview

" Convert all text to encrypted text before writing
autocmd BufWritePre,FileWritePre *.gpg '<,'>!gpg --default-recipient-self -ae 2>/dev/null
" Undo the encryption so we are back in the normal text, directly
" after the file has been written.
autocmd BufWritePost,FileWritePost *.gpg u

autocmd BufWritePost,FileWritePost *.gpg loadview
augroup END


""" Ускоренное открытие больших файлов
""" (можно ограничиться простым syntax off, но так вроде правильнее)
let g:LargeFile = "3000000"
autocmd BufReadPre * call FasterLargeFiles()
function FasterLargeFiles()
let f=expand("<afile>")
if exists("g:LargeFile") && getfsize(f) > g:LargeFile
set ei=FileType
setlocal noswf bh=unload bt=nowrite ro
let f=escape(substitute(f,'','/','g'),' ')
augroup LargeFile
au!
exe "au LargeFile BufEnter ". f ." set ul=-1 ei=FileType"
exe "au LargeFile BufLeave ". f ." set ul=1000 ei="
exe "au LargeFile BufUnload ". f ." au! LargeFile * ". f
augroup END
endif
endfunction


""" Подсветка синтаксиса
colorscheme desert256
"colorscheme inkpot
"colorscheme jellybeans


""" Нумерация строк
set number

""" Подсветка синтаксиса: perl
let perl_include_pod=1
" кавычки подсвечивать не как строку, а как if, while, ...
let perl_string_as_statement=1
" подсвечивать имя пакета
let perl_want_scope_in_variables=1
" @{ $qwe{asd}<123> }
let perl_extended_vars=1

""" Подсветка синтаксиса: iCGI
" let icgiperl_want_scope_in_variables=1
let icgiperl_extended_vars=1
let icgiperl_string_as_statement=1


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""" "
""" Разная мелочь для удобства "
""" "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


""" Выбор типа для 'странных' файлов
autocmd BufNewFile,BufRead *.note set ft=note
autocmd BufNewFile,BufRead *TODO* set ft=note
autocmd BufNewFile,BufRead *TechSpec* set ft=note
autocmd BufNewFile,BufRead *BUG* set ft=note
autocmd BufNewFile,BufRead *vim*/doc/*.txt set ft=help
autocmd BufNewFile,BufRead *.opera/cache* set ft=html
autocmd BufNewFile,BufRead *.htmlt set ft=html
autocmd BufNewFile,BufRead *.html-* set ft=html
autocmd BufNewFile,BufRead *.cgi-* set ft=perl
autocmd BufNewFile,BufRead *.pl-* set ft=perl
autocmd BufNewFile,BufRead *.pm-* set ft=perl
autocmd BufNewFile,BufRead *.t set ft=perl
autocmd BufNewFile,BufRead *.b set ft=limbo
autocmd BufNewFile,BufRead *.m set ft=limbo
autocmd BufNewFile,BufRead *.txt set ft=asciidoc


""" Programming
autocmd FileType perl,sh setlocal formatoptions-=t
autocmd FileType limbo setlocal tabstop=9 softtabstop=9 shiftwidth=9


""" Editing asciidoc
nnoremap Q gq}
autocmd BufRead,BufNewFile *.txt setlocal autoindent expandtab

""" Tags
" Поиск tags везде где дотянусь в пределах типового веб-проекта
set tags+=./.lib/.tmp/tags,./../.lib/.tmp/tags,./../../.lib/.tmp/tags,./../../../.lib/.tmp/tags,./../../../../.lib/.tmp/tags


""" Make
" Использование вспомогательных скриптов при проверке синтаксиса некоторых
" perl-скриптов для подгрузки всех нужных (для проверяемого) модулей и
" файлов, плюс дополнительная фильтрация неактуальных warning-ов
"autocmd BufRead */t/* setlocal makeprg=check_tests\ %\ $*
"autocmd BufRead /var/www/*/html/* if &ft == "perl"|setlocal makeprg=check_project\ %\ $*|endif
"autocmd BufRead */*-*/lib/*.pm setlocal makeprg=check_module\ %\ $*

""" Патчи
autocmd BufRead *.patch exe "FoldMatching ^diff -1" | normal 1G


""" Почта
""" (при вводе письма перейти сразу на вторую пустую строку и в режим вставки)
autocmd BufRead /tmp/mutt* /^$/|/^$/|set fo=tcrq|startinsert


""" Abbr
" Вставлять дату/время.
"iabbr DATE <c-r>=strftime("%d/%m/%y %H:%M:%S")<CR>
iabbr DATE <c-r>=strftime("%d/%m/%y")<CR>
iabbr DATEen <Esc>:let lc_time_=v:lc_time<CR>:language time C<CR>i<Right><c-r>=strftime("%a %b %d %X %Z %Y")<CR><Esc>:execute "language time " . lc_time_<CR>:unlet lc_time_<CR>a
" Кракозябры для iCGI
func Eatchar(pat)
let c = nr2char(getchar())
return (c =~ a:pat) ? '' : c
endfunc
autocmd BufNewFile,BufRead *.html call HTML_Abbr()
fun! HTML_Abbr()
" iabbr <buffer> if if () { -->
<!--& } --><Up><Left><C-R>=Eatchar('\s')<CR>
" iabbr <buffer> for for () { -->
<!--& } --><Up><C-R>=Eatchar('\s')<CR>
iabbr <buffer> @~ @~~@<Left><Left><C-R>=Eatchar('\s')<CR>
iabbr <buffer> ^~ ^~~^<Left><Left><C-R>=Eatchar('\s')<CR>
iabbr <buffer> #~ #~~#<Left><Left><C-R>=Eatchar('\s')<CR>
iabbr <buffer> <a <a href=""></a><Left><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
endfun


""" Если нажат <Enter> - наверное это не зря? Наверное что-то добавить хотца...
nmap <Enter> A<Enter>


""" Фильтр для удаления из html всех тегов кроме тегов форм: :ShowForm
function! s:ShowForm()
%!perl -p0e 'use Regexp::Common "RealHTML"; $_=join"\n",map{s/\s*$//;$_}/<\/?(?:form|input|select|option|textarea|button)${RE{">"}}<^<>*/ig'
endfunction
command! ShowForm :call <SID>ShowForm()


""" Определение текущей группы подсветки: \hi и \hlt
map \hi :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR>


""" Шаблоны для новых файлов
"au BufNewFile *.pl 0r~/.skel.pl | exe "normal G" | startinsert


""" Копирование между разными VIM-процессами
""" (не нужно - <Ctrl>+<Insert> и <Shift>+<Insert> гораздо удобнее!)
"nmap \x :r ${HOME}/.vimxfer<CR>
"vmap \x :w! ${HOME}/.vimxfer<CR>


""" Автоматически сворачивать perl-процедуры (подглюкивает на моих клозурах)
" let perl_fold=1


""" Поиск в текущем окне по perl-овскому регулярному выражению.
""" Выражение вводится в виде /regexhere/si или !regexhere! и т.п.
""" В выражении можно использовать $t как сокращение для <^>>*>\s*
""" Для того, чтобы помимо установки курсора на начало совпадения текст
""" совпадения был выделен цветом нужно раскомментировать VIM::DoCommand()
""" и настроить цвет в строке 'hi perlre ...'
""" Для поиска от курсора нажать <F7>. Для повторного поиска <F7><Enter>.
""" Передвижение курсора между началом совпадения perl-овского регулярного
""" выражения и концом совпадения (Shift+F7).
"nmap <F7> :call PerlSearch()<cr>
"nmap <S-F7> :call PerlSearchSE()<cr>
"hi perlre ctermbg=white ctermfg=blue
"function! PerlSearch()
"perl <<EOF
" sub getxy {
" (my $s=substr($_<0>,0,$_<1>))=~/.*\n/s;
" (1+($s=~tr/\n//), $_<1>-$+<0>)
" }
" sub re_start_end {
" my $buf=join("\n",$curbuf->Get(1..$curbuf->Count()));
" my($y,$x)=$curwin->Cursor();
" $y--; $x++;
" $buf=~/(?:.*\n){$y}.{$x}/g;
" return unless $buf=~/($_<0>)/g;
" my ($s,$e)=($-<0>,$+<0>-1);
" $e-- if substr($buf,$e,1) eq "\n";
" getxy($buf,$s), getxy($buf,$e)
" }
" $PerlSearch::regex = VIM::Eval('input("=~ ","'."\Q$PerlSearch::regex\E".'")');
" my $t = qr/<^>>*>\s*/;
" return VIM::Msg("No matches found","Error")
" unless my @c = re_start_end(eval 'qr'.$PerlSearch::regex);
" #VIM::DoCommand('match perlre /\%'.$c<0>.'l\%'.($c<1>+1).'c\_.*'.
" # '\%'.$c<2>.'l\%'.($c<3>+2).'c/');
" @PerlSearch::c = @c;
" $curwin->Cursor($c<0>,$c<1>);
"EOF
"endfunction
"function! PerlSearchSE()
"perl <<EOF
" @PerlSearch::c = @PerlSearch::c<2,3,0,1>;
" $curwin->Cursor($PerlSearch::c<0>,$PerlSearch::c<1>);
"EOF
"endfunction


""" Пример использования perl:
" First, a customizable word count
" :perl $count = 0
" :perldo $count += split /<;_<> >/, $_
" :perl VIM::Msg($count)
" Then, a special sorting routine, getting text from the editor's current
" buffer and writing back to it:
" :perl @lines = sort {$a <=> $b} $curbuf->Get(1 .. 15)
" :perl $curbuf->Set(1, @lines)
" Or, in short,
" :perl $curbuf->Set(1, sort {$a <=> $b} $curbuf->Get(1 .. 15))


""" Отладка событий
"autocmd BufNewFile * echo "BufNewFile"." at ".expand("<afile>")
"autocmd BufReadPre * echo "BufReadPre"." at ".expand("<afile>")
"autocmd BufRead * echo "BufRead"." at ".expand("<afile>")
"autocmd BufReadPost * echo "BufReadPost"." at ".expand("<afile>")
""autocmd BufReadCmd * echo "BufReadCmd"." at ".expand("<afile>")
"autocmd BufFilePre * echo "BufFilePre"." at ".expand("<afile>")
"autocmd BufFilePost * echo "BufFilePost"." at ".expand("<afile>")
"autocmd FileReadPre * echo "FileReadPre"." at ".expand("<afile>")
"autocmd FileReadPost * echo "FileReadPost"." at ".expand("<afile>")
""autocmd FileReadCmd * echo "FileReadCmd"." at ".expand("<afile>")
"autocmd FilterReadPre * echo "FilterReadPre"." at ".expand("<afile>")
"autocmd FilterReadPost * echo "FilterReadPost"." at ".expand("<afile>")
"autocmd FileType * echo "FileType"." at ".expand("<afile>")
"autocmd Syntax * echo "Syntax"." at ".expand("<afile>")
"autocmd StdinReadPre * echo "StdinReadPre"." at ".expand("<afile>")
"autocmd StdinReadPost * echo "StdinReadPost"." at ".expand("<afile>")
"autocmd BufWrite * echo "BufWrite"." at ".expand("<afile>")
"autocmd BufWritePre * echo "BufWritePre"." at ".expand("<afile>")
"autocmd BufWritePost * echo "BufWritePost"." at ".expand("<afile>")
""autocmd BufWriteCmd * echo "BufWriteCmd"." at ".expand("<afile>")
"autocmd FileWritePre * echo "FileWritePre"." at ".expand("<afile>")
"autocmd FileWritePost * echo "FileWritePost"." at ".expand("<afile>")
""autocmd FileWriteCmd * echo "FileWriteCmd"." at ".expand("<afile>")
"autocmd FileAppendPre * echo "FileAppendPre"." at ".expand("<afile>")
"autocmd FileAppendPost * echo "FileAppendPost"." at ".expand("<afile>")
""autocmd FileAppendCmd * echo "FileAppendCmd"." at ".expand("<afile>")
"autocmd FilterWritePre * echo "FilterWritePre"." at ".expand("<afile>")
"autocmd FilterWritePost * echo "FilterWritePost"." at ".expand("<afile>")
"autocmd FileChangedShell * echo "FileChangedShell"." at ".expand("<afile>")
"autocmd FileChangedRO * echo "FileChangedRO"." at ".expand("<afile>")
"autocmd FocusGained * echo "FocusGained"." at ".expand("<afile>")
"autocmd FocusLost * echo "FocusLost"." at ".expand("<afile>")
""autocmd FuncUndefined * echo "FuncUndefined"." at ".expand("<afile>")
""autocmd CursorHold * echo "CursorHold"." at ".expand("<afile>")
"autocmd BufEnter * echo "BufEnter"." at ".expand("<afile>")
"autocmd BufLeave * echo "BufLeave"." at ".expand("<afile>")
"autocmd BufWinEnter * echo "BufWinEnter"." at ".expand("<afile>")
"autocmd BufWinLeave * echo "BufWinLeave"." at ".expand("<afile>")
"autocmd BufUnload * echo "BufUnload"." at ".expand("<afile>")
"autocmd BufHidden * echo "BufHidden"." at ".expand("<afile>")
"autocmd BufNew * echo "BufNew"." at ".expand("<afile>")
"autocmd BufAdd * echo "BufAdd"." at ".expand("<afile>")
"autocmd BufCreate * echo "BufCreate"." at ".expand("<afile>")
"autocmd BufDelete * echo "BufDelete"." at ".expand("<afile>")
"autocmd BufWipeout * echo "BufWipeout"." at ".expand("<afile>")
"autocmd WinEnter * echo "WinEnter"." at ".expand("<afile>")
"autocmd WinLeave * echo "WinLeave"." at ".expand("<afile>")
"autocmd CmdwinEnter * echo "CmdwinEnter"." at ".expand("<afile>")
"autocmd CmdwinLeave * echo "CmdwinLeave"." at ".expand("<afile>")
""autocmd GUIEnter * echo "GUIEnter"." at ".expand("<afile>")
""autocmd VimEnter * echo "VimEnter"." at ".expand("<afile>")
""autocmd VimLeavePre * echo "VimLeavePre"." at ".expand("<afile>")
""autocmd VimLeave * echo "VimLeave"." at ".expand("<afile>")
""autocmd EncodingChanged * echo "EncodingChanged"." at ".expand("<afile>")
""autocmd FileEncoding * echo "FileEncoding"." at ".expand("<afile>")
""autocmd RemoteReply * echo "RemoteReply"." at ".expand("<afile>")
""autocmd TermChanged * echo "TermChanged"." at ".expand("<afile>")
""autocmd TermResponse * echo "TermResponse"." at ".expand("<afile>")
""autocmd User * echo "User"." at ".expand("<afile>")

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн