Am 27.06.2020 um 16:59 schrieb Maxim Abalenkov:
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!

—
Best wishes,
Maxim

Maxim Abalenkov \\ [email protected] <mailto:[email protected]>
+44 7 486 486 505 \\ http://mabalenk.gitlab.io

This assumes vim-latex-1.10 ...


The keymap's (buffer-local) language mapping for `.' is overruled by a
buffer-local Insert mode mapping.


To show the problem: in a LaTeX (ft=tex) buffer:
    :imap <buffer> .
(or just)
    :imap .
shows something like (depending on g:Tex_SmartKeyDot)
    <C-R>=<SNR>20_SmartDots()<CR>
or  <C-R>=<SNR>12_LookupCharacter(".")<CR>


You can remove the Insert mode mapping after it gets defined:

Create a file
    after/ftplugin/tex.vim
containing the line

    iunmap <buffer> .

for example the file ~/.vim/after/ftplugin/tex.vim where
~/.vim/after must occur in the 'runtimepath'.

--------------------------------------------------------------
You can ignore what follows.

An alternative is to

put in the vimrc:
    :let g:Tex_SmartKeyDot = 0

and to put in the after/ftplugin/tex.vim file:

" :echo IMAP_list_all('.')
"   tex: "`. => "`.
"   tex: \`. => \`.
"   tex: ``. => ``.
"   tex: `. => \cdot

if exists('*IUNMAP') && maparg('.', 'i') =~# '<SNR>\d\+_LookupCharacter("\.")'
    call IUNMAP('"`.', 'tex')
    call IUNMAP('\`.', 'tex')
    call IUNMAP('``.', 'tex')
    call IUNMAP('`.', 'tex')
endif


Would have been cleaner if there was an IUNMAP_ALL('.', 'tex') function ...

And not sure about the exact consequences ... the mapping for `.' is
created per buffer, but IMAP() creates internal data structures per
filetype.

--
Andy

--
--
You received this message from the "vim_use" 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

--- You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/5EFCBA7C.9060602%40yahoo.de.

Reply via email to