私はなく、ASCII文字のみで...現在のカーソル位置に次の文字がそれがうまく機能した空間Vimの:getlineのと非ASCII文字
function Test_caractere_suivant_espace()
"Test si le caractère suivant est une espace"
let position = getcurpos()
let ligne = getline(position[1])
let car_suivant = ligne[position[2]]
if car_suivant == ' '
return 1
else
return 0
endfunction
であるかどうかを知るために(作成すること)単一の関数を使用しますUTF-8のAscii文字ではありません。
もちろん、現在の文字の最初の2ビットの値を試すことができますが、配列にUTF-8文字がある場合は、getline
が返され、1バイトの値のリストは返されません。
ソリューション
DJMcMayhemのPISTは
let ligne = split(getline(position[1]), '\zs')
を使用してソリューションを提案しかし、次の文字を決定する問題がまだあります。私は残念ながら最後のα前に、私が手
Error detected while processing function LB_content[2]..Test_caractere_suivant_espace:
line 4:
E684: list index out of range: 25
E15: Invalid expression: ligne[position[2]]
line 5:
E121: Undefined variable: car_suivant
E15: Invalid expression: car_suivant
line 6:
E121: Undefined variable: car_suivant
E15: Invalid expression: car_suivant == ' '
このクイックアンサーをありがとう。不幸にも、それは動作していないようだ –
私は現在の文字の位置を適応させる必要があると私は思う。 'let car_suivant = ligne [position [2]] –
@ Maeeul正確に動かないものを明確にすることはできますか? 'split(getline(n)、 '\ zs')'は文字のリストを返し、ASCII以外の位置にインデックスを付けると非ASCII文字が1つ返されるため、何が動作していないのか分かりません。 – DJMcMayhem