2011-05-12 33 views
4

我正在創建一個語法文件,並且需要向iskeyword選項添加一些字符。我有麻煩搞清楚它從Vim的幫助文件是如何工作的,但是這是我目前寫:向iskeyword添加某些字符不起作用

set iskeyword+=_,.,-,64,133,!,?,@,172,8743,8744,8853,8592,8593,8594,8595,8596 

#64,#133是在符號和省略號。最後幾個字符是¬,∧,∨,⊕,→,←,↓,↑和↔。

在所有這些字符中,只有_,。, - 和(#172)似乎被識別爲關鍵字字符。

還有什麼我需要做的嗎?或者Vim只是不支持Unicode以外的某個特定點的關鍵字(但是at符號也不能被識別,而且絕對在ASCII中)?

感謝您的幫助!

回答

6

的幫助iskeyword指向幫助isfname,回答你所有的問題:

[…] 
Multi-byte characters 256 and above are always included, only the 
characters up to 255 are specified with this option. 
For UTF-8 the characters 0xa0 to 0xff are included as well. 
[…] 
The format of this option is a list of parts, separated with commas. 
Each part can be a single character number or a range. A range is two 
character numbers with '-' in between. A character number can be a 
decimal number between 0 and 255 or the ASCII character itself (does 
not work for digits). Example: 
[…] 
If the character is '@', all characters where isalpha() returns TRUE 
are included. Normally these are the characters a to z and A to Z, 
plus accented characters. To include '@' itself use "@[email protected]". Examples: 
    "@,^a-z" All alphabetic characters, excluding lower 
      case ASCII letters. 
    "a-z,A-Z,@[email protected]" All letters plus the '@' character. 
[…] 
  1. 「與此選項僅指定人物多達255個。」
  2. 「的字符數目可以是0和255之間的十進制數」
  3. 「要包括 '@' 單獨使用 」@ - @「,」

包含多字節字符在iskeyword已經在許多列表中討論過,如this one

+0

這是回答嗎? 「如果出現這種情況,總是包含多字節字符256及以上」,那麼爲什麼有人要求添加「∧,∨,⊕,→,←,↓,↑和↔」?這是vim中的錯誤嗎? – Cogwheel 2016-01-18 17:31:17

+0

@鈍齒輪不是一個錯誤,而是用法。它們始終包含在文件名識別中。這裏的第一段來自「isfname」。 'iskeyword'使用與前者相同的格式,這就是幫助重定向到那裏的原因。但請注意,第二段在此指出「該字符可以是0到255之間的一個十進制數字」。原來的問題並非如此。數字在255以上,因此無法識別。沒有正式的方法來處理這個問題。我的答案中鏈接的郵件列表有更多信息。我希望這有幫助! – sidyll 2016-01-18 21:15:37