2011-08-12 41 views
8

Có thể sau khi chỉnh sửa chương trình ruby ​​trong Vim để chạy nó trong khi vẫn còn trong trình chỉnh sửa, không sử dụng dòng lệnh?Chạy mã ruby ​​từ vim

+0

Tôi thấy hướng dẫn này hữu ích: http://alisnic.github.io/posts/vim-run-hotkey/ – eugenevd

Trả lời

15

Từ Vim, bạn có thể chạy bộ đệm hiện tại với: :!ruby %

Nó có thể là hữu ích hay không tùy thuộc vào trường hợp sử dụng của bạn.

Tương tự, bạn gọi bất kỳ lệnh shell nào bằng cách sử dụng :!command

+0

Tôi đã thử đặt "Hello world", nhưng:! Ruby% đã làm điều đó - cmd.exe/c ruby ​​test.rb và nhấn phím bất kỳ để đóng cửa sổ ... không có gì hơn – Sergey

+0

Bạn có lẽ phải lưu bộ đệm của mình trước khi thực hiện nó. Vì vậy, hãy thử ': w' –

+0

cảm ơn, nó hoạt động – Sergey

0

Không thực sự. Vim sử dụng ruby, nếu được liên kết với nó tại thời điểm xây dựng, dưới dạng ngôn ngữ mở rộng để sử dụng nội bộ. Bạn có thể đặt đường ống bộ đệm cho thông dịch viên bên ngoài bên ngoài như Xavier T. chỉ ra.

0

Như một sự bổ sung cho giải pháp @Xavier ‘s Tôi khuyên bạn nên ràng buộc nó theo cách sau bên .vimrc của bạn:

" run ruby code using leader-r only when inside a .rb file 
au BufRead, *.rb nmap <leader>r :!ruby %<cr> 
0

Có nó là có thể. Ví dụ cho phép nói rằng tôi muốn viết trong một từ tài liệu hello 100000 Bây giờ tôi sẽ không làm điều đó theo cách thủ công nhưng tôi sẽ sử dụng tập lệnh ruby ​​và chạy nó trong vim. Trong terminal tạo một file mới bằng cách gõ vim script.rb Loại mã này:

10000.times do 
     puts "hello" 
end 

Trước khi ra khỏi nhấn Escape sau đó gõ này:

:w ! ruby > testfile.txt 

nhấn Enter Điều này sẽ làm là nó sẽ chạy tập lệnh trong vim và thêm chuỗi trả về vào tệp văn bản có tên là testfile. Đảm bảo bạn có tệp trong cùng một thư mục hoặc bạn có thể chỉ định thư mục cùng với tên.

0

Đây là một câu hỏi cũ nhưng tôi muốn tinh chỉnh các câu trả lời bằng @xavier

Đặt này trong .vimrc của bạn và bạn sẽ có thể chạy các script ruby ​​hiện mà không cần phải để xác nhận đánh ENTER mỗi lần:

autocmd BufRead, *.rb nmap <leader>r :silent !{ruby %}<cr>