Tôi đang cố gắng để có được một biến mở rộng trong một cuộc gọi lệnh. Đây là những gì tôi có trong .vimrc
tôi:Làm cách nào để mở rộng các biến trong lệnh vim?
command! -nargs=1 -complete=dir TlAddPm call s:TlAddPm(<f-args>)
function! s:TlAddPm(dir)
let flist = system("find " . shellescape(a:dir) . " -type f -name '*.pm' | sort")
TlistAddFiles `=flist`
endfun
Tại :
nhanh chóng, cú pháp `=flist`
dường như làm việc (hoặc, ít nhất nó đã làm với một biến w:
), nhưng trong file .vimrc
nó không - TlistAddFiles chỉ cần vượt qua chuỗi `=flist`
.
Cảm ơn câu trả lời của Andrew Barnett và Mykola Golubyev, giờ đây tôi đã nhận được câu trả lời này. Có cách nào tốt hơn không?
command! -nargs=1 -complete=dir TlAddPm call s:TlAddPm(<f-args>)
function! s:TlAddPm(dir)
let findres = system("find " . shellescape(a:dir) . " -type f -name '*.pm' | sort")
let flist = []
for w in split(findres, '\n')
let flist += [ fnameescape(w) ]
endfor
exe "TlistAddFiles " . join(flist)
endfun
định nghĩa của TlistAddFiles là gì? –
Đó là từ plugin danh sách thẻ http://vim-taglist.sourceforge.net/ – derobert
bạn gọi s: TlAddPm (dir) từ .vimrc? –