Skip to content

Commit 27e2375

Browse files
committed
Allow :CtrlPLine to take a bufname argument
Closes #396
1 parent e927848 commit 27e2375

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

autoload/ctrlp/buffertag.vim

+3-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,9 @@ endf
248248
fu! ctrlp#buffertag#cmd(mode, ...)
249249
let s:btmode = a:mode
250250
if a:0 && !empty(a:1)
251-
let s:bufname = fnamemodify(a:1, ':p')
251+
let s:btmode = 0
252+
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
253+
let s:bufname = fnamemodify(bname, ':p')
252254
en
253255
retu s:id
254256
endf

autoload/ctrlp/changes.vim

+3-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ endf
8383
fu! ctrlp#changes#cmd(mode, ...)
8484
let s:clmode = a:mode
8585
if a:0 && !empty(a:1)
86-
let s:bufnr = bufnr('^'.fnamemodify(a:1, ':p').'$')
86+
let s:clmode = 0
87+
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
88+
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
8789
en
8890
retu s:id
8991
endf

autoload/ctrlp/line.vim

+11-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ en
1111
let g:loaded_ctrlp_line = 1
1212

1313
cal add(g:ctrlp_ext_vars, {
14-
\ 'init': 'ctrlp#line#init()',
14+
\ 'init': 'ctrlp#line#init(s:crbufnr)',
1515
\ 'accept': 'ctrlp#line#accept',
1616
\ 'lname': 'lines',
1717
\ 'sname': 'lns',
@@ -29,8 +29,9 @@ fu! s:syntax()
2929
en
3030
endf
3131
" Public {{{1
32-
fu! ctrlp#line#init()
33-
let [bufs, lines] = [ctrlp#buffers('id'), []]
32+
fu! ctrlp#line#init(bufnr)
33+
let [lines, bufnr] = [[], exists('s:bufnr') ? s:bufnr : a:bufnr]
34+
let bufs = exists('s:lnmode') && s:lnmode ? ctrlp#buffers('id') : [bufnr]
3435
for bufnr in bufs
3536
let [lfb, bufn] = [getbufline(bufnr, 1, '$'), bufname(bufnr)]
3637
if lfb == [] && bufn != ''
@@ -57,7 +58,13 @@ fu! ctrlp#line#accept(mode, str)
5758
en
5859
endf
5960

60-
fu! ctrlp#line#id()
61+
fu! ctrlp#line#cmd(mode, ...)
62+
let s:lnmode = a:mode
63+
if a:0 && !empty(a:1)
64+
let s:lnmode = 0
65+
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
66+
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
67+
en
6168
retu s:id
6269
endf
6370
"}}}

doc/ctrlp.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1106,8 +1106,8 @@ Available extensions:~
11061106
*:CtrlPLine*
11071107
* Line mode:~
11081108
- Name: 'line'
1109-
- Command: ":CtrlPLine"
1110-
- Search for a line in all listed buffers.
1109+
- Command: ":CtrlPLine [buffer]"
1110+
- Search for a line in all listed buffers or in the specified [buffer].
11111111

11121112
*:CtrlPChange*
11131113
*:CtrlPChangeAll*

plugin/ctrlp.vim

+3-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ com! -n=? -com=buffer CtrlPBufTag
5151
com! -bar CtrlPBufTagAll cal ctrlp#init(ctrlp#buffertag#cmd(1))
5252
com! -bar CtrlPRTS cal ctrlp#init(ctrlp#rtscript#id())
5353
com! -bar CtrlPUndo cal ctrlp#init(ctrlp#undo#id())
54-
com! -bar CtrlPLine cal ctrlp#init(ctrlp#line#id())
54+
55+
com! -n=? -com=buffer CtrlPLine
56+
\ cal ctrlp#init(ctrlp#line#cmd(1, <q-args>))
5557

5658
com! -n=? -com=buffer CtrlPChange
5759
\ cal ctrlp#init(ctrlp#changes#cmd(0, <q-args>))

0 commit comments

Comments
 (0)