Sunday, July 5, 2020

Re: [typing Russian characters in vim with vim-LaTeX]


On 30 Jun 2020, at 07:20, Tony Mechelynck <antoine.mechelynck@gmail.com> wrote:

On Tuesday, June 30, 2020 at 7:46:30 AM UTC+2, Maxim Abalenkov wrote:
Dear all,

I hope all is well with you. This is my first post to the vim mailing list. I use vim for a long time and would consider myself a power user. Occasionally, I need to type documents in Russian in LaTeX format. To use Russian in vim I follow the guidelines from this Habr post (https://habr.com/ru/post/98393/). In short I have the following settings in my .vimrc file:

  set keymap=russian-jcukenmac
  set iminsert=0
  set imsearch=0
  highlight lCursor guifg=NONE guibg=Cyan

With these settings in place I can use "Ctrl+^" to switch between English and Russian languages in vim insert mode. For convenient typing of LaTeX commands in vim I use the Vim-LaTeX distribution (https://sourceforge.net/projects/vim-latex/). The configuration commands relevant to vim-LaTeX in my .vimrc are:

  " envoke LaTeX-Suite on TeX file open
  filetype plugin on

  " load filetype-specific indent files
  filetype indent on

  " load vim-latex for empty TeX files
  let g:tex_flavor='latex'

All is nice and well and I'm satisfied with this setup. However, there is one small problem that makes my life miserable. One of the Russian letters, the small letter «ю», is not typed correctly. When I press the relevant key on the keyboard I get a full stop symbol «.» instead of the small letter «ю». On the other hand, the capital letter «Ю» (when pressing the Shift key) is produced correctly. Would you please be so kind to help me debug the problem? Maybe I have some option clashes with the vim-LaTeX? Thank you and have a good day ahead!

When keymaps are active, the "russian-jcukenmac" keymap ought to produce the letter ю when you hit what would be a full stop when keymaps are not active, and a full stop when you hit the key which otherwise would give &. I suggest the following:

1. Make the cursor be of a diferent color when typing Russian:
       hi Cursor ctermbg=bg ctermfg=fg guibg=bg guifg=fg
       hi lCursor ctermbg=red ctermfg=red guibg=#FF0000 guifg=#FF0000
2. Check your mappings:
       :verbose map! .
       :verbose lmap .

(with the full stop at the end in both cases). If all is right, I would expect the answers to be
  No mapping found
and
  . . *@ю
respectively, with possibly an additional ine telling you where the mapping was set.

You can also try test-typing some mixed Cyrillic/Latin text and check that the cursor is red for Cyrillic and "normal" for Latin.

Всего хорошего,
Тоня.

Hello Tony et al.,

How are you? Thank you very much for your help. I'm sorry for a delay in my reply. It has been a busy week! I have just tried your suggestions. I have placed the cursor highlight settings into my ~/.vimrc by they don't appear to have any effect. The colour of the cursor doesn't change neither in Latin nor in Russian setting.

I have checked the mappings and have something to report back to you.

       :verbose map! .

Produces:

*@<C-R>=<SNR>43_SmartDots()<CR>
        Last set from ~/Dropbox/unix/.vim/ftplugin/latex-suite/main.vim line 865
i  .           * <C-R>=<SNR>22_LookupCharacter(".")<CR>
        Last set from ~/Dropbox/unix/.vim/plugin/imaps.vim line 184

       :verbose lmap .

Results in:

l  .           *@ю
        Last set from /usr/share/vim/vim82/keymap/russian-jcukenmac.vim line 95

All in all it is working now. I figured out my mistake. The conflict was indeed the vim-LaTeX and the Russian keymap settings. I have asked this question on Vim StackExchange (https://tinyurl.com/y9sg3caz). The order of loading vim-LaTeX and Russian keymap was incorrect. To solve the issue I'm loading the Russian keymap first and setting the vim-LaTeX options the last. Thank you for your help and have a good Sunday!

Best wishes,
Maxim

Maxim Abalenkov \\ maxim.abalenkov@gmail.com
+44 7 486 486 505 \\ http://mabalenk.gitlab.io

No comments:

Post a Comment