Nếu bạn muốn làm một số cuộc gọi python mà không soạn thảo vim với thông dịch viên python (mà sẽ cho phép bạn viết các plug-in bằng Python, và nó cũng cần thiết cho omnicomplete anyway), bạn có thể thử như thế này:
:.!python -c "import os; print os.getcwd()"
Điều đó sẽ cho bạn biết bạn đang ở đâu trong ổ đĩa (đường dẫn hiện tại).
Bây giờ chúng ta hãy số một vài dòng, bắt đầu từ một tập tin rỗng vì vậy chúng tôi có thể xem kết quả một cách dễ dàng:
:.!python -c "for i in range(1,101): print i"
(số vim dòng từ 1 không phải 0) Bây giờ chúng ta có chỉ số của mỗi dòng trong mỗi dòng lên đến dòng 100.
Bây giờ hãy đặt một tập lệnh nhỏ trong đường dẫn hiện tại của bạn (như được hiển thị ở trên) và chạy nó, xem cách nó hoạt động. Hãy sao chép dán một trong những ngớ ngẩn này. Trên thực tế, bạn sẽ thấy hữu ích nhất khi thực hiện tập lệnh để xuất một dòng trên mỗi dòng, nhưng bạn không phải thực hiện điều đó vì tập lệnh này hiển thị:
Vì vậy, bạn có thể gọi, ví dụ: "what.py"):
: 10,20 python what.py
(Lưu ý rằng hoàn tab của tên tập tin hoạt động, vì vậy bạn có thể xác minh nó thực sự trong đường dẫn)
Như bạn có thể thấy, mọi dòng được đưa vào kịch bản như đầu vào tiêu chuẩn. Đầu tiên nó xuất ra "hi", ở cuối "bye" và ở giữa, cho mỗi dòng bạn xuất "điều này là:" cộng với dòng. Bằng cách này bạn có thể xử lý từng dòng một. Lưu ý rằng bạn có thể thực hiện nhiều công việc phức tạp hơn là xử lý từng dòng, bạn thực sự có thể xem xét các dòng trước đó. Đối với những thứ như vậy, tôi muốn nhập sys và làm như sau:
import sys
print "hello"
for i in sys.stdin.readlines():
i = i.rstrip("\n") # you can also prevent print from doing \n instead
print "here lyeth",i
print "see you"
Hy vọng điều đó sẽ hữu ích.
Đây có phải là câu hỏi không? –
Bạn có thể vui lòng giải thích thêm, bạn đang cố gắng làm gì? – Alex