mirror of
https://github.com/vim/vim.git
synced 2025-07-25 10:54:51 -04:00
updated for version 7.4.502
Problem: Language mapping also applies to mapped characters. Solution: Add the 'langnoremap' option, when on 'langmap' does not apply to mapped characters. (Christian Brabandt)
This commit is contained in:
parent
c3940c76e8
commit
4391cf98ec
@ -4589,6 +4589,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:source $VIMRUNTIME/menu.vim
|
:source $VIMRUNTIME/menu.vim
|
||||||
< Warning: This deletes all menus that you defined yourself!
|
< Warning: This deletes all menus that you defined yourself!
|
||||||
|
|
||||||
|
*'langnoremap'* *'lnr'*
|
||||||
|
'langnoremap' 'lnr' boolean (default off)
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with the |+langmap|
|
||||||
|
feature}
|
||||||
|
When on, setting 'langmap' does not apply to characters resulting from
|
||||||
|
a mapping. This basically means, if you noticed that setting
|
||||||
|
'langmap' disables some of your mappings, try setting this option.
|
||||||
|
This option defaults to off for backwards compatibility. Set it on if
|
||||||
|
that works for you to avoid mappings to break.
|
||||||
|
|
||||||
*'laststatus'* *'ls'*
|
*'laststatus'* *'ls'*
|
||||||
'laststatus' 'ls' number (default 1)
|
'laststatus' 'ls' number (default 1)
|
||||||
global
|
global
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
" An example for a vimrc file.
|
" An example for a vimrc file.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last change: 2014 Feb 05
|
" Last change: 2014 Nov 05
|
||||||
"
|
"
|
||||||
" To use it, copy it to
|
" To use it, copy it to
|
||||||
" for Unix and OS/2: ~/.vimrc
|
" for Unix and OS/2: ~/.vimrc
|
||||||
@ -95,3 +95,10 @@ if !exists(":DiffOrig")
|
|||||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
|
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
|
||||||
\ | wincmd p | diffthis
|
\ | wincmd p | diffthis
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if has('langmap') && exists('+langnoremap')
|
||||||
|
" Prevent that the langmap option applies to characters that result from a
|
||||||
|
" mapping. If unset (default), this may break plugins (but it's backward
|
||||||
|
" compatible).
|
||||||
|
set langnoremap
|
||||||
|
endif
|
||||||
|
15
src/macros.h
15
src/macros.h
@ -128,13 +128,18 @@
|
|||||||
* Adjust chars in a language according to 'langmap' option.
|
* Adjust chars in a language according to 'langmap' option.
|
||||||
* NOTE that there is no noticeable overhead if 'langmap' is not set.
|
* NOTE that there is no noticeable overhead if 'langmap' is not set.
|
||||||
* When set the overhead for characters < 256 is small.
|
* When set the overhead for characters < 256 is small.
|
||||||
* Don't apply 'langmap' if the character comes from the Stuff buffer.
|
* Don't apply 'langmap' if the character comes from the Stuff buffer or from
|
||||||
|
* a mapping and the langnoremap option was set.
|
||||||
* The do-while is just to ignore a ';' after the macro.
|
* The do-while is just to ignore a ';' after the macro.
|
||||||
*/
|
*/
|
||||||
# ifdef FEAT_MBYTE
|
# ifdef FEAT_MBYTE
|
||||||
# define LANGMAP_ADJUST(c, condition) \
|
# define LANGMAP_ADJUST(c, condition) \
|
||||||
do { \
|
do { \
|
||||||
if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \
|
if (*p_langmap \
|
||||||
|
&& (condition) \
|
||||||
|
&& (!p_lnr || (p_lnr && typebuf_maplen() == 0)) \
|
||||||
|
&& !KeyStuffed \
|
||||||
|
&& (c) >= 0) \
|
||||||
{ \
|
{ \
|
||||||
if ((c) < 256) \
|
if ((c) < 256) \
|
||||||
c = langmap_mapchar[c]; \
|
c = langmap_mapchar[c]; \
|
||||||
@ -145,7 +150,11 @@
|
|||||||
# else
|
# else
|
||||||
# define LANGMAP_ADJUST(c, condition) \
|
# define LANGMAP_ADJUST(c, condition) \
|
||||||
do { \
|
do { \
|
||||||
if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \
|
if (*p_langmap \
|
||||||
|
&& (condition) \
|
||||||
|
&& (!p_lnr || (p_lnr && typebuf_maplen() == 0)) \
|
||||||
|
&& !KeyStuffed \
|
||||||
|
&& (c) >= 0 && (c) < 256) \
|
||||||
c = langmap_mapchar[c]; \
|
c = langmap_mapchar[c]; \
|
||||||
} while (0)
|
} while (0)
|
||||||
# endif
|
# endif
|
||||||
|
@ -1691,6 +1691,13 @@ static struct vimoption
|
|||||||
(char_u *)NULL, PV_NONE,
|
(char_u *)NULL, PV_NONE,
|
||||||
#endif
|
#endif
|
||||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||||
|
{"langnoremap", "lnr", P_BOOL|P_VI_DEF,
|
||||||
|
#ifdef FEAT_LANGMAP
|
||||||
|
(char_u *)&p_lnr, PV_NONE,
|
||||||
|
#else
|
||||||
|
(char_u *)NULL, PV_NONE,
|
||||||
|
#endif
|
||||||
|
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
|
||||||
{"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL,
|
{"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL,
|
||||||
#ifdef FEAT_WINDOWS
|
#ifdef FEAT_WINDOWS
|
||||||
(char_u *)&p_ls, PV_NONE,
|
(char_u *)&p_ls, PV_NONE,
|
||||||
|
@ -576,6 +576,7 @@ EXTERN char_u *p_kp; /* 'keywordprg' */
|
|||||||
EXTERN char_u *p_km; /* 'keymodel' */
|
EXTERN char_u *p_km; /* 'keymodel' */
|
||||||
#ifdef FEAT_LANGMAP
|
#ifdef FEAT_LANGMAP
|
||||||
EXTERN char_u *p_langmap; /* 'langmap'*/
|
EXTERN char_u *p_langmap; /* 'langmap'*/
|
||||||
|
EXTERN int p_lnr; /* 'langnoremap' */
|
||||||
#endif
|
#endif
|
||||||
#if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
|
#if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
|
||||||
EXTERN char_u *p_lm; /* 'langmenu' */
|
EXTERN char_u *p_lm; /* 'langmenu' */
|
||||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
502,
|
||||||
/**/
|
/**/
|
||||||
501,
|
501,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user