comparison src/map.c @ 28773:d770568e6c98 v8.2.4911

patch 8.2.4911: the mode #defines are not clearly named Commit: https://github.com/vim/vim/commit/249591057b4840785c50e41dd850efb8a8faf435 Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 7 20:01:16 2022 +0100 patch 8.2.4911: the mode #defines are not clearly named Problem: The mode #defines are not clearly named. Solution: Prepend MODE_. Renumber them to put the mapped modes first.
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 May 2022 21:15:06 +0200
parents 141fb1d233ba
children 1ad71fcbf546
comparison
equal deleted inserted replaced
28772:7b07ca0bb292 28773:d770568e6c98
29 * "mode" is the lower 4 bits of the State for the mapping. 29 * "mode" is the lower 4 bits of the State for the mapping.
30 * "c1" is the first character of the "lhs". 30 * "c1" is the first character of the "lhs".
31 * Returns a value between 0 and 255, index in maphash. 31 * Returns a value between 0 and 255, index in maphash.
32 * Put Normal/Visual mode mappings mostly separately from Insert/Cmdline mode. 32 * Put Normal/Visual mode mappings mostly separately from Insert/Cmdline mode.
33 */ 33 */
34 #define MAP_HASH(mode, c1) (((mode) & (NORMAL + VISUAL + SELECTMODE + OP_PENDING + TERMINAL)) ? (c1) : ((c1) ^ 0x80)) 34 #define MAP_HASH(mode, c1) (((mode) & (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING | MODE_TERMINAL)) ? (c1) : ((c1) ^ 0x80))
35 35
36 /* 36 /*
37 * Get the start of the hashed map list for "state" and first character "c". 37 * Get the start of the hashed map list for "state" and first character "c".
38 */ 38 */
39 mapblock_T * 39 mapblock_T *
99 { 99 {
100 garray_T mapmode; 100 garray_T mapmode;
101 101
102 ga_init2(&mapmode, 1, 7); 102 ga_init2(&mapmode, 1, 7);
103 103
104 if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE) 104 if ((mode & (MODE_INSERT | MODE_CMDLINE)) == (MODE_INSERT | MODE_CMDLINE))
105 ga_append(&mapmode, '!'); // :map! 105 ga_append(&mapmode, '!'); // :map!
106 else if (mode & INSERT) 106 else if (mode & MODE_INSERT)
107 ga_append(&mapmode, 'i'); // :imap 107 ga_append(&mapmode, 'i'); // :imap
108 else if (mode & LANGMAP) 108 else if (mode & MODE_LANGMAP)
109 ga_append(&mapmode, 'l'); // :lmap 109 ga_append(&mapmode, 'l'); // :lmap
110 else if (mode & CMDLINE) 110 else if (mode & MODE_CMDLINE)
111 ga_append(&mapmode, 'c'); // :cmap 111 ga_append(&mapmode, 'c'); // :cmap
112 else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING)) 112 else if ((mode
113 == NORMAL + VISUAL + SELECTMODE + OP_PENDING) 113 & (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING))
114 == (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING))
114 ga_append(&mapmode, ' '); // :map 115 ga_append(&mapmode, ' '); // :map
115 else 116 else
116 { 117 {
117 if (mode & NORMAL) 118 if (mode & MODE_NORMAL)
118 ga_append(&mapmode, 'n'); // :nmap 119 ga_append(&mapmode, 'n'); // :nmap
119 if (mode & OP_PENDING) 120 if (mode & MODE_OP_PENDING)
120 ga_append(&mapmode, 'o'); // :omap 121 ga_append(&mapmode, 'o'); // :omap
121 if (mode & TERMINAL) 122 if (mode & MODE_TERMINAL)
122 ga_append(&mapmode, 't'); // :tmap 123 ga_append(&mapmode, 't'); // :tmap
123 if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE) 124 if ((mode & (MODE_VISUAL | MODE_SELECT)) == (MODE_VISUAL | MODE_SELECT))
124 ga_append(&mapmode, 'v'); // :vmap 125 ga_append(&mapmode, 'v'); // :vmap
125 else 126 else
126 { 127 {
127 if (mode & VISUAL) 128 if (mode & MODE_VISUAL)
128 ga_append(&mapmode, 'x'); // :xmap 129 ga_append(&mapmode, 'x'); // :xmap
129 if (mode & SELECTMODE) 130 if (mode & MODE_SELECT)
130 ga_append(&mapmode, 's'); // :smap 131 ga_append(&mapmode, 's'); // :smap
131 } 132 }
132 } 133 }
133 134
134 ga_append(&mapmode, NUL); 135 ga_append(&mapmode, NUL);
295 * maptype: 0 for :map, 1 for :unmap, 2 for noremap. 296 * maptype: 0 for :map, 1 for :unmap, 2 for noremap.
296 * 297 *
297 * arg is pointer to any arguments. Note: arg cannot be a read-only string, 298 * arg is pointer to any arguments. Note: arg cannot be a read-only string,
298 * it will be modified. 299 * it will be modified.
299 * 300 *
300 * for :map mode is NORMAL + VISUAL + SELECTMODE + OP_PENDING 301 * for :map mode is MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING
301 * for :map! mode is INSERT + CMDLINE 302 * for :map! mode is MODE_INSERT | MODE_CMDLINE
302 * for :cmap mode is CMDLINE 303 * for :cmap mode is MODE_CMDLINE
303 * for :imap mode is INSERT 304 * for :imap mode is MODE_INSERT
304 * for :lmap mode is LANGMAP 305 * for :lmap mode is MODE_LANGMAP
305 * for :nmap mode is NORMAL 306 * for :nmap mode is MODE_NORMAL
306 * for :vmap mode is VISUAL + SELECTMODE 307 * for :vmap mode is MODE_VISUAL | MODE_SELECT
307 * for :xmap mode is VISUAL 308 * for :xmap mode is MODE_VISUAL
308 * for :smap mode is SELECTMODE 309 * for :smap mode is MODE_SELECT
309 * for :omap mode is OP_PENDING 310 * for :omap mode is MODE_OP_PENDING
310 * for :tmap mode is TERMINAL 311 * for :tmap mode is MODE_TERMINAL
311 * 312 *
312 * for :abbr mode is INSERT + CMDLINE 313 * for :abbr mode is MODE_INSERT | MODE_CMDLINE
313 * for :iabbr mode is INSERT 314 * for :iabbr mode is MODE_INSERT
314 * for :cabbr mode is CMDLINE 315 * for :cabbr mode is MODE_CMDLINE
315 * 316 *
316 * Return 0 for success 317 * Return 0 for success
317 * 1 for invalid arguments 318 * 1 for invalid arguments
318 * 2 for no match 319 * 2 for no match
319 * 4 for out of mem 320 * 4 for out of mem
870 int mode; 871 int mode;
871 872
872 p = *cmdp; 873 p = *cmdp;
873 modec = *p++; 874 modec = *p++;
874 if (modec == 'i') 875 if (modec == 'i')
875 mode = INSERT; // :imap 876 mode = MODE_INSERT; // :imap
876 else if (modec == 'l') 877 else if (modec == 'l')
877 mode = LANGMAP; // :lmap 878 mode = MODE_LANGMAP; // :lmap
878 else if (modec == 'c') 879 else if (modec == 'c')
879 mode = CMDLINE; // :cmap 880 mode = MODE_CMDLINE; // :cmap
880 else if (modec == 'n' && *p != 'o') // avoid :noremap 881 else if (modec == 'n' && *p != 'o') // avoid :noremap
881 mode = NORMAL; // :nmap 882 mode = MODE_NORMAL; // :nmap
882 else if (modec == 'v') 883 else if (modec == 'v')
883 mode = VISUAL + SELECTMODE; // :vmap 884 mode = MODE_VISUAL | MODE_SELECT; // :vmap
884 else if (modec == 'x') 885 else if (modec == 'x')
885 mode = VISUAL; // :xmap 886 mode = MODE_VISUAL; // :xmap
886 else if (modec == 's') 887 else if (modec == 's')
887 mode = SELECTMODE; // :smap 888 mode = MODE_SELECT; // :smap
888 else if (modec == 'o') 889 else if (modec == 'o')
889 mode = OP_PENDING; // :omap 890 mode = MODE_OP_PENDING; // :omap
890 else if (modec == 't') 891 else if (modec == 't')
891 mode = TERMINAL; // :tmap 892 mode = MODE_TERMINAL; // :tmap
892 else 893 else
893 { 894 {
894 --p; 895 --p;
895 if (forceit) 896 if (forceit)
896 mode = INSERT + CMDLINE; // :map ! 897 mode = MODE_INSERT | MODE_CMDLINE; // :map !
897 else 898 else
898 mode = VISUAL + SELECTMODE + NORMAL + OP_PENDING;// :map 899 mode = MODE_VISUAL | MODE_SELECT | MODE_NORMAL | MODE_OP_PENDING;
900 // :map
899 } 901 }
900 902
901 *cmdp = p; 903 *cmdp = p;
902 return mode; 904 return mode;
903 } 905 }
1000 mode_str2flags(char_u *modechars) 1002 mode_str2flags(char_u *modechars)
1001 { 1003 {
1002 int mode = 0; 1004 int mode = 0;
1003 1005
1004 if (vim_strchr(modechars, 'n') != NULL) 1006 if (vim_strchr(modechars, 'n') != NULL)
1005 mode |= NORMAL; 1007 mode |= MODE_NORMAL;
1006 if (vim_strchr(modechars, 'v') != NULL) 1008 if (vim_strchr(modechars, 'v') != NULL)
1007 mode |= VISUAL + SELECTMODE; 1009 mode |= MODE_VISUAL | MODE_SELECT;
1008 if (vim_strchr(modechars, 'x') != NULL) 1010 if (vim_strchr(modechars, 'x') != NULL)
1009 mode |= VISUAL; 1011 mode |= MODE_VISUAL;
1010 if (vim_strchr(modechars, 's') != NULL) 1012 if (vim_strchr(modechars, 's') != NULL)
1011 mode |= SELECTMODE; 1013 mode |= MODE_SELECT;
1012 if (vim_strchr(modechars, 'o') != NULL) 1014 if (vim_strchr(modechars, 'o') != NULL)
1013 mode |= OP_PENDING; 1015 mode |= MODE_OP_PENDING;
1014 if (vim_strchr(modechars, 'i') != NULL) 1016 if (vim_strchr(modechars, 'i') != NULL)
1015 mode |= INSERT; 1017 mode |= MODE_INSERT;
1016 if (vim_strchr(modechars, 'l') != NULL) 1018 if (vim_strchr(modechars, 'l') != NULL)
1017 mode |= LANGMAP; 1019 mode |= MODE_LANGMAP;
1018 if (vim_strchr(modechars, 'c') != NULL) 1020 if (vim_strchr(modechars, 'c') != NULL)
1019 mode |= CMDLINE; 1021 mode |= MODE_CMDLINE;
1020 1022
1021 return mode; 1023 return mode;
1022 } 1024 }
1023 1025
1024 /* 1026 /*
1190 { 1192 {
1191 if (isunmap) 1193 if (isunmap)
1192 expand_mapmodes = get_map_mode(&cmd, forceit || isabbrev); 1194 expand_mapmodes = get_map_mode(&cmd, forceit || isabbrev);
1193 else 1195 else
1194 { 1196 {
1195 expand_mapmodes = INSERT + CMDLINE; 1197 expand_mapmodes = MODE_INSERT | MODE_CMDLINE;
1196 if (!isabbrev) 1198 if (!isabbrev)
1197 expand_mapmodes += VISUAL + SELECTMODE + NORMAL + OP_PENDING; 1199 expand_mapmodes += MODE_VISUAL | MODE_SELECT | MODE_NORMAL
1200 | MODE_OP_PENDING;
1198 } 1201 }
1199 expand_isabbrev = isabbrev; 1202 expand_isabbrev = isabbrev;
1200 xp->xp_context = EXPAND_MAPPINGS; 1203 xp->xp_context = EXPAND_MAPPINGS;
1201 expand_buffer = FALSE; 1204 expand_buffer = FALSE;
1202 for (;;) 1205 for (;;)
1862 cmd = "abbr"; 1865 cmd = "abbr";
1863 else 1866 else
1864 cmd = "map"; 1867 cmd = "map";
1865 switch (mp->m_mode) 1868 switch (mp->m_mode)
1866 { 1869 {
1867 case NORMAL + VISUAL + SELECTMODE + OP_PENDING: 1870 case MODE_NORMAL | MODE_VISUAL | MODE_SELECT
1871 | MODE_OP_PENDING:
1868 break; 1872 break;
1869 case NORMAL: 1873 case MODE_NORMAL:
1870 c1 = 'n'; 1874 c1 = 'n';
1871 break; 1875 break;
1872 case VISUAL: 1876 case MODE_VISUAL:
1873 c1 = 'x'; 1877 c1 = 'x';
1874 break; 1878 break;
1875 case SELECTMODE: 1879 case MODE_SELECT:
1876 c1 = 's'; 1880 c1 = 's';
1877 break; 1881 break;
1878 case OP_PENDING: 1882 case MODE_OP_PENDING:
1879 c1 = 'o'; 1883 c1 = 'o';
1880 break; 1884 break;
1881 case NORMAL + VISUAL: 1885 case MODE_NORMAL | MODE_VISUAL:
1882 c1 = 'n'; 1886 c1 = 'n';
1883 c2 = 'x'; 1887 c2 = 'x';
1884 break; 1888 break;
1885 case NORMAL + SELECTMODE: 1889 case MODE_NORMAL | MODE_SELECT:
1886 c1 = 'n'; 1890 c1 = 'n';
1887 c2 = 's'; 1891 c2 = 's';
1888 break; 1892 break;
1889 case NORMAL + OP_PENDING: 1893 case MODE_NORMAL | MODE_OP_PENDING:
1890 c1 = 'n'; 1894 c1 = 'n';
1891 c2 = 'o'; 1895 c2 = 'o';
1892 break; 1896 break;
1893 case VISUAL + SELECTMODE: 1897 case MODE_VISUAL | MODE_SELECT:
1894 c1 = 'v'; 1898 c1 = 'v';
1895 break; 1899 break;
1896 case VISUAL + OP_PENDING: 1900 case MODE_VISUAL | MODE_OP_PENDING:
1897 c1 = 'x'; 1901 c1 = 'x';
1898 c2 = 'o'; 1902 c2 = 'o';
1899 break; 1903 break;
1900 case SELECTMODE + OP_PENDING: 1904 case MODE_SELECT | MODE_OP_PENDING:
1901 c1 = 's'; 1905 c1 = 's';
1902 c2 = 'o'; 1906 c2 = 'o';
1903 break; 1907 break;
1904 case NORMAL + VISUAL + SELECTMODE: 1908 case MODE_NORMAL | MODE_VISUAL | MODE_SELECT:
1905 c1 = 'n'; 1909 c1 = 'n';
1906 c2 = 'v'; 1910 c2 = 'v';
1907 break; 1911 break;
1908 case NORMAL + VISUAL + OP_PENDING: 1912 case MODE_NORMAL | MODE_VISUAL | MODE_OP_PENDING:
1909 c1 = 'n'; 1913 c1 = 'n';
1910 c2 = 'x'; 1914 c2 = 'x';
1911 c3 = 'o'; 1915 c3 = 'o';
1912 break; 1916 break;
1913 case NORMAL + SELECTMODE + OP_PENDING: 1917 case MODE_NORMAL | MODE_SELECT | MODE_OP_PENDING:
1914 c1 = 'n'; 1918 c1 = 'n';
1915 c2 = 's'; 1919 c2 = 's';
1916 c3 = 'o'; 1920 c3 = 'o';
1917 break; 1921 break;
1918 case VISUAL + SELECTMODE + OP_PENDING: 1922 case MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING:
1919 c1 = 'v'; 1923 c1 = 'v';
1920 c2 = 'o'; 1924 c2 = 'o';
1921 break; 1925 break;
1922 case CMDLINE + INSERT: 1926 case MODE_CMDLINE | MODE_INSERT:
1923 if (!abbr) 1927 if (!abbr)
1924 cmd = "map!"; 1928 cmd = "map!";
1925 break; 1929 break;
1926 case CMDLINE: 1930 case MODE_CMDLINE:
1927 c1 = 'c'; 1931 c1 = 'c';
1928 break; 1932 break;
1929 case INSERT: 1933 case MODE_INSERT:
1930 c1 = 'i'; 1934 c1 = 'i';
1931 break; 1935 break;
1932 case LANGMAP: 1936 case MODE_LANGMAP:
1933 c1 = 'l'; 1937 c1 = 'l';
1934 break; 1938 break;
1935 case TERMINAL: 1939 case MODE_TERMINAL:
1936 c1 = 't'; 1940 c1 = 't';
1937 break; 1941 break;
1938 default: 1942 default:
1939 iemsg(_(e_makemap_illegal_mode)); 1943 iemsg(_(e_makemap_illegal_mode));
1940 return FAIL; 1944 return FAIL;
2493 { 2497 {
2494 char_u *p = mode_string; 2498 char_u *p = mode_string;
2495 int mode = 0; 2499 int mode = 0;
2496 int tmode; 2500 int tmode;
2497 int modec; 2501 int modec;
2498 const int MASK_V = VISUAL + SELECTMODE; 2502 const int MASK_V = MODE_VISUAL | MODE_SELECT;
2499 const int MASK_MAP = VISUAL + SELECTMODE + NORMAL + OP_PENDING; 2503 const int MASK_MAP = MODE_VISUAL | MODE_SELECT | MODE_NORMAL
2500 const int MASK_BANG = INSERT + CMDLINE; 2504 | MODE_OP_PENDING;
2505 const int MASK_BANG = MODE_INSERT | MODE_CMDLINE;
2501 2506
2502 if (*p == NUL) 2507 if (*p == NUL)
2503 p = (char_u *)" "; // compatibility 2508 p = (char_u *)" "; // compatibility
2504 while ((modec = *p++)) 2509 while ((modec = *p++))
2505 { 2510 {
2506 switch (modec) 2511 switch (modec)
2507 { 2512 {
2508 case 'i': tmode = INSERT; break; 2513 case 'i': tmode = MODE_INSERT; break;
2509 case 'l': tmode = LANGMAP; break; 2514 case 'l': tmode = MODE_LANGMAP; break;
2510 case 'c': tmode = CMDLINE; break; 2515 case 'c': tmode = MODE_CMDLINE; break;
2511 case 'n': tmode = NORMAL; break; 2516 case 'n': tmode = MODE_NORMAL; break;
2512 case 'x': tmode = VISUAL; break; 2517 case 'x': tmode = MODE_VISUAL; break;
2513 case 's': tmode = SELECTMODE; break; 2518 case 's': tmode = MODE_SELECT; break;
2514 case 'o': tmode = OP_PENDING; break; 2519 case 'o': tmode = MODE_OP_PENDING; break;
2515 case 't': tmode = TERMINAL; break; 2520 case 't': tmode = MODE_TERMINAL; break;
2516 case 'v': tmode = MASK_V; break; 2521 case 'v': tmode = MASK_V; break;
2517 case '!': tmode = MASK_BANG; break; 2522 case '!': tmode = MASK_BANG; break;
2518 case ' ': tmode = MASK_MAP; break; 2523 case ' ': tmode = MASK_MAP; break;
2519 default: 2524 default:
2520 return 0; // error, unknown mode character 2525 return 0; // error, unknown mode character
2670 #endif 2675 #endif
2671 2676
2672 2677
2673 #if defined(MSWIN) || defined(MACOS_X) 2678 #if defined(MSWIN) || defined(MACOS_X)
2674 2679
2675 # define VIS_SEL (VISUAL+SELECTMODE) // abbreviation 2680 # define VIS_SEL (MODE_VISUAL | MODE_SELECT) // abbreviation
2676 2681
2677 /* 2682 /*
2678 * Default mappings for some often used keys. 2683 * Default mappings for some often used keys.
2679 */ 2684 */
2680 struct initmap 2685 struct initmap
2686 # ifdef FEAT_GUI_MSWIN 2691 # ifdef FEAT_GUI_MSWIN
2687 // Use the Windows (CUA) keybindings. (GUI) 2692 // Use the Windows (CUA) keybindings. (GUI)
2688 static struct initmap initmappings[] = 2693 static struct initmap initmappings[] =
2689 { 2694 {
2690 // paste, copy and cut 2695 // paste, copy and cut
2691 {(char_u *)"<S-Insert> \"*P", NORMAL}, 2696 {(char_u *)"<S-Insert> \"*P", MODE_NORMAL},
2692 {(char_u *)"<S-Insert> \"-d\"*P", VIS_SEL}, 2697 {(char_u *)"<S-Insert> \"-d\"*P", VIS_SEL},
2693 {(char_u *)"<S-Insert> <C-R><C-O>*", INSERT+CMDLINE}, 2698 {(char_u *)"<S-Insert> <C-R><C-O>*", MODE_INSERT | MODE_CMDLINE},
2694 {(char_u *)"<C-Insert> \"*y", VIS_SEL}, 2699 {(char_u *)"<C-Insert> \"*y", VIS_SEL},
2695 {(char_u *)"<S-Del> \"*d", VIS_SEL}, 2700 {(char_u *)"<S-Del> \"*d", VIS_SEL},
2696 {(char_u *)"<C-Del> \"*d", VIS_SEL}, 2701 {(char_u *)"<C-Del> \"*d", VIS_SEL},
2697 {(char_u *)"<C-X> \"*d", VIS_SEL}, 2702 {(char_u *)"<C-X> \"*d", VIS_SEL},
2698 // Missing: CTRL-C (cancel) and CTRL-V (block selection) 2703 // Missing: CTRL-C (cancel) and CTRL-V (block selection)
2701 2706
2702 # if defined(MSWIN) && (!defined(FEAT_GUI) || defined(VIMDLL)) 2707 # if defined(MSWIN) && (!defined(FEAT_GUI) || defined(VIMDLL))
2703 // Use the Windows (CUA) keybindings. (Console) 2708 // Use the Windows (CUA) keybindings. (Console)
2704 static struct initmap cinitmappings[] = 2709 static struct initmap cinitmappings[] =
2705 { 2710 {
2706 {(char_u *)"\316w <C-Home>", NORMAL+VIS_SEL}, 2711 {(char_u *)"\316w <C-Home>", MODE_NORMAL | VIS_SEL},
2707 {(char_u *)"\316w <C-Home>", INSERT+CMDLINE}, 2712 {(char_u *)"\316w <C-Home>", MODE_INSERT | MODE_CMDLINE},
2708 {(char_u *)"\316u <C-End>", NORMAL+VIS_SEL}, 2713 {(char_u *)"\316u <C-End>", MODE_NORMAL | VIS_SEL},
2709 {(char_u *)"\316u <C-End>", INSERT+CMDLINE}, 2714 {(char_u *)"\316u <C-End>", MODE_INSERT | MODE_CMDLINE},
2710 2715
2711 // paste, copy and cut 2716 // paste, copy and cut
2712 # ifdef FEAT_CLIPBOARD 2717 # ifdef FEAT_CLIPBOARD
2713 {(char_u *)"\316\324 \"*P", NORMAL}, // SHIFT-Insert is "*P 2718 {(char_u *)"\316\324 \"*P", MODE_NORMAL}, // SHIFT-Insert is "*P
2714 {(char_u *)"\316\324 \"-d\"*P", VIS_SEL}, // SHIFT-Insert is "-d"*P 2719 {(char_u *)"\316\324 \"-d\"*P", VIS_SEL}, // SHIFT-Insert is "-d"*P
2715 {(char_u *)"\316\324 \022\017*", INSERT}, // SHIFT-Insert is ^R^O* 2720 {(char_u *)"\316\324 \022\017*", MODE_INSERT}, // SHIFT-Insert is ^R^O*
2716 {(char_u *)"\316\325 \"*y", VIS_SEL}, // CTRL-Insert is "*y 2721 {(char_u *)"\316\325 \"*y", VIS_SEL}, // CTRL-Insert is "*y
2717 {(char_u *)"\316\327 \"*d", VIS_SEL}, // SHIFT-Del is "*d 2722 {(char_u *)"\316\327 \"*d", VIS_SEL}, // SHIFT-Del is "*d
2718 {(char_u *)"\316\330 \"*d", VIS_SEL}, // CTRL-Del is "*d 2723 {(char_u *)"\316\330 \"*d", VIS_SEL}, // CTRL-Del is "*d
2719 {(char_u *)"\030 \"*d", VIS_SEL}, // CTRL-X is "*d 2724 {(char_u *)"\030 \"*d", VIS_SEL}, // CTRL-X is "*d
2720 # else 2725 # else
2721 {(char_u *)"\316\324 P", NORMAL}, // SHIFT-Insert is P 2726 {(char_u *)"\316\324 P", MODE_NORMAL}, // SHIFT-Insert is P
2722 {(char_u *)"\316\324 \"-dP", VIS_SEL}, // SHIFT-Insert is "-dP 2727 {(char_u *)"\316\324 \"-dP", VIS_SEL}, // SHIFT-Insert is "-dP
2723 {(char_u *)"\316\324 \022\017\"", INSERT}, // SHIFT-Insert is ^R^O" 2728 {(char_u *)"\316\324 \022\017\"", MODE_INSERT}, // SHIFT-Insert is ^R^O"
2724 {(char_u *)"\316\325 y", VIS_SEL}, // CTRL-Insert is y 2729 {(char_u *)"\316\325 y", VIS_SEL}, // CTRL-Insert is y
2725 {(char_u *)"\316\327 d", VIS_SEL}, // SHIFT-Del is d 2730 {(char_u *)"\316\327 d", VIS_SEL}, // SHIFT-Del is d
2726 {(char_u *)"\316\330 d", VIS_SEL}, // CTRL-Del is d 2731 {(char_u *)"\316\330 d", VIS_SEL}, // CTRL-Del is d
2727 # endif 2732 # endif
2728 }; 2733 };
2731 # if defined(MACOS_X) 2736 # if defined(MACOS_X)
2732 static struct initmap initmappings[] = 2737 static struct initmap initmappings[] =
2733 { 2738 {
2734 // Use the Standard MacOS binding. 2739 // Use the Standard MacOS binding.
2735 // paste, copy and cut 2740 // paste, copy and cut
2736 {(char_u *)"<D-v> \"*P", NORMAL}, 2741 {(char_u *)"<D-v> \"*P", MODE_NORMAL},
2737 {(char_u *)"<D-v> \"-d\"*P", VIS_SEL}, 2742 {(char_u *)"<D-v> \"-d\"*P", VIS_SEL},
2738 {(char_u *)"<D-v> <C-R>*", INSERT+CMDLINE}, 2743 {(char_u *)"<D-v> <C-R>*", MODE_INSERT | MODE_CMDLINE},
2739 {(char_u *)"<D-c> \"*y", VIS_SEL}, 2744 {(char_u *)"<D-c> \"*y", VIS_SEL},
2740 {(char_u *)"<D-x> \"*d", VIS_SEL}, 2745 {(char_u *)"<D-x> \"*d", VIS_SEL},
2741 {(char_u *)"<Backspace> \"-d", VIS_SEL}, 2746 {(char_u *)"<Backspace> \"-d", VIS_SEL},
2742 }; 2747 };
2743 # endif 2748 # endif