On Sat, May 05, 2012 at 03:25:28AM -0700, Stanislav Kondratyev wrote:
> Hello!
> 
> I’m reposting this issue from vim_multibyte thanks to John Beckett's
> kind advice.
> 
> I was experimenting with the python3 interface and I stumbled upon the
> following phenomenon. Suppose the cursor is in the string
> абвгдеёжзийклмнопрстуфхцчшщъыьэюя
> in a utf-8 encoded file. I run the following commands:
> :py3 import vim
> :py3 vim.current.line = vim.current.line
> Surprisingly last 16½ of 33 characters disappear.
> 
> The same effect can be produced e. g. with
> :py3 l = vim.current.line
> :py3 vim.current.line = l
> However, the string l can be correctly printed and sent to vim via
> vim.command and setline. Hence I conclude that the transition from vim
> to python does not cause any loss of information. On the contrary,
> when the string is being passed from python to vim, vim (or python?)
> calculates that it is 33 ‘units’ long and copies 33 *bytes*.
> 
> Experiments with less appaulling accented Latin letters show the same
> effect. For example,
> when the command
> :py3 vim.current.line = vim.current.line
> is applied to the line ‘aàáâãä', it yields
> aàá<c3>
> 
> I’m running vim 7.3 on Windows 7.
> 
> I’d like to find out whether this is a common effect and whether there
> exists an elegant way of changing multibyte strings from python3.
> 
> Any help is appreciated. :)
> 
> Stanislav

I can't reproduce it on Windows XP with cp936 and Linux with UTF-8 locale.
What's the value of your 'encoding' option and the exact version of your
Vim?

-- 
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
-- 
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui