Vim được biên dịch với python3 nhưng có ('python') trả về 0


13

Tôi chỉ làm theo các hướng dẫn này để biên dịch vim với python 3: https://github.com/Valloric/YouCompleteMe/wiki/Bu kiếm -Vim-from-source

Sau khi cài đặt, tôi đã kiểm tra xem tôi có python3 không:

vim --version | grep "python"

Mà trả lại:

+python3/dyn  

+python/dyn  

Nhưng khi tôi bắt đầu vim và gõ một trong các lệnh followinf, tôi nhận được 0:

  • :echo has('python3/dyn')
  • :echo has('python3')
  • :echo has('python')
  • :echo has('python/dyn')

Có ai có một vấn đề tương tự?

EDIT: Hey các bạn rất nhiều ý kiến ​​hữu ích, tôi chỉ muốn nói cảm ơn và cho các bạn biết những gì tôi đã làm để giải quyết điều này. Tôi đã làm theo hướng dẫn một lần nữa từ liên kết đầu tiên tôi cung cấp nhưng lần này tôi đã gỡ bỏ vim.tiny và thay vì cố gắng để vim hỗ trợ cả python2 và python3, tôi chỉ xây dựng với sự hỗ trợ python3. Cái này đã sửa nó

Đánh máy

python3 print("works")

trong vim, cho thấy works. Đánh máy

echo has('python3')

cho tôi một đầu ra 1và cuối cùng

vim --version | grep python3

Cung cấp cho tôi một giá trị của +python3

Cảm ơn mọi người vì tất cả sự giúp đỡ và gợi ý !!


Hãy thử chạy một lệnh Python thực tế, ví dụ :python print "works"; đó là thử nghiệm tốt nhất (ít nhất là tương tác; trong một kịch bản tôi muốn has('python'), nó sẽ hoạt động.
Ingo Karkat

Nếu bạn đang sử dụng Ubuntu, hãy sử dụng PPA của pi-rho ( launchpad.net/~pi-rho/+archive/ubfox/dev ). Nó có vim được xây dựng với sự hỗ trợ Python / Python3 động.
muru

Nó làm việc cho tôi quá!
Enrico Maria De Angelis

Câu trả lời:


4

Đây là kết quả mong đợi. Không có xét nghiệm has('python/dyn')has('python3/dyn'), chỉ has('python')has('python3').


5
vẫn không giúp gì nếu tôi có ('python3') hoặc có ('python'), tôi vẫn nhận được 0
user1314272

Vấn đề là bạn không thể kiểm tra trăn động bằng has()cách không sử dụng has().
romainl

2
@romainl Vậy tại sao nó là một tính năng tài liệu có thể được kiểm tra với has()bên dưới :help feature-list?
jamessan

has('python')trả lại 1cho +python +python/dyn . Điều tương tự cho has('python3')+python3/ +python3/dyn. Ngoài ra, has('python/dyn')has('python3/dyn')luôn luôn quay trở lại 0, cho dù tính năng có ở đó hay không. Kết luận: hoặc bạn không thể sử dụng has()để xác định xem bạn có +python[3]/dynhay không Sato Katsura và tôi không biết cách định dạng đối số đúng.
romainl

1
Mặc dù, nó sẽ hữu ích cho Vim để hỗ trợ /dynkiểm tra, đặc biệt là khi has('python')tải thư viện Python, điều đó có nghĩa là sau đó bạn không thể sử dụng python3và ngược lại.
jamessan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.