2010-07-30 49 views
8

Trong vài tháng qua, tôi đã xây dựng một loạt các tệp có đầy đủ các lệnh vim để tự động tạo mã boilerplate cho các dự án của tôi. Nó cho phép tôi làm việc nhanh hơn.Chạy tập lệnh vim từ dòng lệnh vim

Tuy nhiên, cách duy nhất tôi biết cách chạy các tập lệnh này là gán chúng cho các tổ hợp phím trong ~/.vimrc. Chỉ có rất nhiều phím tôi có thể remap.

Có cách nào để chạy các tập lệnh này từ dòng lệnh : bằng một vài thao tác gõ phím không?

Ví dụ: tôi có tập lệnh unit_test_cpp.vim, tạo tập tin cpp thử nghiệm đơn vị bản mẫu. Tôi muốn có thể nhập

:utc 

hoặc một số tổ hợp chữ cái đơn giản khác để chạy tập lệnh này trên tệp hiện đang mở của tôi.

Trả lời

8

Bạn có thể sử dụng tính năng command của vim. Trong tập tin unit_test_cpp.vim của bạn, bạn sẽ thêm một cái gì đó như thế này:

command Utc call CreateUnitTests() 

Bây giờ khi bạn gõ :Utc nó sẽ gọi hàm của bạn. Giới hạn duy nhất là lệnh của bạn phải bắt đầu bằng một chữ hoa.

2

Tập lệnh hoặc chức năng? Nếu đó là hàm, hãy thử

:call FunctionName() 
+0

Họ là các tập tin với lệnh vim. Tôi có thể chạy chúng với lệnh như vậy. –

+0

Mỗi lệnh được bọc bởi một hàm trong .vimrc. Vì vậy, tôi có thể sử dụng phương thức: gọi hàm NameName() để chạy các hàm đó từ .vimrc? –

+1

về cơ bản. nếu bạn có chức năng ! Foo() source 'foo.vim' endfunction bạn có thể: gọi Foo() và nó nên source foo.vim, hoặc bạn có thể ánh xạ lệnh như rq gợi ý dưới đây để tránh: call ... – Doon

16

mở Vim và nhập như sau:

:source /path/to/vim/file/name.vim 
0
:run file.vim 

nó cũng giống như ": nguồn" nhưng không cần con đường, tìm kiếm trên runtimepath.

Đối runtimepatch linux là

$HOME/.vim, 
$VIM/vimfiles, 
$VIMRUNTIME, 
$VIM/vimfiles/after, 
$HOME/.vim/after