
Untitled
By: a guest on
May 31st, 2012 | syntax:
None | size: 1.42 KB | hits: 15 | expires: Never
Vimscript: regex works in :s but not in substitute()
:redir => x|silent :ls|redir END
:let y = substitute(x, ".*(".*").*", "1", "g")
let buflist=map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), 'bufname(v:val)')
function BufName(bnr)
let bn=bufname(a:bnr)
let bt=getbufvar(a:bnr, '&buftype')
if empty(bn)
return (empty(bt)?('[No Name]'):('[Scratch]'))
elseif empty(bt)
" This won't produce names like ../file, while :ls will "
return fnamemodify(bn, ':~:.')
elseif bt is# 'help'
return fnamemodify(bn, ':t')
else
return bn
endif
endfunction
let bufliststr=join(buflist, "n")
1 # "~/Session.vim" line 5
2 "~/.vimrc" line 34
3 ".vim/vscripts/makesess.vim" line 4
4 "~/Documents/vimcht" line 62
5 "~/.fluxbox/startup" line 5
6 "~/Documents/Notes" line 2604
7 "~/Documents/bashcht" line 21
8 %a "junk" line 10
:let y = ""
:let y = substitute(x, '[.]*("[.]*")[.]*', '1', "g")
"junk"
:let y = ""
:let y = substitute(x, '[^n]*("[^n]*")[^n]*', '1', "g")
:let y = substitute(x, '[^"]*("[^"]+")[^"]*', ':tabe 1n', 'g')
:tabe "~/Session.vim"
:tabe "~/.vimrc"
:tabe ".vim/vscripts/makesess.vim"
:tabe "~/Documents/vimcht"
:tabe "~/.fluxbox/startup"
:tabe "~/Documents/Notes"
:tabe "~/Documents/bashcht"
:tabe "junk"