Linux web-conference.aiou.edu.pk 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 172.16.50.247 | : 18.226.104.222
Cant Read [ /etc/named.conf ]
7.4.3-4ubuntu2.28
appadmin
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
vim /
vim81 /
ftplugin /
[ HOME SHELL ]
Name
Size
Permission
Action
8th.vim
733
B
-rw-r--r--
README.txt
869
B
-rw-r--r--
a2ps.vim
470
B
-rw-r--r--
aap.vim
716
B
-rw-r--r--
abap.vim
800
B
-rw-r--r--
abaqus.vim
3.31
KB
-rw-r--r--
ada.vim
6.26
KB
-rw-r--r--
alsaconf.vim
438
B
-rw-r--r--
ant.vim
1.31
KB
-rw-r--r--
arch.vim
431
B
-rw-r--r--
art.vim
410
B
-rw-r--r--
aspvbs.vim
1.87
KB
-rw-r--r--
automake.vim
337
B
-rw-r--r--
awk.vim
411
B
-rw-r--r--
bash.vim
474
B
-rw-r--r--
bdf.vim
449
B
-rw-r--r--
bst.vim
333
B
-rw-r--r--
btm.vim
316
B
-rw-r--r--
bzl.vim
2.99
KB
-rw-r--r--
c.vim
1.92
KB
-rw-r--r--
calendar.vim
462
B
-rw-r--r--
cdrdaoconf.vim
383
B
-rw-r--r--
cfg.vim
388
B
-rw-r--r--
ch.vim
472
B
-rw-r--r--
changelog.vim
8.68
KB
-rw-r--r--
chicken.vim
1.62
KB
-rw-r--r--
clojure.vim
3.74
KB
-rw-r--r--
cmake.vim
867
B
-rw-r--r--
cobol.vim
9.31
KB
-rw-r--r--
conf.vim
434
B
-rw-r--r--
config.vim
1.24
KB
-rw-r--r--
context.vim
4.26
KB
-rw-r--r--
cpp.vim
288
B
-rw-r--r--
crm.vim
414
B
-rw-r--r--
cs.vim
802
B
-rw-r--r--
csc.vim
734
B
-rw-r--r--
csh.vim
1.59
KB
-rw-r--r--
css.vim
528
B
-rw-r--r--
cucumber.vim
5
KB
-rw-r--r--
cvsrc.vim
399
B
-rw-r--r--
debchangelog.vim
11.18
KB
-rw-r--r--
debcontrol.vim
1.8
KB
-rw-r--r--
denyhosts.vim
383
B
-rw-r--r--
dictconf.vim
434
B
-rw-r--r--
dictdconf.vim
435
B
-rw-r--r--
diff.vim
355
B
-rw-r--r--
dircolors.vim
431
B
-rw-r--r--
docbk.vim
530
B
-rw-r--r--
dockerfile.vim
356
B
-rw-r--r--
dosbatch.vim
810
B
-rw-r--r--
dosini.vim
458
B
-rw-r--r--
dtd.vim
1.1
KB
-rw-r--r--
dtrace.vim
1.12
KB
-rw-r--r--
dune.vim
506
B
-rw-r--r--
eiffel.vim
3.99
KB
-rw-r--r--
elinks.vim
436
B
-rw-r--r--
erlang.vim
1.77
KB
-rw-r--r--
eruby.vim
4.6
KB
-rw-r--r--
eterm.vim
470
B
-rw-r--r--
falcon.vim
1.31
KB
-rw-r--r--
fetchmail.vim
428
B
-rw-r--r--
flexwiki.vim
1.83
KB
-rw-r--r--
fortran.vim
4.58
KB
-rw-r--r--
framescript.vim
780
B
-rw-r--r--
fvwm.vim
390
B
-rw-r--r--
gdb.vim
293
B
-rw-r--r--
git.vim
1.32
KB
-rw-r--r--
gitcommit.vim
2.18
KB
-rw-r--r--
gitconfig.vim
376
B
-rw-r--r--
gitrebase.vim
1.42
KB
-rw-r--r--
gitsendemail.vim
157
B
-rw-r--r--
go.vim
365
B
-rw-r--r--
gpg.vim
433
B
-rw-r--r--
gprof.vim
939
B
-rw-r--r--
groovy.vim
343
B
-rw-r--r--
group.vim
425
B
-rw-r--r--
grub.vim
434
B
-rw-r--r--
haml.vim
1.84
KB
-rw-r--r--
hamster.vim
1.88
KB
-rw-r--r--
haskell.vim
551
B
-rw-r--r--
help.vim
471
B
-rw-r--r--
hgcommit.vim
363
B
-rw-r--r--
hog.vim
1.36
KB
-rw-r--r--
hostconf.vim
383
B
-rw-r--r--
hostsaccess.vim
436
B
-rw-r--r--
html.vim
1.59
KB
-rw-r--r--
htmldjango.vim
331
B
-rw-r--r--
indent.vim
454
B
-rw-r--r--
initex.vim
1005
B
-rw-r--r--
ishd.vim
1.23
KB
-rw-r--r--
j.vim
3.31
KB
-rw-r--r--
java.vim
1.65
KB
-rw-r--r--
javascript.vim
1.02
KB
-rw-r--r--
javascriptreact.vim
111
B
-rw-r--r--
jproperties.vim
321
B
-rw-r--r--
json.vim
360
B
-rw-r--r--
jsp.vim
1.96
KB
-rw-r--r--
kconfig.vim
703
B
-rw-r--r--
kwt.vim
851
B
-rw-r--r--
ld.vim
470
B
-rw-r--r--
less.vim
502
B
-rw-r--r--
lftp.vim
434
B
-rw-r--r--
libao.vim
440
B
-rw-r--r--
limits.vim
436
B
-rw-r--r--
liquid.vim
1.85
KB
-rw-r--r--
lisp.vim
769
B
-rw-r--r--
logcheck.vim
453
B
-rw-r--r--
loginaccess.vim
442
B
-rw-r--r--
logindefs.vim
440
B
-rw-r--r--
logtalk.dict
3.02
KB
-rw-r--r--
logtalk.vim
416
B
-rw-r--r--
lprolog.vim
1.25
KB
-rw-r--r--
lua.vim
973
B
-rw-r--r--
m4.vim
426
B
-rw-r--r--
mail.vim
1.08
KB
-rw-r--r--
mailaliases.vim
383
B
-rw-r--r--
mailcap.vim
434
B
-rw-r--r--
make.vim
1.02
KB
-rw-r--r--
man.vim
6.36
KB
-rw-r--r--
manconf.vim
444
B
-rw-r--r--
markdown.vim
1.15
KB
-rw-r--r--
matlab.vim
798
B
-rw-r--r--
meson.vim
404
B
-rw-r--r--
mf.vim
3.17
KB
-rw-r--r--
mma.vim
366
B
-rw-r--r--
modconf.vim
477
B
-rw-r--r--
mp.vim
3.63
KB
-rw-r--r--
mplayerconf.vim
472
B
-rw-r--r--
mrxvtrc.vim
798
B
-rw-r--r--
msmessages.vim
1.11
KB
-rw-r--r--
muttrc.vim
467
B
-rw-r--r--
nanorc.vim
447
B
-rw-r--r--
neomuttrc.vim
532
B
-rw-r--r--
netrc.vim
428
B
-rw-r--r--
nroff.vim
217
B
-rw-r--r--
nsis.vim
1.29
KB
-rw-r--r--
objc.vim
296
B
-rw-r--r--
ocaml.vim
23.09
KB
-rw-r--r--
occam.vim
1.27
KB
-rw-r--r--
pamconf.vim
433
B
-rw-r--r--
pascal.vim
667
B
-rw-r--r--
passwd.vim
424
B
-rw-r--r--
pdf.vim
2.55
KB
-rw-r--r--
perl.vim
2.78
KB
-rw-r--r--
perl6.vim
2.47
KB
-rw-r--r--
php.vim
2.75
KB
-rw-r--r--
pinfo.vim
435
B
-rw-r--r--
plaintex.vim
1.12
KB
-rw-r--r--
postscr.vim
1006
B
-rw-r--r--
procmail.vim
479
B
-rw-r--r--
prolog.vim
440
B
-rw-r--r--
protocols.vim
457
B
-rw-r--r--
pyrex.vim
766
B
-rw-r--r--
python.vim
7.92
KB
-rw-r--r--
qf.vim
508
B
-rw-r--r--
quake.vim
439
B
-rw-r--r--
r.vim
858
B
-rw-r--r--
racc.vim
449
B
-rw-r--r--
readline.vim
438
B
-rw-r--r--
registry.vim
740
B
-rw-r--r--
reva.vim
709
B
-rw-r--r--
rhelp.vim
738
B
-rw-r--r--
rmd.vim
1.77
KB
-rw-r--r--
rnc.vim
431
B
-rw-r--r--
rnoweb.vim
1.01
KB
-rw-r--r--
rpl.vim
620
B
-rw-r--r--
rrst.vim
1.54
KB
-rw-r--r--
rst.vim
1.34
KB
-rw-r--r--
ruby.vim
16.69
KB
-rw-r--r--
rust.vim
6.42
KB
-rw-r--r--
sass.vim
607
B
-rw-r--r--
sbt.vim
347
B
-rw-r--r--
scala.vim
1.12
KB
-rw-r--r--
scheme.vim
1.36
KB
-rw-r--r--
screen.vim
436
B
-rw-r--r--
scss.vim
239
B
-rw-r--r--
sensors.vim
455
B
-rw-r--r--
services.vim
452
B
-rw-r--r--
setserial.vim
439
B
-rw-r--r--
sgml.vim
1.18
KB
-rw-r--r--
sh.vim
1.17
KB
-rw-r--r--
sieve.vim
469
B
-rw-r--r--
slpconf.vim
477
B
-rw-r--r--
slpreg.vim
476
B
-rw-r--r--
slpspi.vim
467
B
-rw-r--r--
spec.vim
5.71
KB
-rw-r--r--
sql.vim
21.11
KB
-rw-r--r--
sshconfig.vim
441
B
-rw-r--r--
sudoers.vim
438
B
-rw-r--r--
svg.vim
1.17
KB
-rw-r--r--
sysctl.vim
453
B
-rw-r--r--
systemd.vim
158
B
-rw-r--r--
systemverilog.vim
239
B
-rw-r--r--
tcl.vim
1002
B
-rw-r--r--
tcsh.vim
1.18
KB
-rw-r--r--
terminfo.vim
430
B
-rw-r--r--
tex.vim
1.6
KB
-rw-r--r--
text.vim
498
B
-rw-r--r--
tmux.vim
292
B
-rw-r--r--
treetop.vim
416
B
-rw-r--r--
tt2html.vim
434
B
-rw-r--r--
udevconf.vim
434
B
-rw-r--r--
udevperm.vim
432
B
-rw-r--r--
udevrules.vim
426
B
-rw-r--r--
updatedb.vim
443
B
-rw-r--r--
vb.vim
1.86
KB
-rw-r--r--
verilog.vim
1.93
KB
-rw-r--r--
vhdl.vim
3.42
KB
-rw-r--r--
vim.vim
3.68
KB
-rw-r--r--
vroom.vim
924
B
-rw-r--r--
wast.vim
470
B
-rw-r--r--
xdefaults.vim
481
B
-rw-r--r--
xf86conf.vim
434
B
-rw-r--r--
xhtml.vim
1.99
KB
-rw-r--r--
xinetd.vim
476
B
-rw-r--r--
xml.vim
2.2
KB
-rw-r--r--
xmodmap.vim
434
B
-rw-r--r--
xs.vim
465
B
-rw-r--r--
xsd.vim
1.14
KB
-rw-r--r--
xslt.vim
539
B
-rw-r--r--
yaml.vim
464
B
-rw-r--r--
zimbu.vim
5.26
KB
-rw-r--r--
zsh.vim
818
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ruby.vim
" Vim filetype plugin " Language: Ruby " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Last Change: 2019 Jan 06 if (exists("b:did_ftplugin")) finish endif let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo&vim if has("gui_running") && !has("gui_win32") setlocal keywordprg=ri\ -T\ -f\ bs else setlocal keywordprg=ri endif " Matchit support if exists("loaded_matchit") && !exists("b:match_words") let b:match_ignorecase = 0 let b:match_words = \ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|def\|begin\)\>=\@!' . \ ':' . \ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' . \ ':' . \ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' . \ ',{:},\[:\],(:)' let b:match_skip = \ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" . \ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" . \ "Regexp\\|RegexpDelimiter\\|" . \ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" . \ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" . \ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" . \ "InstanceVariable\\|GlobalVariable\\|Symbol\\)\\>'" endif setlocal formatoptions-=t formatoptions+=croql setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\) setlocal suffixesadd=.rb if exists("&ofu") && has("ruby") setlocal omnifunc=rubycomplete#Complete endif " TODO: "setlocal define=^\\s*def setlocal comments=:# setlocal commentstring=#\ %s if !exists('g:ruby_version_paths') let g:ruby_version_paths = {} endif function! s:query_path(root) abort let code = "print $:.join %q{,}" if &shell =~# 'sh' && empty(&shellxquote) let prefix = 'env PATH='.shellescape($PATH).' ' else let prefix = '' endif if &shellxquote == "'" let path_check = prefix.'ruby --disable-gems -e "' . code . '"' else let path_check = prefix."ruby --disable-gems -e '" . code . "'" endif let cd = haslocaldir() ? 'lcd' : 'cd' let cwd = fnameescape(getcwd()) try exe cd fnameescape(a:root) let path = split(system(path_check),',') exe cd cwd return path finally exe cd cwd endtry endfunction function! s:build_path(path) abort let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',') if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$' let path = substitute(&g:path,',,$',',','') . ',' . path endif return path endfunction if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h')) let s:version_file = findfile('.ruby-version', '.;') if !empty(s:version_file) && filereadable(s:version_file) let b:ruby_version = get(readfile(s:version_file, '', 1), '') if !has_key(g:ruby_version_paths, b:ruby_version) let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h')) endif endif endif if exists("g:ruby_path") let s:ruby_path = type(g:ruby_path) == type([]) ? join(g:ruby_path, ',') : g:ruby_path elseif has_key(g:ruby_version_paths, get(b:, 'ruby_version', '')) let s:ruby_paths = g:ruby_version_paths[b:ruby_version] let s:ruby_path = s:build_path(s:ruby_paths) else if !exists('g:ruby_default_path') if has("ruby") && has("win32") ruby ::VIM::command( 'let g:ruby_default_path = split("%s",",")' % $:.join(%q{,}) ) elseif executable('ruby') let g:ruby_default_path = s:query_path($HOME) else let g:ruby_default_path = map(split($RUBYLIB,':'), 'v:val ==# "." ? "" : v:val') endif endif let s:ruby_paths = g:ruby_default_path let s:ruby_path = s:build_path(s:ruby_paths) endif if stridx(&l:path, s:ruby_path) == -1 let &l:path = s:ruby_path endif if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val."/tags"'),',')) == -1 let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',') endif if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" . \ "All Files (*.*)\t*.*\n" endif let b:undo_ftplugin = "setl inc= sua= path= tags= fo< com< cms< kp=" \."| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip" \."| if exists('&ofu') && has('ruby') | setl ofu< | endif" if get(g:, 'ruby_recommended_style', 1) setlocal shiftwidth=2 softtabstop=2 expandtab let b:undo_ftplugin .= ' | setl sw< sts< et<' endif " To activate, :set ballooneval if exists('+balloonexpr') && get(g:, 'ruby_balloonexpr') setlocal balloonexpr=RubyBalloonexpr() let b:undo_ftplugin .= "| setl bexpr=" endif function! s:map(mode, flags, map) abort let from = matchstr(a:map, '\S\+') if empty(mapcheck(from, a:mode)) exe a:mode.'map' '<buffer>' a:map let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from endif endfunction cmap <buffer><script><expr> <Plug><ctag> substitute(RubyCursorTag(),'^$',"\022\027",'') cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'') let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><ctag>| sil! cunmap <buffer> <Plug><cfile>" if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps") nmap <buffer><script> <SID>: :<C-U> nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR> nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'b','n')<CR> nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'','n')<CR> nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>',['rubyDefine'],'b','n')<CR> nnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>',['rubyDefine'],'','n')<CR> xnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'b','v')<CR> xnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'','v')<CR> xnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>',['rubyDefine'],'b','v')<CR> xnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>',['rubyDefine'],'','v')<CR> nnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>',['rubyModule','rubyClass'],'b','n')<CR> nnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>',['rubyModule','rubyClass'],'','n')<CR> nnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>',['rubyModule','rubyClass'],'b','n')<CR> nnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>',['rubyModule','rubyClass'],'','n')<CR> xnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>',['rubyModule','rubyClass'],'b','v')<CR> xnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>',['rubyModule','rubyClass'],'','v')<CR> xnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>',['rubyModule','rubyClass'],'b','v')<CR> xnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>',['rubyModule','rubyClass'],'','v')<CR> let b:undo_ftplugin = b:undo_ftplugin \."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['" \."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'" if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == '' onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR> onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR> xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR> xnoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR> let b:undo_ftplugin = b:undo_ftplugin \."| sil! exe 'ounmap <buffer> im' | sil! exe 'ounmap <buffer> am'" \."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'" endif if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == '' onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR> onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR> xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR> xnoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR> let b:undo_ftplugin = b:undo_ftplugin \."| sil! exe 'ounmap <buffer> iM' | sil! exe 'ounmap <buffer> aM'" \."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'" endif call s:map('c', '', '<C-R><C-F> <Plug><cfile>') cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : '' call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><ctag>"<SID>tagzv<CR>') call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><ctag>"<CR>') call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><ctag>"<CR>') call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>') call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>') call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>') call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>') endif let &cpo = s:cpo_save unlet s:cpo_save if exists("g:did_ruby_ftplugin_functions") finish endif let g:did_ruby_ftplugin_functions = 1 function! RubyBalloonexpr() abort if !exists('s:ri_found') let s:ri_found = executable('ri') endif if s:ri_found let line = getline(v:beval_lnum) let b = matchstr(strpart(line,0,v:beval_col),'\%(\w\|[:.]\)*$') let a = substitute(matchstr(strpart(line,v:beval_col),'^\w*\%([?!]\|\s*=\)\?'),'\s\+','','g') let str = b.a let before = strpart(line,0,v:beval_col-strlen(b)) let after = strpart(line,v:beval_col+strlen(a)) if str =~ '^\.' let str = substitute(str,'^\.','#','g') if before =~ '\]\s*$' let str = 'Array'.str elseif before =~ '}\s*$' " False positives from blocks here let str = 'Hash'.str elseif before =~ "[\"'`]\\s*$" || before =~ '\$\d\+\s*$' let str = 'String'.str elseif before =~ '\$\d\+\.\d\+\s*$' let str = 'Float'.str elseif before =~ '\$\d\+\s*$' let str = 'Integer'.str elseif before =~ '/\s*$' let str = 'Regexp'.str else let str = substitute(str,'^#','.','') endif endif let str = substitute(str,'.*\.\s*to_f\s*\.\s*','Float#','') let str = substitute(str,'.*\.\s*to_i\%(nt\)\=\s*\.\s*','Integer#','') let str = substitute(str,'.*\.\s*to_s\%(tr\)\=\s*\.\s*','String#','') let str = substitute(str,'.*\.\s*to_sym\s*\.\s*','Symbol#','') let str = substitute(str,'.*\.\s*to_a\%(ry\)\=\s*\.\s*','Array#','') let str = substitute(str,'.*\.\s*to_proc\s*\.\s*','Proc#','') if str !~ '^\w' return '' endif silent! let res = substitute(system("ri -f rdoc -T \"".str.'"'),'\n$','','') if res =~ '^Nothing known about' || res =~ '^Bad argument:' || res =~ '^More than one method' return '' endif return res else return "" endif endfunction function! s:searchsyn(pattern, syn, flags, mode) abort let cnt = v:count1 norm! m' if a:mode ==# 'v' norm! gv endif let i = 0 call map(a:syn, 'hlID(v:val)') while i < cnt let i = i + 1 let line = line('.') let col = col('.') let pos = search(a:pattern,'W'.a:flags) while pos != 0 && index(a:syn, s:synid()) < 0 let pos = search(a:pattern,'W'.a:flags) endwhile if pos == 0 call cursor(line,col) return endif endwhile endfunction function! s:synid() abort return synID(line('.'),col('.'),0) endfunction function! s:wrap_i(back,forward) abort execute 'norm k'.a:forward let line = line('.') execute 'norm '.a:back if line('.') == line - 1 return s:wrap_a(a:back,a:forward) endif execute 'norm jV'.a:forward.'k' endfunction function! s:wrap_a(back,forward) abort execute 'norm '.a:forward if line('.') < line('$') && getline(line('.')+1) ==# '' let after = 1 endif execute 'norm '.a:back while getline(line('.')-1) =~# '^\s*#' && line('.') - endwhile if exists('after') execute 'norm V'.a:forward.'j' elseif line('.') > 1 && getline(line('.')-1) =~# '^\s*$' execute 'norm kV'.a:forward else execute 'norm V'.a:forward endif endfunction function! RubyCursorIdentifier() abort let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)' let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)' let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)' let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)' let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)' let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)' let [lnum, col] = searchpos(pattern,'bcn',line('.')) let raw = matchstr(getline('.')[col-1 : ],pattern) let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','') return stripped == '' ? expand("<cword>") : stripped endfunction function! RubyCursorTag() abort return substitute(RubyCursorIdentifier(), '^[$@]*', '', '') endfunction function! RubyCursorFile() abort let isfname = &isfname try set isfname+=: let cfile = expand('<cfile>') finally let isfname = &isfname endtry let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!') let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*') let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : '' if s:synid() ==# hlID('rubyConstant') let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','') let cfile = substitute(cfile,'^::','','') let cfile = substitute(cfile,'::','/','g') let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g') let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g') return tolower(cfile) . '.rb' elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$' let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$' let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1') let cfile = expand('%:p:h') . target . ext elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$' let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.' let cfile = expand('%:p:h') . strpart(cfile, 2) else return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '') endif let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]' let cfile = substitute(cfile, cwdpat, '.', '') if fnameescape(cfile) !=# cfile return '+ '.fnameescape(cfile) else return cfile endif endfunction " " Instructions for enabling "matchit" support: " " 1. Look for the latest "matchit" plugin at " " http://www.vim.org/scripts/script.php?script_id=39 " " It is also packaged with Vim, in the $VIMRUNTIME/macros directory. " " 2. Copy "matchit.txt" into a "doc" directory (e.g. $HOME/.vim/doc). " " 3. Copy "matchit.vim" into a "plugin" directory (e.g. $HOME/.vim/plugin). " " 4. Ensure this file (ftplugin/ruby.vim) is installed. " " 5. Ensure you have this line in your $HOME/.vimrc: " filetype plugin on " " 6. Restart Vim and create the matchit documentation: " " :helptags ~/.vim/doc " " Now you can do ":help matchit", and you should be able to use "%" on Ruby " keywords. Try ":echo b:match_words" to be sure. " " Thanks to Mark J. Reed for the instructions. See ":help vimrc" for the " locations of plugin directories, etc., as there are several options, and it " differs on Windows. Email gsinclair@soyabean.com.au if you need help. " " vim: nowrap sw=2 sts=2 ts=8:
Close