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
