在vim :h Number
:如何讓vim處理64位int數?
數值32位或64位符號數。
的最大32位/ 64位數字的值:
2^31=2147483648
2^63=9223372036854775808
現在,如果我打電話str2nr()
在vim:
:echo str2nr('2147483648')
-> -2147483648
:echo str2nr('112147483648')
-> 478333952
,或者直接EVAL表達:
echo 2147483648 + 7777
-> -2147482871
所以問題是,vim doc告訴number
是32或64位數字。如何讓vim處理64位數字?像2147483648 + 7777 =2147491425
P.S上述試驗是在做:
Archlinux 64bit
Vim 7.4.135 (from Arch 64bit repo)
'Linux的LsyHP 3.13.6-1-ARCH#1 SMP PREEMPT週五03月07日22:47 :48 CET 2014 x86_64 GNU/Linux'這是'uname -a'的輸出,它是一個64位的盒子。 – Kent
我做了很多谷歌,但沒有找到您在答案中發佈的帖子。看來我們不能那樣做,因爲布拉姆已經證實了。如果我在插件上工作,如果我更改代碼並編譯特定版本的vim作爲測試/ dev環境,則沒有任何意義。...... – Kent
@Kent作爲64位系統並不保證您的編譯器將使用一個int的64位。我添加了一些代碼,您可以使用它們在系統上進行編譯,以查看編譯器將用於int的多少位。我相信arch使用'gcc'和gcc應該打印它使用32位來表示int。 – FDinoff