2013-08-13 24 views
6

Tôi đã viết một hàm đơn giản để gọi lệnh chỉnh sửa với một đường dẫn theo sau tên tệp đã cho.VimScript: giá trị truyền của biến cục bộ để chỉnh sửa lệnh

Tuy nhiên, có vẻ như edit l:path gọi chỉnh sửa cho tệp có tên "l:path" thay vì l:path giá trị biến. Tôi đoán đây là một vấn đề tầm thường, nhưng thật khó để có được kết quả tìm kiếm để gọi lệnh chỉnh sửa trong chức năng, không phải từ trình soạn thảo vim.

Mã sau hiển thị giá trị thích hợp của l: đường dẫn khi tôi thay đổi edit thành echon.

command! -nargs=1 E call EditAtCurrentPath(<f-args>) 

function! EditAtCurrentPath(filename) 
    let l:path=expand('%:p:h').'/'.a:filename 
    edit l:path 
endfunction 

Trả lời

13

Bạn phải sử dụng :execute để vượt qua biến lệnh:

execute 'edit' l:path

Có một số gương tốt trong việc :help :execute.

+0

Hoạt động hoàn hảo! Cảm ơn vì câu trả lời nhanh! –

Các vấn đề liên quan