/usr/share/doc/vim/html/version5.html is in vim-doc 2:8.0.1453-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 | <HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" content="text/html; charset=ISO-8859-1">
<TITLE>Vim documentation: version5</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>Vim documentation: version5</H1>
<A NAME="top"></A>
<A HREF="index.html">main help file</A>
<HR>
<PRE>
*<A NAME="version5.txt"></A><B>version5.txt</B>* For Vim version 8.0. Last change: 2016 Feb 27
VIM REFERENCE MANUAL by <A HREF="intro.html#Bram">Bram</A> <A HREF="intro.html#Moolenaar">Moolenaar</A>
Welcome to Vim Version 5.0!
This document lists the differences between Vim 4.x and Vim 5.0.
Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc.
See |<A HREF="vi_diff.html">vi_diff.txt</A>| for an overview of differences between <A HREF="intro.html#Vi">Vi</A> and Vim 5.0.
See |<A HREF="version4.html">version4.txt</A>| for differences between Vim 3.0 and Vim 4.0.
INCOMPATIBLE: |<A HREF="#incompatible-5">incompatible-5</A>|
Default value for <A HREF="options.html#'compatible'">'compatible'</A> changed |<A HREF="#cp-default">cp-default</A>|
Text <A HREF="change.html#formatting">formatting</A> command "Q" changed |<A HREF="#Q-command-changed">Q-command-changed</A>|
<A HREF="cmdline.html#Command-line">Command-line</A> arguments changed |<A HREF="#cmdline-changed">cmdline-changed</A>|
Autocommands are kept |<A HREF="#autocmds-kept">autocmds-kept</A>|
Use of <A HREF="options.html#'hidden'">'hidden'</A> changed |<A HREF="#hidden-changed">hidden-changed</A>|
Text object commands changed |<A HREF="#text-objects-changed">text-objects-changed</A>|
X-Windows Resources removed |<A HREF="#x-resources">x-resources</A>|
Use of $VIM |<A HREF="#$VIM-use">$VIM-use</A>|
Use of $HOME for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> |<A HREF="#$HOME-use">$HOME-use</A>|
Tags file format changed |<A HREF="#tags-file-changed">tags-file-changed</A>|
Options changed |<A HREF="#options-changed">options-changed</A>|
CTRL-B in <A HREF="insert.html#Insert">Insert</A> mode gone |<A HREF="#i_CTRL-B-gone">i_CTRL-B-gone</A>|
NEW FEATURES: |<A HREF="#new-5">new-5</A>|
<A HREF="autocmd.html#Syntax">Syntax</A> highlighting |<A HREF="#new-highlighting">new-highlighting</A>|
Built-in script language |<A HREF="#new-script">new-script</A>|
<A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> support |<A HREF="#new-perl-python">new-perl-python</A>|
<A HREF="os_win32.html#Win32">Win32</A> GUI version |<A HREF="#added-win32-GUI">added-win32-GUI</A>|
VMS version |<A HREF="#added-VMS">added-VMS</A>|
BeOS version |<A HREF="#added-BeOS">added-BeOS</A>|
<A HREF="os_mac.html#Macintosh">Macintosh</A> <A HREF="gui.html#GUI">GUI</A> version |<A HREF="#added-Mac">added-Mac</A>|
More <A HREF="intro.html#Vi">Vi</A> compatible |<A HREF="#more-compatible">more-compatible</A>|
Read input from stdin |<A HREF="#read-stdin">read-stdin</A>|
Regular <A HREF="eval.html#expression">expression</A> patterns |<A HREF="#added-regexp">added-regexp</A>|
Overloaded <A HREF="tagsrch.html#tags">tags</A> |<A HREF="#tag-overloaded">tag-overloaded</A>|
New commands |<A HREF="#new-commands">new-commands</A>|
New options |<A HREF="#added-options">added-options</A>|
New command-line arguments |<A HREF="#added-cmdline-args">added-cmdline-args</A>|
Various additions |<A HREF="#added-various">added-various</A>|
IMPROVEMENTS |<A HREF="#improvements-5">improvements-5</A>|
COMPILE TIME CHANGES |<A HREF="#compile-changes-5">compile-changes-5</A>|
BUG FIXES |<A HREF="#bug-fixes-5">bug-fixes-5</A>|
VERSION 5.1 |<A HREF="#version-5.1">version-5.1</A>|
Changed |<A HREF="#changed-5.1">changed-5.1</A>|
Added |<A HREF="#added-5.1">added-5.1</A>|
Fixed |<A HREF="#fixed-5.1">fixed-5.1</A>|
VERSION 5.2 |<A HREF="#version-5.2">version-5.2</A>|
Long lines editable |<A HREF="#long-lines">long-lines</A>|
File browser added |<A HREF="#file-browser-5.2">file-browser-5.2</A>|
Dialogs added |<A HREF="#dialogs-added">dialogs-added</A>|
Popup menu added |<A HREF="#popup-menu-added">popup-menu-added</A>|
Select mode added |<A HREF="#new-Select-mode">new-Select-mode</A>|
<A HREF="starting.html#Session">Session</A> files added |<A HREF="#new-session-files">new-session-files</A>|
<A HREF="autocmd.html#User">User</A> defined <A HREF="eval.html#functions">functions</A> and commands |<A HREF="#new-user-defined">new-user-defined</A>|
New interfaces |<A HREF="#interfaces-5.2">interfaces-5.2</A>|
New ports |<A HREF="#ports-5.2">ports-5.2</A>|
Multi-byte support |<A HREF="#new-multi-byte">new-multi-byte</A>|
New functions |<A HREF="#new-functions-5.2">new-functions-5.2</A>|
New options |<A HREF="#new-options-5.2">new-options-5.2</A>|
New <A HREF="intro.html#Ex">Ex</A> commands |<A HREF="#new-ex-commands-5.2">new-ex-commands-5.2</A>|
Changed |<A HREF="#changed-5.2">changed-5.2</A>|
Added |<A HREF="#added-5.2">added-5.2</A>|
Fixed |<A HREF="#fixed-5.2">fixed-5.2</A>|
VERSION 5.3 |<A HREF="#version-5.3">version-5.3</A>|
Changed |<A HREF="#changed-5.3">changed-5.3</A>|
Added |<A HREF="#added-5.3">added-5.3</A>|
Fixed |<A HREF="#fixed-5.3">fixed-5.3</A>|
VERSION 5.4 |<A HREF="#version-5.4">version-5.4</A>|
Runtime directory introduced |<A HREF="#new-runtime-dir">new-runtime-dir</A>|
Filetype introduced |<A HREF="#new-filetype-5.4">new-filetype-5.4</A>|
Vim <A HREF="usr_41.html#script">script</A> line continuation |<A HREF="#new-line-continuation">new-line-continuation</A>|
Improved session files |<A HREF="#improved-sessions">improved-sessions</A>|
Autocommands improved |<A HREF="#improved-autocmds-5.4">improved-autocmds-5.4</A>|
Encryption |<A HREF="#new-encryption">new-encryption</A>|
GTK GUI port |<A HREF="#new-GTK-GUI">new-GTK-GUI</A>|
Menu changes |<A HREF="#menu-changes-5.4">menu-changes-5.4</A>|
Viminfo improved |<A HREF="#improved-viminfo">improved-viminfo</A>|
Various new commands |<A HREF="#new-commands-5.4">new-commands-5.4</A>|
Various new options |<A HREF="#new-options-5.4">new-options-5.4</A>|
Vim scripts |<A HREF="#new-script-5.4">new-script-5.4</A>|
Avoid hit-enter prompt |<A HREF="#avoid-hit-enter">avoid-hit-enter</A>|
Improved quickfix |<A HREF="#improved-quickfix">improved-quickfix</A>|
Regular expressions |<A HREF="#regexp-changes-5.4">regexp-changes-5.4</A>|
Changed |<A HREF="#changed-5.4">changed-5.4</A>|
Added |<A HREF="#added-5.4">added-5.4</A>|
Fixed |<A HREF="#fixed-5.4">fixed-5.4</A>|
VERSION 5.5 |<A HREF="#version-5.5">version-5.5</A>|
Changed |<A HREF="#changed-5.5">changed-5.5</A>|
Added |<A HREF="#added-5.5">added-5.5</A>|
Fixed |<A HREF="#fixed-5.5">fixed-5.5</A>|
VERSION 5.6 |<A HREF="#version-5.6">version-5.6</A>|
Changed |<A HREF="#changed-5.6">changed-5.6</A>|
Added |<A HREF="#added-5.6">added-5.6</A>|
Fixed |<A HREF="#fixed-5.6">fixed-5.6</A>|
VERSION 5.7 |<A HREF="#version-5.7">version-5.7</A>|
Changed |<A HREF="#changed-5.7">changed-5.7</A>|
Added |<A HREF="#added-5.7">added-5.7</A>|
Fixed |<A HREF="#fixed-5.7">fixed-5.7</A>|
VERSION 5.8 |<A HREF="#version-5.8">version-5.8</A>|
Changed |<A HREF="#changed-5.8">changed-5.8</A>|
Added |<A HREF="#added-5.8">added-5.8</A>|
Fixed |<A HREF="#fixed-5.8">fixed-5.8</A>|
==============================================================================
INCOMPATIBLE *<A NAME="incompatible-5"></A><B>incompatible-5</B>*
Default value for <A HREF="options.html#'compatible'">'compatible'</A> changed *<A NAME="cp-default"></A><B>cp-default</B>*
Vim version 5.0 tries to be more <A HREF="intro.html#Vi">Vi</A> compatible. This helps people who use Vim
<A HREF="motion.html#as">as</A> a drop-in replacement for <A HREF="intro.html#Vi">Vi</A>, but causes some things to be incompatible
with version 4.x.
In version 4.x the default value for the <A HREF="options.html#'compatible'">'compatible'</A> option was off. Now the
default is on. The first thing you will notice is that the "<A HREF="undo.html#u">u</A>" command undoes
itself. Other side effects will be that mappings may work differently or not
work at all.
Since a lot of people switching from Vim 4.x to 5.0 will find this annoying,
the <A HREF="options.html#'compatible'">'compatible'</A> option is switched off if Vim finds a <A HREF="starting.html#vimrc">vimrc</A> file. This is a
bit of magic to make sure that 90% of the Vim users will not be bitten by
this change.
What does this mean?
- If you prefer to run in <A HREF="options.html#'compatible'">'compatible'</A> mode and don't have a <A HREF="starting.html#vimrc">vimrc</A> file, you
don't have to <A HREF="diff.html#do">do</A> anything.
- If you prefer to run in <A HREF="options.html#'nocompatible'">'nocompatible'</A> mode and <A HREF="diff.html#do">do</A> have a <A HREF="starting.html#vimrc">vimrc</A> file, you
don't have to <A HREF="diff.html#do">do</A> anything.
- If you prefer to run in <A HREF="options.html#'compatible'">'compatible'</A> mode and <A HREF="diff.html#do">do</A> have a <A HREF="starting.html#vimrc">vimrc</A> file, you
should put this line first in your <A HREF="starting.html#vimrc">vimrc</A> file:
<B> :set compatible</B>
- If you prefer to run in <A HREF="options.html#'nocompatible'">'nocompatible'</A> mode and don't have a <A HREF="starting.html#vimrc">vimrc</A> file,
you can <A HREF="diff.html#do">do</A> one of the following:
- Create an empty <A HREF="starting.html#vimrc">vimrc</A> file (e.g.: "~/.vimrc" for <A HREF="os_unix.html#Unix">Unix</A>).
- Put this command in your <A HREF="starting.html#.exrc">.exrc</A> file or $EXINIT:
<B> :set nocompatible</B>
- Start Vim with the "<A HREF="starting.html#-N">-N</A>" argument.
If you are new to <A HREF="intro.html#Vi">Vi</A> and Vim, using <A HREF="options.html#'nocompatible'">'nocompatible'</A> is strongly recommended,
because <A HREF="intro.html#Vi">Vi</A> has a lot of unexpected side effects, which are avoided by this
setting. See <A HREF="options.html#'compatible'">'compatible'</A>.
If you like some things from <A HREF="options.html#'compatible'">'compatible'</A> and some not, you can tune the
compatibility with <A HREF="options.html#'cpoptions'">'cpoptions'</A>.
When you invoke Vim <A HREF="motion.html#as">as</A> "<A HREF="starting.html#ex">ex</A>" or "<A HREF="starting.html#gex">gex</A>", Vim always starts in compatible mode.
Text <A HREF="change.html#formatting">formatting</A> command "<A HREF="intro.html#Q">Q</A>" changed *<A NAME="Q-command-changed"></A><B>Q-command-changed</B>*
The "<A HREF="intro.html#Q">Q</A>" command formerly formatted lines to the width the <A HREF="options.html#'textwidth'">'textwidth'</A> option
specifies. The command for this is now "gq" (see |<A HREF="change.html#gq">gq</A>| for more info). The
reason for this change is that "<A HREF="intro.html#Q">Q</A>" is the standard <A HREF="intro.html#Vi">Vi</A> command to enter "<A HREF="intro.html#Ex">Ex</A>"
mode, and Vim now does in fact have an "<A HREF="intro.html#Ex">Ex</A>" mode (see |<A HREF="intro.html#Q">Q</A>| for more info).
If you still want to use "<A HREF="intro.html#Q">Q</A>" for <A HREF="change.html#formatting">formatting</A>, use this <A HREF="map.html#mapping">mapping</A>:
<B> :noremap Q gq</B>
And if you also want to use the functionality of "<A HREF="intro.html#Q">Q</A>":
<B> :noremap gQ Q</B>
<A HREF="cmdline.html#Command-line">Command-line</A> arguments changed *<A NAME="cmdline-changed"></A><B>cmdline-changed</B>*
<A HREF="cmdline.html#Command-line">Command-line</A> file-arguments and option-arguments can now be mixed. You can
give <A HREF="options.html#options">options</A> after the file names. Example:
<B> vim main.c -g</B>
This is not possible when editing a file that starts with a '<A HREF="motion.html#-">-</A>'. Use the "<A HREF="starting.html#--">--</A>"
argument then YXXY---|:
<B> vim -g -- -main.c</B>
"<A HREF="starting.html#-v">-v</A>" now means to start <A HREF="intro.html#Ex">Ex</A> in <A HREF="intro.html#Vi">Vi</A> mode, use "<A HREF="starting.html#-R">-R</A>" for read-only mode.
old: "vim -v file" |<A HREF="starting.html#-v">-v</A>|
new: "vim -R file" |<A HREF="starting.html#-R">-R</A>|
"<A HREF="starting.html#-e">-e</A>" now means to start <A HREF="intro.html#Vi">Vi</A> in <A HREF="intro.html#Ex">Ex</A> mode, use "<A HREF="starting.html#-q">-q</A>" for <A HREF="quickfix.html#quickfix">quickfix</A>.
old: "vim -e errorfile" |<A HREF="starting.html#-e">-e</A>|
new: "vim -q errorfile" |<A HREF="starting.html#-q">-q</A>|
"-s" in <A HREF="intro.html#Ex">Ex</A> mode now means to run in silent (batch) mode. |<A HREF="starting.html#-s-ex">-s-ex</A>|
"<A HREF="starting.html#-x">-x</A>" reserved for crypt, use "<A HREF="starting.html#-f">-f</A>" to avoid starting a new CLI (Amiga).
old: "vim -x file" |<A HREF="starting.html#-x">-x</A>|
new: "vim -f file" |<A HREF="starting.html#-f">-f</A>|
Vim allows up to ten "<A HREF="editing.html#+cmd">+cmd</A>" and "<A HREF="starting.html#-c">-c</A> cmd" arguments. Previously Vim executed
only the last one.
"<A HREF="starting.html#-n">-n</A>" now overrides any setting for <A HREF="options.html#'updatecount'">'updatecount'</A> in a <A HREF="starting.html#vimrc">vimrc</A> file, but not in
a <A HREF="gui.html#gvimrc">gvimrc</A> file.
Autocommands are kept *<A NAME="autocmds-kept"></A><B>autocmds-kept</B>*
Before version 5.0, autocommands with the same event, file name <A HREF="pattern.html#pattern">pattern</A>, and
command could appear only once. This was fine for simple autocommands (like
setting option values), but for more complicated autocommands, where the same
command might appear <A HREF="if_cscop.html#twice">twice</A>, this restriction caused problems. Therefore
Vim stores all autocommands and keeps them in the order that they are defined.
The most obvious side effect of this change is that when you source a <A HREF="starting.html#vimrc">vimrc</A>
file <A HREF="if_cscop.html#twice">twice</A>, the autocommands in <A HREF="motion.html#it">it</A> will be defined <A HREF="if_cscop.html#twice">twice</A>. To avoid this, <A HREF="diff.html#do">do</A>
one of these:
- Remove any autocommands that might potentially defined <A HREF="if_cscop.html#twice">twice</A> before
defining them. Example:
<B> :au! * *.ext</B>
<B> :au BufEnter *.ext ...</B>
- Put the autocommands inside an "<A HREF="eval.html#:if">:if</A>" command. Example:
<B> if !exists("did_ext_autocmds")</B>
<B> let did_ext_autocmds = 1</B>
<B> autocmd BufEnter *.ext ...</B>
<B> endif</B>
- Put your autocommands in a different <A HREF="autocmd.html#autocommand">autocommand</A> group so you can remove
them before defining them YXXY:augroup|:
<B> augroup uncompress</B>
<B> au!</B>
<B> au BufReadPost *.gz ...</B>
<B> augroup END</B>
Use of <A HREF="options.html#'hidden'">'hidden'</A> changed *<A NAME="hidden-changed"></A><B>hidden-changed</B>*
In version 4.x, only some commands used the <A HREF="options.html#'hidden'">'hidden'</A> option. Now all commands
uses <A HREF="motion.html#it">it</A> whenever a buffer disappears from a <A HREF="windows.html#window">window</A>.
Previously you could <A HREF="diff.html#do">do</A> "<A HREF="windows.html#:buf">:buf</A> xxx" in a changed buffer and that buffer would
then become hidden. Now you must set the <A HREF="options.html#'hidden'">'hidden'</A> option for this to work.
The new behavior is simpler: whether Vim hides <A HREF="windows.html#buffers">buffers</A> no longer depends on
the specific command that you use.
- with <A HREF="options.html#'hidden'">'hidden'</A> not set, you never get hidden <A HREF="windows.html#buffers">buffers</A>. Exceptions are the
"<A HREF="windows.html#:hide">:hide</A>" and ":close!" commands and, in rare cases, where you would otherwise
lose changes to the buffer.
- With <A HREF="options.html#'hidden'">'hidden'</A> set, you almost never unload a buffer. Exceptions are the
"<A HREF="windows.html#:bunload">:bunload</A>" or "<A HREF="windows.html#:bdel">:bdel</A>" commands.
"<A HREF="windows.html#:buffer">:buffer</A>" now supports a "<A HREF="change.html#!">!</A>": <A HREF="editing.html#abandon">abandon</A> changes in current buffer. So <A HREF="diff.html#do">do</A>
"<A HREF="windows.html#:bnext">:bnext</A>", "<A HREF="windows.html#:brewind">:brewind</A>", etc.
Text object commands changed *<A NAME="text-objects-changed"></A><B>text-objects-changed</B>*
Text object commands have new names. This allows more text <A HREF="index.html#objects">objects</A> and makes
characters available for other <A HREF="visual.html#Visual">Visual</A> mode commands. Since no more single
characters were available, text <A HREF="index.html#objects">objects</A> names now require two characters.
The first one is always '<A HREF="insert.html#i">i</A>' or '<A HREF="insert.html#a">a</A>'.
<B><FONT COLOR="PURPLE"> OLD NEW </FONT></B>
a aw a <A HREF="motion.html#word">word</A> |<A HREF="motion.html#v_aw">v_aw</A>|
A aW a <A HREF="motion.html#WORD">WORD</A> |<A HREF="motion.html#v_aW">v_aW</A>|
s as a <A HREF="motion.html#sentence">sentence</A> |<A HREF="motion.html#v_as">v_as</A>|
p ap a <A HREF="motion.html#paragraph">paragraph</A> |<A HREF="motion.html#v_ap">v_ap</A>|
<A HREF="change.html#S">S</A> ab a () block |<A HREF="motion.html#v_ab">v_ab</A>|
<A HREF="change.html#P">P</A> aB a <A HREF="intro.html#{}">{}</A> block |<A HREF="motion.html#v_aB">v_aB</A>|
There is another set of text <A HREF="index.html#objects">objects</A> that starts with "<A HREF="insert.html#i">i</A>", for "inner". These
select the same <A HREF="index.html#objects">objects</A>, but exclude white space.
X-Windows Resources removed *<A NAME="x-resources"></A><B>x-resources</B>*
Vim no longer supports the following X resources:
- boldColor
- italicColor
- underlineColor
- cursorColor
Vim now uses highlight groups to set colors. This avoids the confusion of
using a <A HREF="syntax.html#bold">bold</A> Font, which would imply a certain color. See |<A HREF="syntax.html#:highlight">:highlight</A>| and
|<A HREF="gui_x11.html#gui-resources">gui-resources</A>|.
Use of <A HREF="starting.html#$VIM">$VIM</A> *<A NAME="$VIM-use"></A><B>$VIM-use</B>*
Vim now uses the VIM environment variable to find all Vim system files. This
includes the global <A HREF="starting.html#vimrc">vimrc</A>, <A HREF="gui.html#gvimrc">gvimrc</A>, and <A HREF="gui.html#menu.vim">menu.vim</A> files and all on-line help
and <A HREF="syntax.html#syntax">syntax</A> files. See |<A HREF="starting.html#$VIM">$VIM</A>|. Starting with version 5.4, |<A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>| can
also be used.
For <A HREF="os_unix.html#Unix">Unix</A>, Vim sets a default value for <A HREF="starting.html#$VIM">$VIM</A> when doing "make install".
When <A HREF="starting.html#$VIM">$VIM</A> is not set, its default value is the directory from <A HREF="options.html#'helpfile'">'helpfile'</A>,
excluding "/doc/help.txt".
Use of <A HREF="options.html#$HOME">$HOME</A> for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> *<A NAME="$HOME-use"></A><B>$HOME-use</B>*
The <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> versions of Vim now first check <A HREF="options.html#$HOME">$HOME</A> when searching for
a <A HREF="starting.html#vimrc">vimrc</A> or <A HREF="starting.html#exrc">exrc</A> file and for reading/storing the <A HREF="starting.html#viminfo">viminfo</A> file. Previously Vim
used <A HREF="starting.html#$VIM">$VIM</A> for these systems, but this causes trouble on a system with several
users. Now Vim uses <A HREF="starting.html#$VIM">$VIM</A> only when <A HREF="options.html#$HOME">$HOME</A> is not set or the file is not found
in <A HREF="options.html#$HOME">$HOME</A>. See |<A HREF="starting.html#_vimrc">_vimrc</A>|.
Tags file format changed *<A NAME="tags-file-changed"></A><B>tags-file-changed</B>*
Only tabs are allowed to separate fields in a <A HREF="tagsrch.html#tags">tags</A> file. This allows for
spaces in a file name and is still <A HREF="intro.html#Vi">Vi</A> compatible. In previous versions of
Vim, any white space was allowed to separate the fields. If you have a file
which doesn't use a single <A HREF="intro.html#tab">tab</A> between fields, edit the <A HREF="tagsrch.html#tags">tags</A> file and execute
this command:
<B> :%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/</B>
Options changed *<A NAME="options-changed"></A><B>options-changed</B>*
The default value of <A HREF="options.html#'errorfile'">'errorfile'</A> has changed from "errors.vim" to "errors.err".
The reason is that only Vim scripts should have the ".vim" extensions.
The "<A HREF="quickfix.html#:make">:make</A>" command no longer uses the <A HREF="options.html#'errorfile'">'errorfile'</A> option. This prevents the
output of the "<A HREF="quickfix.html#:make">:make</A>" command from overwriting a manually saved error file.
"<A HREF="quickfix.html#:make">:make</A>" uses the <A HREF="options.html#'makeef'">'makeef'</A> option instead. This also allows for generating a
unique name, to prevent concurrently running "<A HREF="quickfix.html#:make">:make</A>" commands from overwriting
each other's files.
With <A HREF="options.html#'insertmode'">'insertmode'</A> set, a few more things change:
- <A HREF="intro.html#<Esc>"><Esc></A> in <A HREF="intro.html#Normal">Normal</A> mode goes to <A HREF="insert.html#Insert">Insert</A> mode.
- <A HREF="intro.html#<Esc>"><Esc></A> in <A HREF="insert.html#Insert">Insert</A> mode doesn't leave <A HREF="insert.html#Insert">Insert</A> mode.
- When doing "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'im'">im</A>" go to <A HREF="insert.html#Insert">Insert</A> mode immediately.
Vim considers a buffer to be changed when the <A HREF="options.html#'fileformat'">'fileformat'</A> (formerly the
<A HREF="options.html#'textmode'">'textmode'</A> option) is different from the buffer's initial format.
<A HREF="scroll.html#CTRL-B">CTRL-B</A> in <A HREF="insert.html#Insert">Insert</A> mode gone *<A NAME="i_CTRL-B-gone"></A><B>i_CTRL-B-gone</B>*
When Vim was compiled with the |<A HREF="various.html#+rightleft">+rightleft</A>| feature, you could use <A HREF="scroll.html#CTRL-B">CTRL-B</A> to
toggle the <A HREF="options.html#'revins'">'revins'</A> option. Unfortunately, some people hit the '<A HREF="motion.html#B">B</A>' key
accidentally when trying to type <A HREF="visual.html#CTRL-V">CTRL-V</A> or <A HREF="motion.html#CTRL-N">CTRL-N</A> and then didn't know how to
<A HREF="undo.html#undo">undo</A> this. Since toggling the <A HREF="options.html#'revins'">'revins'</A> option can easily be done with the
<A HREF="map.html#mapping">mapping</A> below, this use of the <A HREF="scroll.html#CTRL-B">CTRL-B</A> key is disabled. You can still use the
CTRL-_ key for this |<A HREF="insert.html#i_CTRL-_">i_CTRL-_</A>|.
<B> :imap <C-B> <C-O>:set revins!<CR></B>
==============================================================================
NEW FEATURES *<A NAME="new-5"></A><B>new-5</B>*
<A HREF="autocmd.html#Syntax">Syntax</A> highlighting *<A NAME="new-highlighting"></A><B>new-highlighting</B>*
Vim now has a very flexible way to highlighting just about any type of file.
See |<A HREF="syntax.html#syntax">syntax</A>|. Summary:
<B> :syntax on</B>
Colors and attributes can be set for the <A HREF="syntax.html#syntax">syntax</A> highlighting, and also for
other highlighted items with the '<A HREF="cmdline.html#:">:</A>' flag in the <A HREF="options.html#'highlight'">'highlight'</A> option. All
highlighted items are assigned a highlight group which specifies their
highlighting. See |<A HREF="syntax.html#:highlight">:highlight</A>|. The default colors have been improved.
You can use the "<A HREF="intro.html#Normal">Normal</A>" group to set the default fore/background colors for a
color <A HREF="terminal.html#terminal">terminal</A>. For the <A HREF="gui.html#GUI">GUI</A>, you can use this group to specify the font, too.
The "<A HREF="syntax.html#2html.vim">2html.vim</A>" <A HREF="usr_41.html#script">script</A> can be used to convert any file that has <A HREF="syntax.html#syntax">syntax</A>
highlighting to HTML. The colors will be exactly the same <A HREF="motion.html#as">as</A> how you see them
in Vim. With a HTML viewer you can also print the file with colors.
Built-in <A HREF="usr_41.html#script">script</A> language *<A NAME="new-script"></A><B>new-script</B>*
A few extra commands and an <A HREF="eval.html#expression">expression</A> evaluator enable you to write simple
but powerful scripts. Commands include "<A HREF="eval.html#:if">:if</A>" and "<A HREF="eval.html#:while">:while</A>". Expressions can
manipulate numbers and strings. You can use the '<A HREF="change.html#=">=</A>' <A HREF="sponsor.html#register">register</A> to insert
directly the result of an expression. See |<A HREF="eval.html#expression">expression</A>|.
<A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> support *<A NAME="new-perl-python"></A><B>new-perl-python</B>*
Vim can call <A HREF="if_perl.html#Perl">Perl</A> commands with "<A HREF="if_perl.html#:perldo">:perldo</A>", "<A HREF="if_perl.html#:perl">:perl</A>", etc. See |<A HREF="if_perl.html#perl">perl</A>|.
Patches made by Sven Verdoolaege and Matt Gerassimoff.
Vim can call <A HREF="if_pyth.html#Python">Python</A> commands with "<A HREF="if_pyth.html#:python">:python</A>" and "<A HREF="if_pyth.html#:pyfile">:pyfile</A>". See |<A HREF="if_pyth.html#python">python</A>|.
Both of these are only available when enabled at compile time.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> version *<A NAME="added-win32-GUI"></A><B>added-win32-GUI</B>*
The <A HREF="gui.html#GUI">GUI</A> has been ported to MS Windows 95 and NT. All the features of the <A HREF="options.html#X11">X11</A>
<A HREF="gui.html#GUI">GUI</A> are available to Windows users now. |<A HREF="gui_w32.html#gui-w32">gui-w32</A>|
This also fixes problems with running the <A HREF="os_win32.html#Win32">Win32</A> console version under Windows
95, where console support has always been bad.
There is also a version that supports OLE automation interface. |<A HREF="if_ole.html">if_ole.txt</A>|
Vim can be integrated with Microsoft Developer Studio using the <A HREF="if_ole.html#VisVim">VisVim</A> DLL.
It is possible to produce a DLL version of <A HREF="starting.html#gvim">gvim</A> with Borland C++ (Aaron).
<A HREF="os_vms.html#VMS">VMS</A> version *<A NAME="added-VMS"></A><B>added-VMS</B>*
Vim can now also be used on <A HREF="os_vms.html#VMS">VMS</A> systems. Port done by Henk Elbers.
This has not been tested much, but <A HREF="motion.html#it">it</A> should work.
Sorry, no documentation!
<A HREF="os_beos.html#BeOS">BeOS</A> version *<A NAME="added-BeOS"></A><B>added-BeOS</B>*
Vim can be used on <A HREF="os_beos.html#BeOS">BeOS</A> systems (including the <A HREF="os_beos.html#BeBox">BeBox</A>). (Olaf Seibert)
See |<A HREF="os_beos.html">os_beos.txt</A>|.
<A HREF="os_mac.html#Macintosh">Macintosh</A> <A HREF="gui.html#GUI">GUI</A> version *<A NAME="added-Mac"></A><B>added-Mac</B>*
Vim can now be used on the <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Dany St-Amant)
It has not been tested much yet, be careful!
See |<A HREF="os_mac.html">os_mac.txt</A>|.
More <A HREF="intro.html#Vi">Vi</A> compatible *<A NAME="more-compatible"></A><B>more-compatible</B>*
There is now a real <A HREF="intro.html#Ex">Ex</A> mode. Started with the "<A HREF="intro.html#Q">Q</A>" command, or by calling the
executable "<A HREF="starting.html#ex">ex</A>" or "<A HREF="starting.html#gex">gex</A>". |<A HREF="intro.html#Ex-mode">Ex-mode</A>|
Always allow multi-level <A HREF="undo.html#undo">undo</A>, also in <A HREF="intro.html#Vi">Vi</A> compatible mode. When the '<A HREF="undo.html#u">u</A>' flag
in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is included, <A HREF="undo.html#CTRL-R">CTRL-R</A> is used for <A HREF="repeat.html#repeating">repeating</A> the <A HREF="undo.html#undo">undo</A> or <A HREF="undo.html#redo">redo</A>
(like "<A HREF="repeat.html#.">.</A>" in <A HREF="intro.html#Nvi">Nvi</A>).
Read input from stdin *<A NAME="read-stdin"></A><B>read-stdin</B>*
When using the "<A HREF="motion.html#-">-</A>" command-line argument, Vim reads its text input from stdin.
This can be used for putting Vim at the end of a pipe:
<B> grep "^a.*" *.c | vim -</B>
See |<A HREF="starting.html#--">--</A>|.
Regular <A HREF="eval.html#expression">expression</A> patterns *<A NAME="added-regexp"></A><B>added-regexp</B>*
Added specifying a range for the number of matches of an atom: "\{a,b}". |<A HREF="pattern.html#/\{">/\{</A>|
Added the "shortest match" <A HREF="pattern.html#regexp">regexp</A> "\{-}" (Webb).
Added "\s", matches a white character. Can replace "[ \t]". |<A HREF="pattern.html#/\s">/\s</A>|
Added "\S", matches a non-white character. Can replace "[^ \t]". |<A HREF="pattern.html#/\S">/\S</A>|
Overloaded <A HREF="tagsrch.html#tags">tags</A> *<A NAME="tag-overloaded"></A><B>tag-overloaded</B>*
When using a language like C++, there can be several <A HREF="tagsrch.html#tags">tags</A> for the same
tagname. Commands have been added to be able to jump to any of these
overloaded <A HREF="tagsrch.html#tags">tags</A>:
|<A HREF="tagsrch.html#:tselect">:tselect</A>| <A HREF="eval.html#List">List</A> matching <A HREF="tagsrch.html#tags">tags</A>, and jump to one of them.
|<A HREF="tagsrch.html#:stselect">:stselect</A>| Idem, and split <A HREF="windows.html#window">window</A>.
|<A HREF="tagsrch.html#g_CTRL-]">g_CTRL-]</A>| Do "<A HREF="tagsrch.html#:tselect">:tselect</A>" with the <A HREF="motion.html#word">word</A> under the cursor.
After "<A HREF="tagsrch.html#:ta">:ta</A> {tagname}" with multiple matches:
|<A HREF="tagsrch.html#:tnext">:tnext</A>| Go to next matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:tprevious">:tprevious</A>| Go to previous matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:trewind">:trewind</A>| Go to first matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:tlast">:tlast</A>| Go to last matching <A HREF="tagsrch.html#tag">tag</A>.
The "<A HREF="tagsrch.html#:tag">:tag</A>" command now also accepts <A HREF="editing.html#wildcards">wildcards</A>. When doing command-line
completion on <A HREF="tagsrch.html#tags">tags</A>, case-insensitive matching is also available (at the end).
New commands *<A NAME="new-commands"></A><B>new-commands</B>*
|<A HREF="gui.html#:amenu">:amenu</A>| Define <A HREF="gui.html#menus">menus</A> for all modes, <A HREF="insert.html#inserting">inserting</A> a <A HREF="motion.html#CTRL-O">CTRL-O</A> for <A HREF="insert.html#Insert">Insert</A>
mode, ESC for <A HREF="visual.html#Visual">Visual</A> and <A HREF="pattern.html#CTRL-C">CTRL-C</A> for <A HREF="cmdline.html#Cmdline">Cmdline</A> mode. "amenu" is
used for the default <A HREF="gui.html#menus">menus</A> and the <A HREF="autocmd.html#Syntax">Syntax</A> menu.
|<A HREF="autocmd.html#:augroup">:augroup</A>| Set group to be used for following autocommands. Allows the
grouping of autocommands to enable deletion of a specific
group.
|<A HREF="quickfix.html#:crewind">:crewind</A>| Go to first error.
|<A HREF="quickfix.html#:clast">:clast</A>| Go to last error.
|<A HREF="autocmd.html#:doautoall">:doautoall</A>| Execute autocommands for all loaded <A HREF="windows.html#buffers">buffers</A>.
|<A HREF="eval.html#:echo">:echo</A>| Echo its argument, which is an <A HREF="eval.html#expression">expression</A>. Can be used to
display <A HREF="message.html#messages">messages</A> which include <A HREF="eval.html#variables">variables</A>.
|<A HREF="eval.html#:execute">:execute</A>| Execute its argument, which is an <A HREF="eval.html#expression">expression</A>. Can be used to
built up an <A HREF="intro.html#Ex">Ex</A> command with anything.
|<A HREF="windows.html#:hide">:hide</A>| Works like "<A HREF="windows.html#:close">:close</A>".
|<A HREF="eval.html#:if">:if</A>| Conditional execution, for built-in <A HREF="usr_41.html#script">script</A> language.
|<A HREF="starting.html#:intro">:intro</A>| Show introductory message. This is always executed when Vim
is started without file arguments.
|<A HREF="eval.html#:let">:let</A>| Assign a value to an internal variable.
|<A HREF="map.html#:omap">:omap</A>| Map only in operator-pending mode. Makes <A HREF="motion.html#it">it</A> possible to map
text-object commands.
|<A HREF="various.html#:redir">:redir</A>| Redirect output of <A HREF="message.html#messages">messages</A> to a file.
|<A HREF="editing.html#:update">:update</A>| Write when buffer has changed.
|<A HREF="eval.html#:while">:while</A>| While-loop for built-in <A HREF="usr_41.html#script">script</A> language.
<A HREF="visual.html#Visual">Visual</A> mode:
|<A HREF="visual.html#v_O">v_O</A>| "O" in <A HREF="visual.html#Visual">Visual</A> block mode, moves the cursor to the other corner
horizontally.
|<A HREF="change.html#v_D">v_D</A>| "D" in <A HREF="visual.html#Visual">Visual</A> block mode deletes till end of line.
<A HREF="insert.html#Insert">Insert</A> mode:
|<A HREF="insert.html#i_CTRL-]">i_CTRL-]</A>| Triggers abbreviation, without <A HREF="insert.html#inserting">inserting</A> any character.
New <A HREF="options.html#options">options</A> *<A NAME="added-options"></A><B>added-options</B>*
<A HREF="options.html#'background'">'background'</A> Used for selecting highlight color defaults. Also used in
"syntax.vim" for selecting the <A HREF="syntax.html#syntax">syntax</A> colors. Often set
automatically, depending on the <A HREF="terminal.html#terminal">terminal</A> used.
<A HREF="options.html#'complete'">'complete'</A> Specifies how <A HREF="insert.html#Insert">Insert</A> mode completion works.
<A HREF="options.html#'eventignore'">'eventignore'</A> Makes <A HREF="motion.html#it">it</A> possible to ignore autocommands temporarily.
<A HREF="options.html#'fileformat'">'fileformat'</A> Current file format. Replaces <A HREF="options.html#'textmode'">'textmode'</A>.
<A HREF="options.html#'fileformats'">'fileformats'</A> Possible file formats. Replaces <A HREF="options.html#'textauto'">'textauto'</A>.
New is that this also supports <A HREF="os_mac.html#Macintosh">Macintosh</A> format: A single <A HREF="motion.html#<CR>"><CR></A>
separates lines.
The default for <A HREF="options.html#'fileformats'">'fileformats'</A> for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_os2.html#OS/2">OS/2</A> is
"dos,unix", also when <A HREF="options.html#'compatible'">'compatible'</A> set. <A HREF="os_unix.html#Unix">Unix</A> type files
didn't work anyway when <A HREF="options.html#'fileformats'">'fileformats'</A> was empty.
<A HREF="options.html#'guicursor'">'guicursor'</A> Set the cursor shape and blinking in various modes.
Default is to adjust the cursor for <A HREF="insert.html#Insert">Insert</A> and <A HREF="insert.html#Replace">Replace</A> mode,
and when an <A HREF="motion.html#operator">operator</A> is pending. Blinking is default on.
<A HREF="options.html#'fkmap'">'fkmap'</A> <A HREF="farsi.html#Farsi">Farsi</A> key <A HREF="map.html#mapping">mapping</A>.
<A HREF="options.html#'hlsearch'">'hlsearch'</A> Highlight all matches with the last used search <A HREF="pattern.html#pattern">pattern</A>.
<A HREF="options.html#'hkmapp'">'hkmapp'</A> Phonetic Hebrew <A HREF="map.html#mapping">mapping</A>. (Ilya Dogolazky)
<A HREF="options.html#'iconstring'">'iconstring'</A> Define the name of the icon, when not empty. (Version 5.2: the
<A HREF="eval.html#string">string</A> is used literally, a newline can be used to make two
lines.)
<A HREF="options.html#'lazyredraw'">'lazyredraw'</A> Don't redraw the screen while executing macros, <A HREF="change.html#registers">registers</A> or
other not typed commands.
<A HREF="options.html#'makeef'">'makeef'</A> Errorfile to be used for "<A HREF="quickfix.html#:make">:make</A>". "##" is replaced with a
unique number. Avoids that two Vim sessions overwrite each
others errorfile. The <A HREF="os_unix.html#Unix">Unix</A> default is "/tmp/vim##.err"; for
<A HREF="os_amiga.html#Amiga">Amiga</A> "t:vim##.Err, for others "vim##.err".
<A HREF="options.html#'matchtime'">'matchtime'</A> 1/10s of a second to show a matching paren, when <A HREF="options.html#'showmatch'">'showmatch'</A>
is set. Like <A HREF="intro.html#Nvi">Nvi</A>.
<A HREF="options.html#'mousehide'">'mousehide'</A> Hide mouse pointer in <A HREF="gui.html#GUI">GUI</A> when typing text.
<A HREF="options.html#'nrformats'">'nrformats'</A> Defines what bases Vim will consider for numbers when using
the <A HREF="change.html#CTRL-A">CTRL-A</A> and <A HREF="change.html#CTRL-X">CTRL-X</A> commands. Default: "hex,octal".
<A HREF="options.html#'shellxquote'">'shellxquote'</A> Add extra <A HREF="quotes.html#quotes">quotes</A> around the whole shell command, including
redirection.
<A HREF="options.html#'softtabstop'">'softtabstop'</A> Make typing behave like tabstop is set at this value, without
<A HREF="change.html#changing">changing</A> the value of <A HREF="options.html#'tabstop'">'tabstop'</A>. Makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to keep
<A HREF="options.html#'ts'">'ts'</A> at 8, while still getting four spaces for a <A HREF="motion.html#<Tab>"><Tab></A>.
<A HREF="options.html#'titlestring'">'titlestring'</A> <A HREF="eval.html#String">String</A> for the <A HREF="windows.html#window">window</A> title, when not empty. (Version 5.2:
this <A HREF="eval.html#string">string</A> is used literally, a newline can be used to make
two lines.)
<A HREF="options.html#'verbose'">'verbose'</A> Level of verbosity. Makes <A HREF="motion.html#it">it</A> possible to show which <A HREF="starting.html#.vimrc">.vimrc</A>,
<A HREF="starting.html#.exrc">.exrc</A>, .viminfo files etc. are used for initializing. Also
to show autocommands that are being executed. Can also be set
by using the "<A HREF="starting.html#-V">-V</A>" command-line argument.
New command-line arguments *<A NAME="added-cmdline-args"></A><B>added-cmdline-args</B>*
|<A HREF="starting.html#-U">-U</A>| Set the <A HREF="gui.html#gvimrc">gvimrc</A> file to be used. Like "<A HREF="starting.html#-u">-u</A>" for the <A HREF="starting.html#vimrc">vimrc</A>.
|<A HREF="starting.html#-V">-V</A>| Set the <A HREF="options.html#'verbose'">'verbose'</A> option. E.g. "vim -V10".
|<A HREF="starting.html#-N">-N</A>| Start in non-compatible mode.
|<A HREF="starting.html#-C">-C</A>| Start in compatible mode.
|<A HREF="starting.html#-Z">-Z</A>| Start in restricted mode, disallow shell commands. Can also
be done by calling the executable "<A HREF="starting.html#rvim">rvim</A>".
|<A HREF="starting.html#-h">-h</A>| Show usage information and exit.
Various additions *<A NAME="added-various"></A><B>added-various</B>*
Added support for SNiFF+ connection (submitted by Toni Leherbauer). Vim can
be used <A HREF="motion.html#as">as</A> an editor for SNiFF. No documentation available...
For producing a bug report, the <A HREF="intro.html#bugreport.vim">bugreport.vim</A> <A HREF="usr_41.html#script">script</A> has been included.
Can be used with "<A HREF="repeat.html#:so">:so</A> $VIMRUNTIME/bugreport.vim", which creates the file
"bugreport.txt" in the current directory. |<A HREF="intro.html#bugs">bugs</A>|
Added range to "<A HREF="various.html#:normal">:normal</A>" command. Now you can repeat the same command for
each line in the range. |<A HREF="various.html#:normal-range">:normal-range</A>|
Included support for the <A HREF="farsi.html#Farsi">Farsi</A> language (Shiran). Only when enabled at
compile time. See |<A HREF="farsi.html#farsi">farsi</A>|.
==============================================================================
IMPROVEMENTS *<A NAME="improvements-5"></A><B>improvements-5</B>*
Performance:
- When <A HREF="options.html#'showcmd'">'showcmd'</A> was set, mappings would execute much more slowly because the
output would be flushed very often. Helps a lot when executing the "life"
macros with <A HREF="options.html#'showcmd'">'showcmd'</A> set.
- Included patches for binary searching in <A HREF="tagsrch.html#tags">tags</A> file (David O'Neill).
Can be disabled by resetting the <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> option.
- Don't update the ruler when <A HREF="repeat.html#repeating">repeating</A> insert (slowed <A HREF="motion.html#it">it</A> down a lot).
- For <A HREF="os_unix.html#Unix">Unix</A>, file name expansion is now done internally instead of starting a
shell for <A HREF="motion.html#it">it</A>.
- Expand environment <A HREF="eval.html#variables">variables</A> with expand_env(), instead of calling the
shell. Makes "<A HREF="repeat.html#:so">:so</A> $VIMRUNTIME/syntax/syntax.vim" a LOT faster.
- Reduced output for cursor positioning: Use CR-LF for moving to first few
columns in next few lines; Don't output CR <A HREF="if_cscop.html#twice">twice</A> when using termios.
- Optimized cursor positioning. Use CR, BS and NL when it's shorter than
absolute cursor positioning.
- Disable redrawing while <A HREF="repeat.html#repeating">repeating</A> insert "1000ii<Esc>".
- Made "d$" or "<A HREF="change.html#D">D</A>" for long lines a lot faster (delete all characters at once,
instead of one by one).
- Access option table by first <A HREF="print.html#letter">letter</A>, instead of searching from start.
- Made setting special highlighting attributes a lot faster by using
highlight_attr[], instead of searching in the <A HREF="options.html#'highlight'">'highlight'</A> <A HREF="eval.html#string">string</A>.
- Don't show the mode when redrawing is disabled.
- When setting an option, only redraw the screen when required.
- Improved performance of <A HREF="intro.html#Ex">Ex</A> commands by using a lookup table for the first
character.
Options:
<A HREF="options.html#'cinoptions'">'cinoptions'</A> Added '<A HREF="index.html#g">g</A>' flag, for C++ scope declarations.
<A HREF="options.html#'cpoptions'">'cpoptions'</A> Added '<A HREF="motion.html#E">E</A>' flag: Disallow yanking, <A HREF="change.html#deleting">deleting</A>, etc. empty text
area. Default is to allow empty yanks. When '<A HREF="motion.html#E">E</A>' is included,
"y$" in an empty line now is handled <A HREF="motion.html#as">as</A> an error (Vi
compatible).
Added '<A HREF="motion.html#j">j</A>' flag: Only add two spaces for a join after a '<A HREF="repeat.html#.">.</A>',
not after a '<A HREF="pattern.html#?">?</A>' or '<A HREF="change.html#!">!</A>'.
Added '<A HREF="insert.html#A">A</A>' flag: don't give <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.
Added '<A HREF="motion.html#L">L</A>' flag: When not included, and <A HREF="options.html#'list'">'list'</A> is set,
<A HREF="options.html#'textwidth'">'textwidth'</A> <A HREF="change.html#formatting">formatting</A> works like <A HREF="options.html#'list'">'list'</A> is not set.
Added '<A HREF="motion.html#W">W</A>' flag: Let "<A HREF="editing.html#:w!">:w!</A>" behave like <A HREF="intro.html#Vi">Vi</A>: don't overwrite
readonly files, or a file owned by someone else.
<A HREF="options.html#'highlight'">'highlight'</A> Added '<A HREF="repeat.html#@">@</A>' flag, for '<A HREF="repeat.html#@">@</A>' characters after the last line on the
screen, and '<A HREF="motion.html#$">$</A>' at the end of the line when <A HREF="options.html#'list'">'list'</A> is set.
Added '<A HREF="insert.html#i">i</A>' flag: Set highlighting for <A HREF="options.html#'incsearch'">'incsearch'</A>. Default
uses "IncSearch" highlight group, which is linked to "<A HREF="visual.html#Visual">Visual</A>".
Disallow '<A HREF="motion.html#h">h</A>' flag in <A HREF="options.html#'highlight'">'highlight'</A> (wasn't used anymore since
3.0).
<A HREF="options.html#'guifont'">'guifont'</A> <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> only: When set to "*" brings up a font requester.
<A HREF="options.html#'guipty'">'guipty'</A> Default on, because so many people need <A HREF="motion.html#it">it</A>.
<A HREF="options.html#'path'">'path'</A> Can contain <A HREF="editing.html#wildcards">wildcards</A>, and "**" for searching a whole tree.
<A HREF="options.html#'shortmess'">'shortmess'</A> Added '<A HREF="insert.html#I">I</A>' flag to avoid the <A HREF="intro.html#intro">intro</A> message.
<A HREF="options.html#'viminfo'">'viminfo'</A> Added '<A HREF="motion.html#%">%</A>' flag: Store buffer <A HREF="eval.html#list">list</A> in <A HREF="starting.html#viminfo">viminfo</A> file.
- Increased defaults for <A HREF="options.html#'maxmem'">'maxmem'</A> and <A HREF="options.html#'maxmemtot'">'maxmemtot'</A> for <A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_win32.html#Win32">Win32</A>. Most
machines have much more RAM now that prices have dropped.
- Implemented ":set all&", set all <A HREF="options.html#options">options</A> to their default value. |<A HREF="options.html#:set">:set</A>|
Swap file:
- Don't create a swap file for a readonly file. Then create one on the first
change. Also create a swapfile when the amount of memory used is getting
too high. |<A HREF="recover.html#swap-file">swap-file</A>|
- Make swap file "hidden", if possible. On <A HREF="os_unix.html#Unix">Unix</A> this is done by prepending a
dot to the swap file name. When long file names are used, the DJGPP and
<A HREF="os_win32.html#Win32">Win32</A> versions also prepend a dot, in <A HREF="change.html#case">case</A> a file on a mounted <A HREF="os_unix.html#Unix">Unix</A> file
system is edited. |<A HREF="recover.html#:swapname">:swapname</A>| On <A HREF="os_msdos.html#MSDOS">MSDOS</A> the hidden file attribute is NOT
set, because this causes problems with share.exe.
- <A HREF="options.html#'updatecount'">'updatecount'</A> always defaults to non-zero, also for <A HREF="intro.html#Vi">Vi</A> compatible mode.
This means there is a swap file, which can be used for <A HREF="recover.html#recovery">recovery</A>.
Tags:
- Included <A HREF="tagsrch.html#ctags">ctags</A> 2.0 (Darren Hiebert). The <A HREF="syntax.html#syntax">syntax</A> for static <A HREF="tagsrch.html#tags">tags</A> changed
from
{tag}:{fname} {fname} {command}
to
{tag} {fname} {command};" file:
Which is both faster to parse, shorter and <A HREF="intro.html#Vi">Vi</A> compatible. The old format is
also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS).
|<A HREF="tagsrch.html#tags-file-format">tags-file-format</A>|
- Completion of <A HREF="tagsrch.html#tags">tags</A> now also includes static <A HREF="tagsrch.html#tags">tags</A> for other files, at the
end.
- Included "shtags" from Stephen Riehm.
- When finding a matching <A HREF="tagsrch.html#tag">tag</A>, but the file doesn't exist, continue searching
for another match. Helps when using the same <A HREF="tagsrch.html#tags">tags</A> file (with links) for
different versions of source code.
- Give a <A HREF="tagsrch.html#tag">tag</A> with a global match in the current file a higher priority than a
global match in another file.
Included xxd version V1.8 (Juergen Weigert).
Autocommands:
- <A HREF="autocmd.html#VimLeave">VimLeave</A> autocommands are executed after <A HREF="editing.html#writing">writing</A> the <A HREF="starting.html#viminfo">viminfo</A> file, instead
of before. |<A HREF="autocmd.html#VimLeave">VimLeave</A>|
- Allow <A HREF="change.html#changing">changing</A> autocommands while executing them. This allows for
self-modifying autocommands. (idea from Goldberg)
- When using autocommands with two or more patterns, could not split
":if/:endif" over two lines. Now all matching autocommands are executed in
one do_cmdline().
- Autocommands no longer change the command repeated with "<A HREF="repeat.html#.">.</A>".
- Search patterns are restored after executing autocommands. This avoids
that the <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting is messed up by autocommands.
- When trying to execute an <A HREF="autocmd.html#autocommand">autocommand</A>, also try matching the <A HREF="pattern.html#pattern">pattern</A> with
the short file name. Helps when short file name is different from full
file name (expanded symbolic links). |<A HREF="autocmd.html#autocmd-patterns">autocmd-patterns</A>|
- Made the output of "<A HREF="autocmd.html#:autocmd">:autocmd</A>" shorter and look better.
- Expand <sfile> in an "<A HREF="autocmd.html#:autocmd">:autocmd</A>" when <A HREF="motion.html#it">it</A> is defined. |<A HREF="cmdline.html#<sfile>"><sfile></A>|
- Added "nested" flag to "<A HREF="autocmd.html#:autocmd">:autocmd</A>", allows nesting. |<A HREF="autocmd.html#autocmd-nested">autocmd-nested</A>|
- Added [group] argument to "<A HREF="autocmd.html#:autocmd">:autocmd</A>". Overrides the currently set group.
|<A HREF="autocmd.html#autocmd-groups">autocmd-groups</A>|
- new events:
|<A HREF="autocmd.html#BufUnload">BufUnload</A>| before a buffer is unloaded
|<A HREF="autocmd.html#BufDelete">BufDelete</A>| before a buffer is deleted from the buffer <A HREF="eval.html#list">list</A>
|<A HREF="autocmd.html#FileChangedShell">FileChangedShell</A>| when a file's modification time has changed after
executing a shell command
|<A HREF="autocmd.html#User">User</A>| user-defined <A HREF="autocmd.html#autocommand">autocommand</A>
- When <A HREF="options.html#'modified'">'modified'</A> was set by a BufRead* <A HREF="autocmd.html#autocommand">autocommand</A>, <A HREF="motion.html#it">it</A> was reset again
afterwards. Now the "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'modified'">modified</A>" is remembered.
<A HREF="gui.html#GUI">GUI</A>:
- Improved <A HREF="gui.html#GUI">GUI</A> scrollbar handling when redrawing is slower than the scrollbar
events are generated.
- "vim -u NONE" now also stops loading the <A HREF="gui.html#.gvimrc">.gvimrc</A> and other <A HREF="gui.html#GUI">GUI</A> inits. |<A HREF="starting.html#-u">-u</A>|
Use "-U" to use another <A HREF="gui.html#gvimrc">gvimrc</A> file. |<A HREF="starting.html#-U">-U</A>|
- Handle <A HREF="pattern.html#CTRL-C">CTRL-C</A> for external command, also for systems where "setsid()" is
supported.
- When starting the <A HREF="gui.html#GUI">GUI</A>, restrict the <A HREF="windows.html#window">window</A> size to the screen size.
- The default <A HREF="gui.html#menus">menus</A> are read from $VIMRUNTIME/menu.vim. This allows for a
customized default menu. |<A HREF="menu.html">menu.vim</A>|
- Improved the default <A HREF="gui.html#menus">menus</A>. Added File/Print, a Window menu, <A HREF="autocmd.html#Syntax">Syntax</A> menu,
etc.
- Added priority to the "<A HREF="gui.html#:menu">:menu</A>" command. Now each menu can be put in a place
where you want <A HREF="motion.html#it">it</A>, independent of the order in which the <A HREF="gui.html#menus">menus</A> are defined.
|<A HREF="gui.html#menu-priority">menu-priority</A>|
Give a warning in the <A HREF="intro.html#intro">intro</A> screen when running the <A HREF="os_win32.html#Win32">Win32</A> console version on
Windows 95 because there are problems using this version under Windows 95.
|<A HREF="os_win32.html#win32-problems">win32-problems</A>|
Added '<A HREF="motion.html#e">e</A>' flag for "<A HREF="change.html#:substitute">:substitute</A>" command: Don't complain when not finding a
match (Campbell). |<A HREF="change.html#:s">:s</A>|
When using search commands in a <A HREF="map.html#mapping">mapping</A>, only the last one is kept in the
<A HREF="cmdline.html#history">history</A>. Avoids that the <A HREF="cmdline.html#history">history</A> is trashed by long mappings.
Ignore characters after "<A HREF="starting.html#ex">ex</A>", "<A HREF="starting.html#view">view</A>" and "<A HREF="starting.html#gvim">gvim</A>" when checking <A HREF="starting.html#startup">startup</A> mode.
Allows the use of "gvim5" et. al. |<A HREF="starting.html#gvim">gvim</A>| "<A HREF="starting.html#gview">gview</A>" starts the <A HREF="gui.html#GUI">GUI</A> in readonly
mode. |<A HREF="starting.html#gview">gview</A>|
When resizing <A HREF="windows.html#windows">windows</A>, the cursor is kept in the same relative position, if
possible. (Webb)
"<A HREF="windows.html#:all">:all</A>" and "<A HREF="windows.html#:ball">:ball</A>" no longer close and then open a <A HREF="windows.html#window">window</A> for the same buffer.
Avoids losing <A HREF="options.html#options">options</A>, <A HREF="motion.html#jumplist">jumplist</A>, and other info.
"<A HREF="starting.html#-f">-f</A>" command-line argument is now ignored if Vim was compiled without <A HREF="gui.html#GUI">GUI</A>.
|<A HREF="starting.html#-f">-f</A>|
In <A HREF="visual.html#Visual">Visual</A> block mode, the right mouse button picks up the nearest corner.
Changed default mappings for <A HREF="os_dos.html#DOS">DOS</A> et al. Removed the DOS-specific mappings,
only use the Windows ones. Added Shift-Insert, Ctrl-Insert, Ctrl-Del and
Shift-Del.
Changed the numbers in the output of "<A HREF="motion.html#:jumps">:jumps</A>", so you can see where {count}
<A HREF="motion.html#CTRL-O">CTRL-O</A> takes you. |<A HREF="motion.html#:jumps">:jumps</A>|
Using "<A HREF="change.html#~">~</A>" for $HOME now works for all systems. |<A HREF="options.html#$HOME">$HOME</A>|
<A HREF="os_unix.html#Unix">Unix</A>: Besides using <A HREF="pattern.html#CTRL-C">CTRL-C</A>, also use the INTR character from the tty settings.
Somebody has INTR set to DEL.
Allow a <LF> in a "<A HREF="helphelp.html#:help">:help</A>" command argument to end the help command, so another
command can follow.
Doing "<A HREF="motion.html#%">%</A>" on a line that starts with " #if" didn't jump to matching "#else".
Don't recognize "#if", "#else" etc. for '<A HREF="motion.html#%">%</A>' when <A HREF="options.html#'cpo'">'cpo'</A> contains the '<A HREF="motion.html#%">%</A>' flag.
|<A HREF="motion.html#%">%</A>|
<A HREF="insert.html#Insert">Insert</A> mode expansion with "<A HREF="motion.html#CTRL-N">CTRL-N</A>", "<A HREF="motion.html#CTRL-P">CTRL-P</A>" and "<A HREF="change.html#CTRL-X">CTRL-X</A>" improved
YXXYins-completion|:
- <A HREF="options.html#'complete'">'complete'</A> option added.
- When <A HREF="options.html#'nowrapscan'">'nowrapscan'</A> is set, and no match found, report the searched direction
in the error message.
- Repeating <A HREF="change.html#CTRL-X">CTRL-X</A> commands adds following words/lines after the match.
- When adding-expansions, accept single character matches.
- Made repeated <A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="motion.html#CTRL-N">CTRL-N</A> not break <A HREF="undo.html#undo">undo</A>, and "<A HREF="repeat.html#.">.</A>" repeats the whole
insertion. Also fixes not being able to backspace over a <A HREF="motion.html#word">word</A> that has been
inserted with <A HREF="motion.html#CTRL-N">CTRL-N</A>.
When <A HREF="uganda.html#copying">copying</A> characters in <A HREF="insert.html#Insert">Insert</A> mode from previous/next line, with <A HREF="scroll.html#CTRL-E">CTRL-E</A> or
<A HREF="scroll.html#CTRL-Y">CTRL-Y</A>, <A HREF="options.html#'textwidth'">'textwidth'</A> is no longer used. |<A HREF="insert.html#i_CTRL-E">i_CTRL-E</A>|
Commands that move in the <A HREF="editing.html#arglist">arglist</A>, like "<A HREF="editing.html#:n">:n</A>" and "<A HREF="editing.html#:rew">:rew</A>", keep the old cursor
position of the file (this is mostly <A HREF="intro.html#Vi">Vi</A> compatible).
Vim now remembers the <A HREF="motion.html#'<">'<</A> and <A HREF="motion.html#'>">'></A> marks for each buffer. This fixes a problem
that a line-delete in one buffer invalidated the <A HREF="motion.html#'<">'<</A> and <A HREF="motion.html#'>">'></A> marks in another
buffer. |<A HREF="motion.html#'<">'<</A>|
For <A HREF="os_msdos.html#MSDOS">MSDOS</A>, <A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_os2.html#OS/2">OS/2</A>: When <A HREF="starting.html#$VIM">$VIM</A> not set, use the path from the executable.
When using the executable path for <A HREF="starting.html#$VIM">$VIM</A>, remove "src/" when present. Should
make Vim find the docs and <A HREF="syntax.html#syntax">syntax</A> files when <A HREF="motion.html#it">it</A> is run directly after
compiling. |<A HREF="starting.html#$VIM">$VIM</A>|
When quitting <A HREF="visual.html#Visual">Visual</A> mode with <A HREF="intro.html#<Esc>"><Esc></A>, the cursor is put at start of the <A HREF="visual.html#Visual">Visual</A>
area (like after executing an <A HREF="motion.html#operator">operator</A>).
<A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_unix.html#Unix">Unix</A> version: Removed 1100 character limit on external commands.
Added possibility to include a space in a "<A HREF="editing.html#:edit">:edit</A> +command" argument, by
putting a <A HREF="intro.html#backslash">backslash</A> before <A HREF="motion.html#it">it</A>. |<A HREF="editing.html#+cmd">+cmd</A>|
After <A HREF="recover.html#recovery">recovery</A>, <A HREF="autocmd.html#BufReadPost">BufReadPost</A> autocommands are applied. |<A HREF="recover.html#:recover">:recover</A>|
Added color support for "os2ansi", <A HREF="os_os2.html#OS/2">OS/2</A> console. (Slootman)
Allow "%:p:h" when % is empty. |<A HREF="cmdline.html#:_%">:_%</A>|
Included "<sfile>": file name from the "<A HREF="repeat.html#:source">:source</A>" command. |<A HREF="cmdline.html#<sfile>"><sfile></A>|
Added "<A HREF="intro.html#<Bslash>"><Bslash></A>" special character. Helps for avoiding multiple backslashes
in mappings and <A HREF="gui.html#menus">menus</A>.
In a help <A HREF="windows.html#window">window</A>, a <A HREF="term.html#double-click">double-click</A> jumps to the <A HREF="tagsrch.html#tag">tag</A> under the cursor (like
<A HREF="tagsrch.html#CTRL-]">CTRL-]</A>).
<A HREF="motion.html#<C-Left>"><C-Left></A> and <A HREF="motion.html#<C-Right>"><C-Right></A> now work like <A HREF="motion.html#<S-Left>"><S-Left></A> and <A HREF="motion.html#<S-Right>"><S-Right></A>, move a <A HREF="motion.html#word">word</A>
forward/backward (Windows compatible). |<A HREF="motion.html#<C-Left>"><C-Left></A>|
Removed the requirement for a "<A HREF="various.html#:version">:version</A>" command in a <A HREF="starting.html#.vimrc">.vimrc</A> file. It wasn't
used for anything. You can use "<A HREF="eval.html#:if">:if</A>" to handle differences between versions.
|<A HREF="various.html#:version">:version</A>|
For <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_os2.html#OS/2">OS/2</A>: When comparing file names for autocommands, don't
make a difference between '<A HREF="pattern.html#/">/</A>' and '\' for path separator.
New <A HREF="term.html#termcap">termcap</A> <A HREF="options.html#options">options</A>:
"mb": blink. Can only be used by assigning <A HREF="motion.html#it">it</A> to one of the other highlight
<A HREF="options.html#options">options</A>. |<A HREF="term.html#t_mb">t_mb</A>|
"bc": backspace character. |<A HREF="term.html#t_bc">t_bc</A>|
"nd": Used for moving the cursor right in the <A HREF="gui.html#GUI">GUI</A>, to avoid removing one line
of pixels from the last <A HREF="syntax.html#bold">bold</A> character. |<A HREF="term.html#t_nd">t_nd</A>|
"xs": highlighting not erased by overwriting, for <A HREF="term.html#hpterm">hpterm</A>. Combined with
<A HREF="options.html#'weirdinvert'">'weirdinvert'</A>. <A HREF="visual.html#Visual">Visual</A> mode works on <A HREF="term.html#hpterm">hpterm</A> now. |<A HREF="term.html#t_xs">t_xs</A>|
<A HREF="os_unix.html#Unix">Unix</A>: Set time of patch and <A HREF="editing.html#backup">backup</A> file same <A HREF="motion.html#as">as</A> original file. (Hiebert).
<A HREF="os_amiga.html#Amiga">Amiga</A>: In QuickFix mode no longer opens another <A HREF="windows.html#window">window</A>. Shell commands can be
used now.
Added decmouse patches from David Binette. Can now use Dec and Netterm mouse.
But only when enabled at compile time.
Added '#' <A HREF="sponsor.html#register">register</A>: Alternate file name |<A HREF="change.html#quote#">quote#</A>|. Display '#' <A HREF="sponsor.html#register">register</A> with
":dis" command. |<A HREF="change.html#:display">:display</A>|
Removed '<A HREF="cmdline.html#:">:</A>' from <A HREF="options.html#'isfname'">'isfname'</A> default for <A HREF="os_unix.html#Unix">Unix</A>. Check for "://" in a file name
anyway. Also check for ":\\", for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>.
Added <A HREF="intro.html#count">count</A> to "K"eyword command, when <A HREF="options.html#'keywordprg'">'keywordprg'</A> is "man", is inserted in
the man command. "2K" results in "!man 2 <cword>". |<A HREF="various.html#K">K</A>|
When using "<A HREF="editing.html#gf">gf</A>" on a relative path name, remove "../" from the file name, like
it's done for file names in the <A HREF="tagsrch.html#tags">tags</A> file. |<A HREF="editing.html#gf">gf</A>|
When finishing <A HREF="repeat.html#recording">recording</A>, don't make the recorded <A HREF="sponsor.html#register">register</A> the default put
<A HREF="sponsor.html#register">register</A>.
When using "<A HREF="change.html#!!">!!</A>", don't put ":5,5!" on the command-line, but ":.!". And some
other enhancements to replace the line number with "<A HREF="repeat.html#.">.</A>" or "<A HREF="motion.html#$">$</A>" when possible.
<A HREF="os_msdos.html#MSDOS">MSDOS</A> et al.: Renamed $VIM/viminfo to $VIM/_viminfo. It's more consistent:
.vimrc/_vimrc and .viminfo/_viminfo
For systems where <A HREF="change.html#case">case</A> doesn't matter in file names (MSDOS, Amiga), ignore
<A HREF="change.html#case">case</A> while <A HREF="change.html#sorting">sorting</A> file names. For buffer names too.
When reading from stdin doesn't work, read from stderr (helps for "foo | xargs
vim").
32 bit <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> version: Replaced csdpmi3 by csdpmi4.
Changed <A HREF="motion.html#<C-Left>"><C-Left></A> and <A HREF="motion.html#<C-Right>"><C-Right></A> to skip a <A HREF="motion.html#WORD">WORD</A> instead of a <A HREF="motion.html#word">word</A>.
Warning for changed modified time when overwriting a file now also works on
other systems than <A HREF="os_unix.html#Unix">Unix</A>.
<A HREF="os_unix.html#Unix">Unix</A>: Changed the defaults for configure to be the same <A HREF="motion.html#as">as</A> the defaults for
Makefile: include <A HREF="gui.html#GUI">GUI</A>, <A HREF="if_perl.html#Perl">Perl</A>, and <A HREF="if_pyth.html#Python">Python</A>.
Some versions of <A HREF="gui_x11.html#Motif">Motif</A> require "-lXpm". Added check for this in configure.
Don't add "-L/usr/lib" to the link line, causes problems on a few systems.
==============================================================================
COMPILE TIME CHANGES *<A NAME="compile-changes-5"></A><B>compile-changes-5</B>*
When compiling, allow a choice for minimal, normal or maximal features in an
<A HREF="starting.html#easy">easy</A> way, by <A HREF="change.html#changing">changing</A> a single line in src/feature.h.
The DOS16 version has been compiled with minimal features to avoid running
out of memory too quickly.
The <A HREF="os_win32.html#Win32">Win32</A>, DJGPP, and <A HREF="os_os2.html#OS/2">OS/2</A> versions use maximal features, because they have
enough memory.
The <A HREF="os_amiga.html#Amiga">Amiga</A> version is available with normal and maximal features.
Added "make test" to <A HREF="os_unix.html#Unix">Unix</A> version Makefile. Allows for a quick check if most
"normal" commands work properly. Also tests a few specific commands.
Added setlocale() with codepage support for DJGPP version.
autoconf:
- Added autoconf check for -lXdmcp.
- Included check for -lXmu, no longer needed to edit the Makefile for this.
- Switched to autoconf 2.12.
- Added configure check for <poll.h>. Seems to be needed when including
<A HREF="if_perl.html#Perl">Perl</A> on Linux?
- termlib is now checked before <A HREF="term.html#termcap">termcap</A>.
- Added configure check for strncasecmp(), stricmp() and strnicmp(). Added
vim_stricmp() for when there's no library function for stricmp().
- Use "datadir" in configure, instead of our own check for HELPDIR.
Removed "make proto" from Makefile.manx. Could not make <A HREF="motion.html#it">it</A> work without a lot
of #ifdefs.
Removed "proto/" from paths in proto.h. Needed for the <A HREF="os_mac.html#Mac">Mac</A> port.
Drastically changed Makefile.mint. Now <A HREF="motion.html#it">it</A> includes the <A HREF="os_unix.html#Unix">Unix</A> Makefile.
Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor)
All source files are now edited with a tabstop of 8 instead of 4, which is
better when debugging and using other tools. <A HREF="options.html#'softtabstop'">'softtabstop'</A> is set to 4, to
make editing easier.
<A HREF="os_unix.html#Unix">Unix</A>: Added "link.sh" <A HREF="usr_41.html#script">script</A>, which removes a few unnecessary libraries from
the link command.
Don't use HPUX <A HREF="digraph.html#digraphs">digraphs</A> by default, but only when HPUX_DIGRAPHS is defined.
|<A HREF="digraph.html#digraphs-default">digraphs-default</A>|
==============================================================================
BUG FIXES *<A NAME="bug-fixes-5"></A><B>bug-fixes-5</B>*
Note: Some of these fixes may only apply to test versions which were
created after version 4.6, but before 5.0.
When doing "<A HREF="windows.html#:bdel">:bdel</A>", try going to the next loaded buffer. Don't rewind to the
start of the buffer <A HREF="eval.html#list">list</A>.
mch_isdir() for <A HREF="os_unix.html#Unix">Unix</A> returned <A HREF="eval.html#TRUE">TRUE</A> for "" on some systems.
<A HREF="os_win32.html#Win32">Win32</A>: <A HREF="options.html#'shell'">'shell'</A> set to "mksnt/sh.exe" breaks "<A HREF="various.html#:!">:!</A>" commands. Don't use
backslashes in the temp file names.
On linux, with a FAT file system, could get spurious "file xxx changed since
editing started" <A HREF="message.html#messages">messages</A>, because the time is rounded off to two seconds
unexpectedly.
Crash in <A HREF="gui.html#GUI">GUI</A>, when selecting a <A HREF="motion.html#word">word</A> (double click) and then extend until an
empty line.
For systems where isdigit() can't handle characters <A HREF="change.html#>">></A> 255, get_number() caused
a crash when moving the mouse during the prompt for <A HREF="recover.html#recovery">recovery</A>.
In <A HREF="insert.html#Insert">Insert</A> mode, "<A HREF="motion.html#CTRL-O">CTRL-O</A> P" left the cursor on the last inserted character.
Now the cursor is left after the last putted character.
When <A HREF="quickfix.html#quickfix">quickfix</A> found an error type other than '<A HREF="motion.html#e">e</A>' or '<A HREF="motion.html#w">w</A>', <A HREF="motion.html#it">it</A> was never printed.
A setting for <A HREF="options.html#'errorfile'">'errorfile'</A> in a <A HREF="starting.html#.vimrc">.vimrc</A> overruled the "<A HREF="starting.html#-q">-q</A> errorfile" argument.
Some systems create a file when generating a temp file name. Filtering would
then create a <A HREF="editing.html#backup">backup</A> file for this, which was never deleted. Now no <A HREF="editing.html#backup">backup</A>
file is made when filtering.
simplify_filename() could remove a ".." after a link, resulting in the wrong
file name. Made simplify_filename also work for <A HREF="os_msdos.html#MSDOS">MSDOS</A>. Don't use <A HREF="motion.html#it">it</A> for
<A HREF="os_amiga.html#Amiga">Amiga</A>, since <A HREF="motion.html#it">it</A> doesn't have "../".
otherfile() was unreliable when using links. Could think that reading/writing
was for a different file, when <A HREF="motion.html#it">it</A> was the same.
Pasting with mouse in <A HREF="insert.html#Replace">Replace</A> mode didn't replace anything.
Window height computed wrong when resizing a <A HREF="windows.html#window">window</A> with an <A HREF="autocmd.html#autocommand">autocommand</A> (could
cause a crash).
":s!foo!bar!" wasn't possible (Vi compatible).
do_bang() freed memory <A HREF="if_cscop.html#twice">twice</A> when called recursively, because of autocommands
(test11). Thanks to Electric Fence!
"v$d" on an empty line didn't remove the "<A HREF="starting.html#--">--</A> VISUAL --" mode message from the
command-line, and inverted the cursor.
"<A HREF="starting.html#:mkexrc">:mkexrc</A>" didn't check for failure to open the file, causing a crash.
(Felderhoff).
<A HREF="os_win32.html#Win32">Win32</A> mch_write() wrote past fixed buffer, causing <A HREF="terminal.html#terminal">terminal</A> keys no longer to
be recognized. Both console and <A HREF="gui.html#GUI">GUI</A> version.
<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Crash when removing a menu item. Now Vim doesn't crash, but the
reversing of the menu item is still wrong.
Always reset <A HREF="options.html#'list'">'list'</A> option for the help <A HREF="windows.html#window">window</A>.
When <A HREF="options.html#'scrolloff'">'scrolloff'</A> is non-zero, a <A HREF="options.html#'showmatch'">'showmatch'</A> could cause the shown match to be
in the wrong line and the <A HREF="windows.html#window">window</A> to be scrolled (Acevedo).
After "<A HREF="options.html#:set">:set</A> all&", <A HREF="options.html#'lines'">'lines'</A> and <A HREF="options.html#'ttytype'">'ttytype'</A> were still non-default, because the
defaults never got set. Now the defaults for <A HREF="options.html#'lines'">'lines'</A> and <A HREF="options.html#'columns'">'columns'</A> are set
after detecting the <A HREF="windows.html#window">window</A> size. <A HREF="options.html#'term'">'term'</A> and <A HREF="options.html#'ttytype'">'ttytype'</A> defaults are set when
detecting the <A HREF="terminal.html#terminal">terminal</A> type.
For (most) non-Unix systems, don't add file names with illegal characters when
expanding. Fixes "cannot open swapfile" error when doing "<A HREF="editing.html#:e">:e</A> *.burp", when
there is no match.
In <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, drawing part of the cursor obscured the text. Now the text is
drawn over the cursor, like when <A HREF="motion.html#it">it</A> fills the block. (Seibert)
when started with "<A HREF="starting.html#-c">-c</A> cmd <A HREF="starting.html#-q">-q</A> errfile", the cursor would be left in line 1.
Now a "<A HREF="quickfix.html#:cc">:cc</A>" is done after executing "cmd".
"<A HREF="tagsrch.html#:ilist">:ilist</A>" never ignored <A HREF="change.html#case">case</A>, even when <A HREF="options.html#'ignorecase'">'ignorecase'</A> set.
"vim <A HREF="starting.html#-r">-r</A> file" for a readonly file, then making a change, got <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message
in insert mode, display mixed up until <A HREF="intro.html#<Esc>"><Esc></A> typed. Also don't give <A HREF="usr_11.html#ATTENTION">ATTENTION</A>
message after recovering a file.
The abbreviation "<A HREF="map.html#:ab">:ab</A> #i #include" could not be removed.
<A HREF="various.html#CTRL-L">CTRL-L</A> completion (longest common match) on command-line didn't work properly
for case-insensitive systems (MS-DOS, Windows, etc.). (suggested by Richard
Kilgore).
For terminals that can hide the cursor ("vi" <A HREF="term.html#termcap">termcap</A> entry), resizing the
<A HREF="windows.html#window">window</A> caused the cursor to disappear.
Using an invalid <A HREF="motion.html#mark">mark</A> in an <A HREF="intro.html#Ex">Ex</A> address didn't abort the command.
When <A HREF="options.html#'smarttab'">'smarttab'</A> set, would use <A HREF="options.html#'shiftround'">'shiftround'</A> when <A HREF="insert.html#inserting">inserting</A> a TAB after a
space. Now <A HREF="motion.html#it">it</A> always rounds to a tabstop.
Set <A HREF="motion.html#'[">'[</A> and <A HREF="motion.html#']">']</A> marks for "<A HREF="change.html#:copy">:copy</A>", "<A HREF="change.html#:move">:move</A>", "<A HREF="insert.html#:append">:append</A>", "<A HREF="insert.html#:insert">:insert</A>", "<A HREF="change.html#:substitute">:substitute</A>"
and "<A HREF="change.html#:change">:change</A>". (Acevedo).
"d$" in an empty line still caused an error, even when '<A HREF="motion.html#E">E</A>' is not in
<A HREF="options.html#'cpoptions'">'cpoptions'</A>.
Help files were stored in the <A HREF="starting.html#viminfo">viminfo</A> buffer <A HREF="eval.html#list">list</A> without a path.
<A HREF="gui.html#GUI">GUI</A>: Displaying cursor was not synchronized with other displaying. Caused
several display <A HREF="message.html#errors">errors</A>. For example, when the last two lines in the file
start with spaces, "<A HREF="change.html#dd">dd</A>" on the last line copied text to the (then) last line.
<A HREF="os_win32.html#Win32">Win32</A>: Needed to type CTRL-SHIFT-- to get CTRL-_.
<A HREF="gui.html#GUI">GUI</A>: Moving the cursor forwards over <A HREF="syntax.html#bold">bold</A> text would remove one column of <A HREF="syntax.html#bold">bold</A>
pixels.
<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When a <A HREF="syntax.html#bold">bold</A> character in the last column was scrolled up or down, one
column of pixels would not be copied.
Using <A HREF="motion.html#<BS>"><BS></A> to move the cursor left can sometimes erase a character. Now use
"le" <A HREF="term.html#termcap">termcap</A> entry for this.
Keyword completion with <A HREF="pattern.html#regexp">regexp</A> didn't work. e.g., for "b.*crat".
Fixed: With <A HREF="motion.html#CTRL-O">CTRL-O</A> that jumps to another file, cursor could end up just after
the line.
<A HREF="os_amiga.html#Amiga">Amiga</A>: '<A HREF="motion.html#$">$</A>' was missing from character recognized <A HREF="motion.html#as">as</A> <A HREF="editing.html#wildcards">wildcards</A>, causing <A HREF="starting.html#$VIM">$VIM</A>
sometimes not to be expanded.
"<A HREF="change.html#:change">:change</A>" didn't adjust marks for deleted lines.
"<A HREF="helphelp.html#:help">:help</A> [range]" didn't work. Also for <A HREF="pattern.html#[pattern]">[pattern]</A>, <A HREF="intro.html#[count]">[count]</A> and <A HREF="intro.html#[quotex]">[quotex]</A>.
For 'cindent'ing, typing "class::method" doesn't align like a label when the
second '<A HREF="cmdline.html#:">:</A>' is typed.
When <A HREF="insert.html#inserting">inserting</A> a CR with <A HREF="options.html#'cindent'">'cindent'</A> set (and a bunch of other conditions) the
cursor went to a wrong location.
<A HREF="options.html#'cindent'">'cindent'</A> was wrong for a line that ends in '<A HREF="motion.html#}">}</A>'.
<A HREF="options.html#'cindent'">'cindent'</A> was wrong after "else {".
While editing the cmdline in the <A HREF="gui.html#GUI">GUI</A>, could not use the mouse to select text
from the command-line itself.
When <A HREF="change.html#deleting">deleting</A> lines, marks in <A HREF="tagsrch.html#tag">tag</A> stack were only adjusted for the current
<A HREF="windows.html#window">window</A>, not for other <A HREF="windows.html#windows">windows</A> on the same buffer.
Tag guessing could find a function "some_func" instead of the "func" we were
looking for.
Tags file name relative to the current file didn't work.
":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause
a scroll up. Now you no longer have to hit <A HREF="motion.html#<CR>"><CR></A>.
<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: Selecting text could cause a crash.
32 bit <A HREF="os_dos.html#DOS">DOS</A> version: <A HREF="pattern.html#CTRL-C">CTRL-C</A> in external command killed Vim. When <A HREF="starting.html#SHELL">SHELL</A> is set
to "sh.exe", external commands didn't work. Removed using of command.com, no
longer need to set <A HREF="options.html#'shellquote'">'shellquote'</A>.
Fixed crash when using ":g/pat/i".
Fixed (potential) crash for <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, when using an X selection. Was giving a
pointer on the stack to a callback function, now it's static.
Using "<A HREF="pattern.html##">#</A>" and "*" with an <A HREF="motion.html#operator">operator</A> didn't work. E.g. "c#".
<A HREF="cmdline.html#Command-line">Command-line</A> expansion didn't work properly after ":*". (Acevedo)
Setting <A HREF="options.html#'weirdinvert'">'weirdinvert'</A> caused highlighting to be wrong in the <A HREF="gui.html#GUI">GUI</A>.
"<A HREF="editing.html#:e">:e</A> +4 #" didn't work, because the "4" was in unallocated memory (could cause
a crash).
Cursor position was wrong for "<A HREF="editing.html#:e">:e</A> #", after "<A HREF="editing.html#:e">:e</A> #" failed, because of changes
to the buffer.
When doing "<A HREF="windows.html#:buf">:buf</A> N", going to a buffer that was edited with "<A HREF="editing.html#:view">:view</A>", the
readonly flag was reset. Now make a difference between "<A HREF="editing.html#:e">:e</A> file" and "<A HREF="windows.html#:buf">:buf</A>
file": Only set/reset <A HREF="options.html#'ro'">'ro'</A> for the first one.
Avoid |<A HREF="message.html#hit-enter">hit-enter</A>| prompt when not able to write <A HREF="starting.html#viminfo">viminfo</A> on exit.
When giving error <A HREF="message.html#messages">messages</A> in the <A HREF="terminal.html#terminal">terminal</A> where the <A HREF="gui.html#GUI">GUI</A> was started, <A HREF="gui.html#GUI">GUI</A>
<A HREF="intro.html#escape">escape</A> codes would be written to the <A HREF="terminal.html#terminal">terminal</A>. In an xterm this could be seen
<A HREF="motion.html#as">as</A> a '<A HREF="motion.html#$">$</A>' after the message.
Mouse would not work directly after "<A HREF="gui_x11.html#:gui">:gui</A>", because full_screen isn't set,
which causes starttermcap() not to <A HREF="diff.html#do">do</A> its work.
<A HREF="options.html#'incsearch'">'incsearch'</A> did not scroll the <A HREF="windows.html#window">window</A> in the same way <A HREF="motion.html#as">as</A> the actual search.
When <A HREF="options.html#'nowrap'">'nowrap'</A> set, incsearch didn't show a match when <A HREF="motion.html#it">it</A> was off the side of
the screen. Now <A HREF="motion.html#it">it</A> also shows the whole match, instead of just the cursor
position (if possible).
"<A HREF="map.html#:unmap">:unmap</A>", ":unab" and "<A HREF="gui.html#:unmenu">:unmenu</A>" did not accept a double <A HREF="change.html#quote">quote</A>, <A HREF="motion.html#it">it</A> was seen <A HREF="motion.html#as">as</A>
the start of a comment. Now it's <A HREF="intro.html#Vi">Vi</A> compatible.
Using <Up><Left><Left><Up> in the command-line, when there is no previous
cmdline in the <A HREF="cmdline.html#history">history</A>, inserted a NUL on the command-line.
"i<Esc>" when on a <A HREF="motion.html#<Tab>"><Tab></A> in column 0 left the cursor in the wrong place.
<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Motif">Motif</A>: When adding a lot of menu items, the menu <A HREF="motion.html#bar">bar</A> goes into two rows.
Deleting menu items, reducing the number of rows, now also works.
With ":g/pat/s//foo/c", a match in the first line was scrolled off of the
screen, so you could not see <A HREF="motion.html#it">it</A>.
When using ":s//c", with <A HREF="options.html#'nowrap'">'nowrap'</A> set, a match could be off the side of the
screen, so you could not see <A HREF="motion.html#it">it</A>.
When <A HREF="options.html#'helpfile'">'helpfile'</A> was set to a fixed, non-absolute path in feature.h, Vim would
crash. mch_Fullname can now handle file names in read-only memory. (Lottem)
When using <A HREF="change.html#CTRL-A">CTRL-A</A> or CTRL-@ in <A HREF="insert.html#Insert">Insert</A> mode, there could be strange effects
when using <A HREF="scroll.html#CTRL-D">CTRL-D</A> next. Also, when <A HREF="repeat.html#repeating">repeating</A> inserted text that included "<A HREF="motion.html#0">0</A>
CTRL-D" or "<A HREF="motion.html#^">^</A> CTRL-D" this didn't work. (Acevedo)
Using <A HREF="scroll.html#CTRL-D">CTRL-D</A> after using <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode that inserted a '<A HREF="motion.html#0">0</A>'
or '<A HREF="motion.html#^">^</A>', removed the '<A HREF="motion.html#0">0</A>' or '<A HREF="motion.html#^">^</A>' and more indent.
The command "2".p" caused the last inserted text to be executed <A HREF="motion.html#as">as</A> commands.
(Acevedo)
Repeating the insert of "<A HREF="visual.html#CTRL-V">CTRL-V</A> 048" resulted in "^@" to be inserted.
Repeating <A HREF="insert.html#Insert">Insert</A> completion could fail if there are special characters in the
text. (Acevedo)
"<A HREF="various.html#:normal">:normal</A> /string<CR>" caused the <A HREF="windows.html#window">window</A> to scroll. Now all "<A HREF="various.html#:normal">:normal</A>" commands
are executed without <A HREF="scroll.html#scrolling">scrolling</A> <A HREF="message.html#messages">messages</A>.
Redo of <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode interpreted special characters <A HREF="motion.html#as">as</A>
commands.
Line wrapping for <A HREF="options.html#'tw'">'tw'</A> was done one character off for insert expansion
inserts.
<A HREF="eval.html#buffer_exists()">buffer_exists()</A> function didn't work properly for buffer names with a symbolic
link in them (e.g. when using buffer_exists(#)).
Removed the "MOTIF_COMMENT" construction from Makefile. It now works with
FreeBSD make, and probably with NeXT make too.
Matching the <A HREF="options.html#'define'">'define'</A> and <A HREF="options.html#'include'">'include'</A> arguments now honor the settings for
<A HREF="options.html#'ignorecase'">'ignorecase'</A>. (Acevedo)
When one file shown in two <A HREF="windows.html#windows">windows</A>, <A HREF="visual.html#Visual">Visual</A> selection mixed up cursor position
in current <A HREF="windows.html#window">window</A> and other <A HREF="windows.html#window">window</A>.
When doing "<A HREF="editing.html#:e">:e</A> file" from a help file, the <A HREF="options.html#'isk'">'isk'</A> option wasn't reset properly,
because of a <A HREF="options.html#modeline">modeline</A> in the help file.
When doing ":e!", a cursor in another <A HREF="windows.html#window">window</A> on the same buffer could become
invalid, leading to "ml_get: invalid lnum" <A HREF="message.html#errors">errors</A>.
Matching buffer name for when expanded name has a different path from not
expanded name (Brugnara).
<A HREF="intro.html#Normal">Normal</A> mappings didn't work after an <A HREF="motion.html#operator">operator</A>. For example, with "<A HREF="map.html#:map">:map</A> <A HREF="intro.html#Q">Q</A> gq",
"QQ" didn't work.
When "<A HREF="quickfix.html#:make">:make</A>" resulted in zero <A HREF="message.html#errors">errors</A>, a "No Errors" error message was given
(which breaks mappings).
When ":sourcing" a file, line length was limited to 1024 characters. <A HREF="visual.html#CTRL-V">CTRL-V</A>
before <A HREF="intro.html#<EOL>"><EOL></A> was not handled <A HREF="intro.html#Vi">Vi</A> compatible. (Acevedo)
Unexpected exit for <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, caused by SAVE_YOURSELF event. (Heimann)
<A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="motion.html#CTRL-I">CTRL-I</A> only found one match per line. (Acevedo)
When using an illegal <A HREF="change.html#CTRL-X">CTRL-X</A> key in <A HREF="insert.html#Insert">Insert</A> mode, the <A HREF="change.html#CTRL-X">CTRL-X</A> mode message
was stuck.
Finally managed to ignore the "Quit" menu entry of the Window manager! Now
Vim only exists when there are no changed <A HREF="windows.html#buffers">buffers</A>.
Trying to start the <A HREF="gui.html#GUI">GUI</A> when $DISPLAY is not set resulted in a crash.
When $DISPLAY is not set and <A HREF="starting.html#gvim">gvim</A> starts vim, title was restored to "Thanks
for flying Vim".
When $DISPLAY not set, starting "<A HREF="starting.html#gvim">gvim</A>" (dropping back to vim) and then
selecting text with the mouse caused a crash.
"<A HREF="change.html#J">J</A>", with <A HREF="options.html#'joinspaces'">'joinspaces'</A> set, on a line ending in ". "<A HREF="motion.html#,">,</A> caused one space too
many to be added. (Acevedo)
In insert mode, a <A HREF="undo.html#CTRL-R">CTRL-R</A> {regname} which didn't insert anything left the '"''
on the screen.
":z10" didn't work. (Clapp)
"Help "*" didn't work.
Renamed a lot of <A HREF="eval.html#functions">functions</A>, to avoid clashes with POSIX name space.
When adding characters to a line, making <A HREF="motion.html#it">it</A> wrap, the following lines were
sometimes not shifted down (e.g. after a <A HREF="tagsrch.html#tag">tag</A> jump).
<A HREF="scroll.html#CTRL-E">CTRL-E</A>, with <A HREF="options.html#'so'">'so'</A> set and cursor on last line, now does not move cursor <A HREF="motion.html#as">as</A>
long <A HREF="motion.html#as">as</A> the last line is on the screen.
When there are two <A HREF="windows.html#windows">windows</A>, doing "^W+^W-" in the bottom <A HREF="windows.html#window">window</A> could cause
the status line to be doubled (not redrawn correctly).
This command would hang: "<A HREF="editing.html#:n">:n</A> `cat`". Now connect stdin of the external
command to /dev/null, when expanding.
Fixed lalloc(0,) error for "<A HREF="eval.html#:echo">:echo</A> %:e:r". (Acevedo)
The "+command" argument to "<A HREF="windows.html#:split">:split</A>" didn't work when there was no file name.
When selecting text in the <A HREF="gui.html#GUI">GUI</A>, which is the output of a command-line command
or an external command, the inversion would sometimes remain.
<A HREF="gui.html#GUI">GUI</A>: "<A HREF="gui_x11.html#-mh">-mh</A> 70" argument was broken. Now, when menuheight is specified, <A HREF="motion.html#it">it</A> is
not changed anymore.
<A HREF="gui.html#GUI">GUI</A>: When using the scrollbar or mouse while executing an external command,
this caused garbage characters.
Showmatch sometimes jumped to the wrong position. Was caused by a call to
findmatch() when redrawing the display (when <A HREF="syntax.html#syntax">syntax</A> highlighting is on).
Search <A HREF="pattern.html#pattern">pattern</A> "\(a *\)\{3} did not work correctly, also matched "a a".
Problem with brace_count not being decremented.
Wildcard expansion added too many non-matching file names.
When <A HREF="options.html#'iskeyword'">'iskeyword'</A> contains characters like '<A HREF="change.html#~">~</A>', "*" and "<A HREF="pattern.html##">#</A>" didn't work
properly. (Acevedo)
On Linux, on a FAT file system, modification time can change by one second.
Avoid a "file has changed" warning for a one second difference.
When using the page-switching in an xterm, Vim would position the cursor on
the last line of the <A HREF="windows.html#window">window</A> on exit. Also removed the cursor positioning for
"<A HREF="various.html#:!">:!</A>" commands.
":g/pat/p" command (partly) overwrote the command. Now the output is on a
separate line.
With <A HREF="options.html#'ic'">'ic'</A> and <A HREF="options.html#'scs'">'scs'</A> set, a search for "Keyword", ignore-case matches were
highlighted too.
"<A HREF="motion.html#^">^</A>" on a line with only white space, put cursor beyond the end of the line.
When <A HREF="change.html#deleting">deleting</A> characters before where insertion started ('bs' <A HREF="change.html#==">==</A> 2), could not
use <A HREF="map.html#abbreviations">abbreviations</A>.
<A HREF="scroll.html#CTRL-E">CTRL-E</A> at end of file puts cursor below the file, in <A HREF="visual.html#Visual">Visual</A> mode, when <A HREF="options.html#'so'">'so'</A> is
non-zero. <A HREF="scroll.html#CTRL-E">CTRL-E</A> didn't work when <A HREF="options.html#'so'">'so'</A> is big and the line below the <A HREF="windows.html#window">window</A>
wraps. <A HREF="scroll.html#CTRL-E">CTRL-E</A>, when <A HREF="options.html#'so'">'so'</A> is non-zero, at end of the file, caused jumping
up-down.
"<A HREF="change.html#:retab">:retab</A>" didn't work well when <A HREF="options.html#'list'">'list'</A> is set.
<A HREF="os_amiga.html#Amiga">Amiga</A>: When <A HREF="insert.html#inserting">inserting</A> characters at the last line on the screen, causing <A HREF="motion.html#it">it</A>
to wrap, messed up the display. It appears that a '\n' on the last line
doesn't always cause a scroll up.
In <A HREF="insert.html#Insert">Insert</A> mode "0<C-D><C-D>" deleted an extra character, because Vim thought
that the "<A HREF="motion.html#0">0</A>" was still there. (Acevedo)
"z{count}l" ignored the <A HREF="intro.html#count">count</A>. Also for "<A HREF="scroll.html#zh">zh</A>" et. al. (Acevedo)
"<A HREF="change.html#S">S</A>" when <A HREF="options.html#'autoindent'">'autoindent'</A> is off didn't delete leading white space.
"/<Tab>" landed on the wrong character when <A HREF="options.html#'incsearch'">'incsearch'</A> is set.
Asking a yes/no question could cause a |<A HREF="message.html#hit-enter">hit-enter</A>| prompt.
When the file consists of one long line (>4100 characters), making changes
caused various <A HREF="message.html#errors">errors</A> and a crash.
DJGPP version could not save long lines (>64000) for <A HREF="undo.html#undo">undo</A>.
"yw" on the last char in the file didn't work. Also fixed "6x" at the end of
the line. "6X" at the start of a line fails, but does not break a <A HREF="map.html#mapping">mapping</A>. In
general, a <A HREF="intro.html#movement">movement</A> for an <A HREF="motion.html#operator">operator</A> doesn't beep or flush a <A HREF="map.html#mapping">mapping</A>, but when
there is nothing to operate on <A HREF="motion.html#it">it</A> beeps (this is <A HREF="intro.html#Vi">Vi</A> compatible).
"m'"' and "<A HREF="motion.html#m`">m`</A>" now set the <A HREF="motion.html#''">''</A> <A HREF="motion.html#mark">mark</A> at the cursor position.
<A HREF="os_unix.html#Unix">Unix</A>: Resetting of signals for external program didn't work, because SIG_DFL
and NULL are the same! For "!!yes|dd count=1|, the yes command kept on
running.
Partly fixed: <A HREF="os_unix.html#Unix">Unix</A> <A HREF="gui.html#GUI">GUI</A>: Typeahead while executing an external command was lost.
Now it's not lost while the command is producing output.
Typing <A HREF="term.html#<S-Tab>"><S-Tab></A> in <A HREF="insert.html#Insert">Insert</A> mode, when <A HREF="motion.html#it">it</A> isn't mapped, inserted "<A HREF="term.html#<S-Tab>"><S-Tab></A>". Now
<A HREF="motion.html#it">it</A> works like a normal <A HREF="motion.html#<Tab>"><Tab></A>, just like <C-Tab> and <M-Tab>.
Redrawing ruler didn't check for old value correctly (caused UMR warnings in
Purify).
Negative array index in finish_viminfo_history().
":g/^/d|mo $" deleted all the lines. The "<A HREF="change.html#:move">:move</A>" command now removes the
<A HREF="repeat.html#:global">:global</A> <A HREF="motion.html#mark">mark</A> from the moved lines.
Using "vG" while the last line in the <A HREF="windows.html#window">window</A> is a "<A HREF="repeat.html#@">@</A>" line, didn't update
correctly. Just the "<A HREF="visual.html#v">v</A>" showed "<A HREF="change.html#~">~</A>" lines.
"<A HREF="motion.html#daw">daw</A>" on the last char of the file, when it's a space, moved the cursor beyond
the end of the line.
When <A HREF="options.html#'hlsearch'">'hlsearch'</A> was set or reset, only the current buffer was redrawn, while
this affects all <A HREF="windows.html#windows">windows</A>.
<A HREF="editing.html#CTRL-^">CTRL-^</A>, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the
file, put the cursor at the bottom of the <A HREF="windows.html#window">window</A>, instead of halfway.
When <A HREF="scroll.html#scrolling">scrolling</A> up for "<A HREF="insert.html#:append">:append</A>" command, not all <A HREF="windows.html#windows">windows</A> were updated
correctly.
When <A HREF="options.html#'hlsearch'">'hlsearch'</A> is set, and an auto-indent is highlighted, pressing <A HREF="intro.html#<Esc>"><Esc></A>
didn't remove the highlighting, although the indent was deleted.
When <A HREF="options.html#'ru'">'ru'</A> set and <A HREF="options.html#'nosc'">'nosc'</A>, using "$j" showed a wrong ruler.
Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used).
Mapping <A HREF="term.html#<S-Tab>"><S-Tab></A> didn't work. Changed the key translations to use the shortest
key code possible. This makes the termcode translations and mappings more
consistent. Now all modifiers work in all combinations, not only with <A HREF="motion.html#<Tab>"><Tab></A>,
but also with <A HREF="motion.html#<Space>"><Space></A>, <A HREF="motion.html#<CR>"><CR></A>, etc.
For <A HREF="os_unix.html#Unix">Unix</A>, restore three more signals. And Vim catches SIGINT now, so <A HREF="pattern.html#CTRL-C">CTRL-C</A>
in <A HREF="intro.html#Ex">Ex</A> mode doesn't make Vim exit.
""a5Y" yanked 25 lines instead of 5.
"vrxxx<Esc>" in an empty line could not be undone.
A <A HREF="pattern.html#CTRL-C">CTRL-C</A> that breaks "<A HREF="quickfix.html#:make">:make</A>" caused the errorfile not to be read (annoying
when you want to handle what "<A HREF="quickfix.html#:make">:make</A>" produced so far).
":0;/pat" didn't find "pat" in line 1.
Search for "/test/s+1" at first char of file gave bottom-top message, or
didn't work at all with <A HREF="options.html#'nowrapscan'">'nowrapscan'</A>.
Bug in <A HREF="starting.html#viminfo">viminfo</A> <A HREF="cmdline.html#history">history</A>. Could cause a crash on exit.
"<A HREF="various.html#:print">:print</A>" didn't put cursor on first non-blank in line.
":0r !cat </dev/null" left cursor in line zero, with very strange effects.
With <A HREF="options.html#'showcmd'">'showcmd'</A> set and <A HREF="options.html#'timeoutlen'">'timeoutlen'</A> set to a few seconds, trick to position
the cursor leftwards didn't work.
AIX stty settings were restored to cs5 instead of cs8 (Winn).
File name completion didn't work for "zsh" versions that put spaces between
file names, instead of NULs.
Changed "XawChain*" to "XtChain*", should work for more systems.
Included quite a few fixes for rightleft mode (Lottem).
Didn't ask to |<A HREF="message.html#hit-enter">hit-enter</A>| when <A HREF="gui.html#GUI">GUI</A> is started and error <A HREF="message.html#messages">messages</A> are printed.
When trying to edit a file in a non-existent directory, ended up with editing
"No file".
"<A HREF="change.html#gqap">gqap</A>" to format a <A HREF="motion.html#paragraph">paragraph</A> did too much redrawing.
When <A HREF="options.html#'hlsearch'">'hlsearch'</A> set, only the current <A HREF="windows.html#window">window</A> was updated for a new search
<A HREF="pattern.html#pattern">pattern</A>.
Sometimes error <A HREF="message.html#messages">messages</A> on <A HREF="starting.html#startup">startup</A> didn't cause a |<A HREF="message.html#hit-enter">hit-enter</A>| prompt,
because of autocommands containing an empty line.
Was possible to select part of the <A HREF="windows.html#window">window</A> in the border, below the command
line.
<A HREF="motion.html#'<">'<</A> and <A HREF="motion.html#'>">'></A> marks were not at the correct position after <A HREF="motion.html#linewise">linewise</A> <A HREF="visual.html#Visual">Visual</A>
selection.
When translating a help argument to "CTRL-x", prepend or append a '<A HREF="motion.html#_">_</A>', when
applicable.
Blockwise visual mode wasn't correct when moving vertically over a special
character (displayed <A HREF="motion.html#as">as</A> two screen characters).
Renamed "struct option" to "struct vimoption" to avoid name clash with GNU
getopt().
"<A HREF="map.html#:abclear">:abclear</A>" didn't work (but "<A HREF="map.html#:iabclear">:iabclear</A>" and "<A HREF="map.html#:cabclear">:cabclear</A>" did work).
When <A HREF="options.html#'nowrap'">'nowrap'</A> used, screen wasn't always updated correctly.
"vim <A HREF="starting.html#-c">-c</A> split file" displayed extra lines.
After starting the <A HREF="gui.html#GUI">GUI</A>, searched the <A HREF="term.html#termcap">termcap</A> for a "<A HREF="gui.html#gui">gui</A>" term.
When <A HREF="options.html#'hls'">'hls'</A> used, search for "^$" caused a hang.
When <A HREF="options.html#'hls'">'hls'</A> was set, an error in the last <A HREF="pattern.html#regexp">regexp</A> caused trouble.
<A HREF="os_unix.html#Unix">Unix</A>: Only output an extra <A HREF="intro.html#<EOL>"><EOL></A> on exit when outputted something in the
alternate screen, or when there is a message that needs to be cleared.
"/a\{" did strange things, depending on previous search.
"c}" only redrew one line (with <A HREF="starting.html#-u">-u</A> NONE).
For mappings, CTRL-META-A was shown <A HREF="motion.html#as">as</A> <M-^A> instead of <MC-A>, while <A HREF="map.html#:map">:map</A>
only accepts <MC-A>. Now <M-C-A> is shown.
<A HREF="os_unix.html#Unix">Unix</A>: When using full path name in a <A HREF="tagsrch.html#tags">tags</A> file, which contains a link, and
<A HREF="options.html#'hidden'">'hidden'</A> set and jumping to a <A HREF="tagsrch.html#tag">tag</A> in the current file, would get bogus
<A HREF="usr_11.html#ATTENTION">ATTENTION</A> message. Solved by always expanding file names, even when starting
with '<A HREF="pattern.html#/">/</A>'.
<A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting of special characters (e.g., a TAB) didn't highlight
the whole thing.
"r<CR>" didn't work correctly on the last char of a line.
Sometimes a <A HREF="windows.html#window">window</A> resize or other signal caused an endless loop, involving
set_winsize().
"vim -r" didn't work, <A HREF="motion.html#it">it</A> would just hang (using tgetent() while <A HREF="options.html#'term'">'term'</A> is
empty).
"<A HREF="motion.html#gk">gk</A>" while <A HREF="options.html#'nowrap'">'nowrap'</A> set moved two lines up.
When <A HREF="windows.html#windows">windows</A> are split, a message that causes a <A HREF="scroll.html#scroll-up">scroll-up</A> messed up one of the
<A HREF="windows.html#windows">windows</A>, which required a <A HREF="various.html#CTRL-L">CTRL-L</A> to be typed.
Possible endless loop when using shell command in the <A HREF="gui.html#GUI">GUI</A>.
Menus defined in the <A HREF="starting.html#.vimrc">.vimrc</A> were removed when <A HREF="gui.html#GUI">GUI</A> started.
Crash when pasting with the mouse in insert mode.
Crash with "<A HREF="gui.html#:unmenu">:unmenu</A> *" in <A HREF="gui.html#.gvimrc">.gvimrc</A> for <A HREF="gui_x11.html#Athena">Athena</A>.
"5>>" shifted 5 lines 5 times, instead of 1 time.
<A HREF="pattern.html#CTRL-C">CTRL-C</A> when getting a prompt in "<A HREF="repeat.html#:global">:global</A>" didn't interrupt.
When <A HREF="options.html#'so'">'so'</A> is non-zero, and moving the scrollbar completely to the bottom,
there was a lot of flashing.
<A HREF="gui.html#GUI">GUI</A>: Scrollbar ident must be long for DEC Alpha.
Some <A HREF="eval.html#functions">functions</A> called vim_regcomp() without setting reg_magic, which could
lead to unpredictable magicness.
Crash when clicking around the status line, could get a selection with a
backwards range.
When <A HREF="change.html#deleting">deleting</A> more than one line <A HREF="motion.html#characterwise">characterwise</A>, the last character wasn't
deleted.
<A HREF="gui.html#GUI">GUI</A>: Status line could be overwritten when moving the scrollbar quickly (or
when <A HREF="options.html#'wd'">'wd'</A> is non-zero).
An ESC at the end of a "<A HREF="various.html#:normal">:normal</A>" command caused a wait for a <A HREF="terminal.html#terminal">terminal</A> code to
finish. Now, a <A HREF="terminal.html#terminal">terminal</A> code is not recognized when its start comes from a
<A HREF="map.html#mapping">mapping</A> or "<A HREF="various.html#:normal">:normal</A>" command.
Included patches from Robert Webb for <A HREF="gui.html#GUI">GUI</A>. Layout of the <A HREF="windows.html#windows">windows</A> is now done
inside Vim, instead of letting the layout manager <A HREF="diff.html#do">do</A> this. Makes Vim work
with Lesstif!
UMR warning in set_expand_context().
Memory leak: b_winlnum <A HREF="eval.html#list">list</A> was never freed.
Removed TIOCLSET/TIOCLGET code from os_unix.c. Was <A HREF="change.html#changing">changing</A> some of the
<A HREF="terminal.html#terminal">terminal</A> settings, and looked like <A HREF="motion.html#it">it</A> wasn't doing anything good. (suggested
by Juergen Weigert).
Ruler overwrote "is a directory" message. When starting up, and <A HREF="options.html#'cmdheight'">'cmdheight'</A>
set to <A HREF="change.html#>">></A> 1, first message could still be in the last line.
Removed prototype for putenv() from proto.h, it's already in osdef2.h.in.
In replace mode, when moving the cursor and then backspacing, wrong characters
were inserted.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> was checking for a <A HREF="pattern.html#CTRL-C">CTRL-C</A> too often, making <A HREF="motion.html#it">it</A> slow.
Removed mappings for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> that were already covered by commands.
When visually selecting all lines in a file, cursor at last line, then "<A HREF="change.html#J">J</A>".
Gave ml_get <A HREF="message.html#errors">errors</A>. Was a problem with <A HREF="scroll.html#scrolling">scrolling</A> down during redrawing.
When doing a <A HREF="motion.html#linewise">linewise</A> <A HREF="motion.html#operator">operator</A>, and then an <A HREF="motion.html#operator">operator</A> with a mouse click, <A HREF="motion.html#it">it</A>
was also <A HREF="motion.html#linewise">linewise</A>, instead of <A HREF="motion.html#characterwise">characterwise</A>.
When <A HREF="options.html#'list'">'list'</A> is set, the column of the ruler was wrong.
Spurious error message for "/\(b\+\)*".
When visually selected many lines, message from "<A HREF="editing.html#:w">:w</A> file" disappeared when
redrawing the screen.
"<A HREF="options.html#:set">:set</A> <M-b>=^[b", then insert "^[b", waited for another character. And then
inserted "<M-b>" instead of the real <M-b> character. Was trying to insert
K_SPECIAL <A HREF="change.html#x">x</A> NUL.
<A HREF="index.html#CTRL-W">CTRL-W</A> ] didn't use <A HREF="intro.html#count">count</A> to set <A HREF="windows.html#window">window</A> height.
<A HREF="gui.html#GUI">GUI</A>: "<A HREF="gui_x11.html#-font">-font</A>" command-line argument didn't override <A HREF="options.html#'guifont'">'guifont'</A> setting from
<A HREF="gui.html#.gvimrc">.gvimrc</A>. (Acevedo)
<A HREF="gui.html#GUI">GUI</A>: <A HREF="gui.html#clipboard">clipboard</A> wasn't used for "*y". And some more Win32/X11 differences
fixed for the <A HREF="gui.html#clipboard">clipboard</A> (Webb).
Jumping from one help file to another help file, with <A HREF="options.html#'compatible'">'compatible'</A> set,
removed the 'help' flag from the buffer.
File-writable bit could be reset when using "<A HREF="editing.html#:w!">:w!</A>" for a readonly file.
There was a wait for <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="pattern.html#n">n</A> in <A HREF="insert.html#Insert">Insert</A> mode, because the search <A HREF="pattern.html#pattern">pattern</A> was
shown.
Reduced wait, to allow reading a message, from 10 to 3 seconds. It seemed
nothing was happening.
"<A HREF="recover.html#:recover">:recover</A>" found same swap file <A HREF="if_cscop.html#twice">twice</A>.
<A HREF="gui.html#GUI">GUI</A>: "*yy only worked the second time (when pasting to an xterm)."
DJGPP version (dos32): The system flags were cleared.
Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin).
Version 4.1 of ncurses can't handle tputs("", ..). Avoid calling tputs() with
an empty <A HREF="eval.html#string">string</A>.
<A HREF="term.html#<S-Tab>"><S-Tab></A> in the command-line worked like <A HREF="motion.html#CTRL-P">CTRL-P</A> when no completion started yet.
Now <A HREF="motion.html#it">it</A> does completion, last match first.
<A HREF="os_unix.html#Unix">Unix</A>: Could get annoying "can't write viminfo" message after doing "su". Now
the <A HREF="starting.html#viminfo">viminfo</A> file is overwritten, and the user set back to the original one.
"<A HREF="options.html#:set">:set</A> <A HREF="options.html#'term'">term</A>=builtin_gui" started the <A HREF="gui.html#GUI">GUI</A> in a wrong way. Now it's not
allowed anymore. But "vim <A HREF="starting.html#-T">-T</A> gui" does start the <A HREF="gui.html#GUI">GUI</A> correctly now.
<A HREF="gui.html#GUI">GUI</A>: Triple click after a line only put last char in selection, when <A HREF="motion.html#it">it</A> is a
single character <A HREF="motion.html#word">word</A>.
When the <A HREF="windows.html#window">window</A> is bigger than the screen, the <A HREF="scroll.html#scrolling">scrolling</A> up of <A HREF="message.html#messages">messages</A> was
wrong (e.g. ":vers", ":hi"). Also when the bottom part of the <A HREF="windows.html#window">window</A> was
obscured by another <A HREF="windows.html#window">window</A>.
When using a wrong option only an error message is printed, to avoid that the
usage information makes <A HREF="motion.html#it">it</A> scroll off the screen.
When <A HREF="starting.html#exiting">exiting</A> because of not being able to read from stdin, didn't preserve the
swap files properly.
<A HREF="visual.html#Visual">Visual</A> selecting all chars in more than one line, then hit "<A HREF="change.html#x">x</A>" didn't leave an
empty line. For one line <A HREF="motion.html#it">it</A> did leave an empty line.
Message for which <A HREF="autocmd.html#autocommand">autocommand</A> is executing messed up file write message (for
<A HREF="autocmd.html#FileWritePost">FileWritePost</A> event).
"vim -h" included "<A HREF="starting.html#-U">-U</A>" even when <A HREF="gui.html#GUI">GUI</A> is not available, and "<A HREF="starting.html#-l">-l</A>" when lisp is
not available.
Crash for ":he <C-A>" (command-line longer than screen).
":s/this/that/gc", type "<A HREF="change.html#y">y</A>" two times, then <A HREF="undo.html#undo">undo</A>, did reset the modified
option, even though the file is still modified.
Empty lines in a <A HREF="tagsrch.html#tags">tags</A> file caused a "<A HREF="tagsrch.html#:tag">:tag</A>" to be aborted.
When hitting '<A HREF="repeat.html#q">q</A>' at the more prompt for "<A HREF="gui.html#:menu">:menu</A>", still scrolled a few lines.
In an xterm that uses the <A HREF="syntax.html#bold">bold</A> trick a single row of characters could remain
after an erased <A HREF="syntax.html#bold">bold</A> character. Now erase one extra char after the <A HREF="syntax.html#bold">bold</A> char,
like for the <A HREF="gui.html#GUI">GUI</A>.
":pop!" didn't work.
When the reading a buffer was interrupted, "<A HREF="editing.html#:w">:w</A>" should not be able to
overwrite the file, "<A HREF="editing.html#:w!">:w!</A>" is required.
":cf%" caused a crash.
"<A HREF="gui_x11.html#:gui">:gui</A> longfilename", when forking is enabled, could leave part of the
longfilename at the shell prompt.
==============================================================================
VERSION 5.1 *<A NAME="version-5.1"></A><B>version-5.1</B>*
Improvements made between version 5.0 and 5.1.
This was mostly a bug-fix release, not many new features.
Changed *<A NAME="changed-5.1"></A><B>changed-5.1</B>*
The <A HREF="eval.html#expand()">expand()</A> function now separates file names with <A HREF="motion.html#<NL>"><NL></A> instead of a space.
This avoids problems for file names with embedded spaces. To get the old
result, use substitute(expand(foo), "\n", " "<A HREF="motion.html#,">,</A> "g").
For Insert-expanding dictionaries allow a <A HREF="intro.html#backslash">backslash</A> to be used for
wildchars. Allows expanding "ze\kra", when <A HREF="options.html#'isk'">'isk'</A> includes a <A HREF="intro.html#backslash">backslash</A>.
New icon for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>.
"<A HREF="tagsrch.html#:tag">:tag</A>", "<A HREF="tagsrch.html#:tselect">:tselect</A>" etc. only use the argument <A HREF="motion.html#as">as</A> a <A HREF="pattern.html#regexp">regexp</A> when <A HREF="motion.html#it">it</A> starts
with '<A HREF="pattern.html#/">/</A>'. Avoids that "<A HREF="tagsrch.html#:tag">:tag</A> xx~" gives an error message: "No previous sub.
regexp". Also, when the <A HREF="tagsrch.html#:tag">:tag</A> argument contained <A HREF="editing.html#wildcard">wildcard</A> characters, <A HREF="motion.html#it">it</A> was
not <A HREF="intro.html#Vi">Vi</A> compatible.
When using '<A HREF="pattern.html#/">/</A>', the argument is taken literally too, with a higher priority,
so it's found before <A HREF="editing.html#wildcard">wildcard</A> matches.
Only when the '<A HREF="pattern.html#/">/</A>' is used are matches with different <A HREF="change.html#case">case</A> found, even though
<A HREF="options.html#'ignorecase'">'ignorecase'</A> isn't set.
Changed "g^]" to only <A HREF="diff.html#do">do</A> "<A HREF="tagsrch.html#:tselect">:tselect</A>" when there is more than on matching <A HREF="tagsrch.html#tag">tag</A>.
Changed some of the default colors, because they were not very readable on a
dark background.
A character offset to a search <A HREF="pattern.html#pattern">pattern</A> can move the cursor to the next or
previous line. Also fixes that "/pattern/e+2" got stuck on "<A HREF="pattern.html#pattern">pattern</A>" at the
end of a line.
Double-clicks in the status line <A HREF="diff.html#do">do</A> no longer start <A HREF="visual.html#Visual">Visual</A> mode. Dragging a
status line no longer stops <A HREF="visual.html#Visual">Visual</A> mode.
<A HREF="if_perl.html#Perl">Perl</A> interface: Buffers() and Windows() now use more logical arguments, like
they are used in the rest of Vim (Moore).
Init '"' <A HREF="motion.html#mark">mark</A> to the first character of the first line. Makes <A HREF="motion.html#it">it</A> possible to
use '"' in an <A HREF="autocmd.html#autocommand">autocommand</A> without getting an error message.
Added *<A NAME="added-5.1"></A><B>added-5.1</B>*
"shell_error" internal variable: result of last shell command.
"<A HREF="eval.html#:echohl">:echohl</A>" command: Set highlighting for "<A HREF="eval.html#:echo">:echo</A>".
'<A HREF="change.html#S">S</A>' flag in <A HREF="options.html#'highlight'">'highlight'</A> and StatusLineNC highlight group: highlighting for
status line of not-current <A HREF="windows.html#window">window</A>. Default is to use <A HREF="syntax.html#bold">bold</A> for current
<A HREF="windows.html#window">window</A>.
Added <A HREF="eval.html#buffer_name()">buffer_name()</A> and <A HREF="eval.html#buffer_number()">buffer_number()</A> <A HREF="eval.html#functions">functions</A> (Aaron).
Added flags argument "<A HREF="index.html#g">g</A>" to <A HREF="eval.html#substitute()">substitute()</A> function (Aaron).
Added <A HREF="eval.html#winheight()">winheight()</A> function.
<A HREF="os_win32.html#Win32">Win32</A>: When an external command starts with "start "<A HREF="motion.html#,">,</A> no console is opened
for <A HREF="motion.html#it">it</A> (Aaron).
<A HREF="os_win32.html#Win32">Win32</A> console: Use <A HREF="term.html#termcap">termcap</A> codes for bold/reverse based on the current
console attributes.
Configure check for "strip". (Napier)
<A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="change.html#x">x</A> in <A HREF="insert.html#Insert">Insert</A> mode: <A HREF="insert.html#Insert">Insert</A> the contents of a <A HREF="sponsor.html#register">register</A> literally,
instead of <A HREF="motion.html#as">as</A> typed.
Made a few "No match" error <A HREF="message.html#messages">messages</A> more informative by adding the <A HREF="pattern.html#pattern">pattern</A>
that didn't match.
"make install" now also copies the <A HREF="map.html#macro">macro</A> files.
tools/tcltags, a shell <A HREF="usr_41.html#script">script</A> to generate a <A HREF="tagsrch.html#tags">tags</A> file from a <A HREF="if_tcl.html#TCL">TCL</A> file.
"--with-tlib" setting for configure. Easy way to use termlib: "./configure
--with-tlib=termlib".
'<A HREF="undo.html#u">u</A>' flag in <A HREF="options.html#'cino'">'cino'</A> for setting the indent for contained () parts.
When <A HREF="os_win32.html#Win32">Win32</A> OLE version can't load the registered type library, ask the user
if he wants to <A HREF="sponsor.html#register">register</A> Vim now. (Erhardt)
<A HREF="os_win32.html#Win32">Win32</A> with OLE: When registered automatically, exit Vim.
Included <A HREF="if_ole.html#VisVim">VisVim</A> 1.1b, with a few enhancements and the new icon (Heiko
Erhardt).
Added patch from Vince Negri for Win32s support. Needs to be compiled with
VC 4.1!
<A HREF="if_perl.html#Perl">Perl</A> interface: Added $curbuf. Rationalized Buffers() and Windows().
(Moore) Added "group" argument to Msg().
Included <A HREF="if_perl.html#Perl">Perl</A> files in <A HREF="os_dos.html#DOS">DOS</A> source archive. Changed Makefile.bor and
Makefile.w32 to support building a <A HREF="os_win32.html#Win32">Win32</A> version with <A HREF="if_perl.html#Perl">Perl</A> included.
Included new Makefile.w32 from Ken Scott. Now it's able to make all <A HREF="os_win32.html#Win32">Win32</A>
versions, including OLE, <A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A>.
Added <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="index.html#g">g</A> ] and <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="index.html#g">g</A> ^]: split <A HREF="windows.html#window">window</A> and <A HREF="diff.html#do">do</A> <A HREF="tagsrch.html#g]">g]</A> or g^].
Added "<A HREF="tagsrch.html#g]">g]</A>" to always <A HREF="diff.html#do">do</A> "<A HREF="tagsrch.html#:tselect">:tselect</A>" for the ident under the cursor.
Added "<A HREF="tagsrch.html#:tjump">:tjump</A>" and "<A HREF="tagsrch.html#:stjump">:stjump</A>" commands.
Improved listing of "<A HREF="tagsrch.html#:tselect">:tselect</A>" when <A HREF="tagsrch.html#tag">tag</A> names are a bit long.
Included patches for the <A HREF="os_mac.html#Macintosh">Macintosh</A> version. Also for <A HREF="if_pyth.html#Python">Python</A> interface.
(St-Amant)
"<A HREF="windows.html#:buf">:buf</A> foo" now also restores cursor column, when the buffer was used before.
Adjusted the Makefile for different final destinations for the <A HREF="syntax.html#syntax">syntax</A> files
and scripts (for Debian Linux).
<A HREF="os_amiga.html#Amiga">Amiga</A>: <A HREF="starting.html#$VIM">$VIM</A> can be used everywhere. When <A HREF="starting.html#$VIM">$VIM</A> is not defined, "VIM:" is
used. This fixes that "VIM:" had to be assigned for the help files, and
<A HREF="starting.html#$VIM">$VIM</A> set for the <A HREF="syntax.html#syntax">syntax</A> files. Now either of these work.
Some xterms send vt100 compatible function keys F1-F4. Since it's not
possible to detect this, recognize both type of keys and translate them to
<A HREF="helphelp.html#<F1>"><F1></A> - <A HREF="term.html#<F4>"><F4></A>.
Added "<A HREF="autocmd.html#VimEnter">VimEnter</A>" <A HREF="autocmd.html#autocommand">autocommand</A>. Executed after loading all the <A HREF="starting.html#startup">startup</A> stuff.
<A HREF="os_beos.html#BeOS">BeOS</A> version now also runs on Intel CPUs (Seibert).
Fixed *<A NAME="fixed-5.1"></A><B>fixed-5.1</B>*
"<A HREF="tagsrch.html#:ts">:ts</A>" changed position in the <A HREF="tagsrch.html#tag">tag</A> stack when cancelled with <A HREF="motion.html#<CR>"><CR></A>.
"<A HREF="tagsrch.html#:ts">:ts</A>" changed the cursor position for <A HREF="tagsrch.html#CTRL-T">CTRL-T</A> when cancelled with <A HREF="motion.html#<CR>"><CR></A>.
"<A HREF="tagsrch.html#:tn">:tn</A>" would always jump to the second match. Was using the wrong entry in
the <A HREF="tagsrch.html#tag">tag</A> stack.
Doing "<A HREF="tagsrch.html#tag">tag</A> foo", then "<A HREF="tagsrch.html#:tselect">:tselect</A>", overwrote the original cursor position in
the <A HREF="tagsrch.html#tag">tag</A> stack.
"make install" changed the vim.1 manpage in a wrong way, causing "doc/doc"
to appear for the documentation files.
When compiled with MAX_FEAT, xterm mouse handling failed. Was caused by DEC
mouse handling interfering.
Was leaking memory when using selection in <A HREF="options.html#X11">X11</A>.
<A HREF="scroll.html#CTRL-D">CTRL-D</A> halfway a command-line left some characters behind the first line(s)
of the listing.
When expanding directories for "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'path'">path</A>=", put two extra backslashes
before a space in a directory name.
When <A HREF="options.html#'lisp'">'lisp'</A> set, first line of a function would be indented. Now its indent
is set to zero. And use the indent of the first previous line that is at
the same () level. Added test33.
"so<Esc>u" in an empty file didn't work.
<A HREF="os_dos.html#DOS">DOS</A>: "seek error in swap file write" <A HREF="message.html#errors">errors</A>, when using <A HREF="os_dos.html#DOS">DOS</A> 6.2 share.exe,
because the swap file was made hidden. It's no longer hidden.
"<A HREF="repeat.html#:global">:global</A>" command would sometimes not execute on a matching line. Happened
when a data block is full in ml_replace().
For AIX use a tgetent buffer of 2048 bytes, instead of 1024.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="starting.html#gvim">gvim</A> now only sets the console size for external commands to 25x80
on Windows 95, not on NT.
<A HREF="os_win32.html#Win32">Win32</A> console: Dead key could cause a crash, because of a missing "WINAPI"
(Deshpande).
The right mouse button started <A HREF="visual.html#Visual">Visual</A> mode, even when <A HREF="options.html#'mouse'">'mouse'</A> is empty, and
in the command-line, a left click moved the cursor when <A HREF="options.html#'mouse'">'mouse'</A> is empty.
In <A HREF="visual.html#Visual">Visual</A> mode, '<A HREF="pattern.html#n">n</A>' in <A HREF="options.html#'mouse'">'mouse'</A> would be used instead of '<A HREF="visual.html#v">v</A>'.
A blinking cursor or focus change cleared a non-Visual selection.
CTRL-Home and CTRL-End didn't work for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> versions.
Could include NUL in <A HREF="options.html#'iskeyword'">'iskeyword'</A>, causing a crash when doing insert mode
completion.
Use _dos_commit() to flush the swap file to disk for <A HREF="os_msdos.html#MSDOS">MSDOS</A> 16 bit version.
In mappings, <A HREF="motion.html#CTRL-H">CTRL-H</A> was replaced by the backspace key code. This caused
problems when <A HREF="motion.html#it">it</A> was used <A HREF="motion.html#as">as</A> text, e.g. "<A HREF="map.html#:map">:map</A> _U :%s/.^H//g<CR>".
"<A HREF="options.html#:set">:set</A> <A HREF="term.html#'t_Co'">t_Co</A>=0" was not handled like a normal term. Now it's translated into
"<A HREF="options.html#:set">:set</A> <A HREF="term.html#'t_Co'">t_Co</A>=", which works.
For "<A HREF="syntax.html#:syntax">:syntax</A> keyword" the "transparent" option did work, although not
mentioned in the help. But <A HREF="eval.html#synID()">synID()</A> returned wrong name.
"gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and
not interruptible.
"<A HREF="change.html#gq">gq</A>" <A HREF="motion.html#operator">operator</A> inserted screen lines in the wrong situation. Now screen
lines are inserted or deleted when this speeds up displaying.
cindent was wrong when an "if" contained "((".
'<A HREF="change.html#r">r</A>' flag in <A HREF="options.html#'viminfo'">'viminfo'</A> was not used for '<A HREF="motion.html#%">%</A>'. Could get files in the buffer
<A HREF="eval.html#list">list</A> from removable media.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> with OLE: if_ole_vc.mak could not be converted into a project.
Hand-edited to fix this...
With <A HREF="options.html#'nosol'">'nosol'</A> set, doing "$kdw" below an empty line positioned the cursor at
the end of the line.
Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP
bug. That bug appears to have been fixed, therefore this translation has
been removed.
"/^*" didn't work (find '*' in first column).
"<A HREF="cmdline.html#<afile>"><afile></A>" was not always set for autocommands. E.g., for "<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#BufEnter">BufEnter</A> *
let &tags = expand("<afile>:p:h") . "/tags".
In an xterm, the <A HREF="windows.html#window">window</A> may be a child of the outer xterm <A HREF="windows.html#window">window</A>. Use the
parent <A HREF="windows.html#window">window</A> when getting the title and icon names. (Smith)
When starting with "<A HREF="starting.html#gvim">gvim</A> <A HREF="gui_x11.html#-bg">-bg</A> black <A HREF="gui_x11.html#-fg">-fg</A> white", the value of <A HREF="options.html#'background'">'background'</A> is
only set after reading the <A HREF="gui.html#.gvimrc">.gvimrc</A> file. This causes a "<A HREF="syntax.html#:syntax">:syntax</A> on" to use
the wrong colors. Now allow using "<A HREF="gui_x11.html#:gui">:gui</A>" to open the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> and set the
colors. Previously "<A HREF="gui_x11.html#:gui">:gui</A>" in a <A HREF="gui.html#gvimrc">gvimrc</A> crashed Vim.
<A HREF="eval.html#tempname()">tempname()</A> returned the same name all the time, unless the file was actually
created. Now there are at least 26 different names.
File name used for <A HREF="cmdline.html#<afile>"><afile></A> was sometimes full path, sometimes file name
relative to current directory.
When <A HREF="options.html#'background'">'background'</A> was set after the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> was opened, <A HREF="motion.html#it">it</A> could change
colors that were set by the user in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file. Now <A HREF="motion.html#it">it</A> only changes
colors that have not been set by the user.
Ignore special characters after a CSI in the <A HREF="gui.html#GUI">GUI</A> version. These could be
interpreted <A HREF="motion.html#as">as</A> special characters in a wrong way. (St-Amant)
Memory leak in <A HREF="farsi.html#farsi">farsi</A> code, when using search or "<A HREF="change.html#:s">:s</A>" command.
<A HREF="farsi.html#Farsi">Farsi</A> <A HREF="eval.html#string">string</A> reversing for a <A HREF="map.html#mapping">mapping</A> was only done for new mappings. Now <A HREF="motion.html#it">it</A>
also works for <A HREF="change.html#replacing">replacing</A> a <A HREF="map.html#mapping">mapping</A>.
Crash in <A HREF="os_win32.html#Win32">Win32</A> when using a file name longer than _MAX_PATH. (Aaron)
When <A HREF="autocmd.html#BufDelete">BufDelete</A> autocommands were executed, some things for the buffer were
already deleted (esp. <A HREF="if_perl.html#Perl">Perl</A> stuff).
<A HREF="if_perl.html#Perl">Perl</A> interface: Buffer specific items were deleted too soon; fixes "screen
no longer exists" <A HREF="message.html#messages">messages</A>. (Moore)
The <A HREF="if_perl.html#Perl">Perl</A> <A HREF="eval.html#functions">functions</A> didn't set the <A HREF="options.html#'modified'">'modified'</A> flag.
link.sh did not return an error on exit, which may cause Vim to start
installing, even though there is no executable to <A HREF="usr_90.html#install">install</A>. (Riehm)
<A HREF="intro.html#Vi">Vi</A> incompatibility: In <A HREF="intro.html#Vi">Vi</A> "<A HREF="repeat.html#.">.</A>" redoes the "<A HREF="change.html#y">y</A>" command. Added the '<A HREF="change.html#y">y</A>' flag to
<A HREF="options.html#'cpoptions'">'cpoptions'</A>. Only for <A HREF="options.html#'compatible'">'compatible'</A> mode.
"<A HREF="eval.html#:echohl">:echohl</A>" defined a new group, when the argument was not an existing group.
"syn on" and "<A HREF="syntax.html#:syn">:syn</A> off" could move the cursor, if there is a hidden buffer
that is shorter that the current cursor position.
The " <A HREF="motion.html#mark">mark</A> was not set when doing "<A HREF="windows.html#:b">:b</A> file".
When a "nextgroup" is used with "skipwhite" in <A HREF="syntax.html#syntax">syntax</A> highlighting, space at
the end of the line made the nextgroup also be found in the next line.
":he g<CTRL-D>", then "<A HREF="cmdline.html#:">:</A>" and backspace to the start didn't redraw.
<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: "<A HREF="starting.html#gvim">gvim</A> -rv" reversed the colors <A HREF="if_cscop.html#twice">twice</A> on Sun. Now Vim checks if the
result is really reverse video (background darker than foreground).
"cat link.sh | vim -" didn't set <A HREF="syntax.html#syntax">syntax</A> highlighting.
<A HREF="os_win32.html#Win32">Win32</A>: Expanding "file.sw?" matched ".file.swp". This is an error of
FindnextFile() that we need to work around. (Kilgore)
"<A HREF="change.html#gqgq">gqgq</A>" gave an "Invalid lnum" error on the last line.
Formatting with "<A HREF="change.html#gq">gq</A>" didn't format the first line after a change of comment
leader.
There was no check for out-of-memory in win_alloc().
"vim -h" didn't mention "<A HREF="if_ole.html#-register">-register</A>" and "<A HREF="if_ole.html#-unregister">-unregister</A>" for the OLE version.
Could not increase <A HREF="options.html#'cmdheight'">'cmdheight'</A> when the last <A HREF="windows.html#window">window</A> is only one line. Now
other <A HREF="windows.html#windows">windows</A> are also made smaller, when necessary.
Added a few <A HREF="intro.html#{}">{}</A> to avoid "suggest braces around" warnings from gcc 2.8.x.
Changed return type of main() from void to int. (Nam)
Using '<A HREF="change.html#~">~</A>' <A HREF="if_cscop.html#twice">twice</A> in a substitute <A HREF="pattern.html#pattern">pattern</A> caused a crash.
"syn on" and "<A HREF="syntax.html#:syn">:syn</A> off" could scroll the <A HREF="windows.html#window">window</A>, if there is a hidden buffer
that is shorter that the current cursor position.
"<A HREF="eval.html#:if">:if</A> 0 | if 1 | endif | endif" didn't work. Same for "<A HREF="eval.html#:while">:while</A>" and "elseif".
With two <A HREF="windows.html#windows">windows</A> on modified files, with <A HREF="options.html#'autowrite'">'autowrite'</A> set, cursor in second
<A HREF="windows.html#window">window</A>, "<A HREF="editing.html#:qa">:qa</A>" gave a warning for the file in the first <A HREF="windows.html#window">window</A>, but then
auto-wrote the file in the second <A HREF="windows.html#window">window</A>. (Webb)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> scrollbar could only handle 32767 lines. Also makes the
intellimouse wheel use the configurable number of scrolls. (Robinson)
When using <A HREF="options.html#'patchmode'">'patchmode'</A>, and the <A HREF="editing.html#backup">backup</A> file is on another partition, the file
<A HREF="uganda.html#copying">copying</A> messed up the write-file message.
<A HREF="gui.html#GUI">GUI</A> <A HREF="options.html#X11">X11</A>: Alt-Backspace and Alt-Delete didn't work.
"<A HREF="motion.html#`0">`0</A>" could put the cursor after the last character in the line, causing
trouble for other commands, like "<A HREF="insert.html#i">i</A>".
When completing <A HREF="tagsrch.html#tags">tags</A> in insert mode with ^X^], some matches were skipped,
because the compare with other <A HREF="tagsrch.html#tags">tags</A> was wrong. E.g., when "mnuFileSave" was
already there, "mnuFile" would be skipped. (Negri)
When <A HREF="scroll.html#scrolling">scrolling</A> up/down, a <A HREF="syntax.html#syntax">syntax</A> item with "keepend" didn't work properly.
Now the flags are also stored for the <A HREF="syntax.html#syntax">syntax</A> state at the start of each line.
When <A HREF="options.html#'ic'">'ic'</A> was changed while <A HREF="options.html#'hlsearch'">'hlsearch'</A> is on, there was no redraw to show the
effect.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Don't display "No write since last chance" in a message box, but in
the Vim <A HREF="windows.html#window">window</A>.
==============================================================================
VERSION 5.2 *<A NAME="version-5.2"></A><B>version-5.2</B>*
Improvements made between version 5.1 and 5.2.
Long lines editable *<A NAME="long-lines"></A><B>long-lines</B>*
A single long line that doesn't fit in the <A HREF="windows.html#window">window</A> doesn't show a line of @@@
anymore. Redrawing starts at a character further on in the line, such that
the text around the cursor can be seen. This makes <A HREF="motion.html#it">it</A> possible to edit these
long lines when wrapping is on.
File browser added *<A NAME="file-browser-5.2"></A><B>file-browser-5.2</B>*
The <A HREF="os_win32.html#Win32">Win32</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> bring up a file requester if the user asks to
"<A HREF="editing.html#:browse">:browse</A>" for the "<A HREF="editing.html#:e">:e</A>", "<A HREF="editing.html#:w">:w</A>", "<A HREF="insert.html#:r">:r</A>", "<A HREF="repeat.html#:so">:so</A>", ":redirect" and
":mkexrc/vimrc/vsess" commands. "<A HREF="editing.html#:browse">:browse</A> <A HREF="motion.html#e">e</A> /foo/bar" opens the requester in
the /foo/bar directory, so you can have <A HREF="todo.html#nice">nice</A> <A HREF="map.html#mapping">mapping</A> rhs's like "<A HREF="editing.html#:browse">:browse</A> so
$vim/macros". If no initial dir specified for "<A HREF="editing.html#:browse">:browse</A> e", can be compiled to
either begin in the current directory, or that of the current buffer. (Negri
and Kahn)
Added the <A HREF="options.html#'browsedir'">'browsedir'</A> option, with value "current", "last" or "buffer". Tells
whether a browse <A HREF="gui_w32.html#dialog">dialog</A> starts in last used dir, dir of current buffer, or
current dir. "<A HREF="editing.html#:browse">:browse</A> w" is unaffected.
The default <A HREF="gui.html#menus">menus</A> have been changed to use the "<A HREF="editing.html#:browse">:browse</A>" command.
Dialogs added *<A NAME="dialogs-added"></A><B>dialogs-added</B>*
Added the "<A HREF="editing.html#:confirm">:confirm</A>" command. Works on "<A HREF="editing.html#:e">:e</A>", "<A HREF="editing.html#:q">:q</A>", "<A HREF="editing.html#:w">:w</A>", "<A HREF="quickfix.html#:cl">:cl</A>". <A HREF="os_win32.html#Win32">Win32</A>,
<A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> uses a window-dialog. All other platforms can use
prompt in command-line. "<A HREF="editing.html#:confirm">:confirm</A> qa" offers a choice to save all modified
files.
<A HREF="eval.html#confirm()">confirm()</A> function: allows user access to the confirm engine.
Added '<A HREF="visual.html#v">v</A>' flag to <A HREF="options.html#'guioptions'">'guioptions'</A>. When included, a vertical button layout is
always used for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_w32.html#dialog">dialog</A>. Otherwise, a horizontal layout is
preferred.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: "<A HREF="change.html#:promptfind">:promptfind</A>" and "<A HREF="change.html#:promptrepl">:promptrepl</A>" pop up a <A HREF="gui_w32.html#dialog">dialog</A> to find/replace.
To be used from a menu entry. (Negri)
Popup menu added *<A NAME="popup-menu-added"></A><B>popup-menu-added</B>*
When the <A HREF="options.html#'mousemodel'">'mousemodel'</A> option is set to "popup", the right mouse button
displays the top level menu headed with "PopUp" <A HREF="motion.html#as">as</A> pop-up context menu. The
"PopUp" menu is not displayed in the normal menu <A HREF="motion.html#bar">bar</A>. This currently only
works for <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>.
<A HREF="visual.html#Select">Select</A> mode added *<A NAME="new-Select-mode"></A><B>new-Select-mode</B>*
A new mode has been added: "<A HREF="visual.html#Select">Select</A> mode". It is like <A HREF="visual.html#Visual">Visual</A> mode, but typing
a printable character replaces the selection.
- <A HREF="editing.html#CTRL-G">CTRL-G</A> can be used to toggle between <A HREF="visual.html#Visual">Visual</A> mode and <A HREF="visual.html#Select">Select</A> mode.
- <A HREF="motion.html#CTRL-O">CTRL-O</A> can be used to switch from <A HREF="visual.html#Select">Select</A> mode to <A HREF="visual.html#Visual">Visual</A> mode for one command.
- Added <A HREF="options.html#'selectmode'">'selectmode'</A> option: tells when to start <A HREF="visual.html#Select">Select</A> mode instead of <A HREF="visual.html#Visual">Visual</A>
mode.
- Added <A HREF="options.html#'mousemodel'">'mousemodel'</A> option: Change use of mouse buttons.
- Added <A HREF="options.html#'keymodel'">'keymodel'</A> option: tells to use shifted special keys to start a
<A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode selection.
- Added "<A HREF="gui.html#:behave">:behave</A>". Can be used to quickly set <A HREF="options.html#'selectmode'">'selectmode'</A>, <A HREF="options.html#'mousemodel'">'mousemodel'</A>
and <A HREF="options.html#'keymodel'">'keymodel'</A> for <A HREF="os_win32.html#MS-Windows">MS-Windows</A> and xterm behavior.
- The xterm-like selection is now called modeless selection.
- <A HREF="visual.html#Visual">Visual</A> mode mappings and <A HREF="gui.html#menus">menus</A> are used in <A HREF="visual.html#Select">Select</A> mode. They automatically
switch to <A HREF="visual.html#Visual">Visual</A> mode first. Afterwards, reselect the area, unless <A HREF="motion.html#it">it</A> was
deleted. The "<A HREF="visual.html#gV">gV</A>" command can be used in a <A HREF="map.html#mapping">mapping</A> to skip the reselection.
- Added the "<A HREF="visual.html#gh">gh</A>", "<A HREF="visual.html#gH">gH</A>" and "g^H" commands: start <A HREF="visual.html#Select">Select</A> (highlight) mode.
- Backspace in <A HREF="visual.html#Select">Select</A> mode deletes the selected area.
"<A HREF="gui_w32.html#mswin.vim">mswin.vim</A>" <A HREF="usr_41.html#script">script</A>. Sets behavior mostly like <A HREF="os_win32.html#MS-Windows">MS-Windows</A>.
<A HREF="starting.html#Session">Session</A> files added *<A NAME="new-session-files"></A><B>new-session-files</B>*
":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the
currently loaded <A HREF="windows.html#buffers">buffers</A> and current directory, so that :so'ing the file
re-loads those files and cd's to that directory. Also stores and restores
<A HREF="windows.html#windows">windows</A>. File names are made relative to session file.
The <A HREF="options.html#'sessionoptions'">'sessionoptions'</A> option sets behavior of "<A HREF="starting.html#:mksession">:mksession</A>". (Negri)
<A HREF="autocmd.html#User">User</A> defined <A HREF="eval.html#functions">functions</A> and commands *<A NAME="new-user-defined"></A><B>new-user-defined</B>*
Added user defined <A HREF="eval.html#functions">functions</A>. Defined with "<A HREF="eval.html#:function">:function</A>" until "<A HREF="eval.html#:endfunction">:endfunction</A>".
Called with "Func()". Allows the use of a variable number of arguments.
Included support for local <A HREF="eval.html#variables">variables</A> "l:name". Return a value with "<A HREF="eval.html#:return">:return</A>".
See |<A HREF="eval.html#:function">:function</A>|.
Call a function with "<A HREF="eval.html#:call">:call</A>". When using a range, the function is called for
each line in the range. |<A HREF="eval.html#:call">:call</A>|
"macros/justify.vim" is an example of using user defined <A HREF="eval.html#functions">functions</A>.
<A HREF="autocmd.html#User">User</A> <A HREF="eval.html#functions">functions</A> <A HREF="diff.html#do">do</A> not change the last used search <A HREF="pattern.html#pattern">pattern</A> or the command to be
redone with "<A HREF="repeat.html#.">.</A>".
<A HREF="options.html#'maxfuncdepth'">'maxfuncdepth'</A> option. Restricts the depth of function calls. Avoids trouble
(crash because of out-of-memory) when a function uses endless recursion.
<A HREF="autocmd.html#User">User</A> definable <A HREF="intro.html#Ex">Ex</A> commands: "<A HREF="map.html#:command">:command</A>", "<A HREF="map.html#:delcommand">:delcommand</A>" and "<A HREF="map.html#:comclear">:comclear</A>".
(Moore) See |<A HREF="map.html#user-commands">user-commands</A>|.
New interfaces *<A NAME="interfaces-5.2"></A><B>interfaces-5.2</B>*
<A HREF="if_tcl.html#Tcl">Tcl</A> interface. (Wilken) See |<A HREF="if_tcl.html#tcl">tcl</A>|.
Uses the "<A HREF="if_tcl.html#:tcl">:tcl</A>", "<A HREF="if_tcl.html#:tcldo">:tcldo</A>" and "tclfile" commands.
<A HREF="if_cscop.html#Cscope">Cscope</A> support. (Kahn) (Sekera) See |<A HREF="if_cscop.html#cscope">cscope</A>|.
Uses the "<A HREF="if_cscop.html#:cscope">:cscope</A>" and "<A HREF="if_cscop.html#:cstag">:cstag</A>" commands. Uses the <A HREF="options.html#options">options</A> <A HREF="options.html#'cscopeprg'">'cscopeprg'</A>,
<A HREF="options.html#'cscopetag'">'cscopetag'</A>, <A HREF="options.html#'cscopetagorder'">'cscopetagorder'</A> and <A HREF="options.html#'cscopeverbose'">'cscopeverbose'</A>.
New ports *<A NAME="ports-5.2"></A><B>ports-5.2</B>*
<A HREF="os_amiga.html#Amiga">Amiga</A> <A HREF="gui.html#GUI">GUI</A> port. (Nielsen) Not tested much yet!
RISC OS version. (Thomas Leonard) See |<A HREF="os_risc.html#riscos">riscos</A>|.
This version can run either with a <A HREF="gui.html#GUI">GUI</A> or in text mode, depending upon where
<A HREF="motion.html#it">it</A> is invoked.
Deleted the "os_archie" files, they were not working anyway.
Multi-byte support *<A NAME="new-multi-byte"></A><B>new-multi-byte</B>*
MultiByte support for <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>. (Baek)
The <A HREF="options.html#'fileencoding'">'fileencoding'</A> option decides how the text in the file is encoded.
"<A HREF="various.html#:ascii">:ascii</A>" works for <A HREF="mbyte.html#multi-byte">multi-byte</A> characters. Multi-byte characters work on
Windows 95, even when using the US version. (Aaron)
Needs to be enabled in feature.h.
This has not been tested much yet!
New <A HREF="eval.html#functions">functions</A> *<A NAME="new-functions-5.2"></A><B>new-functions-5.2</B>*
|<A HREF="eval.html#browse()">browse()</A>| puts up a file requester when available. (Negri)
|<A HREF="eval.html#escape()">escape()</A>| escapes characters in a <A HREF="eval.html#string">string</A> with a <A HREF="intro.html#backslash">backslash</A>.
|<A HREF="eval.html#fnamemodify()">fnamemodify()</A>| modifies a file name.
|<A HREF="eval.html#input()">input()</A>| asks the user to enter a line. (Aaron) There is a separate
<A HREF="cmdline.html#history">history</A> for lines typed for the <A HREF="eval.html#input()">input()</A> function.
|<A HREF="eval.html#argc()">argc()</A>|
|<A HREF="eval.html#argv()">argv()</A>| can be used to access the argument <A HREF="eval.html#list">list</A>.
|<A HREF="eval.html#winbufnr()">winbufnr()</A>| buffer number of a <A HREF="windows.html#window">window</A>. (Aaron)
|<A HREF="eval.html#winnr()">winnr()</A>| <A HREF="windows.html#window">window</A> number. (Aaron)
|<A HREF="eval.html#matchstr()">matchstr()</A>| Return matched <A HREF="eval.html#string">string</A>.
|<A HREF="eval.html#setline()">setline()</A>| Set a line to a <A HREF="eval.html#string">string</A> value.
New <A HREF="options.html#options">options</A> *<A NAME="new-options-5.2"></A><B>new-options-5.2</B>*
<A HREF="options.html#'allowrevins'">'allowrevins'</A> Enable the CTRL-_ command in <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Command-line">Command-line</A> mode.
<A HREF="options.html#'browsedir'">'browsedir'</A> Tells in which directory a browse <A HREF="gui_w32.html#dialog">dialog</A> starts.
<A HREF="options.html#'confirm'">'confirm'</A> when set, <A HREF="editing.html#:q">:q</A> <A HREF="editing.html#:w">:w</A> and <A HREF="editing.html#:e">:e</A> commands always act <A HREF="motion.html#as">as</A> if "<A HREF="editing.html#:confirm">:confirm</A>"
is used. (Negri)
<A HREF="options.html#'cscopeprg'">'cscopeprg'</A>
<A HREF="options.html#'cscopetag'">'cscopetag'</A>
<A HREF="options.html#'cscopetagorder'">'cscopetagorder'</A>
<A HREF="options.html#'cscopeverbose'">'cscopeverbose'</A> Set the |<A HREF="if_cscop.html#cscope">cscope</A>| behavior.
<A HREF="options.html#'filetype'">'filetype'</A> <A HREF="os_risc.html#RISC-OS">RISC-OS</A> specific type of file.
<A HREF="options.html#'grepformat'">'grepformat'</A>
<A HREF="options.html#'grepprg'">'grepprg'</A> For the |<A HREF="quickfix.html#:grep">:grep</A>| command.
<A HREF="options.html#'keymodel'">'keymodel'</A> Tells to use shifted special keys to start a <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A>
mode selection.
<A HREF="options.html#'listchars'">'listchars'</A> Set character to show in <A HREF="options.html#'list'">'list'</A> mode for end-of-line, tabs and
trailing spaces. (partly by Smith) Also sets character to
display if a line doesn't fit when <A HREF="options.html#'nowrap'">'nowrap'</A> is set.
<A HREF="options.html#'matchpairs'">'matchpairs'</A> Allows matching '<A HREF="change.html#<"><</A>' with '<A HREF="change.html#>">></A>', and other single character
pairs.
<A HREF="options.html#'mousefocus'">'mousefocus'</A> Window focus follows mouse (partly by Terhaar). Changing the
focus with a keyboard command moves the pointer to that
<A HREF="windows.html#window">window</A>. Also move the pointer when <A HREF="change.html#changing">changing</A> the <A HREF="windows.html#window">window</A> layout
(split <A HREF="windows.html#window">window</A>, change <A HREF="windows.html#window">window</A> height, etc.).
<A HREF="options.html#'mousemodel'">'mousemodel'</A> Change use of mouse buttons.
<A HREF="options.html#'selection'">'selection'</A> When set to "<A HREF="motion.html#inclusive">inclusive</A>" or "<A HREF="motion.html#exclusive">exclusive</A>", the cursor can go one
character past the end of the line in <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode.
When set to "old" the old behavior is used. When
"<A HREF="motion.html#inclusive">inclusive</A>", the character under the cursor is included in the
operation. When using "<A HREF="motion.html#exclusive">exclusive</A>", the new "ve" entry of
<A HREF="options.html#'guicursor'">'guicursor'</A> is used. The default is a vertical <A HREF="motion.html#bar">bar</A>.
<A HREF="options.html#'selectmode'">'selectmode'</A> Tells when to start <A HREF="visual.html#Select">Select</A> mode instead of <A HREF="visual.html#Visual">Visual</A> mode.
<A HREF="options.html#'sessionoptions'">'sessionoptions'</A> Sets behavior of "<A HREF="starting.html#:mksession">:mksession</A>". (Negri)
<A HREF="options.html#'showfulltag'">'showfulltag'</A> When completing a <A HREF="tagsrch.html#tag">tag</A> in <A HREF="insert.html#Insert">Insert</A> mode, show the <A HREF="tagsrch.html#tag">tag</A> search
<A HREF="pattern.html#pattern">pattern</A> (tidied up) <A HREF="motion.html#as">as</A> a choice <A HREF="motion.html#as">as</A> well (if there is one).
<A HREF="options.html#'swapfile'">'swapfile'</A> Whether to use a swap file for a buffer.
<A HREF="options.html#'syntax'">'syntax'</A> When <A HREF="motion.html#it">it</A> is set, the <A HREF="syntax.html#syntax">syntax</A> by that name is loaded. Allows for
setting a specific <A HREF="syntax.html#syntax">syntax</A> from a <A HREF="options.html#modeline">modeline</A>.
<A HREF="options.html#'ttymouse'">'ttymouse'</A> Allows using xterm mouse codes for terminals which name
doesn't start with "xterm".
<A HREF="options.html#'wildignore'">'wildignore'</A> <A HREF="eval.html#List">List</A> of patterns for files that should not be completed at
all.
<A HREF="options.html#'wildmode'">'wildmode'</A> Can be used to set the type of expansion for <A HREF="options.html#'wildchar'">'wildchar'</A>.
Replaces the <A HREF="tagsrch.html#CTRL-T">CTRL-T</A> command for command line completion.
Don't beep when listing all matches.
<A HREF="options.html#'winaltkeys'">'winaltkeys'</A> <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>. When "yes", ALT keys are handled
entirely by the <A HREF="windows.html#window">window</A> system. When "no", ALT keys are never
used by the <A HREF="windows.html#window">window</A> system. When "menu" <A HREF="motion.html#it">it</A> depends on whether
a key is a menu shortcut.
<A HREF="options.html#'winminheight'">'winminheight'</A> Minimal height for each <A HREF="windows.html#window">window</A>. Default is 1. Set to 0 if
you want zero-line <A HREF="windows.html#windows">windows</A>. Scrollbar is removed for
zero-height <A HREF="windows.html#windows">windows</A>. (Negri)
New <A HREF="intro.html#Ex">Ex</A> commands *<A NAME="new-ex-commands-5.2"></A><B>new-ex-commands-5.2</B>*
|<A HREF="windows.html#:badd">:badd</A>| Add file name to buffer <A HREF="eval.html#list">list</A> without side effects. (Negri)
|<A HREF="gui.html#:behave">:behave</A>| Quickly set <A HREF="os_win32.html#MS-Windows">MS-Windows</A> or xterm behavior.
|<A HREF="editing.html#:browse">:browse</A>| Use file selection <A HREF="gui_w32.html#dialog">dialog</A>.
|<A HREF="eval.html#:call">:call</A>| Call a function, optionally with a range.
|<A HREF="quickfix.html#:cnewer">:cnewer</A>|
|<A HREF="quickfix.html#:colder">:colder</A>| To access a stack of <A HREF="quickfix.html#quickfix">quickfix</A> error lists.
|<A HREF="map.html#:comclear">:comclear</A>| Clear all user-defined commands.
|<A HREF="map.html#:command">:command</A>| Define a user command.
|<A HREF="eval.html#:continue">:continue</A>| Go back to "<A HREF="eval.html#:while">:while</A>".
|<A HREF="editing.html#:confirm">:confirm</A>| Ask confirmation if something unexpected happens.
|<A HREF="if_cscop.html#:cscope">:cscope</A>| Execute cscope command.
|<A HREF="if_cscop.html#:cstag">:cstag</A>| Use <A HREF="if_cscop.html#cscope">cscope</A> to jump to a tag.
|<A HREF="map.html#:delcommand">:delcommand</A>| Delete a user-defined command.
|<A HREF="eval.html#:delfunction">:delfunction</A>| Delete a user-defined function.
|<A HREF="eval.html#:endfunction">:endfunction</A>| End of user-defined function.
|<A HREF="eval.html#:function">:function</A>| Define a user function.
|<A HREF="quickfix.html#:grep">:grep</A>| Works similar to "<A HREF="quickfix.html#:make">:make</A>". (Negri)
|<A HREF="starting.html#:mksession">:mksession</A>| Create a session file.
|<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>| Stop <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting for a moment.
|<A HREF="various.html#:Print">:Print</A>| This is <A HREF="intro.html#Vi">Vi</A> compatible. Does the same <A HREF="motion.html#as">as</A> "<A HREF="various.html#:print">:print</A>".
|<A HREF="change.html#:promptfind">:promptfind</A>| Search <A HREF="gui_w32.html#dialog">dialog</A> (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="change.html#:promptrepl">:promptrepl</A>| Search/replace <A HREF="gui_w32.html#dialog">dialog</A> (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="eval.html#:return">:return</A>| Return from a user-defined function.
|<A HREF="gui_w32.html#:simalt">:simalt</A>| <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Simulate alt-key pressed. (Negri)
|<A HREF="change.html#:smagic">:smagic</A>| Like "<A HREF="change.html#:substitute">:substitute</A>", but always use <A HREF="options.html#'magic'">'magic'</A>.
|<A HREF="change.html#:snomagic">:snomagic</A>| Like "<A HREF="change.html#:substitute">:substitute</A>", but always use <A HREF="options.html#'nomagic'">'nomagic'</A>.
|<A HREF="if_tcl.html#:tcl">:tcl</A>| Execute <A HREF="if_tcl.html#TCL">TCL</A> command.
|<A HREF="if_tcl.html#:tcldo">:tcldo</A>| Execute <A HREF="if_tcl.html#TCL">TCL</A> command for a range of lines.
|<A HREF="if_tcl.html#:tclfile">:tclfile</A>| Execute a <A HREF="if_tcl.html#TCL">TCL</A> <A HREF="usr_41.html#script">script</A> file.
|<A HREF="gui_w32.html#:tearoff">:tearoff</A>| Tear-off a menu (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="gui.html#:tmenu">:tmenu</A>|
|<A HREF="gui.html#:tunmenu">:tunmenu</A>| <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: menu tooltips. (Negri)
|<A HREF="repeat.html#:star">:star</A>| :* Execute a <A HREF="sponsor.html#register">register</A>.
Changed *<A NAME="changed-5.2"></A><B>changed-5.2</B>*
Renamed <A HREF="eval.html#functions">functions</A>:
<A HREF="eval.html#buffer_exists()">buffer_exists()</A> -> <A HREF="eval.html#bufexists()">bufexists()</A>
<A HREF="eval.html#buffer_name()">buffer_name()</A> -> <A HREF="eval.html#bufname()">bufname()</A>
<A HREF="eval.html#buffer_number()">buffer_number()</A> -> <A HREF="eval.html#bufnr()">bufnr()</A>
<A HREF="eval.html#file_readable()">file_readable()</A> -> <A HREF="eval.html#filereadable()">filereadable()</A>
<A HREF="eval.html#highlight_exists()">highlight_exists()</A> -> <A HREF="eval.html#hlexists()">hlexists()</A>
<A HREF="eval.html#highlightID()">highlightID()</A> -> <A HREF="eval.html#hlID()">hlID()</A>
<A HREF="eval.html#last_buffer_nr()">last_buffer_nr()</A> -> bufnr("$")
The old ones are still there, for backwards compatibility.
The CTRL-_ command in <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Command-line">Command-line</A> mode is only available when the
new <A HREF="options.html#'allowrevins'">'allowrevins'</A> option is set. Avoids that people who want to type SHIFT-_
accidentally enter reverse <A HREF="insert.html#Insert">Insert</A> mode, and don't know how to get out.
When a file name path in "<A HREF="tagsrch.html#:tselect">:tselect</A>" listing is too long, remove a part in the
middle and put "<A HREF="eval.html#...">...</A>" there.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made font selector appear inside Vim <A HREF="windows.html#window">window</A>, not just any odd
place. (Negri)
"<A HREF="windows.html#:bn">:bn</A>" skips help <A HREF="windows.html#buffers">buffers</A>, unless currently in a help buffer. (Negri)
When there is a status line and only one <A HREF="windows.html#window">window</A>, don't show '<A HREF="motion.html#^">^</A>' in the status
line of the current <A HREF="windows.html#window">window</A>.
":*" used to be used for "'<,'>", the <A HREF="visual.html#Visual">Visual</A> area. But in <A HREF="intro.html#Vi">Vi</A> it's used <A HREF="motion.html#as">as</A> an
alternative for "<A HREF="repeat.html#:@">:@</A>". When <A HREF="options.html#'cpoptions'">'cpoptions'</A> includes '*' this is <A HREF="intro.html#Vi">Vi</A> compatible.
When <A HREF="options.html#'insertmode'">'insertmode'</A> is set, using <A HREF="motion.html#CTRL-O">CTRL-O</A> to execute a <A HREF="map.html#mapping">mapping</A> will work like
<A HREF="options.html#'insertmode'">'insertmode'</A> was not set. This allows "normal" mappings to be used even when
<A HREF="options.html#'insertmode'">'insertmode'</A> is set.
When <A HREF="options.html#'mouse'">'mouse'</A> was set already (e.g., in the <A HREF="starting.html#.vimrc">.vimrc</A> file), don't automatically
set <A HREF="options.html#'mouse'">'mouse'</A> when the <A HREF="gui.html#GUI">GUI</A> starts.
Removed the '<A HREF="pattern.html#N">N</A>', '<A HREF="insert.html#I">I</A>' and '<A HREF="insert.html#A">A</A>' flags from the <A HREF="options.html#'mouse'">'mouse'</A> option.
Renamed "toggle option" to "<A HREF="options.html#boolean">boolean</A> option". Some people thought that "<A HREF="options.html#:set">:set</A>
xyz" would toggle 'xyz' on/off each time.
The internal variable "shell_error" contains the error code from the shell,
instead of just 0 or 1.
When <A HREF="insert.html#inserting">inserting</A> or <A HREF="change.html#replacing">replacing</A>, typing <A HREF="visual.html#CTRL-V">CTRL-V</A> CTRL-<CR> used to insert "<C-CR>".
That is not very useful. Now the CTRL key is ignored and a <A HREF="motion.html#<CR>"><CR></A> is inserted.
Same for all other "normal" keys with modifiers. Mapping these modified key
combinations is still possible.
In <A HREF="insert.html#Insert">Insert</A> mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then
the special character.
Moved "<A HREF="quotes.html#quotes">quotes</A>" file to doc/quotes.txt, and "<A HREF="todo.html#todo">todo</A>" file to doc/todo.txt. They
are now installed like other documentation files.
<A HREF="eval.html#winheight()">winheight()</A> function returns -1 for a non-existing <A HREF="windows.html#window">window</A>. It used to be
zero, but that is a valid height now.
The default for <A HREF="options.html#'selection'">'selection'</A> is "<A HREF="motion.html#inclusive">inclusive</A>", which makes a difference when
using "<A HREF="motion.html#$">$</A>" or the mouse to move the cursor in <A HREF="visual.html#Visual">Visual</A> mode.
":q!" does not exit when there are changed <A HREF="windows.html#buffers">buffers</A> which are hidden. Use
":qa!" to exit anyway.
Disabled the Perl/Python/Tcl interfaces by default. Not many people use them
and they make the executable a lot bigger. The internal scripting language is
now powerful enough for most tasks.
The strings from the <A HREF="options.html#'titlestring'">'titlestring'</A> and <A HREF="options.html#'iconstring'">'iconstring'</A> <A HREF="options.html#options">options</A> are used
untranslated for the Window title and icon. This allows for including a <A HREF="motion.html#<CR>"><CR></A>.
Previously a <A HREF="motion.html#<CR>"><CR></A> would be shown <A HREF="motion.html#as">as</A> "^M" (two characters).
When a <A HREF="map.html#mapping">mapping</A> is started in <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode which was started from
<A HREF="insert.html#Insert">Insert</A> mode (the mode shows "(insert) Visual"), don't return to <A HREF="insert.html#Insert">Insert</A> mode
until the <A HREF="map.html#mapping">mapping</A> has ended. Makes <A HREF="motion.html#it">it</A> possible to use a <A HREF="map.html#mapping">mapping</A> in <A HREF="visual.html#Visual">Visual</A>
mode that also works when the <A HREF="visual.html#Visual">Visual</A> mode was started from <A HREF="visual.html#Select">Select</A> mode.
Menus in $VIMRUNTIME/menu.vim no longer overrule existing <A HREF="gui.html#menus">menus</A>. This helps
when defining <A HREF="gui.html#menus">menus</A> in the <A HREF="starting.html#.vimrc">.vimrc</A> file, or when sourcing <A HREF="gui_w32.html#mswin.vim">mswin.vim</A>.
<A HREF="os_unix.html#Unix">Unix</A>: Use /var/tmp for .swp files, if <A HREF="motion.html#it">it</A> exists. Files there survive a
reboot (at least on Linux).
Added *<A NAME="added-5.2"></A><B>added-5.2</B>*
--with-motif-lib configure argument. Allows for using a static <A HREF="gui_x11.html#Motif">Motif</A> library.
Support for <A HREF="map.html#mapping">mapping</A> numeric keypad +,-,*,/ keys. (Negri)
When not mapped, they produce the normal character.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When directory dropped on Gvim, cd there and edit new buffer.
(Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made CTRL-Break work <A HREF="motion.html#as">as</A> interrupt, so that <A HREF="pattern.html#CTRL-C">CTRL-C</A> can be
used for mappings.
In the output of "<A HREF="map.html#:map">:map</A>", highlight the "*" to make clear it's not part of the
rhs. (Roemer)
When showing the <A HREF="visual.html#Visual">Visual</A> area, the cursor is not switched off, so that <A HREF="motion.html#it">it</A> can
be located. The <A HREF="visual.html#Visual">Visual</A> area is now highlighted with a grey background in the
<A HREF="gui.html#GUI">GUI</A>. This makes the cursor visible when it's also reversed.
<A HREF="os_win32.html#Win32">Win32</A>: When started with single full pathname (e.g. via double-clicked file),
cd to that file's directory. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Tear-off <A HREF="gui.html#menus">menus</A>, with "<A HREF="gui_w32.html#:tearoff">:tearoff</A> <menu-name>" command. (Negri)
'<A HREF="motion.html#t">t</A>' option to <A HREF="options.html#'guioptions'">'guioptions'</A>: Add tearoff menu items for <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> and <A HREF="gui_x11.html#Motif">Motif</A>.
It's included by default.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: tearoff menu with submenus is indicated with a "<A HREF="change.html#>>">>></A>". (Negri)
Added ^Kaa and ^KAA <A HREF="digraph.html#digraphs">digraphs</A>.
Added "euro" symbol to digraph.c. (Corry)
Support for <A HREF="gui_x11.html#Motif">Motif</A> menu shortcut keys, using '<A HREF="change.html#&">&</A>' like <A HREF="os_win32.html#MS-Windows">MS-Windows</A> (Ollis).
Other GUIs ignore '<A HREF="change.html#&">&</A>' in a menu name.
DJGPP: Faster screen updating (John Lange).
Clustering of <A HREF="syntax.html#syntax">syntax</A> groups "<A HREF="syntax.html#:syntax">:syntax</A> cluster" (Bigham).
Including <A HREF="syntax.html#syntax">syntax</A> files: "<A HREF="syntax.html#:syntax">:syntax</A> include" (Bigham).
Keep column when switching <A HREF="windows.html#buffers">buffers</A>, when <A HREF="options.html#'nosol'">'nosol'</A> is set (Radics).
<A HREF="eval.html#Number">Number</A> function for <A HREF="if_perl.html#Perl">Perl</A> interface.
Support for Intellimouse in <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>. (Jensen)
"<A HREF="various.html#:sleep">:sleep</A>" also accepts an argument in milliseconds, when "<A HREF="motion.html#m">m</A>" is used.
Added '<A HREF="change.html#p">p</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: Install callbacks for enter/leave <A HREF="windows.html#window">window</A>
events. Makes cursor blinking work for Terhaar, breaks <A HREF="motion.html#it">it</A> for me.
"<A HREF="starting.html#--help">--help</A>" and "<A HREF="starting.html#--version">--version</A>" command-line arguments.
Non-text in "<A HREF="various.html#:list">:list</A>" output is highlighted with NonText.
Added text <A HREF="index.html#objects">objects</A>: "<A HREF="motion.html#i(">i(</A>" and "<A HREF="motion.html#i)">i)</A>" <A HREF="motion.html#as">as</A> synonym for "<A HREF="motion.html#ib">ib</A>". "<A HREF="motion.html#i{">i{</A>" and "<A HREF="motion.html#i}">i}</A>" <A HREF="motion.html#as">as</A>
synonym for "<A HREF="motion.html#iB">iB</A>". New: "<A HREF="motion.html#i<">i<</A>" and "<A HREF="motion.html#i>">i></A>", to select <thing>. All this also for
"<A HREF="insert.html#a">a</A>" <A HREF="index.html#objects">objects</A>.
'<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'shortmess'">'shortmess'</A>: message for reading a file overwrites any previous
message. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: '<A HREF="motion.html#T">T</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: switch toolbar on/off.
Included a <A HREF="eval.html#list">list</A> with self-made toolbar bitmaps. (Negri)
Added menu priority for sub-menus. Implemented for <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>.
Display menu priority with "<A HREF="gui.html#:menu">:menu</A>" command.
Default and <A HREF="autocmd.html#Syntax">Syntax</A> <A HREF="gui.html#menus">menus</A> now include priority for items. Allows <A HREF="insert.html#inserting">inserting</A>
menu items in between the default ones.
When the <A HREF="options.html#'number'">'number'</A> option is on, highlight line numbers with the LineNr group.
"Ignore" highlight group: Text highlighted with this is made blank. It is
used to hide special characters in the help text.
Included Exuberant Ctags version 2.3, with C++ support, Java support and
recurse into directories. (Hiebert)
When a <A HREF="tagsrch.html#tags">tags</A> file is not sorted, and this is detected (in a simplistic way), an
error message is given.
"<A HREF="eval.html#:unlet">:unlet</A>" accepts a "<A HREF="change.html#!">!</A>", to ignore non-existing <A HREF="eval.html#variables">variables</A>, and accepts more
than one argument. (Roemer)
Completion of variable names for "<A HREF="eval.html#:unlet">:unlet</A>". (Roemer)
When there is an error in a function which is called by another function, show
the call stack in the error message.
New file name modifiers:
"<A HREF="cmdline.html#:.">:.</A>": reduce file name to be relative to current dir.
"<A HREF="change.html#:~">:~</A>": reduce file name to be relative to home dir.
":s?pat?sub?": substitute "pat" with "sub" once.
":gs?pat?sub?": substitute "pat" with "sub" globally.
New configure arguments: --enable-min-features and --enable-max-features.
Easy way to switch to minimum or maximum features.
New compile-time feature: modify_fname. For file name modifiers, e.g,
"%:p:h". Can be disabled to save some code (16 bit <A HREF="os_dos.html#DOS">DOS</A>).
When using whole-line completion in <A HREF="insert.html#Insert">Insert</A> mode, and <A HREF="options.html#'cindent'">'cindent'</A> is set, indent
the line properly.
<A HREF="os_msdos.html#MSDOS">MSDOS</A> and <A HREF="os_win32.html#Win32">Win32</A> console: <A HREF="options.html#'guicursor'">'guicursor'</A> sets cursor thickness. (Negri)
Included new set of <A HREF="farsi.html#Farsi">Farsi</A> fonts. (Shiran)
Accelerator text now also works in <A HREF="gui_x11.html#Motif">Motif</A>. All <A HREF="gui.html#menus">menus</A> can be defined with <A HREF="change.html#&">&</A> for
mnemonic and TAB for accelerator text. They are ignored on systems that don't
support them.
When removing or <A HREF="change.html#replacing">replacing</A> a menu, compare the menu name only up to the <A HREF="motion.html#<Tab>"><Tab></A>
before the mnemonic.
'<A HREF="insert.html#i">i</A>' and '<A HREF="insert.html#I">I</A>' flags after "<A HREF="change.html#:substitute">:substitute</A>": ignore <A HREF="change.html#case">case</A> or not.
"make install" complains if the runtime files are missing.
<A HREF="os_unix.html#Unix">Unix</A>: When finding an existing swap file that can't be opened, mention the
owner of the file in the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.
The '<A HREF="insert.html#i">i</A>', '<A HREF="motion.html#t">t</A>' and '<A HREF="motion.html#k">k</A>' <A HREF="options.html#options">options</A> in <A HREF="options.html#'complete'">'complete'</A> now also print the place where they
are looking for matches. (Acevedo)
"<A HREF="change.html#gJ">gJ</A>" command: Join lines without <A HREF="insert.html#inserting">inserting</A> a space.
Setting <A HREF="options.html#'keywordprg'">'keywordprg'</A> to "man -s" is handled specifically. The "<A HREF="starting.html#-s">-s</A>" is removed
when no <A HREF="intro.html#count">count</A> given, the <A HREF="intro.html#count">count</A> is added otherwise. Configure checks if "man
<A HREF="starting.html#-s">-s</A> 2 read" works, and sets the default for <A HREF="options.html#'keywordprg'">'keywordprg'</A> accordingly.
If you <A HREF="diff.html#do">do</A> a "<A HREF="windows.html#:bd">:bd</A>" and there is only one <A HREF="windows.html#window">window</A> open, Vim tries to move to a
buffer of the same type (i.e. non-help to non-help, help to help), for
consistent behavior to :bnext/:bprev. (Negri)
Allow "<A HREF="map.html#<Nop>"><Nop></A>" to be used <A HREF="motion.html#as">as</A> the rhs of a <A HREF="map.html#mapping">mapping</A>. "<A HREF="map.html#:map">:map</A> xx <Nop>", maps "xx"
to nothing at all.
In a "<A HREF="gui.html#:menu">:menu</A>" command, "<A HREF="motion.html#<Tab>"><Tab></A>" can be used instead of a real <A HREF="intro.html#tab">tab</A>, in the menu
path. This makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to type, no <A HREF="intro.html#backslash">backslash</A> needed.
POSIX compatible character classes for <A HREF="pattern.html#regexp">regexp</A> patterns: <A HREF="pattern.html#[:alnum:]">[:alnum:]</A>, <A HREF="pattern.html#[:alpha:]">[:alpha:]</A>,
<A HREF="pattern.html#[:blank:]">[:blank:]</A>, <A HREF="pattern.html#[:cntrl:]">[:cntrl:]</A>, <A HREF="pattern.html#[:digit:]">[:digit:]</A>, <A HREF="pattern.html#[:graph:]">[:graph:]</A>, <A HREF="pattern.html#[:lower:]">[:lower:]</A>, <A HREF="pattern.html#[:print:]">[:print:]</A>, <A HREF="pattern.html#[:punct:]">[:punct:]</A>,
<A HREF="pattern.html#[:space:]">[:space:]</A>, <A HREF="pattern.html#[:upper:]">[:upper:]</A> and <A HREF="pattern.html#[:xdigit:]">[:xdigit:]</A>. (Briscoe)
<A HREF="pattern.html#regexp">regexp</A> character classes (for fast <A HREF="syntax.html#syntax">syntax</A> highlight matching):
digits: \d [0-9] \D not digit (Roemer)
hex: \x [0-9a-fA-F] \X not hex
<A HREF="eval.html#octal">octal</A>: \o [0-7] \O not <A HREF="eval.html#octal">octal</A>
<A HREF="motion.html#word">word</A>: \w [a-zA-Z0-9_] \W not <A HREF="motion.html#word">word</A>
head: \h [a-zA-Z_] \H not head
alphabetic: \a [a-zA-Z] \A not alphabetic
<A HREF="change.html#lowercase">lowercase</A>: \l [a-z] \L not <A HREF="change.html#lowercase">lowercase</A>
<A HREF="change.html#uppercase">uppercase</A>: \u [A-Z] \U not <A HREF="change.html#uppercase">uppercase</A>
"<A HREF="options.html#:set">:set</A>" now accepts "+=", |^=" and "-=": add or remove parts of a <A HREF="eval.html#string">string</A>
option, add or subtract a number from a number option. A comma is
automagically inserted or deleted for <A HREF="options.html#options">options</A> that are a comma separated <A HREF="eval.html#list">list</A>.
Filetype feature, for autocommands. Uses a file type instead of a <A HREF="pattern.html#pattern">pattern</A> to
match a file. Currently only used for RISC OS. (Leonard)
In a <A HREF="pattern.html#pattern">pattern</A> for an <A HREF="autocmd.html#autocommand">autocommand</A>, environment <A HREF="eval.html#variables">variables</A> can be used. They are
expanded when the <A HREF="autocmd.html#autocommand">autocommand</A> is defined.
"<A HREF="autocmd.html#BufFilePre">BufFilePre</A>" and "<A HREF="autocmd.html#BufFilePost">BufFilePost</A>" <A HREF="autocmd.html#autocommand">autocommand</A> evens: Before and after applying
the "<A HREF="editing.html#:file">:file</A>" command to change the name of a buffer.
"<A HREF="autocmd.html#VimLeavePre">VimLeavePre</A>" <A HREF="autocmd.html#autocommand">autocommand</A> event: before <A HREF="editing.html#writing">writing</A> the .viminfo file.
For autocommands argument: <A HREF="cmdline.html#<abuf>"><abuf></A> is buffer number, like <A HREF="cmdline.html#<afile>"><afile></A>.
Made <A HREF="syntax.html#syntax">syntax</A> highlighting a bit faster when <A HREF="scroll.html#scrolling">scrolling</A> backwards, by keeping
more syncing context.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made <A HREF="scroll.html#scrolling">scrolling</A> faster by avoiding a redraw when <A HREF="change.html#deleting">deleting</A> or
<A HREF="insert.html#inserting">inserting</A> screen lines.
<A HREF="gui.html#GUI">GUI</A>: Made <A HREF="scroll.html#scrolling">scrolling</A> faster by not redrawing the scrollbar when the thumb moved
<A HREF="various.html#less">less</A> than a pixel.
Included "<A HREF="syntax.html#:highlight">:highlight</A>" in <A HREF="intro.html#bugreport.vim">bugreport.vim</A>.
Created install.exe program, for simplistic installation on <A HREF="os_dos.html#DOS">DOS</A> and
<A HREF="os_win32.html#MS-Windows">MS-Windows</A>.
New <A HREF="sponsor.html#register">register</A>: '<A HREF="motion.html#_">_</A>', the black hole. When <A HREF="editing.html#writing">writing</A> to <A HREF="motion.html#it">it</A>, nothing happens. When
reading from <A HREF="motion.html#it">it</A>, it's always empty. Can be used to avoid a delete or change
command to modify the <A HREF="change.html#registers">registers</A>, or reduce memory use for big changes.
<A HREF="visual.html#CTRL-V">CTRL-V</A> xff enters character by hex number. <A HREF="visual.html#CTRL-V">CTRL-V</A> o123 enters character by
<A HREF="eval.html#octal">octal</A> number. (Aaron)
Improved performance of <A HREF="syntax.html#syntax">syntax</A> highlighting by skipping check for "keepend"
when there isn't any.
Moved the mode message ("-- INSERT --") to the last line of the screen. When
<A HREF="options.html#'cmdheight'">'cmdheight'</A> is more than one, <A HREF="message.html#messages">messages</A> will remain readable.
When listing matching files, they are also sorted on <A HREF="options.html#'suffixes'">'suffixes'</A>, such that
they are listed in the same order <A HREF="motion.html#as">as</A> <A HREF="motion.html#CTRL-N">CTRL-N</A> retrieves them.
<A HREF="eval.html#synIDattr()">synIDattr()</A> takes a third argument (optionally), which tells for which
<A HREF="terminal.html#terminal">terminal</A> type to get the attributes for. This makes <A HREF="motion.html#it">it</A> possible to run
<A HREF="syntax.html#2html.vim">2html.vim</A> outside of <A HREF="starting.html#gvim">gvim</A> (using color names instead of #RRGGBB).
Memory <A HREF="repeat.html#profiling">profiling</A>, only for debugging. Prints at exit, and with "g^A" command.
(Kahn)
<A HREF="os_dos.html#DOS">DOS</A>: When using a file in the current drive, remove the drive name:
"A:\dir\file" -> "\dir\file". This helps when moving a session file on a
floppy from "A:\dir" to "B:\dir".
Increased number of remembered jumps from 30 to 50 per <A HREF="windows.html#window">window</A>.
Command to temporarily disable <A HREF="options.html#'hls'">'hls'</A> highlighting until the next search:
"<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>".
"<A HREF="change.html#gp">gp</A>" and "<A HREF="change.html#gP">gP</A>" commands: like "<A HREF="change.html#p">p</A>" and "<A HREF="change.html#P">P</A>", but leave the cursor just after the
inserted text. Used for the <A HREF="visual.html#CTRL-V">CTRL-V</A> command in <A HREF="os_win32.html#MS-Windows">MS-Windows</A> mode.
Fixed *<A NAME="fixed-5.2"></A><B>fixed-5.2</B>*
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Could draw text <A HREF="if_cscop.html#twice">twice</A> in one place, for fake-bold text. Removed
this, Windows will handle the <A HREF="syntax.html#bold">bold</A> text anyway. (Negri)
patch 5.1.1: Win32s <A HREF="gui.html#GUI">GUI</A>: pasting caused a crash (Negri)
patch 5.1.2: When entering another <A HREF="windows.html#window">window</A>, where characters before the cursor
have been deleted, could have a cursor beyond the end of the line.
patch 5.1.3: Win32s <A HREF="gui.html#GUI">GUI</A>: Didn't wait for external command to finish. (Negri)
patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version
(Scott).
patch 5.1.5: Crashed when using <A HREF="syntax.html#syntax">syntax</A> highlighting: cursor on a line that
doesn't fit in the <A HREF="windows.html#window">window</A>, and splitting that line in two.
patch 5.1.6: <A HREF="visual.html#Visual">Visual</A> highlighting bug: After "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'nowrap'">nowrap</A>" go to end of line
(so that the <A HREF="windows.html#window">window</A> scrolls horizontally), "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'wrap'">wrap</A>" Following <A HREF="visual.html#Visual">Visual</A>
selection was wrong.
patch 5.1.7: When <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> off, and <A HREF="options.html#'ignorecase'">'ignorecase'</A> off, still could <A HREF="diff.html#do">do</A>
binary searching.
patch 5.1.8: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: dragging the scrollbar didn't update the ruler.
patch 5.1.9: Using "<A HREF="gui_x11.html#:gui">:gui</A>" in <A HREF="starting.html#.vimrc">.vimrc</A>, caused xterm cursor to disappear.
patch 5.1.10: A <A HREF="motion.html#CTRL-N">CTRL-N</A> in <A HREF="insert.html#Insert">Insert</A> mode could cause a crash, when a buffer
without a name exists.
patch 5.1.11: "make test" didn't work in the shadow directory. Also adjusted
"make shadow" for the links in the <A HREF="tagsrch.html#ctags">ctags</A> directory.
patch 5.1.12: "buf 123foo" used "123" <A HREF="motion.html#as">as</A> a <A HREF="intro.html#count">count</A>, instead <A HREF="motion.html#as">as</A> the start of a
buffer name.
patch 5.1.13: When completing file names on the command-line, reallocating the
command-line may go wrong.
patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch
specified.
Graceful handling of NULLs in drag-dropped file <A HREF="eval.html#list">list</A>. Handle passing NULL to
Fullname_save(). (Negri)
<A HREF="os_win32.html#Win32">Win32</A>: "<A HREF="os_win32.html#:!start">:!start</A>" to invoke a program without opening a console, swapping
screens, or waiting for completion in either console or <A HREF="gui.html#gui">gui</A> version, e.g. you
can type "<A HREF="os_win32.html#:!start">:!start</A> winfile". ALSO fixes "can't delete swapfile after spawning
a shell" bug. (enhancement of Aaron patch) (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Fix <A HREF="change.html#CTRL-X">CTRL-X</A> default keymapping to be more Windows-like. (Negri)
Shorten filenames on <A HREF="starting.html#startup">startup</A>. If in /foo/bar, entering "vim ../bar/bang.c"
displays "bang.c" in status <A HREF="motion.html#bar">bar</A>, not "/foo/bar/bang.c" (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: No copy to Windows <A HREF="gui.html#clipboard">clipboard</A> when it's not desired.
Win32s: Fix pasting from <A HREF="gui.html#clipboard">clipboard</A> - made an assumption not valid under
Win32s. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Speed up calls to gui_mch_draw_string() and cursor drawing
<A HREF="eval.html#functions">functions</A>. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Middle mouse button emulation now works in <A HREF="gui.html#GUI">GUI</A>! (Negri)
Could skip <A HREF="message.html#messages">messages</A> when combining commands in one line, e.g.:
"<A HREF="eval.html#:echo">:echo</A> "hello" | write".
<A HREF="if_perl.html#Perl">Perl</A> interpreter was disabled before executing <A HREF="autocmd.html#VimLeave">VimLeave</A> autocommands. Could
not use "<A HREF="if_perl.html#:perl">:perl</A>" in them. (Aaron)
Included patch for the Intellimouse (Aaron/Robinson).
Could not set <A HREF="options.html#'ls'">'ls'</A> to one, when last <A HREF="windows.html#window">window</A> has only one line. (Mitterand)
Fixed a memory leak when removing <A HREF="gui.html#menus">menus</A>.
After "<A HREF="windows.html#:only">:only</A>" the ruler could overwrite a message.
Dos32: removed <A HREF="change.html#changing">changing</A> of __system_flags. It appears to work better when
it's left at the default value.
p_aleph was an int instead of along, caused trouble on systems where
sizeof(int) != sizeof(long). (Schmidt)
Fixed enum problems for Ultrix. (Seibert)
Small redraw problem: "<A HREF="change.html#dd">dd</A>" on last line in file cleared wrong line.
Didn't interpret "cmd | endif" when "cmd" starts with a range. E.g. "if 0 |
.d | endif".
Command "+|" on the last line of the file caused ml_get <A HREF="message.html#errors">errors</A>.
Memory underrun in eval_vars(). (Aaron)
Don't rename files in a difficult way, except on Windows 95 (was also done on
Windows NT).
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: An external command that produces an error code put the error
message in a <A HREF="gui_w32.html#dialog">dialog</A> box. had to close the <A HREF="windows.html#window">window</A> and close the <A HREF="gui_w32.html#dialog">dialog</A>. Now
the error code is displayed in the console. (Negri)
"comctl32.lib" was missing from the <A HREF="gui.html#GUI">GUI</A> libraries in Makefile.w32. (Battle)
In <A HREF="insert.html#Insert">Insert</A> mode, when entering a <A HREF="windows.html#window">window</A> in <A HREF="insert.html#Insert">Insert</A> mode, allow the cursor to be
one char beyond the text.
Renamed machine dependent <A HREF="eval.html#rename()">rename()</A> to mch_rename(). Define mch_rename() to
<A HREF="eval.html#rename()">rename()</A> when <A HREF="motion.html#it">it</A> works properly.
Rename vim_chdir() to mch_chdir(), because it's machine dependent.
When using an <A HREF="editing.html#arglist">arglist</A>, and editing file 5 of 4, "<A HREF="editing.html#:q">:q</A>" could cause "-1 more
files to edit" error.
In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed.
Moved the Python_Release_Vim() to before the VimErrorCheck(). (Harkins)
Give an error message for an unknown argument after "<A HREF="starting.html#--">--</A>". E.g. for "vim
--xyz".
The <A HREF="autocmd.html#FileChangedShell">FileChangedShell</A> <A HREF="autocmd.html#autocommand">autocommand</A> didn't set <A HREF="cmdline.html#<afile>"><afile></A> to the name of the changed
file.
When doing "<A HREF="editing.html#:e">:e</A> file", causing the attention message, there sometimes was no
<A HREF="message.html#hit-enter">hit-enter</A> prompt. Caused by empty line or "endif" at end of sourced file.
A large number of patches for the <A HREF="os_vms.html#VMS">VMS</A> version. (Hunsaker)
When <A HREF="various.html#CTRL-L">CTRL-L</A> completion (find longest match) results in a shorter <A HREF="eval.html#string">string</A>, no
completion is done (happens with ":help").
Crash in <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> version, when using an <A HREF="intro.html#Ex">Ex</A> "<A HREF="repeat.html#@">@</A>" command, because
LinePointers[] was used while not initialized.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: allow <A HREF="map.html#mapping">mapping</A> of Alt-Space.
Output from "vim -h" was sent to stderr. Sending <A HREF="motion.html#it">it</A> to stdout is better, so
one can use "vim <A HREF="starting.html#-h">-h</A> | more".
In command-line mode, ":vi[!]" should <A HREF="editing.html#reload">reload</A> the file, just like ":e[!]".
In <A HREF="intro.html#Ex">Ex</A> mode, "<A HREF="editing.html#:vi">:vi</A>" stops <A HREF="intro.html#Ex">Ex</A> mode, but doesn't <A HREF="editing.html#reload">reload</A> the file. This is <A HREF="intro.html#Vi">Vi</A>
compatible.
When using a "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'ls'">ls</A>=1" in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file, would get a status line for a
single <A HREF="windows.html#window">window</A>. (Robinson)
Didn't give an error message for "<A HREF="options.html#:set">:set</A> ai,xx". (Roemer)
Didn't give an error message for "<A HREF="options.html#:set">:set</A> ai?xx", "<A HREF="options.html#:set">:set</A> ai&xx", "<A HREF="options.html#:set">:set</A> ai!xx".
Non-Unix systems: That a file exists but is unreadable is recognized <A HREF="motion.html#as">as</A> "new
file". Now check for existence when file can't be opened (like <A HREF="os_unix.html#Unix">Unix</A>).
<A HREF="os_unix.html#Unix">Unix</A>: osdef.sh didn't handle declarations where the function name is at the
first column of the line.
DJGPP: Shortening of file names didn't work properly, because get_cwd()
returned a path with backslashes. (Negri)
When using a <A HREF="options.html#'comments'">'comments'</A> part where a space is required after the middle part,
always insert a space when starting a new line. Helps for C comments, below a
line with "/****".
Replacing path of home directory with "~/" could be wrong for file names
with embedded spaces or commas.
A few fixes for the Sniff interface. (Leherbauer)
When asking to hit '<A HREF="change.html#y">y</A>' or '<A HREF="pattern.html#n">n</A>' (e.g. for ":3,1d"), using the mouse caused
trouble. Same for ":s/x/y/c" prompt.
With <A HREF="options.html#'nowrap'">'nowrap'</A> and <A HREF="options.html#'list'">'list'</A>, a <A HREF="intro.html#Tab">Tab</A> halfway on the screen was displayed <A HREF="motion.html#as">as</A> blanks,
instead of the characters specified with <A HREF="options.html#'listchars'">'listchars'</A>. Also for other
characters that take more than one screen character.
When setting <A HREF="options.html#'guifont'">'guifont'</A> to an unknown font name, the previous font was lost and
a default font would be used. (Steed)
<A HREF="os_dos.html#DOS">DOS</A>: Filenames in the root directory didn't get shortened properly. (Negri)
DJGPP: making a full path name out of a file name didn't work properly when
there is no _fullpath() function. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> console: "<A HREF="various.html#:sh">:sh</A>" caused a crash. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> console: Setting <A HREF="options.html#'lines'">'lines'</A> and/or <A HREF="options.html#'columns'">'columns'</A> in the <A HREF="starting.html#_vimrc">_vimrc</A> failed miserably
(could hang Windows 95). (Negri)
<A HREF="os_win32.html#Win32">Win32</A>: The change-drive function was not correct, went to the wrong drive.
(Tsindlekht)
<A HREF="gui.html#GUI">GUI</A>: When editing a command line in <A HREF="intro.html#Ex">Ex</A> mode, Tabs were sometimes not
backspaced properly, and unprintable characters were displayed directly.
non-GUI can still be wrong, because a system function is called for this.
"<A HREF="options.html#:set">:set</A>" didn't stop after an error. For example "<A HREF="options.html#:set">:set</A> no ai" gave an error for
"no", but still set "ai". Now "<A HREF="options.html#:set">:set</A>" stops after the first error.
When running configure for <A HREF="tagsrch.html#ctags">ctags</A>, $LDFLAGS wasn't passed to <A HREF="motion.html#it">it</A>, causing
trouble for IRIX.
"@%" and "@#" when file name not set gave an error message. Now they just
return an empty <A HREF="eval.html#string">string</A>. (Steed)
<A HREF="change.html#CTRL-X">CTRL-X</A> and <A HREF="change.html#CTRL-A">CTRL-A</A> didn't work correctly with negative hex and <A HREF="eval.html#octal">octal</A> numbers.
(Steed)
"<A HREF="eval.html#:echo">:echo</A>" always started with a blank.
Updating <A HREF="gui.html#GUI">GUI</A> cursor shape didn't always work (e.g., when blinking is off).
In silent <A HREF="intro.html#Ex">Ex</A> mode ("ex -s" or "<A HREF="starting.html#ex">ex</A> <file") ":s///p" didn't print a line. Also
a few other commands that explicitly print a text line didn't work. Made this
<A HREF="intro.html#Vi">Vi</A> compatible.
<A HREF="os_win32.html#Win32">Win32</A> version of _chdrive() didn't return correct value. (Tsindlekht)
When using '<A HREF="motion.html#t">t</A>' in <A HREF="options.html#'complete'">'complete'</A> option, no longer give an error message for a
missing <A HREF="tagsrch.html#tags">tags</A> file.
<A HREF="os_unix.html#Unix">Unix</A>: tgoto() can return NULL, which was not handled correctly in configure.
When doing "<A HREF="helphelp.html#:help">:help</A>" from a buffer where <A HREF="options.html#'binary'">'binary'</A> is set, also edited the help
file in binary mode. Caused extra ^Ms for <A HREF="os_dos.html#DOS">DOS</A> systems.
Cursor position in a file was reset to 1 when closing a <A HREF="windows.html#window">window</A>.
":!ls" in <A HREF="intro.html#Ex">Ex</A> mode switched off echo.
When doing a double click in <A HREF="windows.html#window">window</A> A, while currently in <A HREF="windows.html#window">window</A> <A HREF="motion.html#B">B</A>, first
click would reset double click time, had to click three times to select a
<A HREF="motion.html#word">word</A>.
When using <A HREF="term.html#<F11>"><F11></A> in mappings, "<A HREF="starting.html#:mkexrc">:mkexrc</A>" produced an <A HREF="starting.html#exrc">exrc</A> file that can't be
used in <A HREF="intro.html#Vi">Vi</A> compatible mode. Added setting of <A HREF="options.html#'cpo'">'cpo'</A> to avoid this. Also, add
a <A HREF="visual.html#CTRL-V">CTRL-V</A> in front of a '<A HREF="change.html#<"><</A>', to avoid a normal <A HREF="eval.html#string">string</A> to be interpreted <A HREF="motion.html#as">as</A> a
special key name.
Gave confusing error message for "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'guifont'">guifont</A>=-*-lucida-*": first "font is
not fixed width", then "Unknown font".
Some <A HREF="options.html#options">options</A> were still completely left out, instead of included <A HREF="motion.html#as">as</A> hidden
<A HREF="options.html#options">options</A>.
While running the <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, ignore SIGHUP signals. Avoids a crash after
executing an external command (in rare cases).
In os_unixx.h, signal() was defined to sigset(), while <A HREF="motion.html#it">it</A> already was.
Memory leak when executing autocommands (was reported <A HREF="motion.html#as">as</A> a memory leak in
<A HREF="syntax.html#syntax">syntax</A> highlighting).
Didn't print source of error sometimes, because pointers were the same,
although names were different.
Avoid a number of UMR <A HREF="message.html#errors">errors</A> from Purify (third argument to open()).
A swap file could still be created just after setting <A HREF="options.html#'updatecount'">'updatecount'</A> to zero,
when there is an empty buffer and doing "<A HREF="editing.html#:e">:e</A> file". (Kutschera)
Test 35 failed on 64 bit machines. (Schild)
With "<A HREF="change.html#p">p</A>" and "<A HREF="change.html#P">P</A>" commands, redrawing was slow.
Awk <A HREF="usr_41.html#script">script</A> for html documentation didn't work correctly with AIX awk.
Replaced "[ ,.);\] ]" with "<A HREF="motion.html#[]">[]</A> ,.); ]". (Briscoe)
The makehtml.awk <A HREF="usr_41.html#script">script</A> had a small problem, causing extra lines to be
inserted. (Briscoe)
"<A HREF="change.html#gqgq">gqgq</A>" could not be repeated. Repeating for "<A HREF="change.html#gugu">gugu</A>" and "<A HREF="change.html#gUgU">gUgU</A>" worked in a
wrong way. Also made "<A HREF="change.html#gqq">gqq</A>" work to be consistent with "<A HREF="change.html#guu">guu</A>".
C indent was wrong after "<A HREF="change.html#case">case</A> ':':".
"<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#BufReadPre">BufReadPre</A> *.c put": Line from put text was deleted, because the buffer
was still assumed to be empty.
Text pasted with the Edit/Paste menu was subject to <A HREF="options.html#'textwidth'">'textwidth'</A> and
<A HREF="options.html#'autoindent'">'autoindent'</A>. That was inconsistent with using the mouse to paste. Now "*p
is used.
When using <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> on a <A HREF="motion.html#word">word</A> that's not a <A HREF="tagsrch.html#tag">tag</A>, and then <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> on a <A HREF="tagsrch.html#tag">tag</A>,
<A HREF="windows.html#window">window</A> was split.
"<A HREF="tagsrch.html#:ts">:ts</A>" got stuck on a <A HREF="tagsrch.html#tags">tags</A> line that has two extra fields.
In <A HREF="insert.html#Insert">Insert</A> mode, with <A HREF="options.html#'showmode'">'showmode'</A> on, <C-O><C-G> message was directly
overwritten by mode message, if preceded with search command warning message.
When putting the result of an <A HREF="eval.html#expression">expression</A> with "=<expr>p, newlines were
inserted like ^@ (NUL in the file). Now the <A HREF="eval.html#string">string</A> is split up in lines at
the newline.
putenv() was declared with "const char *" in pty.c, but with "char *" in
osdef2.h.in. Made the last one also "const char *".
"<A HREF="helphelp.html#:help">:help</A> {word}", where +{word} is a feature, jumped to the feature <A HREF="eval.html#list">list</A> instead
of where the command was explained. E.g., "<A HREF="helphelp.html#:help">:help</A> browse", "<A HREF="helphelp.html#:help">:help</A> autocmd".
Using the "\<xx>" form in an <A HREF="eval.html#expression">expression</A> only got one byte, even when using a
special character that uses several bytes (e.g., "\<F9>").
Changed "\<BS>" to produce <A HREF="motion.html#CTRL-H">CTRL-H</A> instead of the special key code for the
backspace key. "\<Del>" produces 0x7f.
"<A HREF="starting.html#:mkvimrc">:mkvimrc</A>" didn't write a command to set <A HREF="options.html#'compatible'">'compatible'</A> or <A HREF="options.html#'nocompatible'">'nocompatible'</A>.
The shell <A HREF="syntax.html#syntax">syntax</A> didn't contain a "syn sync maxlines" setting. In a long file
without recognizable items, syncing took so long <A HREF="motion.html#it">it</A> looked like Vim hangs.
Added a maxlines setting, and made syncing interruptible.
The "<A HREF="various.html#gs">gs</A>" command didn't flush output before waiting.
Memory leaks for:
"<A HREF="eval.html#:if">:if</A> 0 | let a = b . <A HREF="change.html#c">c</A> | endif"
"let a = b[c]"
"<A HREF="repeat.html#:so">:so</A> {file}" where <A HREF="editing.html#{file}">{file}</A> contains a "<A HREF="eval.html#:while">:while</A>"
<A HREF="gui.html#GUI">GUI</A>: allocated fonts were never released. (Leonard)
Makefile.bor:
- Changed $(DEFINES) into a <A HREF="eval.html#list">list</A> of "<A HREF="starting.html#-D">-D</A>" <A HREF="options.html#options">options</A>, so that <A HREF="motion.html#it">it</A> can also be used
for the resource compiler. (not tested!)
- "bcc.cfg" was used for all configurations. When building for another
configuration, the settings for the previous one would be used. Moved
"bcc.cfg" to the object directory. (Geddes)
- Included targets for vimrun, <A HREF="usr_90.html#install">install</A>, <A HREF="tagsrch.html#ctags">ctags</A> and xxd. Changed the default to
use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron)
"2*" search for the <A HREF="motion.html#word">word</A> under the cursor with "2" prepended. (Leonard)
When <A HREF="change.html#deleting">deleting</A> into a specific <A HREF="sponsor.html#register">register</A>, would still overwrite the non-Win32
<A HREF="gui.html#GUI">GUI</A> selection. Now ""x"*P works.
When <A HREF="change.html#deleting">deleting</A> into the "" <A HREF="sponsor.html#register">register</A>, would write to the last used <A HREF="sponsor.html#register">register</A>.
Now ""x always writes to the unnamed <A HREF="sponsor.html#register">register</A>.
<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Athena">Athena</A>: A submenu with a '<A HREF="repeat.html#.">.</A>' in <A HREF="motion.html#it">it</A> didn't work. E.g.,
"<A HREF="gui.html#:amenu">:amenu</A> Syntax.XY\.Z.foo lll".
When first doing "<A HREF="tagsrch.html#:tag">:tag</A> foo" and then "<A HREF="tagsrch.html#:tnext">:tnext</A>" and/or "<A HREF="tagsrch.html#:tselect">:tselect</A>" the order of
matching <A HREF="tagsrch.html#tags">tags</A> could change, because the current file is different. Now the
existing matches are kept in the same order, newly found matches are added
after them, not matter what the current file is.
"<A HREF="tagsrch.html#:ta">:ta</A>" didn't find the second entry in a <A HREF="tagsrch.html#tags">tags</A> file, if the second entry was
longer than the first one.
When using "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'si'">si</A> tw=7" <A HREF="insert.html#inserting">inserting</A> "foo {^P}" made the "<A HREF="motion.html#}">}</A>" inserted at the
wrong position. can_si was still <A HREF="eval.html#TRUE">TRUE</A> when the cursor is not in the indent of
the line.
Running an external command in <A HREF="os_win32.html#Win32">Win32</A> version had the problem that Vim exits
when the X on the console is hit (and confirmed). Now use the "vimrun"
command to start the external command indirectly. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When running an external <A HREF="change.html#filter">filter</A>, <A HREF="diff.html#do">do</A> <A HREF="motion.html#it">it</A> in a minimized <A HREF="os_dos.html#DOS">DOS</A> box.
(Negri)
"<A HREF="eval.html#:let">:let</A>" listed <A HREF="eval.html#variables">variables</A> without translation into printable characters.
<A HREF="os_win32.html#Win32">Win32</A> console: When resizing the <A HREF="windows.html#window">window</A>, switching back to the old size
(when <A HREF="starting.html#exiting">exiting</A> or executing an external command) sometimes failed. (Negri)
This appears to also fix a "non fixable" problem:
<A HREF="os_win32.html#Win32">Win32</A> console in NT 4.0: When running Vim in a cmd <A HREF="windows.html#window">window</A> with a scrollbar,
the scrollbar disappeared and was not restored when Vim exits. This does work
under NT 3.51, <A HREF="motion.html#it">it</A> appears not to be a Vim problem.
When executing <A HREF="autocmd.html#BufDelete">BufDelete</A> and <A HREF="autocmd.html#BufUnload">BufUnload</A> autocommands for a buffer without a
name, the name of the current buffer was used for <A HREF="cmdline.html#<afile>"><afile></A>.
When jumping to a <A HREF="tagsrch.html#tag">tag</A> <A HREF="motion.html#it">it</A> reported "<A HREF="tagsrch.html#tag">tag</A> 1 of >2", while in fact there could be
only two matches. Changed to "<A HREF="tagsrch.html#tag">tag</A> 1 of 2 or more".
"<A HREF="tagsrch.html#:tjump">:tjump</A> tag" did a linear search in the <A HREF="tagsrch.html#tags">tags</A> file, which can be slow.
Configure didn't find "LibXm.so.2.0", a Xm library with a version number.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using a shifted key with ALT, the <A HREF="intro.html#shift">shift</A> modifier would remain
set, even when <A HREF="motion.html#it">it</A> was already used by <A HREF="change.html#changing">changing</A> the used key. E.g., "<M-S-9>"
resulted in "<M-S-(>", but <A HREF="motion.html#it">it</A> should be "<M-(>". (Negri)
A call to ga_init() was often followed by setting growsize and itemsize.
Created ga_init2() for this, which looks better. (Aaron)
Function <A HREF="eval.html#filereadable()">filereadable()</A> could call fopen() with an empty <A HREF="eval.html#string">string</A>, which might
be illegal.
X Windows <A HREF="gui.html#GUI">GUI</A>: When executing an external command that outputs text, could
write one character beyond the end of a buffer, which caused a crash. (Kohan)
When using "*" or "<A HREF="pattern.html##">#</A>" on a <A HREF="eval.html#string">string</A> that includes '<A HREF="pattern.html#/">/</A>' or '<A HREF="pattern.html#?">?</A>' (when these are
included in 'isk'), they were not escaped. (Parmelan)
When adding a ToolBar menu in the <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>, the submenu_id field was not
cleared, causing random problems.
When adding a menu, the check if this menu (or submenu) name already exists
didn't compare with the simplified version (no mnemonic or accelerator) of the
new menu. Could get two <A HREF="gui.html#menus">menus</A> with the same name, e.g., "File" and "&File".
Breaking a line because of <A HREF="options.html#'textwidth'">'textwidth'</A> at the last line in the <A HREF="windows.html#window">window</A> caused a
redraw of the whole <A HREF="windows.html#window">window</A> instead of a scroll. Speeds up normal typing with
<A HREF="options.html#'textwidth'">'textwidth'</A> a lot for slow terminals.
An invalid line number produced an "invalid range" error, even when <A HREF="motion.html#it">it</A> wasn't
to be executed (inside "if 0").
When the unnamed, first buffer is re-used, the "<A HREF="autocmd.html#BufDelete">BufDelete</A>" <A HREF="autocmd.html#autocommand">autocommand</A> was
not called. It would stick in a buffer <A HREF="eval.html#list">list</A> menu.
When doing "<A HREF="motion.html#%">%</A>" on the NUL after the line, a "<A HREF="motion.html#{">{</A>" or "<A HREF="motion.html#}">}</A>" in the last character
of the line was not found.
The <A HREF="insert.html#Insert">Insert</A> mode menu was not used for the "<A HREF="change.html#s">s</A>" command, the <A HREF="intro.html#Operator-pending">Operator-pending</A>
menu was used instead.
With <A HREF="options.html#'compatible'">'compatible'</A> set, some <A HREF="syntax.html#syntax">syntax</A> highlighting was not correct, because of
using "[\t]" for a search <A HREF="pattern.html#pattern">pattern</A>. Now use the regexps for <A HREF="syntax.html#syntax">syntax</A>
highlighting like the <A HREF="options.html#'cpoptions'">'cpoptions'</A> option is empty (as was documented already).
When using "map <M-Space> ms" or "map <A HREF="motion.html#<Space>"><Space></A> sss" the output of "<A HREF="map.html#:map">:map</A>" didn't
show any lhs for the <A HREF="map.html#mapping">mapping</A> (if <A HREF="options.html#'isprint'">'isprint'</A> includes 160). Now always use
<A HREF="motion.html#<Space>"><Space></A> and <M-Space>, even when they are printable.
Adjusted the <A HREF="autocmd.html#Syntax">Syntax</A> menu, so that the lowest entry fits on a small screen (for
<A HREF="gui_x11.html#Athena">Athena</A>, where <A HREF="gui.html#menus">menus</A> don't wrap).
When using <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode for characters like '<A HREF="insert.html#o">o</A>', '<A HREF="change.html#x">x</A>' and
digits, <A HREF="repeat.html#repeating">repeating</A> the insert didn't work.
The file "tools/ccfilter.README.txt" could not be unpacked when using short
file names, because of the two dots. Renamed <A HREF="motion.html#it">it</A> to
"tools/ccfilter_README.txt".
For a dark <A HREF="options.html#'background'">'background'</A>, using Blue for Directory and SpecialKey highlight
groups is not very readable. Use Cyan instead.
In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into
a block with a local variable. That's illegal for some compilers.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: There was a row of pixels at the bottom of the <A HREF="windows.html#window">window</A> which was not
drawn. (Aaron)
Under <A HREF="os_dos.html#DOS">DOS</A>, editing "filename/" created a swap file of "filename/.swp". Should
be "filename/_swp".
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: pointer was hidden when executing an external command.
When <A HREF="options.html#'so'">'so'</A> is 999, "<A HREF="change.html#J">J</A>" near the end of the file didn't redisplay correctly.
":0a" inserted after the first line, instead of before the first line.
<A HREF="os_unix.html#Unix">Unix</A>: Wildcard expansion didn't handle single <A HREF="quotes.html#quotes">quotes</A> and <A HREF="intro.html#{}">{}</A> patterns. Now
"<A HREF="editing.html#:file">:file</A> 'window.c'"' removes the <A HREF="quotes.html#quotes">quotes</A> and "<A HREF="editing.html#:e">:e</A> 'main*.c'"' works (literal '*').
"<A HREF="editing.html#:file">:file</A> {o}{n}{e}" now results in file name "one".
Memory leak when setting a <A HREF="eval.html#string">string</A> option back to its default value.
==============================================================================
VERSION 5.3 *<A NAME="version-5.3"></A><B>version-5.3</B>*
Version 5.3 was a bug-fix version of 5.2. There are not many changes.
Improvements made between version 5.2 and 5.3:
Changed *<A NAME="changed-5.3"></A><B>changed-5.3</B>*
Renamed "IDE" menu to "Tools" menu.
Added *<A NAME="added-5.3"></A><B>added-5.3</B>*
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Give a warning when Vim is activated, and one of the files changed
since editing started. (Negri)
Fixed *<A NAME="fixed-5.3"></A><B>fixed-5.3</B>*
5.2.1: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: space for external command was not properly allocated, could
cause a crash. (Aaron) This was the reason to bring out 5.3 quickly after
5.2.
5.2.2: Some commands didn't complain when used without an argument, although
they need one: "<A HREF="windows.html#:badd">:badd</A>", "<A HREF="editing.html#:browse">:browse</A>", "<A HREF="eval.html#:call">:call</A>", "<A HREF="editing.html#:confirm">:confirm</A>", "<A HREF="gui.html#:behave">:behave</A>",
"<A HREF="eval.html#:delfunction">:delfunction</A>", "<A HREF="map.html#:delcommand">:delcommand</A>" and "<A HREF="gui_w32.html#:tearoff">:tearoff</A>".
"<A HREF="eval.html#:endfunction">:endfunction</A>" outside of a function gave wrong error message: "Command not
implemented". Should be "<A HREF="eval.html#:endfunction">:endfunction</A> not inside a function".
5.2.3: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="starting.html#gvim">gvim</A> was installed in "Program files", or another path
with a space in <A HREF="motion.html#it">it</A>, executing external commands with vimrun didn't work.
5.2.4: Pasting with the mouse in <A HREF="insert.html#Insert">Insert</A> mode left the cursor on the last
pasted character, instead of behind <A HREF="motion.html#it">it</A>.
5.2.5: In <A HREF="insert.html#Insert">Insert</A> mode, cursor after the end of the line, a shift-cursor-left
didn't include the last character in the selection.
5.2.6: When <A HREF="change.html#deleting">deleting</A> text from <A HREF="insert.html#Insert">Insert</A> mode (with "<C-O>D" or the mouse), which
includes the last character in the line, the cursor could be left on the last
character in the line, instead of just after <A HREF="motion.html#it">it</A>.
5.2.7: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: scrollbar was one pixel too big.
5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi",
etc. "<A HREF="gui.html#:menu">:menu</A>" also showed these.
5.2.9: When using two <A HREF="eval.html#input()">input()</A> <A HREF="eval.html#functions">functions</A> on a row, the prompt would not be
drawn in column 0.
5.2.10: A loop with <A HREF="eval.html#input()">input()</A> could not be broken with <A HREF="pattern.html#CTRL-C">CTRL-C</A>.
5.2.11: "<A HREF="eval.html#:call">:call</A> asdf" and "<A HREF="eval.html#:call">:call</A> asdf(" didn't give an error message.
5.2.12: Recursively using "<A HREF="various.html#:normal">:normal</A>" crashes Vim after a while. E.g.:
"<A HREF="map.html#:map">:map</A> <A HREF="change.html#gq">gq</A> <A HREF="various.html#:normal">:normal</A> gq<CR>"
5.2.13: <A HREF="autocmd.html#Syntax">Syntax</A> highlighting used <A HREF="options.html#'iskeyword'">'iskeyword'</A> from wrong buffer. When using
"<A HREF="helphelp.html#:help">:help</A>", then "/\k*" in another <A HREF="windows.html#window">window</A> with <A HREF="options.html#'hlsearch'">'hlsearch'</A> set.
5.2.14: When using "<A HREF="repeat.html#:source">:source</A>" from a function, global <A HREF="eval.html#variables">variables</A> would not be
available unless "<A HREF="eval.html#g:">g:</A>" was used.
5.2.15: XPM files can have the extension ".pm", which is the same <A HREF="motion.html#as">as</A> for <A HREF="if_perl.html#Perl">Perl</A>
modules. Added "syntax/pmfile.vim" to handle this.
5.2.16: On <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_amiga.html#Amiga">Amiga</A>, "echo expand("%:p:h")" removed one dirname in an
empty buffer. mch_Fullname() didn't append a slash at the end of a directory
name.
Should include the character under the cursor in the <A HREF="visual.html#Visual">Visual</A> area when using
<A HREF="options.html#'selection'">'selection'</A> "<A HREF="motion.html#exclusive">exclusive</A>". This wasn't done for "<A HREF="motion.html#%">%</A>", "<A HREF="motion.html#e">e</A>", "<A HREF="motion.html#E">E</A>", "<A HREF="motion.html#t">t</A>" and "<A HREF="motion.html#f">f</A>".
""p would always put <A HREF="sponsor.html#register">register</A> 0, instead of the unnamed (last used) <A HREF="sponsor.html#register">register</A>.
Reverse the change that ""x doesn't write in the unnamed (last used) <A HREF="sponsor.html#register">register</A>.
It would always write in <A HREF="sponsor.html#register">register</A> 0, which isn't very useful. Use "<A HREF="starting.html#-x">-x</A> for the
paste mappings in <A HREF="visual.html#Visual">Visual</A> mode.
When there is one long line on the screen, and <A HREF="options.html#'showcmd'">'showcmd'</A> is off, "0$" didn't
redraw the screen.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="options.html#'mousehide'">'mousehide'</A>, the pointer would flicker when the cursor
shape is changed. (Negri)
When cancelling <A HREF="visual.html#Visual">Visual</A> mode, and the cursor moves to the start, the wanted
column wasn't set, "<A HREF="motion.html#k">k</A>" or "<A HREF="motion.html#j">j</A>" moved to the wrong column.
When using "<A HREF="editing.html#:browse">:browse</A>" or "<A HREF="editing.html#:confirm">:confirm</A>", was checking for a comment and separating
<A HREF="motion.html#bar">bar</A>, which can break some commands.
Included fixes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Kielhorn)
==============================================================================
VERSION 5.4 *<A NAME="version-5.4"></A><B>version-5.4</B>*
Version 5.4 adds new features, useful changes and a lot of bug fixes.
Runtime directory introduced *<A NAME="new-runtime-dir"></A><B>new-runtime-dir</B>*
The distributed runtime files are now in <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>, the user files in <A HREF="starting.html#$VIM">$VIM</A>.
You normally don't set <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> but let Vim find <A HREF="motion.html#it">it</A>, by using
$VIM/vim{version}, or use <A HREF="starting.html#$VIM">$VIM</A> when that doesn't exist. This allows for
separating the user files from the distributed files and makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to
upgrade to another version. It also makes <A HREF="motion.html#it">it</A> possible to keep two versions of
Vim around, each with their own runtime files.
In the <A HREF="os_unix.html#Unix">Unix</A> <A HREF="intro.html#distribution">distribution</A> the runtime files have been moved to the "runtime"
directory. This makes <A HREF="motion.html#it">it</A> possible to copy all the runtime files at once,
without the need to know what needs to be copied.
The archives for <A HREF="os_dos.html#DOS">DOS</A>, Windows, <A HREF="os_amiga.html#Amiga">Amiga</A> and <A HREF="os_os2.html#OS/2">OS/2</A> now have an extra top-level
"vim" directory. This is to make clear that user-modified files should be put
here. The directory that contains the executables doesn't have '<A HREF="motion.html#-">-</A>' or '<A HREF="repeat.html#.">.</A>'
characters. This avoids strange extensions.
The <A HREF="starting.html#$VIM">$VIM</A> and <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> <A HREF="eval.html#variables">variables</A> are set when they are first used. This
allows them to be used by <A HREF="if_perl.html#Perl">Perl</A>, for example.
The runtime files are also found in a directory called "$VIM/runtime". This
helps when running Vim after just unpacking the runtime archive. When using
an executable in the "src" directory, Vim checks if "vim54" or "runtime" can
be added after removing <A HREF="motion.html#it">it</A>. This make the runtime files be found just after
compiling.
A default for <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> can be given in the <A HREF="os_unix.html#Unix">Unix</A> Makefile. This is useful
if <A HREF="starting.html#$VIM">$VIM</A> doesn't point to above the runtime directory but to e.g., "/etc/".
Filetype introduced *<A NAME="new-filetype-5.4"></A><B>new-filetype-5.4</B>*
<A HREF="autocmd.html#Syntax">Syntax</A> files are now loaded with the new <A HREF="autocmd.html#FileType">FileType</A> <A HREF="autocmd.html#autocommand">autocommand</A>. Old
"<A HREF="syntax.html#mysyntaxfile">mysyntaxfile</A>" files will no longer work. |<A HREF="filetype.html#filetypes">filetypes</A>|
The scripts for loading <A HREF="syntax.html#syntax">syntax</A> highlighting have been changed to use the
new <A HREF="autocmd.html#Syntax">Syntax</A> <A HREF="autocmd.html#autocommand">autocommand</A> event.
This combination of Filetype and <A HREF="autocmd.html#Syntax">Syntax</A> events allows tuning the <A HREF="syntax.html#syntax">syntax</A>
highlighting a bit more, also when selected from the <A HREF="autocmd.html#Syntax">Syntax</A> menu. The
<A HREF="autocmd.html#FileType">FileType</A> <A HREF="autocmd.html#autocommand">autocommand</A> can also be used to set <A HREF="options.html#options">options</A> and mappings specifically
for that type of file.
The "$VIMRUNTIME/filetype.vim" file is not loaded automatically. The
"<A HREF="filetype.html#:filetype">:filetype</A> on" command has been added for this. "<A HREF="syntax.html#:syntax">:syntax</A> on" also loads <A HREF="motion.html#it">it</A>.
The <A HREF="options.html#'filetype'">'filetype'</A> option has been added. It is used to trigger the <A HREF="autocmd.html#FileType">FileType</A>
<A HREF="autocmd.html#autocommand">autocommand</A> event, like the <A HREF="options.html#'syntax'">'syntax'</A> option does for the <A HREF="autocmd.html#Syntax">Syntax</A> event.
"<A HREF="options.html#:set">:set</A> <A HREF="options.html#'syntax'">syntax</A>=OFF" and "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'syntax'">syntax</A>=ON" can be used (in a <A HREF="options.html#modeline">modeline</A>) to switch
<A HREF="syntax.html#syntax">syntax</A> highlighting on/off for the current file.
The <A HREF="autocmd.html#Syntax">Syntax</A> menu commands have been moved to $VIMRUNTIME/menu.vim. The <A HREF="autocmd.html#Syntax">Syntax</A>
menu is included both when "<A HREF="filetype.html#:filetype">:filetype</A> on" and when "<A HREF="syntax.html#:syntax">:syntax</A> manual" is used.
Renamed the old <A HREF="options.html#'filetype'">'filetype'</A> option to <A HREF="options.html#'osfiletype'">'osfiletype'</A>. It was only used for
<A HREF="os_risc.html#RISCOS">RISCOS</A>. <A HREF="options.html#'filetype'">'filetype'</A> is now used for the common file type.
Added the "<A HREF="syntax.html#:syntax">:syntax</A> manual" command. Allows manual selection of the <A HREF="syntax.html#syntax">syntax</A> to
be used, e.g., from a <A HREF="options.html#modeline">modeline</A>.
Vim <A HREF="usr_41.html#script">script</A> line continuation *<A NAME="new-line-continuation"></A><B>new-line-continuation</B>*
When an <A HREF="intro.html#Ex">Ex</A> line starts with a <A HREF="intro.html#backslash">backslash</A>, <A HREF="motion.html#it">it</A> is concatenated to the previous
line. This avoids the need for long lines. |<A HREF="repeat.html#line-continuation">line-continuation</A>| (Roemer)
Example:
<B> if has("dialog_con") ||</B>
<B> \ has("dialog_gui")</B>
<B> :let result = confirm("Enter your choice",</B>
<B> \ "&Yes\n&No\n&Maybe",</B>
<B> \ 2)</B>
<B> endif</B>
Improved session files *<A NAME="improved-sessions"></A><B>improved-sessions</B>*
New words for <A HREF="options.html#'sessionoptions'">'sessionoptions'</A>:
- "help" Restore the help <A HREF="windows.html#window">window</A>.
- "blank" Restore empty <A HREF="windows.html#windows">windows</A>.
- "winpos" Restore the Vim <A HREF="windows.html#window">window</A> position. Uses the new "<A HREF="gui.html#:winpos">:winpos</A>"
command
- "<A HREF="windows.html#buffers">buffers</A>" Restore hidden and unloaded <A HREF="windows.html#buffers">buffers</A>. Without <A HREF="motion.html#it">it</A> only the
<A HREF="windows.html#buffers">buffers</A> in <A HREF="windows.html#windows">windows</A> are restored.
- "slash" <A HREF="insert.html#Replace">Replace</A> backward by forward slashes in file names.
- "globals" Store global <A HREF="eval.html#variables">variables</A>.
- "<A HREF="os_unix.html#unix">unix</A>" Use <A HREF="os_unix.html#unix">unix</A> file format (<NL> instead of <CR><NL>)
The "<A HREF="starting.html#:mksession">:mksession</A>" and <A HREF="options.html#'sessionoptions'">'sessionoptions'</A> are now in the <A HREF="various.html#+mksession">+mksession</A> feature.
The top line of the <A HREF="windows.html#window">window</A> is also restored when using a session file.
"<A HREF="starting.html#:mksession">:mksession</A>" and "<A HREF="starting.html#:mkvimrc">:mkvimrc</A>" don't store <A HREF="options.html#'fileformat'">'fileformat'</A>, <A HREF="motion.html#it">it</A> should be detected
when loading a file.
(Most of this was done by Vince Negri and Robert Webb)
Autocommands improved *<A NAME="improved-autocmds-5.4"></A><B>improved-autocmds-5.4</B>*
New events:
|<A HREF="autocmd.html#FileType">FileType</A>| When the file type has been detected.
|<A HREF="autocmd.html#FocusGained">FocusGained</A>| When Vim got input focus. (Negri)
|<A HREF="autocmd.html#FocusLost">FocusLost</A>| When Vim lost input focus. (Negri)
|<A HREF="autocmd.html#BufCreate">BufCreate</A>| Called just after a new buffer has been created or has been
renamed. (Madsen)
|<A HREF="autocmd.html#CursorHold">CursorHold</A>| Triggered when no key has been typed for <A HREF="options.html#'updatetime'">'updatetime'</A>. Can be
used to <A HREF="diff.html#do">do</A> something with the <A HREF="motion.html#word">word</A> under the cursor. (Negri)
Implemented <A HREF="autocmd.html#CursorHold">CursorHold</A> <A HREF="autocmd.html#autocommand">autocommand</A> event for <A HREF="os_unix.html#Unix">Unix</A>. (Zellner)
Also for <A HREF="os_amiga.html#Amiga">Amiga</A> and <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>.
|<A HREF="autocmd.html#GUIEnter">GUIEnter</A>| Can be used to <A HREF="diff.html#do">do</A> something with the GUI <A HREF="windows.html#window">window</A> after <A HREF="motion.html#it">it</A> has
been created (e.g., a "<A HREF="gui.html#:winpos">:winpos</A> 100 50").
|<A HREF="autocmd.html#BufHidden">BufHidden</A>| When a buffer becomes hidden. Used to delete the
<A HREF="options.html#option-window">option-window</A> when <A HREF="motion.html#it">it</A> becomes hidden.
Also trigger |<A HREF="autocmd.html#BufDelete">BufDelete</A>| just before a buffer is going to be renamed. (Madsen)
The "<A HREF="cmdline.html#<amatch>"><amatch></A>" <A HREF="pattern.html#pattern">pattern</A> can be used like "<A HREF="cmdline.html#<afile>"><afile></A>" for autocommands, except
that <A HREF="motion.html#it">it</A> is the matching value for the <A HREF="autocmd.html#FileType">FileType</A> and <A HREF="autocmd.html#Syntax">Syntax</A> events.
When "<A HREF="eval.html#:let">:let</A> <A HREF="change.html#@/">@/</A> = <string>" is used in an <A HREF="autocmd.html#autocommand">autocommand</A>, this last search <A HREF="pattern.html#pattern">pattern</A>
will be used after the <A HREF="autocmd.html#autocommand">autocommand</A> finishes.
Made loading autocommands a bit faster. Avoid doing <A HREF="eval.html#strlen()">strlen()</A> on each <A HREF="starting.html#exiting">exiting</A>
<A HREF="pattern.html#pattern">pattern</A> for each new <A HREF="pattern.html#pattern">pattern</A> by remembering the length.
Encryption *<A NAME="new-encryption"></A><B>new-encryption</B>*
Files can be encrypted when <A HREF="editing.html#writing">writing</A> and decrypted when reading. Added the
<A HREF="options.html#'key'">'key'</A> option, "<A HREF="starting.html#-x">-x</A>" command line argument and "<A HREF="editing.html#:X">:X</A>" command. |<A HREF="editing.html#encryption">encryption</A>| (based
on patch from Mohsin Ahmed)
When reading a file, there is an automatic detection whether <A HREF="motion.html#it">it</A> has been
crypted. Vim will then prompt for the key.
Note that the <A HREF="editing.html#encryption">encryption</A> method is not compatible with <A HREF="intro.html#Vi">Vi</A>. The <A HREF="editing.html#encryption">encryption</A> is
not unbreakable. This allows <A HREF="motion.html#it">it</A> to be exported from the US.
<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A> port *<A NAME="new-GTK-GUI"></A><B>new-GTK-GUI</B>*
New <A HREF="gui.html#GUI">GUI</A> port for <A HREF="gui_x11.html#GTK+">GTK+</A>. Includes a toolbar, menu tearoffs, etc. |<A HREF="gui_x11.html#gui-gtk">gui-gtk</A>|
Added the |<A HREF="helphelp.html#:helpfind">:helpfind</A>| command. (Kahn and Dalecki)
Menu changes *<A NAME="menu-changes-5.4"></A><B>menu-changes-5.4</B>*
Menus can now also be used in the console. It is enabled by the new
<A HREF="options.html#'wildmenu'">'wildmenu'</A> option. This shows matches for command-line completion like a
menu. This works <A HREF="motion.html#as">as</A> a minimal file browser.
The new |<A HREF="gui.html#:emenu">:emenu</A>| command can be used to execute a menu item.
Uses the last status line to <A HREF="eval.html#list">list</A> items, or inserts a line just above the
command line. (Negri)
The 'wildcharx' option can be used to trigger <A HREF="options.html#'wildmenu'">'wildmenu'</A> completion from a
<A HREF="map.html#mapping">mapping</A>.
When compiled without <A HREF="gui.html#menus">menus</A>, this can be detected with has("menu"). Also show
this in the "<A HREF="various.html#:version">:version</A>" output. Allow compiling <A HREF="gui.html#GUI">GUI</A> versions without menu
support. Only include toolbar support when there is menu support.
Moved the "Window" menu all the way to the right (priority 70). Looks more
familiar for people working with <A HREF="os_win32.html#MS-Windows">MS-Windows</A>, shouldn't matter for others.
Included "Buffers" menu. Works with existing autocommands and <A HREF="eval.html#functions">functions</A>. It
can be disabled by setting the "<A HREF="gui.html#no_buffers_menu">no_buffers_menu</A>" variable. (Aaron and Madsen)
<A HREF="os_win32.html#Win32">Win32</A> supports separators in a menu: "-.*-". (Geddes)
Menu separators for <A HREF="gui_x11.html#Motif">Motif</A> now work too.
Made Popup menu for <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> work. (Madsen)
'<A HREF="motion.html#M">M</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: Don't source the system menu.
All the menu code has been moved from gui.c to menu.c.
Viminfo improved *<A NAME="improved-viminfo"></A><B>improved-viminfo</B>*
New flags for <A HREF="options.html#'viminfo'">'viminfo'</A>:
'<A HREF="change.html#!">!</A>' Store global <A HREF="eval.html#variables">variables</A> in the <A HREF="starting.html#viminfo">viminfo</A> file if they are in <A HREF="change.html#uppercase">uppercase</A>
letters. (Negri)
'<A HREF="motion.html#h">h</A>' Do "<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>" when loading a <A HREF="starting.html#viminfo">viminfo</A> file.
Store search patterns in the <A HREF="starting.html#viminfo">viminfo</A> file with their offset, magic, etc. Also
store the flag whether <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting is on or off (which is not used
if the '<A HREF="motion.html#h">h</A>' flag is in <A HREF="options.html#'viminfo'">'viminfo'</A>).
Give an error message when setting <A HREF="options.html#'viminfo'">'viminfo'</A> without commas.
Various new commands *<A NAME="new-commands-5.4"></A><B>new-commands-5.4</B>*
Operator |g?|: <A HREF="change.html#rot13">rot13</A> encoding. (Negri)
|<A HREF="scroll.html#zH">zH</A>| and |<A HREF="scroll.html#zL">zL</A>| commands: Horizontal <A HREF="scroll.html#scrolling">scrolling</A> by half a page.
|<A HREF="motion.html#gm">gm</A>| move cursor to middle of screen line. (Ideas by Campbell)
Operations on <A HREF="visual.html#Visual">Visual</A> blocks: |<A HREF="visual.html#v_b_I">v_b_I</A>|, |<A HREF="visual.html#v_b_A">v_b_A</A>|, |<A HREF="visual.html#v_b_c">v_b_c</A>|, |<A HREF="visual.html#v_b_C">v_b_C</A>|, |<A HREF="visual.html#v_b_r">v_b_r</A>|,
|<A HREF="visual.html#v_b_<">v_b_<</A>| and |<A HREF="visual.html#v_b_>">v_b_></A>|. (Kelly)
New command: CTRL-\ <A HREF="motion.html#CTRL-N">CTRL-N</A>, which does nothing in <A HREF="intro.html#Normal">Normal</A> mode, and goes to
<A HREF="intro.html#Normal">Normal</A> mode when in <A HREF="insert.html#Insert">Insert</A> or <A HREF="cmdline.html#Command-line">Command-line</A> mode. Can be used by <A HREF="if_ole.html#VisVim">VisVim</A> or
other OLE programs to make sure Vim is in <A HREF="intro.html#Normal">Normal</A> mode, without causing a beep.
|<A HREF="intro.html#CTRL-\_CTRL-N">CTRL-\_CTRL-N</A>|
":cscope kill" command to use the connection filename. |<A HREF="if_cscop.html#:cscope">:cscope</A>| (Kahn)
|<A HREF="insert.html#:startinsert">:startinsert</A>| command: Start <A HREF="insert.html#Insert">Insert</A> mode next.
|<A HREF="cmdline.html#:history">:history</A>| command, to show all four types of histories. (Roemer)
|<A HREF="motion.html#[m">[m</A>|, |<A HREF="motion.html#[M">[M</A>|, |<A HREF="motion.html#]m">]m</A>| and |<A HREF="motion.html#]M">]M</A>| commands, for jumping backward/forward to start/end
of method in a (Java) class.
":@*" executes the * <A HREF="sponsor.html#register">register</A>. |<A HREF="repeat.html#:@">:@</A>| (Acevedo)
|<A HREF="motion.html#go">go</A>| and |<A HREF="motion.html#:goto">:goto</A>| commands: Jump to byte offset in the file.
|<A HREF="change.html#gR">gR</A>| and |<A HREF="change.html#gr">gr</A>| command: Virtual <A HREF="insert.html#Replace">Replace</A> mode. <A HREF="insert.html#Replace">Replace</A> characters without
<A HREF="change.html#changing">changing</A> the layout. (Webb)
"<A HREF="editing.html#:cd">:cd</A> -" changes to the directory from before the previous "<A HREF="editing.html#:cd">:cd</A>" command.
|<A HREF="editing.html#:cd-">:cd-</A>| (Webb)
Tag preview commands |<A HREF="windows.html#:ptag">:ptag</A>|. Shows the result of a "<A HREF="tagsrch.html#:tag">:tag</A>" in a dedicated
<A HREF="windows.html#window">window</A>. Can be used to see the context of the <A HREF="tagsrch.html#tag">tag</A> (e.g., function arguments).
(Negri)
|<A HREF="windows.html#:pclose">:pclose</A>| command, and <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="starting.html#CTRL-Z">CTRL-Z</A>: Close preview <A HREF="windows.html#window">window</A>. (Moore)
<A HREF="options.html#'previewheight'">'previewheight'</A> option, height for the preview <A HREF="windows.html#window">window</A>.
Also |<A HREF="windows.html#:ppop">:ppop</A>|, |<A HREF="tagsrch.html#:ptnext">:ptnext</A>|, |<A HREF="tagsrch.html#:ptprevious">:ptprevious</A>|, |<A HREF="tagsrch.html#:ptNext">:ptNext</A>|, |<A HREF="tagsrch.html#:ptrewind">:ptrewind</A>|, |<A HREF="tagsrch.html#:ptlast">:ptlast</A>|.
|<A HREF="editing.html#:find">:find</A>| and |<A HREF="windows.html#:sfind">:sfind</A>| commands: Find a file in <A HREF="options.html#'path'">'path'</A>, (split <A HREF="windows.html#window">window</A>) and edit
<A HREF="motion.html#it">it</A>.
The |<A HREF="options.html#:options">:options</A>| command opens an option <A HREF="windows.html#window">window</A> that shows the current option
values. Or use "<A HREF="editing.html#:browse">:browse</A> set" to open <A HREF="motion.html#it">it</A>. Options are grouped by function.
Offers short help on each option. Hit <A HREF="motion.html#<CR>"><CR></A> to jump to more help. Edit the
option value and hit <A HREF="motion.html#<CR>"><CR></A> on a "set" line to set a new value.
Various new <A HREF="options.html#options">options</A> *<A NAME="new-options-5.4"></A><B>new-options-5.4</B>*
Scroll-binding: <A HREF="options.html#'scrollbind'">'scrollbind'</A> and <A HREF="options.html#'scrollopt'">'scrollopt'</A> <A HREF="options.html#options">options</A>. Added |<A HREF="scroll.html#:syncbind">:syncbind</A>|
command. Makes <A HREF="windows.html#windows">windows</A> scroll the same amount (horizontally and/or
vertically). (Ralston)
<A HREF="options.html#'conskey'">'conskey'</A> option for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>. Use direct console I/O. This should work with
telnet (untested!).
<A HREF="options.html#'statusline'">'statusline'</A> option: Configurable contents of the status line. Also allows
showing the byte offset in the file. Highlighting with %1* to %9*, using the
new highlight groups User1 to User9. (Madsen)
<A HREF="options.html#'rulerformat'">'rulerformat'</A> option: Configurable contents of the ruler, like <A HREF="options.html#'statusline'">'statusline'</A>.
(Madsen)
<A HREF="options.html#'write'">'write'</A> option: When off, <A HREF="editing.html#writing">writing</A> files is not allowed. Avoids overwriting a
file even with "<A HREF="editing.html#:w!">:w!</A>". The |<A HREF="starting.html#-m">-m</A>| command line option resets <A HREF="options.html#'write'">'write'</A>.
<A HREF="options.html#'clipboard'">'clipboard'</A> option: How the <A HREF="gui.html#clipboard">clipboard</A> is used. Value "unnamed": Use unnamed
<A HREF="sponsor.html#register">register</A> like "*. (Cortopassi) Value "autoselect": Like what '<A HREF="insert.html#a">a</A>' in
<A HREF="options.html#'guioptions'">'guioptions'</A> does but works in the <A HREF="terminal.html#terminal">terminal</A>.
<A HREF="options.html#'guifontset'">'guifontset'</A> option: Specify fonts for the +fontset feature, for the <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>
versions. Allows using normal fonts when vim is compiled with this feature.
(Nam)
<A HREF="options.html#'guiheadroom'">'guiheadroom'</A> option: How much room to allow above/below the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A>.
Used for <A HREF="gui_x11.html#Motif">Motif</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#GTK">GTK</A>.
Implemented <A HREF="options.html#'tagstack'">'tagstack'</A> option: When off, pushing <A HREF="tagsrch.html#tags">tags</A> onto the stack is
disabled (Vi compatible). Useful for mappings.
<A HREF="options.html#'shellslash'">'shellslash'</A> option. Only for systems that use a <A HREF="intro.html#backslash">backslash</A> <A HREF="motion.html#as">as</A> a file
separator. This option will use a forward slash in file names when expanding
<A HREF="motion.html#it">it</A>. Useful when <A HREF="options.html#'shell'">'shell'</A> is sh or csh.
<A HREF="options.html#'pastetoggle'">'pastetoggle'</A> option: Key sequence that toggles <A HREF="options.html#'paste'">'paste'</A>. Works around the
problem that mappings don't work in <A HREF="insert.html#Insert">Insert</A> mode when <A HREF="options.html#'paste'">'paste'</A> is set.
<A HREF="options.html#'display'">'display'</A> option: When set to "lastline", the last line fills the <A HREF="windows.html#window">window</A>,
instead of being replaced with "<A HREF="repeat.html#@">@</A>" lines. Only the last three characters are
replaced with "@@@", to indicate that the line has not finished yet.
<A HREF="options.html#'switchbuf'">'switchbuf'</A> option: Allows re-using existing <A HREF="windows.html#windows">windows</A> on a buffer that is being
jumped to, or split the <A HREF="windows.html#window">window</A> to open a new buffer. (Roemer)
<A HREF="options.html#'titleold'">'titleold'</A> option. Replaces the fixed <A HREF="eval.html#string">string</A> "Thanks for flying Vim", which
is used to set the title when <A HREF="starting.html#exiting">exiting</A>. (Schild)
Vim scripts *<A NAME="new-script-5.4"></A><B>new-script-5.4</B>*
The |<A HREF="eval.html#exists()">exists()</A>| function can also check for existence of a function. (Roemer)
An internal function is now found with a binary search, should be a bit
faster. (Roemer)
New <A HREF="eval.html#functions">functions</A>:
- |<A HREF="eval.html#getwinposx()">getwinposx()</A>| and |<A HREF="eval.html#getwinposy()">getwinposy()</A>|: get Vim <A HREF="windows.html#window">window</A> position. (Webb)
- |<A HREF="eval.html#histnr()">histnr()</A>|, |<A HREF="eval.html#histadd()">histadd()</A>|, |<A HREF="eval.html#histget()">histget()</A>| and |<A HREF="eval.html#histdel()">histdel()</A>|: Make <A HREF="cmdline.html#history">history</A>
available. (Roemer)
- |maparg()|: Returns rhs of a <A HREF="map.html#mapping">mapping</A>. Based on a patch from Vikas.
- |mapcheck()|: Check if a map name matches with an existing one.
- |visualmode()|: Return type of last <A HREF="visual.html#Visual">Visual</A> mode. (Webb)
- |libcall()|: Call a function in a library. Currently only for <A HREF="os_win32.html#Win32">Win32</A>. (Negri)
- |bufwinnr()|: find <A HREF="windows.html#window">window</A> that contains the specified buffer. (Roemer)
- |bufloaded()|: Whether a buffer exists and is loaded.
- |<A HREF="eval.html#localtime()">localtime()</A>| and |<A HREF="eval.html#getftime()">getftime()</A>|: wall clock time and last modification time
of a file (Webb)
- |glob()|: expand file name <A HREF="editing.html#wildcards">wildcards</A> only.
- |system()|: get the raw output of an external command. (based on a patch
from Aaron).
- |strtrans()|: Translate <A HREF="eval.html#String">String</A> into printable characters. Used for
<A HREF="syntax.html#2html.vim">2html.vim</A> <A HREF="usr_41.html#script">script</A>.
- |append()|: <A HREF="starting.html#easy">easy</A> way to append a line of text in a buffer.
Changed <A HREF="eval.html#functions">functions</A>:
- Optional argument to |<A HREF="eval.html#strftime()">strftime()</A>| to give the time in seconds. (Webb)
- |<A HREF="eval.html#expand()">expand()</A>| now also returns names for files that don't exist.
Allow numbers in the name of a user command. (Webb)
Use "<A HREF="eval.html#v:">v:</A>" for internal Vim <A HREF="eval.html#variables">variables</A>: "<A HREF="eval.html#v:errmsg">v:errmsg</A>", "<A HREF="eval.html#v:shell_error">v:shell_error</A>", etc. The
ones from version 5.3 can be used without "<A HREF="eval.html#v:">v:</A>" too, for backwards
compatibility.
New <A HREF="eval.html#variables">variables</A>:
"<A HREF="eval.html#v:warningmsg">v:warningmsg</A>" and "<A HREF="eval.html#v:statusmsg">v:statusmsg</A>" internal <A HREF="eval.html#variables">variables</A>. Contain the last given
warning and status message. |<A HREF="eval.html#v:warningmsg">v:warningmsg</A>| |<A HREF="eval.html#v:statusmsg">v:statusmsg</A>| (Madsen)
"<A HREF="eval.html#v:count1">v:count1</A>" variable: like "<A HREF="eval.html#v:count">v:count</A>", but defaults to one when no <A HREF="intro.html#count">count</A> is
used. |<A HREF="eval.html#v:count1">v:count1</A>|
When compiling without <A HREF="eval.html#expression">expression</A> evaluation, "if 1" can be used around the
not supported commands to avoid <A HREF="motion.html#it">it</A> being executed. Works like in Vim 4.x.
Some of the runtime scripts gave <A HREF="message.html#errors">errors</A> when used with a Vim that was compiled
with minimal features. Now "if 1" is used around code that is not always
supported.
When evaluating an <A HREF="eval.html#expression">expression</A> with && and ||, skip the parts that will not
influence the outcome. This makes <A HREF="motion.html#it">it</A> faster and avoids error <A HREF="message.html#messages">messages</A>. (Webb)
Also optimized the skipping of expressions inside an "if 0".
Avoid <A HREF="message.html#hit-enter">hit-enter</A> prompt *<A NAME="avoid-hit-enter"></A><B>avoid-hit-enter</B>*
Added '<A HREF="motion.html#T">T</A>' flag to <A HREF="options.html#'shortmess'">'shortmess'</A>: Truncate all <A HREF="message.html#messages">messages</A> that would cause the
<A HREF="message.html#hit-enter">hit-enter</A> prompt (unless that would happen anyway).
The '<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'shortmess'">'shortmess'</A> now also applies to <A HREF="quickfix.html#quickfix">quickfix</A> <A HREF="message.html#messages">messages</A>, e.g., from
the "<A HREF="quickfix.html#:cn">:cn</A>" command.
The default for <A HREF="options.html#'shortmess'">'shortmess'</A> is now "filnxtToO", to make most <A HREF="message.html#messages">messages</A> fit on
the command line, and not cause the <A HREF="message.html#hit-enter">hit-enter</A> prompt.
Previous messages can be viewed with the new |<A HREF="message.html#:messages">:messages</A>| command.
Some <A HREF="message.html#messages">messages</A> are shown fully, even when <A HREF="options.html#'shortmess'">'shortmess'</A> tells to shorten
<A HREF="message.html#messages">messages</A>, because the user is expected to want to see them in full: <A HREF="editing.html#CTRL-G">CTRL-G</A> and
some <A HREF="quickfix.html#quickfix">quickfix</A> commands.
Improved <A HREF="quickfix.html#quickfix">quickfix</A> *<A NAME="improved-quickfix"></A><B>improved-quickfix</B>*
Parse change-directory lines for gmake: "make[1]: Entering directory 'name'"'.
Uses "%D" and "%X" in <A HREF="options.html#'errorformat'">'errorformat'</A>.
Also parse "Making {target} in {dir}" <A HREF="message.html#messages">messages</A> from make. Helps when not
using GNU make. (Schandl)
Use <A HREF="options.html#'isfname'">'isfname'</A> for "%f" in <A HREF="options.html#'errorformat'">'errorformat'</A>.
Parsing of multi-line <A HREF="message.html#messages">messages</A>. |<A HREF="quickfix.html#errorformat-multi-line">errorformat-multi-line</A>|
Allow a range for the |<A HREF="quickfix.html#:clist">:clist</A>| command. (Roemer)
Support for "global" file names, for error formats that output the file name
once for several <A HREF="message.html#errors">errors</A>. (Roemer)
|<A HREF="quickfix.html#:cnfile">:cnfile</A>| jumps to first error in next file.
"$*" in <A HREF="options.html#'makeprg'">'makeprg'</A> is replaced by arguments to "<A HREF="quickfix.html#:make">:make</A>". (Roemer)
Regular expressions *<A NAME="regexp-changes-5.4"></A><B>regexp-changes-5.4</B>*
In a <A HREF="pattern.html#regexp">regexp</A>, a '$' before "\)" is also considered to be an end-of-line. |<A HREF="pattern.html#/$">/$</A>|
In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson)|||
In a <A HREF="pattern.html#regexp">regexp</A>, in front of "\)" and "\|" both "<A HREF="motion.html#$">$</A>" and "\$" were considered
end-of-line. Now use "<A HREF="motion.html#$">$</A>" <A HREF="motion.html#as">as</A> end-of-line and "\$" for a literal dollar. Same
for '^' after "\(" and "\|". |/\$| |/\^||||||
Some search patterns can be extremely slow, even though they are not really
illegal. For example: "\([^a-z]\+\)\+Q". Allow interrupting any <A HREF="pattern.html#regexp">regexp</A>
search with <A HREF="pattern.html#CTRL-C">CTRL-C</A>.
Register "/: last search <A HREF="eval.html#string">string</A> (read-only). (Kohan) Changed to use last used
search <A HREF="pattern.html#pattern">pattern</A> (like what <A HREF="options.html#'hlsearch'">'hlsearch'</A> uses). Can set the search <A HREF="pattern.html#pattern">pattern</A> with
"<A HREF="eval.html#:let">:let</A> <A HREF="change.html#@/">@/</A> = {expr}".
Added character classes to search patterns, to avoid the need for removing the
'<A HREF="motion.html#l">l</A>' flag from <A HREF="options.html#'cpoptions'">'cpoptions'</A>: |<A HREF="pattern.html#[:tab:]">[:tab:]</A>|, |<A HREF="pattern.html#[:return:]">[:return:]</A>|, |<A HREF="pattern.html#[:backspace:]">[:backspace:]</A>| and
|<A HREF="pattern.html#[:escape:]">[:escape:]</A>|.
By adding a '<A HREF="pattern.html#?">?</A>' after a comparative <A HREF="motion.html#operator">operator</A> in an <A HREF="eval.html#expression">expression</A>, the comparison
is done by ignoring <A HREF="change.html#case">case</A>. |<A HREF="eval.html#expr-==?">expr-==?</A>|
Other improvements made between version 5.3 and 5.4
Changed *<A NAME="changed-5.4"></A><B>changed-5.4</B>*
<A HREF="os_unix.html#Unix">Unix</A>: Use $TMPDIR for temporary files, if <A HREF="motion.html#it">it</A> is set and exists.
Removed "Empty buffer" message. It isn't useful and can cause a <A HREF="message.html#hit-enter">hit-enter</A>
prompt. (Negri)
"<A HREF="starting.html#ex">ex</A> -" now reads commands from stdin and works in silent mode. This is to be
compatible with the original "<A HREF="starting.html#ex">ex</A>" command that is used for scripts.
Default range for "<A HREF="if_tcl.html#:tcldo">:tcldo</A>" is the whole file.
Cancelling <A HREF="visual.html#Visual">Visual</A> mode with ESC moved the cursor. There appears to be no
reason for this. Now leave the cursor where <A HREF="motion.html#it">it</A> is.
The "<A HREF="quickfix.html#:grep">:grep</A>" and "<A HREF="quickfix.html#:make">:make</A>" commands see " <A HREF="motion.html#as">as</A> part of the arguments, instead of
the start of a comment.
In expressions the "=~" and "!~" operators no longer are affected by
<A HREF="options.html#'ignorecase'">'ignorecase'</A>.
Renamed vimrc_example to <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A> and gvimrc_example to
gvimrc_example.vim. Makes them being recognized <A HREF="motion.html#as">as</A> vim scripts.
"<A HREF="pattern.html#gd">gd</A>" no longer starts searching at the end of the previous function, but at
the first blank line above the start of the current function. Avoids that
using "<A HREF="pattern.html#gd">gd</A>" in the first function finds global a variable.
Default for <A HREF="options.html#'complete'">'complete'</A> changed from ".,b" to ".,w,b,u,t,i". Many more matches
will be found, at the cost of time (the search can be interrupted).
It is no longer possible to set 'shell*' <A HREF="options.html#options">options</A> from a <A HREF="options.html#modeline">modeline</A>. Previously
only a warning message was given. This reduces security risks.
The ordering of the index of documentation files was changed to make <A HREF="motion.html#it">it</A> more
<A HREF="starting.html#easy">easy</A> to find a subject.
On <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#win32">win32</A>, when <A HREF="starting.html#$VIM">$VIM</A> was not set, <A HREF="options.html#$HOME">$HOME</A> was used. This caused
trouble if <A HREF="options.html#$HOME">$HOME</A> was set to e.g., "C:\" for some other tool, the runtime files
would not be found. Now use <A HREF="options.html#$HOME">$HOME</A> only for <A HREF="starting.html#_vimrc">_vimrc</A>, <A HREF="gui.html#_gvimrc">_gvimrc</A>, etc., not to find
the runtime file.
When <A HREF="options.html#'tags'">'tags'</A> is "./{fname}" and there is no file name for the current buffer,
just use <A HREF="motion.html#it">it</A>. Previously <A HREF="motion.html#it">it</A> was skipped, causing "vim <A HREF="starting.html#-t">-t</A> {tag}" not to find
many <A HREF="tagsrch.html#tags">tags</A>.
When trying to select text in the <A HREF="options.html#'scrolloff'">'scrolloff'</A> area by mouse dragging, the
resulting <A HREF="scroll.html#scrolling">scrolling</A> made this difficult. Now <A HREF="options.html#'scrolloff'">'scrolloff'</A> is temporarily set
to 0 or 1 to avoid this. But still allow <A HREF="scroll.html#scrolling">scrolling</A> in the top line to extend
to above the displayed text.
Default for <A HREF="options.html#'comments'">'comments'</A> now includes "sl:/*,mb: *,ex:*/", to make javadoc
comments work. Also helps for C comments that start with "/*******".
<A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> <A HREF="insert.html#Insert">Insert</A> mode <A HREF="tagsrch.html#tag">tag</A> expansion tried to expand to all <A HREF="tagsrch.html#tags">tags</A> when used
after a non-ID character, which can take a very long time. Now limit this to
200 matches. Also used for command-line <A HREF="tagsrch.html#tag">tag</A> completion.
The <A HREF="os_os2.html#OS/2">OS/2</A> <A HREF="intro.html#distribution">distribution</A> has been split in two files. It was too big to fit on a
floppy. The same runtime archive <A HREF="motion.html#as">as</A> for the PC is now used.
In the documentation, items like <a-z> have been replaced with {a-z} for
non-optional arguments. This avoids confusion with key names: <C-Z> is a
<A HREF="starting.html#CTRL-Z">CTRL-Z</A>, not a character between C and Z, that is {C-Z}.
Added *<A NAME="added-5.4"></A><B>added-5.4</B>*
Color support for the iris-ansi builtin <A HREF="term.html#termcap">termcap</A> entry. (Tubman)
Included <A HREF="if_ole.html#VisVim">VisVim</A> version 1.3a. (Erhardt)
<A HREF="os_win32.html#Win32">Win32</A> port for SNiFF+ interface. (Leherbauer)
Documentation file for sniff interface: <A HREF="if_sniff.html#if_sniff.txt">if_sniff.txt</A>. (Leherbauer)
Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory.
To be used with the OLE version of <A HREF="starting.html#gvim">gvim</A> under <A HREF="os_win32.html#MS-Windows">MS-Windows</A>. (Schaller)
Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert)
When a file that is being edited is deleted, give a warning (like when the
time stamp changed).
Included newer versions of the HTML-generating Awk and <A HREF="if_perl.html#Perl">Perl</A> scripts. (Colombo)
Linux console mouse support through "gpm". (Tsindlekht)
Security fix: Disallow <A HREF="change.html#changing">changing</A> <A HREF="options.html#'secure'">'secure'</A> and <A HREF="options.html#'exrc'">'exrc'</A> from a <A HREF="options.html#modeline">modeline</A>. When
<A HREF="options.html#'secure'">'secure'</A> is set, give a warning for <A HREF="change.html#changing">changing</A> <A HREF="options.html#options">options</A> that contain a program
name.
Made the <A HREF="if_perl.html#Perl">Perl</A> interface work with <A HREF="if_perl.html#Perl">Perl</A> 5.005 and threads. (Verdoolaege)
When giving an error message for an ambiguous <A HREF="map.html#mapping">mapping</A>, include the offending
<A HREF="map.html#mapping">mapping</A>. (Roemer)
Command line editing:
- Command line completion of mappings. (Roemer)
- Command line completion for "<A HREF="eval.html#:function">:function</A>", "<A HREF="eval.html#:delfunction">:delfunction</A>", "<A HREF="eval.html#:let">:let</A>", "<A HREF="eval.html#:call">:call</A>",
"<A HREF="eval.html#:if">:if</A>", etc. (Roemer)
- When using <A HREF="scroll.html#CTRL-D">CTRL-D</A> completion for user commands that have
"-complete=tag_listfiles" also <A HREF="eval.html#list">list</A> the file names. (Madsen)
- Complete the arguments of the "<A HREF="map.html#:command">:command</A>" command. (Webb)
- <A HREF="undo.html#CTRL-R">CTRL-R</A> . in command line inserts last inserted text. <A HREF="scroll.html#CTRL-F">CTRL-F</A>, <A HREF="motion.html#CTRL-P">CTRL-P</A>, <A HREF="index.html#CTRL-W">CTRL-W</A>
and <A HREF="change.html#CTRL-A">CTRL-A</A> after <A HREF="undo.html#CTRL-R">CTRL-R</A> are used to insert an object from under the cursor.
(Madsen)
Made the text in <A HREF="uganda.html#uganda.txt">uganda.txt</A> about <A HREF="uganda.html#copying">copying</A> Vim a bit more clear.
Updated the Vim <A HREF="usr_01.html#tutor">tutor</A>. Added the "<A HREF="usr_01.html#vimtutor">vimtutor</A>" command, which copies the <A HREF="usr_01.html#tutor">tutor</A>
and starts Vim on <A HREF="motion.html#it">it</A>. "make install" now also copies the <A HREF="usr_01.html#tutor">tutor</A>.
In the output of "<A HREF="quickfix.html#:clist">:clist</A>" the current entry is highlighted, with the '<A HREF="insert.html#i">i</A>'
highlighting (same <A HREF="motion.html#as">as</A> used for <A HREF="options.html#'incsearch'">'incsearch'</A>).
For the "<A HREF="quickfix.html#:clist">:clist</A>" command, you can scroll backwards with "<A HREF="motion.html#b">b</A>" (one screenful),
"<A HREF="undo.html#u">u</A>" (half a screenful) and "<A HREF="motion.html#k">k</A>" (one line).
Multi-byte support:
- X-input method for <A HREF="mbyte.html#multi-byte">multi-byte</A> characters. And various fixes for <A HREF="mbyte.html#multi-byte">multi-byte</A>
support. (Nam)
- Hangul input method feature: |<A HREF="hangulin.html#hangul">hangul</A>|. (Nam)
- Cleaned up configuration of <A HREF="mbyte.html#multi-byte">multi-byte</A> support, <A HREF="mbyte.html#XIM">XIM</A>, <A HREF="mbyte.html#fontset">fontset</A> and Hangul
input. Each is now configurable separately.
- Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
- Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
- <A HREF="mbyte.html#XIM">XIM</A> support for <A HREF="gui_x11.html#GTK+">GTK+</A>. (Nam)
- First attempt to include support for SJIS encoding. (Nagano)
- When a double-byte character doesn't fit at the end of the line, put a "<A HREF="change.html#~">~</A>"
there and print <A HREF="motion.html#it">it</A> on the next line.
- Optimize output of <A HREF="mbyte.html#multi-byte">multi-byte</A> text. (Park)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: preedit style is like over-the-spot. (Nagano)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: <A HREF="mbyte.html#IME">IME</A> mode change now done with ImmSetOpenStatus. (Nagano)
- <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Athena">Athena</A>: file selection <A HREF="gui_w32.html#dialog">dialog</A> can display <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.
(Nagano)
- Selection reply for XA_TEXT <A HREF="motion.html#as">as</A> XA_STRING. (Nagano)
"runtime/macros/diffwin.vim". Mappings to make a <A HREF="diff.html#diff">diff</A> <A HREF="windows.html#window">window</A>. (Campbell)
Added ".obj" to the <A HREF="options.html#'suffixes'">'suffixes'</A> option.
Reduced size of syntax/synload.vim by using the ":SynAu" user command.
Automated numbering of <A HREF="autocmd.html#Syntax">Syntax</A> menu entries in <A HREF="gui.html#menu.vim">menu.vim</A>.
In the <A HREF="autocmd.html#Syntax">Syntax</A> menu, insert separators between <A HREF="syntax.html#syntax">syntax</A> names that start with
a different <A HREF="print.html#letter">letter</A>. (Geddes)
Xterm:
- Clipboard support when using the mouse in an xterm. (Madsen)
- When using the xterm mouse, track dragging of the mouse. Use xterm <A HREF="intro.html#escape">escape</A>
sequences when possible. It is more precise than other methods, but
requires a fairly recent xterm version. It is enabled with "xterm2" in
<A HREF="options.html#'ttymouse'">'ttymouse'</A>. (Madsen)
- Check xterm patch level, to set the value of <A HREF="options.html#'ttymouse'">'ttymouse'</A>. Has only been
added to xterm recently (patch level <A HREF="change.html#>">></A> 95). Uses the new <A HREF="term.html#'t_RV'">'t_RV'</A> <A HREF="term.html#termcap">termcap</A>
option. Set <A HREF="options.html#'ttymouse'">'ttymouse'</A> to "xterm2" when a correct response is recognized.
Will make xterm mouse dragging work better.
- Support for shifted function keys on xterm. Changed codes for shifted
cursor keys to what the xterm actually produces. Added codes for shifted
<A HREF="motion.html#<End>"><End></A> and <A HREF="motion.html#<Home>"><Home></A>.
- Added <A HREF="term.html#'t_WP'">'t_WP'</A> to set the <A HREF="windows.html#window">window</A> position in pixels and <A HREF="term.html#'t_WS'">'t_WS'</A> to set the
<A HREF="windows.html#window">window</A> size in characters. Xterm can now move (used for "<A HREF="gui.html#:winpos">:winpos</A>") and
resize (use for "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'lines'">lines</A>=" and "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'columns'">columns</A>=").
<A HREF="options.html#X11">X11</A>:
- When in <A HREF="visual.html#Visual">Visual</A> mode but not owning the selection, display the <A HREF="visual.html#Visual">Visual</A> area
with the VisualNOS group to show this. (Madsen)
- Support for requesting the type of <A HREF="gui.html#clipboard">clipboard</A> support. Used for AIX and
dtterm. (Wittig)
- Support compound_text selection (even when compiled without <A HREF="mbyte.html#multi-byte">multi-byte</A>).
Swap file:
- New variation for naming swap files: <A HREF="insert.html#Replace">Replace</A> path separators into <A HREF="motion.html#%">%</A>, place
all swap files in one directory. Used when a name in <A HREF="options.html#'dir'">'dir'</A> ends in two path
separators. (Madsen)
- When a swap file is found, show whether <A HREF="motion.html#it">it</A> contains modifications or not in
the informative message. (Madsen)
- When dialogs are supported, use a <A HREF="gui_w32.html#dialog">dialog</A> to ask the user what to <A HREF="diff.html#do">do</A> when a
swapfile already exists.
"popup_setpos" in <A HREF="options.html#'mousemodel'">'mousemodel'</A> option. Allows for moving the cursor when
using the right mouse button.
When a buffer is deleted, the selection for which buffer to display instead
now uses the most recent entry from the jump <A HREF="eval.html#list">list</A>. (Madsen)
When using CTRL-O/CTRL-I, skip deleted <A HREF="windows.html#buffers">buffers</A>.
A percentage is shown in the ruler, when there is room.
Used autoconf 1.13 to generate configure.
Included get_lisp_indent() from Dirk van Deun. Does better Lisp indenting
when '<A HREF="change.html#p">p</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is not included.
Made the <A HREF="syntax.html#2html.vim">2html.vim</A> <A HREF="usr_41.html#script">script</A> quite a bit faster. (based on ideas from Geddes)
<A HREF="os_unix.html#Unix">Unix</A>:
- Included the name of the user that compiled Vim and the system name <A HREF="motion.html#it">it</A> was
compiled on in the version message.
- "make install" now also installs the "tools" directory. Makes them
available for everybody.
- "make check" now does the same <A HREF="motion.html#as">as</A> "make test". "make test" checks for
<A HREF="visual.html#Visual">Visual</A> block mode <A HREF="intro.html#shift">shift</A>, insert, replace and change.
- Speed up comparing a file name with existing <A HREF="windows.html#buffers">buffers</A> by storing the
device/inode number with the buffer.
- Added configure arguments "--disable-gtk", "--disable-motif" and
"--disable-athena", to be able to disable a specific <A HREF="gui.html#GUI">GUI</A> (when <A HREF="motion.html#it">it</A> doesn't
work).
- Renamed the configure arguments for disabling the check for specific GUIs.
Should be clearer now. (Kahn)
- On a Digital <A HREF="os_unix.html#Unix">Unix</A> system ("OSF1") check for the curses library before
termlib and <A HREF="term.html#termcap">termcap</A>. (Schild)
- "make uninstall_runtime" will only delete the version-specific files. Can
be used to delete the runtime files of a previous version.
<A HREF="os_mac.html#Macintosh">Macintosh</A>: (St-Amant)
- Dragging the scrollbar, like it's done for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>. Moved common code
from gui_w32.c to gui.c
- Added dialogs and file browsing.
- Resource <A HREF="os_unix.html#fork">fork</A> preserved, warning when <A HREF="motion.html#it">it</A> will be lost.
- Copy original file attributes to newly written file.
- Set title/notitle bug solved.
- Filename completion improved.
- Grow box limit resize to a char by char size.
- Use of <A HREF="gui_w32.html#rgb.txt">rgb.txt</A> for more colors (but give back bad color).
- Apple menu works (beside the about...).
- Internal border now vim compliant.
- Removing a menu doesn't crash anymore.
- Weak-linking of <A HREF="if_pyth.html#Python">Python</A> 1.5.1 (only on PPC). <A HREF="if_pyth.html#Python">Python</A> is supported when the
library is available.
- If an error is encountered when sourcing the users <A HREF="starting.html#.vimrc">.vimrc</A>, the alert box now
shows right away with the OK button defaulted. There's no more "Delete"-key
sign at the start of each line
- Better management of environment <A HREF="eval.html#variables">variables</A>. Now <A HREF="starting.html#$VIM">$VIM</A> is calculated only
once, not regenerated every time <A HREF="motion.html#it">it</A> is used.
- No more CPU hog when in background.
- In a sourced Vim <A HREF="usr_41.html#script">script</A> the <A HREF="os_mac.html#Mac">Mac</A> file format can be recognized, just like <A HREF="os_dos.html#DOS">DOS</A>
file format is.
When both "<A HREF="os_unix.html#unix">unix</A>" and "<A HREF="os_mac.html#mac">mac</A>" are present in <A HREF="options.html#'fileformats'">'fileformats'</A>, prefer "<A HREF="os_mac.html#mac">mac</A>" format
when there are more CR than NL characters.
When using "<A HREF="os_mac.html#mac">mac</A>" fileformat, use CR instead of a NL, because NL is used for
NUL. Will preserve all characters in a file. (Madsen)
The <A HREF="os_dos.html#DOS">DOS</A> install.exe now contains checks for an existing installation. It
avoids setting <A HREF="starting.html#$VIM">$VIM</A> and $PATH again.
The <A HREF="usr_90.html#install">install</A> program for Dos/Windows can now <A HREF="usr_90.html#install">install</A> Vim in the popup menu, by
adding two registry keys.
Port to EGCS/mingw32. New Makefile.ming. (Aaron)
<A HREF="os_dos.html#DOS">DOS</A> 16 bit: Don't include cursor shape stuff. Save some bytes.
<A HREF="if_tcl.html#TCL">TCL</A> support to Makefile.w32. (Duperval)
<A HREF="os_os2.html#OS/2">OS/2</A>: Use argv[0] to find runtime files.
When using "<A HREF="editing.html#gf">gf</A>" to go to a buffer that has already been used, jump to the
line where the cursor last was.
Colored the output of "<A HREF="tagsrch.html#:tselect">:tselect</A>" a bit more. Different highlighting between
<A HREF="tagsrch.html#tag">tag</A> name and file name. Highlight field name ("struct:") separately from
argument.
Backtick expansion for non-Unix systems. Based on a patch from Aaron.
Allows the use of things like "<A HREF="editing.html#:n">:n</A> `grep <A HREF="starting.html#-l">-l</A> test *.c`" and
"echo expand('`ls m*`')".
Check for the <A HREF="options.html#'complete'">'complete'</A> option when <A HREF="motion.html#it">it</A> is set. (Acevedo)
'<A HREF="change.html#d">d</A>' flag in <A HREF="options.html#'complete'">'complete'</A> searches for defined names or macros.
While searching for <A HREF="insert.html#Insert">Insert</A> mode completions in include files and <A HREF="tagsrch.html#tags">tags</A> files,
check for typeahead, so that you can use matches early. (Webb)
The '<A HREF="repeat.html#.">.</A>' flag in <A HREF="options.html#'complete'">'complete'</A> now scans the current buffer completely, ignoring
<A HREF="options.html#'nowrapscan'">'nowrapscan'</A>. (Webb)
Added '<A HREF="change.html#~">~</A>' flag to <A HREF="options.html#'whichwrap'">'whichwrap'</A>. (Acevedo)
When ending the <A HREF="visual.html#Visual">Visual</A> mode (e.g., with ESC) don't grab ownership of the
selection.
In a color <A HREF="terminal.html#terminal">terminal</A>, "fg" and "bg" can be used <A HREF="motion.html#as">as</A> color names. They stand for
the "<A HREF="intro.html#Normal">Normal</A>" colors.
A few <A HREF="if_cscop.html#cscope">cscope</A> cleanups. (Kahn)
Included changed vimspell.sh from Schemenauer.
Concatenation of strings in an <A HREF="eval.html#expression">expression</A> with "<A HREF="repeat.html#.">.</A>" is a bit faster. (Roemer)
The "<A HREF="various.html#:redir">:redir</A>" command can now redirect to a <A HREF="sponsor.html#register">register</A>: "<A HREF="various.html#:redir">:redir</A> @r". (Roemer)
Made the output of "<A HREF="motion.html#:marks">:marks</A>" and "<A HREF="motion.html#:jumps">:jumps</A>" look similar. When the <A HREF="motion.html#mark">mark</A> is in
the current file, show the text at the <A HREF="motion.html#mark">mark</A>. Also for "<A HREF="tagsrch.html#:tags">:tags</A>".
When configure finds ftello() and fseeko(), they are used in tag.c (for when
you have extremely big <A HREF="tagsrch.html#tags">tags</A> files).
Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow)
<A HREF="gui.html#GUI">GUI</A>:
- When using "<A HREF="gui_x11.html#:gui">:gui</A>" in a non-GUI Vim, give a clear error message.
- "<A HREF="starting.html#gvim">gvim</A> -v" doesn't start the <A HREF="gui.html#GUI">GUI</A> (if console support is present).
- When in <A HREF="intro.html#Ex">Ex</A> mode, use non-Visual selection for the whole screen.
- When starting with "<A HREF="starting.html#gvim">gvim</A> -f" and using "<A HREF="gui_x11.html#:gui">:gui</A>" in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file, Vim
forked anyway. Now the "<A HREF="starting.html#-f">-f</A>" flag is remembered for "<A HREF="gui_x11.html#:gui">:gui</A>". Added "<A HREF="gui.html#gui">gui</A> -b"
to run <A HREF="starting.html#gvim">gvim</A> in the background anyway.
<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>:
- Check for "-lXp" library in configure (but <A HREF="motion.html#it">it</A> doesn't work yet...).
- Let configure check for Lesstif in "/usr/local/Lesstif/Motif*". Changed the
order to let a local <A HREF="gui_x11.html#Motif">Motif</A> version override a system standard version.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>:
- When using "<A HREF="if_ole.html#-register">-register</A>" or "<A HREF="if_ole.html#-unregister">-unregister</A>" in the non-OLE version, give an
error message.
- Use <A HREF="gui_x11.html#GTK">GTK</A> toolbar icons. Make <A HREF="windows.html#window">window</A> border look better. Use sizing handles
on the lower left&right corners of the <A HREF="windows.html#window">window</A>. (Negri)
- When starting an external command with "<A HREF="os_win32.html#:!start">:!start</A>" and the command can not be
executed, give an error message. (Webb)
- Use sizing handles for the grey rectangles below the scrollbars. Can draw
toolbar in flat mode now, looks better. (Negri)
- Preparations for <A HREF="os_win32.html#MS-Windows">MS-Windows</A> 3.1 addition. Mostly <A HREF="change.html#changing">changing</A> WIN32 to MSWIN
and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri)
Avoid allocating the same <A HREF="eval.html#string">string</A> four times in buflist_findpat(). (Williams)
Set title and icon text with <A HREF="term.html#termcap">termcap</A> <A HREF="options.html#options">options</A> <A HREF="term.html#'t_ts'">'t_ts'</A>, <A HREF="term.html#'t_fs'">'t_fs'</A>, <A HREF="term.html#'t_IS'">'t_IS'</A> and
<A HREF="term.html#'t_IE'">'t_IE'</A>. Allows doing this on any <A HREF="terminal.html#terminal">terminal</A> that supports setting the title
and/or icon text. (Schild)
New '<A HREF="change.html#x">x</A>' flag in <A HREF="options.html#'comments'">'comments'</A>: Automatically insert the end part when its last
character is typed. Helps to close a /* */ comment in C. (Webb)
When <A HREF="eval.html#expand()">expand()</A> has a second argument which is non-zero, don't use <A HREF="options.html#'suffixes'">'suffixes'</A>
and <A HREF="options.html#'wildignore'">'wildignore'</A>, return all matches.
'<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> When not included, Vim will not overwrite a file, if
<A HREF="motion.html#it">it</A> didn't exist when editing started but <A HREF="motion.html#it">it</A> does exist when the buffer is
written to the file. The file must have been created outside of Vim, possibly
without the user knowing <A HREF="motion.html#it">it</A>. When this is detected after a shell command,
give a warning message.
When editing a new file, <A HREF="editing.html#CTRL-G">CTRL-G</A> will show [New file]. When there were <A HREF="message.html#errors">errors</A>
while reading the file, <A HREF="editing.html#CTRL-G">CTRL-G</A> will show [Read errors].
"<A HREF="editing.html#:wall">:wall</A>" can now use a <A HREF="gui_w32.html#dialog">dialog</A> and file-browsing when needed.
Grouped functionality into new features, mainly to reduce the size of the
minimal version:
<A HREF="various.html#+linebreak">+linebreak</A>: <A HREF="options.html#'showbreak'">'showbreak'</A>, <A HREF="options.html#'breakat'">'breakat'</A> and <A HREF="options.html#'linebreak'">'linebreak'</A>
<A HREF="various.html#+visualextra">+visualextra</A>: "I"nsert and "A"ppend in <A HREF="visual.html#Visual">Visual</A> block mode, "c"hange all lines
in a block, "<A HREF="change.html#>">></A>" and "<A HREF="change.html#<"><</A>": Shifting a block, "<A HREF="change.html#r">r</A>": Replacing a
<A HREF="visual.html#Visual">Visual</A> area with one character.
<A HREF="various.html#+comments">+comments</A>: <A HREF="options.html#'comments'">'comments'</A>
<A HREF="various.html#+cmdline_info">+cmdline_info</A>: <A HREF="options.html#'ruler'">'ruler'</A> and <A HREF="options.html#'showcmd'">'showcmd'</A>. Replaces +showcmd.
"<A HREF="various.html#+title">+title</A>" Don't add code to set title or icon for <A HREF="os_msdos.html#MSDOS">MSDOS</A>, this was not
possible anyway.
<A HREF="various.html#+cmdline_compl">+cmdline_compl</A> Disable commandline completion at compile time, except for
files, directories and help items.
Moved features from a <A HREF="eval.html#list">list</A> of function calls into an array. Should save a bit
of space.
While entering the body of a function, adjust indent according to "if" and
"while" commands.
<A HREF="os_vms.html#VMS">VMS</A>: Adjusted os_vms.mms a bit according to suggestions from Arpadffy.
The flags in the <A HREF="options.html#'comments'">'comments'</A> option can now include an offset. This makes <A HREF="motion.html#it">it</A>
possible to align "/*****", "/* xxx" and "/*" comments with the same
<A HREF="options.html#'comments'">'comments'</A> setting. The default value for <A HREF="options.html#'comments'">'comments'</A> uses this.
Added '<A HREF="insert.html#O">O</A>' flag: Don't use this part for the "<A HREF="insert.html#O">O</A>" command. Useful for "set
com=sO:*\ -,mO:*\ \ ,exO:*/"
<A HREF="autocmd.html#FileType">FileType</A> autocommands recognize ".bak", ".orig" and "<A HREF="change.html#~">~</A>" extensions and remove
them to find the relevant extension.
The tutorial for <A HREF="editing.html#writing">writing</A> a Vim <A HREF="usr_41.html#script">script</A> file has been extended.
Some more highlighting in help files, for items that are not typed literally.
Can use "<A HREF="index.html#CTRL-W">CTRL-W</A> CTRL-G" like "<A HREF="index.html#CTRL-W">CTRL-W</A> g".
"make test" for <A HREF="os_os2.html#OS/2">OS/2</A>.
Adjusted configure to automatically use the <A HREF="gui.html#GUI">GUI</A> for <A HREF="os_beos.html#BeOS">BeOS</A>.
Fixed *<A NAME="fixed-5.4"></A><B>fixed-5.4</B>*
5.3.1: When using an <A HREF="autocmd.html#autocommand">autocommand</A> for <A HREF="autocmd.html#BufWritePre">BufWritePre</A> that changes the name of the
buffer, freed memory would be used. (Geddes)
<A HREF="os_mac.html#Mac">Mac</A>: Compiler didn't understand start of skip_class_name().
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>:
- When cancelling the font requester, don't give an error message.
- When a tearoff-menu is open and its menu is deleted, Vim could crash.
(Negri)
- There was a problem on Windows 95 with (un)maximizing the <A HREF="windows.html#window">window</A>.
(Williams)
- when <A HREF="options.html#'mousehide'">'mousehide'</A> is set, the mouse would stay hidden when a menu is dropped
with the keyboard. (Ralston)
- The <A HREF="eval.html#tempname()">tempname()</A> function already created the file. Caused problems when
using "<A HREF="editing.html#:w">:w</A>". Now the file is deleted.
- Cursor disappeared when ending up in the top-left character on the screen
after <A HREF="scroll.html#scrolling">scrolling</A>. (Webb)
- When adding a submenu for a torn-off menu, <A HREF="motion.html#it">it</A> was not updated.
- Menu tooltip was using the toolbar tooltip. (Negri)
- Setting <A HREF="options.html#'notitle'">'notitle'</A> didn't remove the title. (Steed)
- Using "<A HREF="os_win32.html#:!start">:!start</A> cmd" scrolled the screen one line up, and didn't wait for
return when the command wasn't found.
<A HREF="if_cscop.html#Cscope">Cscope</A> interface: Sorting of matches was wrong. Starting the interface could
fail. (Kahn)
<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: Could not compile with <A HREF="gui_x11.html#Motif">Motif</A> 1.1, because some tear-off
functionality was not in #ifdefs.
Configure could sometimes not compile or link the test program for sizeof(int)
properly. This caused alignment problems for the <A HREF="undo.html#undo">undo</A> structure allocations.
Added a safety check that SIZEOF_INT is not zero.
Added configure check to test if strings.h can be included after string.h.
Some systems can't handle <A HREF="motion.html#it">it</A>.
Some systems need both string.h and strings.h included. Adjusted vim.h for
that. Removed including string.h from os_unixx.h, since it's already in
vim.h. (Savage)
AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and
strings.h, but after the configure check said <A HREF="motion.html#it">it</A> was OK. Also define
_NO_PROTO for AIX in the configure check. (Winn)
When closing a <A HREF="windows.html#window">window</A> with <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="change.html#c">c</A>, the value of <A HREF="options.html#'hidden'">'hidden'</A> was not taken into
account, the buffer was always unloaded. (Negri)
<A HREF="os_unix.html#Unix">Unix</A> Makefile: "make install" always tried to rename an older executable and
remove <A HREF="motion.html#it">it</A>. This caused an error message when <A HREF="motion.html#it">it</A> didn't exit. Added a check
for the existence of an old executable.
The command line for "make install" could get too long, because of the many
<A HREF="syntax.html#syntax">syntax</A> files. Now first <A HREF="diff.html#do">do</A> a "cd" to reduce the length.
On <A HREF="os_risc.html#RISCOS">RISCOS</A> and <A HREF="os_msdos.html#MSDOS">MSDOS</A>, reading a file could fail, because the short filename was
used, which can be wrong after a ":!cd".
In the <A HREF="os_dos.html#DOS">DOS</A> versions, the wrong install.exe was included (required Windows).
Now the install.exe version is included that is the same <A HREF="motion.html#as">as</A> the Vim version.
This also supports long file names where possible.
When <A HREF="repeat.html#recording">recording</A>, and stopping while in <A HREF="insert.html#Insert">Insert</A> mode with <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="repeat.html#q">q</A>, the <A HREF="motion.html#CTRL-O">CTRL-O</A>
would also be recorded.
32bit <A HREF="os_dos.html#DOS">DOS</A> version: "vim \file", while in a subdirectory, resulted in "new
file" for "file" in the local directory, while "\file" did exist. When
"file" in the current directory existed, this didn't happen.
<A HREF="os_msdos.html#MSDOS">MSDOS</A>: Mouse could not go beyond 80 columns in 132 columns mode. (Young)
"make test" failed in the RedHat RPM, because compatible is off by default.
In <A HREF="insert.html#Insert">Insert</A> mode <C-O><C-W><C-W> changes to other <A HREF="windows.html#window">window</A>, but the status <A HREF="help.html#bars">bars</A>
were not updated until another character was typed.
<A HREF="os_msdos.html#MSDOS">MSDOS</A>: environment <A HREF="options.html#options">options</A> in <A HREF="change.html#lowercase">lowercase</A> didn't work, although they did in the
<A HREF="os_win32.html#Win32">Win32</A> versions. (Negri)
After "<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>", a <A HREF="tagsrch.html#tag">tag</A> command switched highlighting back on.
When using "append" command <A HREF="motion.html#as">as</A> the last line in an <A HREF="autocmd.html#autocommand">autocommand</A>, Vim would
crash.
<A HREF="os_risc.html#RISCOS">RISCOS</A>: The scroll bumpers (?) were not working properly. (Leonard)
"<A HREF="scroll.html#zl">zl</A>" and "<A HREF="scroll.html#zh">zh</A>" could move the cursor, but this didn't set the column in which
e.g., "<A HREF="motion.html#k">k</A>" would move the cursor.
When doing "<A HREF="options.html#:set">:set</A> all&" the value of <A HREF="options.html#'scroll'">'scroll'</A> was not set correctly. This
caused an error message when later setting any other number option.
When <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting has been disabled with "<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>",
incremental searching would switch <A HREF="motion.html#it">it</A> back on too early.
When listing <A HREF="tagsrch.html#tags">tags</A> for "<A HREF="tagsrch.html#:tselect">:tselect</A>", and using a non-search command, and the last
character was equal to the first (e.g., "99"), the last char would not be
shown.
When searching for <A HREF="tagsrch.html#tags">tags</A> with "<A HREF="tagsrch.html#:tag">:tag</A>" Vim would assume that all matches had been
found when there were still more (e.g. from another <A HREF="tagsrch.html#tags">tags</A> file).
<A HREF="os_win32.html#Win32">Win32</A>: Didn't recognize "c:\" (e.g., in <A HREF="tagsrch.html#tags">tags</A> file) <A HREF="motion.html#as">as</A> absolute path when
upper/lowercase was different.
Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END. Added these
to the builtin-xterm.
In <A HREF="starting.html#ex">ex</A> mode, any CR was seen <A HREF="motion.html#as">as</A> the end of the line. Only a NL should be
handled that way. broke ":s/foo/some^Mtext/".
In <A HREF="gui.html#menu.vim">menu.vim</A>, a vmenu was used to override an amenu. That didn't work, because
the system menu file doesn't overwrite existing <A HREF="gui.html#menus">menus</A>. Added explicit vunmenu
to solve this.
Configure check for <A HREF="terminal.html#terminal">terminal</A> library could find a library that doesn't work at
runtime (Solaris: shared library not found). Added a check that a program
with tgoto() can run correctly.
<A HREF="os_unix.html#Unix">Unix</A>: "echo -n" in the Makefile doesn't work on all systems, causing <A HREF="message.html#errors">errors</A>
compiling pathdef.c. Replaced <A HREF="motion.html#it">it</A> with "tr".
<A HREF="if_perl.html#Perl">Perl</A>: DO_JOIN was redefined by <A HREF="if_perl.html#Perl">Perl</A>. Undefined <A HREF="motion.html#it">it</A> in the <A HREF="if_perl.html#perl">perl</A> files.
Various <A HREF="mbyte.html#XIM">XIM</A> and <A HREF="mbyte.html#multi-byte">multi-byte</A> fixes:
- Fix user cannot see his language while he is typing his language with
off-the-spot method. (Nagano)
- Fix preedit position using text/edit area (using gui.wid). (Nagano)
- remove 'fix dead key' codes. It was needed since XNFocusWindow was
"x11_window", XNFocusWindow is now gui.wid. (Nagano)
- Remove some compile warnings and fix typos. (Namsh)
- For status area, check the gtk+ version while Vim runs. I believe <A HREF="motion.html#it">it</A> is
better than compile time check. (Namsh)
- Remove one FIXME for gtk+-xim. (Namsh)
- <A HREF="mbyte.html#XIM">XIM</A>: Dead keys didn't work for Czech. (Vyskovsky)
- Multibyte: If user input only 3byte such <A HREF="motion.html#as">as</A> mb1_mb2_eng or eng_mb1_mb2 VIM
could convert <A HREF="motion.html#it">it</A> to special character. (Nam)
- Athena/Motif with <A HREF="mbyte.html#XIM">XIM</A>: fix preedit area. (Nam)
- <A HREF="mbyte.html#XIM">XIM</A>: Composed strings were sometimes ignored. Vim crashed when compose
<A HREF="eval.html#string">string</A> was longer than 256 bytes. IM's geometry <A HREF="intro.html#control">control</A> is fixed. (Nam,
Nagano)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#multi-byte">multi-byte</A>: hollowed cursor width on a double byte char was wrong.
(Nagano)
- When there is no <A HREF="gui.html#GUI">GUI</A>, selecting <A HREF="mbyte.html#XIM">XIM</A> caused compilation problems.
Automatically disable <A HREF="mbyte.html#XIM">XIM</A> when there is no <A HREF="gui.html#GUI">GUI</A> in configure.
- <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A>: When compiled with <A HREF="mbyte.html#XIM">XIM</A>, but the input method was not
enabled, there would still be a status line. Now the status line is gone if
the input method doesn't work. (Nam)
<A HREF="os_win32.html#Win32">Win32</A>: tooltip was not removed when selecting a parent menu (it was when
selecting a menu entry). (Negri)
<A HREF="os_unix.html#Unix">Unix</A> with X: Some systems crash on exit, because of the XtCloseDisplay() call.
Removed <A HREF="motion.html#it">it</A>, <A HREF="motion.html#it">it</A> should not be necessary when <A HREF="starting.html#exiting">exiting</A>.
<A HREF="os_win32.html#Win32">Win32</A>: Crash on keypress when compiled with Borland C++. (Aaron)
When checking for <A HREF="gui_x11.html#Motif">Motif</A> library files, prefer the same location <A HREF="motion.html#as">as</A> the include
files (with "include" replaced with "lib") above another entry.
<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's
used in gui_x11.c.
<A HREF="os_win32.html#Win32">Win32</A>: When <A HREF="eval.html#testing">testing</A> for a <A HREF="editing.html#timestamp">timestamp</A> of a file on floppy, would get a <A HREF="gui_w32.html#dialog">dialog</A>
box when the floppy has been removed. Now return with an error. (Negri)
<A HREF="os_win32.html#Win32">Win32</A> OLE: When forced to come to the foreground, a minimized <A HREF="windows.html#window">window</A> was still
minimized, now it's restored. (Zivkov)
There was no check for a positive <A HREF="options.html#'shiftwidth'">'shiftwidth'</A>. A negative value could cause
a hangup, a zero value a crash.
<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: horizontal scrollbar wasn't updated correctly when clicking right
or left of the thumb.
When making a Visual-block selection in one <A HREF="windows.html#window">window</A>, and trying to scroll
another, could cause <A HREF="message.html#errors">errors</A> for accessing non-existent line numbers.
When <A HREF="options.html#'matchpairs'">'matchpairs'</A> contains "`:'"', jumping from the ` to the '' didn't work
properly.
Changed '\"' to '"'' to make <A HREF="motion.html#it">it</A> compatible with old C compilers.
The command line expansion for mappings caused a <A HREF="usr_41.html#script">script</A> with a TAB between lhs
and rhs of a map command to fail. Assume the TAB is to separate lhs and rhs
when there are no mappings to expand.
When editing a file with very long lines with <A HREF="options.html#'scrolloff'">'scrolloff'</A> set, "<A HREF="motion.html#j">j</A>" would
sometimes end up in a line which wasn't displayed.
When editing a read-only file, <A HREF="motion.html#it">it</A> was completely read into memory, even when
<A HREF="motion.html#it">it</A> would not fit. Now create a swap file for a read-only file when running
out of memory while reading the file.
When using "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'cino'">cino</A>={s,e-s", a line after "<A HREF="motion.html#}">}</A> else {" was not indented
properly. Also added a check for this in test3.in.
The Hebrew <A HREF="map.html#mapping">mapping</A> for the command line was remembered for the next command
line. That isn't very useful, a command is not Hebrew. (Kol)
When completing file names with embedded spaces, like "Program\ files", this
didn't work. Also for user commands. Moved backslash_halve() down to
mch_expandpath().
When using "set mouse=a" in <A HREF="intro.html#Ex">Ex</A> mode, mouse events were handled like typed
text. Then typing "quit" screwed up the mouse behavior of the xterm.
When <A HREF="repeat.html#repeating">repeating</A> an insert with "<A HREF="repeat.html#.">.</A>" that contains a <A HREF="scroll.html#CTRL-Y">CTRL-Y</A>, a number 5 was
inserted <A HREF="motion.html#as">as</A> "053".
Yanking a <A HREF="visual.html#Visual">Visual</A> area, with the cursor past the line, didn't move the cursor
back onto the line. Same for "<A HREF="change.html#~">~</A>", "<A HREF="undo.html#u">u</A>", "<A HREF="undo.html#U">U</A>" and "<A HREF="change.html#g?">g?</A>"
<A HREF="os_win32.html#Win32">Win32</A>: Default for <A HREF="options.html#'grepprg'">'grepprg'</A> could be "findstr /n" even though there is no
findstr.exe (Windows 95). Check if <A HREF="motion.html#it">it</A> exists, and fall back to "<A HREF="quickfix.html#grep">grep</A> -n" if
<A HREF="motion.html#it">it</A> doesn't.
Because gui_mouse_moved() inserted a leftmouse click in the input buffer,
remapping a leftmouse click caused strange effects. Now <A HREF="insert.html#Insert">Insert</A> another code
in the input buffer. Also insert a leftmouse release, to avoid the problem
with "<A HREF="map.html#:map">:map</A> <A HREF="visual.html#<LeftMouse>"><LeftMouse></A> l" that the next release is seen <A HREF="motion.html#as">as</A> the release for the
focus click.
With <A HREF="options.html#'wrap'">'wrap'</A> on, when using a line that doesn't fit on the screen, if the start
of the <A HREF="visual.html#Visual">Visual</A> area is before the start of the screen, there was no
highlighting. Also, <A HREF="options.html#'showbreak'">'showbreak'</A> doesn't work properly.
<A HREF="os_dos.html#DOS">DOS</A>, <A HREF="os_win32.html#Win32">Win32</A>: A <A HREF="pattern.html#pattern">pattern</A> "[0-9]\+" didn't work in autocommands.
When creating a swap file for a buffer which isn't the current buffer, could
get a mixup of short file name, resulting in a long file name when a short
file name was required. makeswapname() was calling modname() instead of
buf_modname().
When a function caused an error, and the error message was very long because
of recursiveness, this would cause a crash.
<A HREF="options.html#'suffixes'">'suffixes'</A> were always compared with matching <A HREF="change.html#case">case</A>. For <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and
<A HREF="os_os2.html#OS/2">OS/2</A> <A HREF="change.html#case">case</A> is now ignored.
The use of CHARBITS in regexp.c didn't work on some Linux. Don't use <A HREF="motion.html#it">it</A>.
When generating a <A HREF="usr_41.html#script">script</A> file, <A HREF="options.html#'cpo'">'cpo'</A> was made empty. This caused backslashes
to disappear from mappings. Set <A HREF="motion.html#it">it</A> to "<A HREF="motion.html#B">B</A>" to avoid that.
Lots of typos in the documentation. (Campbell)
When editing an existing (hidden) buffer, jump to the last used cursor
position. (Madsen)
On a Sun the xterm screen was not restored properly when suspending. (Madsen)
When $VIMINIT is processed, <A HREF="options.html#'nocompatible'">'nocompatible'</A> was only set after processing <A HREF="motion.html#it">it</A>.
<A HREF="os_unix.html#Unix">Unix</A>: Polling for a character wasn't done for GPM, Sniff and Xterm <A HREF="gui.html#clipboard">clipboard</A>
all together. Cleaned up the code for using select() too.
When executing external commands from the <A HREF="gui.html#GUI">GUI</A>, some typeahead was lost. Added
some code to regain <A HREF="motion.html#as">as</A> much typeahead <A HREF="motion.html#as">as</A> possible.
When the <A HREF="windows.html#window">window</A> height is 5 lines or fewer, <A HREF="scroll.html#<PageDown>"><PageDown></A> didn't use a one-line
overlap, while <A HREF="scroll.html#<PageUp>"><PageUp></A> does. Made sure that <A HREF="scroll.html#<PageUp>"><PageUp></A> uses the same overlap
<A HREF="motion.html#as">as</A> <A HREF="scroll.html#<PageDown>"><PageDown></A>, so that using them both always displays the same lines.
Removed a few unused <A HREF="eval.html#functions">functions</A> and <A HREF="eval.html#variables">variables</A> (found with lint).
<A HREF="eval.html#Dictionary">Dictionary</A> completion didn't use <A HREF="options.html#'infercase'">'infercase'</A>. (Raul)
Configure tests failed when the <A HREF="if_perl.html#Perl">Perl</A> library was not in LD_LIBRARY_PATH.
Don't use the <A HREF="if_perl.html#Perl">Perl</A> library for configure tests, add <A HREF="motion.html#it">it</A> to the linker line only
when linking Vim.
When using ncurses/terminfo, could get a <A HREF="term.html#'t_Sf'">'t_Sf'</A> and <A HREF="term.html#'t_Sb'">'t_Sb'</A> <A HREF="term.html#termcap">termcap</A> entry that
has "%d" instead of "%p1%d". The light background colors didn't work then.
<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A> with ncurses: Crashed when starting up in tputs(). Don't use tputs()
when the <A HREF="gui.html#GUI">GUI</A> is active.
Could use the "<A HREF="eval.html#:let">:let</A>" command to set the "<A HREF="intro.html#count">count</A>", "shell_error" and "version"
<A HREF="eval.html#variables">variables</A>, but that didn't work. Give an error message when trying to set
them.
On FreeBSD 3.0, tclsh is called tclsh8.0. Adjusted configure.in to find <A HREF="motion.html#it">it</A>.
When Vim is linked with -lncurses, but <A HREF="if_pyth.html#python">python</A> uses -ltermcap, this causes
trouble: "OOPS". Configure now removes the -ltermcap.
:@" and :*" didn't work properly, because the " was recognized <A HREF="motion.html#as">as</A> the start of
a comment.
Win32s <A HREF="gui.html#GUI">GUI</A>: Minimizing the console where a <A HREF="change.html#filter">filter</A> command runs in caused
trouble for detecting that the <A HREF="change.html#filter">filter</A> command has finished. (Negri)
After executing a <A HREF="change.html#filter">filter</A> command from an xterm, the mouse would be disabled.
It would work again after <A HREF="change.html#changing">changing</A> the mode.
<A HREF="os_mac.html#Mac">Mac</A> <A HREF="gui.html#GUI">GUI</A>: Crashed in newenv(). (St-Amant)
The <A HREF="gui.html#menus">menus</A> and mappings in <A HREF="gui_w32.html#mswin.vim">mswin.vim</A> didn't handle text ending in a NL
correctly. (Acevedo)
The "<A HREF="motion.html#:k">:k</A>" command didn't check if <A HREF="motion.html#it">it</A> had a valid argument or extra characters.
Now give a meaningful error message. (Webb)
On SGI, the signal function doesn't always have three arguments. Check for
struct sigcontext to find out. Might still be wrong...
Could crash when using <A HREF="options.html#'hlsearch'">'hlsearch'</A> and search <A HREF="pattern.html#pattern">pattern</A> is "<A HREF="motion.html#^">^</A>".
When search patterns were saved and restored, status of no_hlsearch was not
also saved and restored (from "<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>" command).
When using <A HREF="eval.html#setline()">setline()</A> to make a line shorter, the cursor position was not
adjusted.
<A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and Win95: When trying to edit a file and accidentally adding a slash
or <A HREF="intro.html#backslash">backslash</A> at the end, the file was deleted. Probably when trying to create
the swap file. Explicitly check for a trailing slash or <A HREF="intro.html#backslash">backslash</A> before
trying to read a file.
<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When starting the <A HREF="gui.html#GUI">GUI</A> failed and received a deadly signal while
setting the title, would lock up when trying to exit, because the title is
reset again. Avoid using mch_settitle() recursively.
<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When starting the <A HREF="gui.html#GUI">GUI</A> fails, and then trying <A HREF="motion.html#it">it</A> again, would crash,
because argv[] has been freed and x11_display was reset to NULL.
<A HREF="os_win32.html#Win32">Win32</A>: When <A HREF="options.html#$HOME">$HOME</A> was set, would put "~user" in the swap file, which would
never compare with a file name, and never cause the attention message. Put
the full path in the swap file instead.
<A HREF="os_win32.html#Win32">Win32</A> console: There were funny characters at the end of the "vim -r" swap
files message (direct output of CR CR LF).
<A HREF="os_dos.html#DOS">DOS</A> 32 bit: "vim -r" put the text at the top of the <A HREF="windows.html#window">window</A>.
<A HREF="gui.html#GUI">GUI</A>: With <A HREF="options.html#'mousefocus'">'mousefocus'</A> set, got mouse codes <A HREF="motion.html#as">as</A> text with "!sleep 100" or "<A HREF="intro.html#Q">Q</A>".
<A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="change.html#changing">changing</A> <A HREF="options.html#'guifont'">'guifont'</A> to a font of the same size the
screen wasn't redrawn.
<A HREF="os_unix.html#Unix">Unix</A>: When using "<A HREF="quickfix.html#:make">:make</A>", jumping to a file b.c, which is already open <A HREF="motion.html#as">as</A> a
symbolic link a.c, opened a new buffer instead of using the existing one.
Inserting text in the current buffer while sourcing the <A HREF="starting.html#.vimrc">.vimrc</A> file would
cause a crash or hang. The memfile for the current buffer was never
allocated. Now it's allocated <A HREF="motion.html#as">as</A> soon <A HREF="motion.html#as">as</A> something is written in the buffer.
<A HREF="os_dos.html#DOS">DOS</A> 32 bit: "lightblue" background worked for text, but not drawn parts were
black.
<A HREF="os_dos.html#DOS">DOS</A>: Colors of console were not restored upon <A HREF="starting.html#exiting">exiting</A>.
When <A HREF="repeat.html#recording">recording</A>, with <A HREF="options.html#'cmdheight'">'cmdheight'</A> set to 2 and typing Esc> in <A HREF="insert.html#Insert">Insert</A> mode
caused the "<A HREF="repeat.html#recording">recording</A>" message to be doubled.
Spurious "file changed" <A HREF="message.html#messages">messages</A> could happen on Windows. Now tolerate a one
second difference, like for Linux.
<A HREF="gui.html#GUI">GUI</A>: When returning from <A HREF="intro.html#Ex">Ex</A> mode, scrollbars were not updated.
<A HREF="os_win32.html#Win32">Win32</A>: Copying text to the <A HREF="gui.html#clipboard">clipboard</A> containing a <A HREF="motion.html#<CR>"><CR></A>, pasting <A HREF="motion.html#it">it</A> would
replace <A HREF="motion.html#it">it</A> with a <A HREF="motion.html#<NL>"><NL></A> and drop the next character.
Entering a double byte character didn't work if the second byte is in [xXoO].
(Eric Lee)
vim_realloc was both defined and had a prototype in proto/misc2.pro. Caused
conflicts on Solaris.
A <A HREF="pattern.html#pattern">pattern</A> in an <A HREF="autocmd.html#autocommand">autocommand</A> was treated differently on <A HREF="os_dos.html#DOS">DOS</A> et al. than on
<A HREF="os_unix.html#Unix">Unix</A>. Now it's the same, also when using backslashes.
When using <A HREF="motion.html#<Tab>"><Tab></A> <A HREF="if_cscop.html#twice">twice</A> for command line completion, without a match, the <A HREF="motion.html#<Tab>"><Tab></A>
would be inserted. (Negri)
Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri)
Testing the result of mktemp() for failure was wrong. Could cause a crash.
(Peters)
<A HREF="gui.html#GUI">GUI</A>: When checking for a "<A HREF="gui.html#.gvimrc">.gvimrc</A>" file in the current directory, didn't check
for a "<A HREF="gui.html#_gvimrc">_gvimrc</A>" file too.
<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: When using the popup menu and then adding an item to the menu <A HREF="motion.html#bar">bar</A>,
the menu <A HREF="motion.html#bar">bar</A> would get very high.
Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and
dialogs. Now they are ignored.
When at the <A HREF="message.html#more-prompt">more-prompt</A>, xterm selection didn't work. Now use the '<A HREF="change.html#r">r</A>' flag in
<A HREF="options.html#'mouse'">'mouse'</A> also for the <A HREF="message.html#more-prompt">more-prompt</A>.
When selecting a <A HREF="visual.html#Visual">Visual</A> area of more than 1023 lines, with <A HREF="options.html#'guioptions'">'guioptions'</A> set to
"<A HREF="insert.html#a">a</A>", could mess up the display because of a message in free_yank(). Removed
that message, except for the <A HREF="os_amiga.html#Amiga">Amiga</A>.
Moved auto-selection from ui_write() to the screen update <A HREF="eval.html#functions">functions</A>. Avoids
unexpected behavior from a low-level function. Also makes the different
feedback of owning the selection possible.
<A HREF="intro.html#Vi">Vi</A> incompatibility: Using "i<CR>" in an indent, with <A HREF="options.html#'ai'">'ai'</A> set, used the
original indent instead of truncating <A HREF="motion.html#it">it</A> at the cursor. (Webb)
"<A HREF="eval.html#:echo">:echo</A> x" didn't stop at "<A HREF="repeat.html#q">q</A>" for the more prompt.
Various fixes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (St-Amant)
When using <A HREF="options.html#'selectmode'">'selectmode'</A> set to "<A HREF="motion.html#exclusive">exclusive</A>", selecting a <A HREF="motion.html#word">word</A> and then using
<A HREF="tagsrch.html#CTRL-]">CTRL-]</A> included the character under the cursor.
Using "<A HREF="eval.html#:let">:let</A> a:name" in a function caused a crash. (Webb)
When using "<A HREF="insert.html#:append">:append</A>", an empty line didn't scroll up.
<A HREF="os_dos.html#DOS">DOS</A> etc.: A file name starting with '<A HREF="change.html#!">!</A>' didn't work. Added '<A HREF="change.html#!">!</A>' to default for
<A HREF="options.html#'isfname'">'isfname'</A>.
<A HREF="os_beos.html#BeOS">BeOS</A>: Compilation problem with prototype of skip_class_name(). (Price)
When <A HREF="change.html#deleting">deleting</A> more than one line, e.g., with "de", could still use "<A HREF="undo.html#U">U</A>"
command, which didn't work properly then.
<A HREF="os_amiga.html#Amiga">Amiga</A>: Could not compile ex_docmd.c, <A HREF="motion.html#it">it</A> was getting too big. Moved some
<A HREF="eval.html#functions">functions</A> to ex_cmds.c.
The <A HREF="eval.html#expand()">expand()</A> function would add a trailing slash for directories.
Didn't give an error message when trying to assign a value to an argument of a
function. (Webb)
Moved including sys/ptem.h to after termios.h. Needed for Sinix.
OLE interface: Don't delete the object in CVimCF::Release() when the reference
<A HREF="intro.html#count">count</A> becomes zero. (Cordell)
<A HREF="if_ole.html#VisVim">VisVim</A> could still crash on exit. (Erhardt)
"<A HREF="change.html#case">case</A> a: <A HREF="change.html#case">case</A> b:" (two <A HREF="change.html#case">case</A> statements in one line) aligned with the second
<A HREF="change.html#case">case</A>. Now <A HREF="motion.html#it">it</A> uses one <A HREF="options.html#'sw'">'sw'</A> for indent. (Webb)
Font initialisation wasn't right for Athena/Motif <A HREF="gui.html#GUI">GUI</A>. Moved the call to
highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam)
In <A HREF="insert.html#Replace">Replace</A> mode, backspacing over a TAB before where the replace mode started
while <A HREF="options.html#'sts'">'sts'</A> is different from <A HREF="options.html#'ts'">'ts'</A>, would delete the TAB.
<A HREF="os_win32.html#Win32">Win32</A> console: When executing external commands and switching between the two
console screens, Vim would copy the text between the <A HREF="windows.html#buffers">buffers</A>. That caused the
screen to be messed up for backtick expansion.
"<A HREF="gui.html#:winpos">:winpos</A> -1" then "<A HREF="gui.html#:winpos">:winpos</A>" gave wrong error message.
Windows commander creates files called c:\tmp\$wc\abc.txt. Don't remove the
<A HREF="intro.html#backslash">backslash</A> before the $. Environment <A HREF="eval.html#variables">variables</A> were not expanded anyway,
because of the <A HREF="intro.html#backslash">backslash</A> before the dollar.
Using "-=" with "<A HREF="options.html#:set">:set</A>" could remove half a part when <A HREF="motion.html#it">it</A> contains a "\,".
E.g., "<A HREF="options.html#:set">:set</A> path+=a\\,b" and then "set path-=b" removed ",b".
When Visually selecting lines, with <A HREF="options.html#'selection'">'selection'</A> set to "<A HREF="motion.html#inclusive">inclusive</A>", including
the last char of the line, "<A HREF="change.html#<<"><<</A>" moved an extra line. Also for other operators
that always work on lines.
link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed.
Now <A HREF="motion.html#it">it</A> only remove whole words.
When jumped to a <A HREF="motion.html#mark">mark</A> or using "fz", and there is an error, the current column
was lost. E.g. when using "$fzj".
The "g CTRL-G" command could not be interrupted, even though <A HREF="motion.html#it">it</A> can take a
long time.
Some terminals <A HREF="diff.html#do">do</A> have <A HREF="term.html#<F4>"><F4></A> and <A HREF="term.html#<xF4>"><xF4></A>. <A HREF="term.html#<xF4>"><xF4></A> was always interpreted <A HREF="motion.html#as">as</A> <A HREF="term.html#<F4>"><F4></A>.
Now map <A HREF="term.html#<xF4>"><xF4></A> to <A HREF="term.html#<F4>"><F4></A>, so that the user can override this.
When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
used. (Aaron)
This <A HREF="autocmd.html#autocommand">autocommand</A> looped forever: "<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#FileChangedShell">FileChangedShell</A> * nested <A HREF="motion.html#e">e</A> <afile>"
Now FileChangeShell never nests. (Roemer)
When evaluating an "<A HREF="eval.html#:elseif">:elseif</A>" that was not going to matter anyway, ignore
<A HREF="message.html#errors">errors</A>. (Roemer)
<A HREF="gui.html#GUI">GUI</A> Lesstif: Tearoff <A HREF="motion.html#bar">bar</A> was the last item, instead of the first.
<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Motif">Motif</A>: Colors of tear-off widgets was wrong when '<A HREF="motion.html#t">t</A>' flag added to
<A HREF="options.html#'guioptions'">'guioptions'</A> afterwards. When '<A HREF="motion.html#t">t</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A> is excluded, would
still get a tearoff item in a new menu.
An inode number can be "long long". Use ino_t instead of long. Added
configure check for ino_t.
Binary search for <A HREF="tagsrch.html#tags">tags</A> was using a file offset "long" instead of "off_t".
<A HREF="insert.html#Insert">Insert</A> mode completion of <A HREF="tagsrch.html#tags">tags</A> was not using <A HREF="options.html#'ignorecase'">'ignorecase'</A> properly.
In <A HREF="insert.html#Insert">Insert</A> mode, the <xFn> keys were not properly mapped to <Fn> for the
default mappings. Also caused <A HREF="message.html#errors">errors</A> for "<A HREF="starting.html#:mkvimrc">:mkvimrc</A>" and "<A HREF="starting.html#:mksession">:mksession</A>".
When jumping to another <A HREF="windows.html#window">window</A> while in <A HREF="insert.html#Insert">Insert</A> mode, would get the "warning:
<A HREF="change.html#changing">changing</A> readonly file" even when not making a change.
A '<A HREF="motion.html#(">(</A>' or '<A HREF="motion.html#{">{</A>' inside a trailing "<A HREF="version7.html#//">//</A>" comment would disturb <A HREF="indent.html#C-indenting">C-indenting</A>.
When using two labels below each other, the second one was not indented
properly. Comments could mess up <A HREF="indent.html#C-indenting">C-indenting</A> in many places. (Roemer)
Could delete or redefine a function while <A HREF="motion.html#it">it</A> was being used. Could cause a
crash.
In a function it's logical to prepend "<A HREF="eval.html#g:">g:</A>" to a system variable, but this
didn't work. (Roemer)
Hangul input: Buffer would overflow when user inputs invalid key sequence.
(Nam)
When BufLoad or <A HREF="autocmd.html#BufEnter">BufEnter</A> autocommands change the topline of the buffer in the
<A HREF="windows.html#window">window</A>, <A HREF="motion.html#it">it</A> was overruled and the cursor put halfway the <A HREF="windows.html#window">window</A>. Now only put
the cursor halfway if the autocommands didn't change the topline.
Calling exists("&option") always returned 1. (Roemer)
<A HREF="os_win32.html#Win32">Win32</A>: Didn't take actually available memory into account. (Williams)
White space after an automatically inserted comment leader was not removed
when <A HREF="options.html#'ai'">'ai'</A> is not set and <A HREF="motion.html#<CR>"><CR></A> hit just after <A HREF="insert.html#inserting">inserting</A> <A HREF="motion.html#it">it</A>. (Webb)
A few <A HREF="gui.html#menus">menus</A> had duplicated accelerators. (Roemer)
Spelling <A HREF="message.html#errors">errors</A> in documentation, quite a few "the the". (Roemer)
Missing prototypes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Kielhorn)
<A HREF="os_win32.html#Win32">Win32</A>: When using <A HREF="options.html#'shellquote'">'shellquote'</A> or <A HREF="options.html#'shellxquote'">'shellxquote'</A>, the "!start cmd" wasn't
executed in a disconnected process.
When resizing the <A HREF="windows.html#window">window</A>, causing a line before the cursor to wrap or unwrap,
the cursor was displayed in the wrong position.
There was quite a bit of dead code when compiling with minimal features.
When doing a ":%s///" command that makes lines shorter, such that lines above
the final cursor position no longer wrap, the cursor position was not updated.
get_id_list() could allocate an array one too small, when a "contains=" item
has a <A HREF="editing.html#wildcard">wildcard</A> that matches a group name that is added just after <A HREF="motion.html#it">it</A>. E.g.:
"contains=a.*b,axb". Give an error message for <A HREF="motion.html#it">it</A>.
When yanking a <A HREF="visual.html#Visual">Visual</A> area and using the middle mouse button -> crash. When
<A HREF="gui.html#clipboard">clipboard</A> doesn't work, now make "* always use "".
<A HREF="os_win32.html#Win32">Win32</A>: Using "<A HREF="windows.html#:buf">:buf</A> a\ b\file" didn't work, <A HREF="motion.html#it">it</A> was interpreted <A HREF="motion.html#as">as</A> "ab\file".
Using "<A HREF="tagsrch.html#:ts">:ts</A> ident", then hit <A HREF="motion.html#<CR>"><CR></A>, with <A HREF="options.html#'cmdheight'">'cmdheight'</A> set to 2: command line was
not cleared, the tselect prompt was on the last but one line.
mksession didn't restore the cursor column properly when <A HREF="motion.html#it">it</A> was after a <A HREF="intro.html#tab">tab</A>.
Could not get all <A HREF="windows.html#windows">windows</A> back when using a smaller <A HREF="terminal.html#terminal">terminal</A> screen. Didn't
restore all <A HREF="windows.html#windows">windows</A> when "winsize" was not in <A HREF="options.html#'sessionoptions'">'sessionoptions'</A>. (Webb)
Command line completion for "<A HREF="windows.html#:buffer">:buffer</A>" depended on <A HREF="options.html#'ignorecase'">'ignorecase'</A> for <A HREF="os_unix.html#Unix">Unix</A>, but
not for <A HREF="os_dos.html#DOS">DOS</A> et al. Now don't use <A HREF="options.html#'ignorecase'">'ignorecase'</A>, but let <A HREF="motion.html#it">it</A> depend on whether
file names are <A HREF="change.html#case">case</A> sensitive or not (like when expanding file names).
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: (Negri)
- Redrawing the background caused flicker when resizing the <A HREF="windows.html#window">window</A>. Removed
_OnEraseBG(). Removed CS_HREDRAW and CS_VREDRAW flags from the
sndclass.style.
- Some parts of the <A HREF="windows.html#window">window</A> were drawn in grey, instead of using the color from
the user color scheme.
- Dropping a file on <A HREF="starting.html#gvim">gvim</A> didn't activate the <A HREF="windows.html#window">window</A>.
- When there is no menu ('guioptions' excludes 'm'), never use the ALT key for
<A HREF="motion.html#it">it</A>.
<A HREF="gui.html#GUI">GUI</A>: When resizing the <A HREF="windows.html#window">window</A>, would make the <A HREF="windows.html#window">window</A> height a bit smaller.
Now round off to the nearest char cell size. (Negri)
In <A HREF="intro.html#Vi">Vi</A> the "<A HREF="motion.html#)">)</A>" and "<A HREF="motion.html#(">(</A>" commands don't stop at a single space after a dot.
Added '<A HREF="change.html#J">J</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> to make this behave <A HREF="intro.html#Vi">Vi</A> compatible. (Roemer)
When saving a session without any <A HREF="windows.html#buffers">buffers</A> loaded, there would be a "<A HREF="various.html#:normal">:normal</A>"
command without arguments in <A HREF="motion.html#it">it</A>. (Webb)
Memory leaks fixed: (Madsen)
- eval.c: forgot to release func structure when func deleted
- ex_docmd.c: forgot to release <A HREF="eval.html#string">string</A> after "<A HREF="cmdline.html#<sfile>"><sfile></A>"
- misc1.c: leak when completion <A HREF="pattern.html#pattern">pattern</A> had no matches.
- os_unix.c: forgot to release <A HREF="pattern.html#regexp">regexp</A> after file completions
Could crash when using a buffer without a name. (Madsen)
Could crash when doing file name completion, because of backslash_halve().
(Madsen)
":@a" would <A HREF="diff.html#do">do</A> mappings on <A HREF="sponsor.html#register">register</A> a, which is not <A HREF="intro.html#Vi">Vi</A> compatible. (Roemer)
":g/foo.*()/s/foobar/_&/gc" worked fine, but then "<A HREF="pattern.html#n">n</A>" searched for "foobar"
and displayed "/foo.*()". (Roemer)
<A HREF="os_os2.html#OS/2">OS/2</A>: get_cmd_output() was not included. Didn't check for $VIM/.vimrc file.
Command line completion of <A HREF="options.html#options">options</A> didn't work after "+=" and "-=".
<A HREF="os_unix.html#Unix">Unix</A> configure: Test for memmove()/bcopy()/memcpy() tried redefining these
<A HREF="eval.html#functions">functions</A>, which could fail if they are defined already. Use mch_memmove() to
redefine.
<A HREF="os_unix.html#Unix">Unix</A>: "<A HREF="eval.html#:let">:let</A> a = expand("`xterm`&")" started an xterm asynchronously, but
"<A HREF="eval.html#:let">:let</A> a = expand("`xterm&`")" generated an error message, because the
redirection was put after the '<A HREF="change.html#&">&</A>'.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dialog buttons could not be selected properly with cursor keys,
when the default is not the first button. (Webb)
The "File has changed since editing started" (when regaining focus) could not
always be seen. (Webb)
When starting with "<A HREF="starting.html#ex">ex</A> filename", the file message was overwritten with
the "entering <A HREF="intro.html#Ex">Ex</A> mode" message.
Output of "<A HREF="tagsrch.html#:tselect">:tselect</A>" listed name of file directly from the <A HREF="tagsrch.html#tags">tags</A> file. Now <A HREF="motion.html#it">it</A>
is corrected for the position of the <A HREF="tagsrch.html#tags">tags</A> file.
When <A HREF="options.html#'backspace'">'backspace'</A> is 0, could backspace over autoindent. Now <A HREF="motion.html#it">it</A> is no longer
allowed (Vi compatible).
In <A HREF="insert.html#Replace">Replace</A> mode, when <A HREF="options.html#'noexpandtab'">'noexpandtab'</A> and <A HREF="options.html#'smarttab'">'smarttab'</A> were set, and <A HREF="insert.html#inserting">inserting</A>
Tabs, backspacing didn't work correctly for Tabs inserted at the start of the
line (unless <A HREF="options.html#'sts'">'sts'</A> was set too). Also, when <A HREF="change.html#replacing">replacing</A> the first non-blank
after which is a space, rounding the indent was done on the first non-blank
instead of on the character under the cursor.
When <A HREF="options.html#'sw'">'sw'</A> at 4, <A HREF="options.html#'ts'">'ts'</A> at 8 and <A HREF="options.html#'smarttab'">'smarttab'</A> set: When a <A HREF="intro.html#tab">tab</A> was appended after
four spaces (they are replaced with a <A HREF="intro.html#tab">tab</A>) couldn't backspace over the <A HREF="intro.html#tab">tab</A>.
In <A HREF="insert.html#Insert">Insert</A> mode, with <A HREF="options.html#'bs'">'bs'</A> set to 0, couldn't backspace to before autoindent,
even when <A HREF="motion.html#it">it</A> was removed with <A HREF="scroll.html#CTRL-D">CTRL-D</A>.
When <A HREF="repeat.html#repeating">repeating</A> an insert command where a <A HREF="motion.html#<BS>"><BS></A>, <A HREF="motion.html#<Left>"><Left></A> or other key causes an
error, would flush <A HREF="windows.html#buffers">buffers</A> and remain in <A HREF="insert.html#Insert">Insert</A> mode. No longer flush
<A HREF="windows.html#buffers">buffers</A>, only beep and continue with the insert command.
Dos and <A HREF="os_win32.html#Win32">Win32</A> console: Setting <A HREF="term.html#t_me">t_me</A> didn't work to get another color. Made
this works backwards compatible.
For Turkish (LANG = "tr") <A HREF="change.html#uppercase">uppercase</A> '<A HREF="insert.html#i">i</A>' is not an '<A HREF="insert.html#I">I</A>'. Use ASCII <A HREF="change.html#uppercase">uppercase</A>
translation in vim_strup() to avoid language problems. (Komur)
<A HREF="os_unix.html#Unix">Unix</A>: Use usleep() or nanosleep() for mch_delay() when available. Hopefully
this avoids a hangup in select(0, ..) for Solaris 2.6.
Vim would crash when using a <A HREF="usr_41.html#script">script</A> file with 'let &sp = "| tee"', starting
vim with "vim <A HREF="starting.html#-u">-u</A> test", then doing "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'sp'">sp</A>=". The P_WAS_SET flag wasn't set
for a <A HREF="eval.html#string">string</A> option, could cause problems with any <A HREF="eval.html#string">string</A> option.
When using "cmd | vim -", stdin is not a <A HREF="terminal.html#terminal">terminal</A>. This gave problems with
GPM (Linux console mouse) and when executing external commands. Now close
stdin and re-open <A HREF="motion.html#it">it</A> <A HREF="motion.html#as">as</A> a copy of stderr.
<A HREF="autocmd.html#Syntax">Syntax</A> highlighting: A "nextgroup" item was not properly stored in the state
<A HREF="eval.html#list">list</A>. This caused missing of next groups when not redrawing from start to
end, but starting halfway.
Didn't check for valid values of <A HREF="options.html#'ttymouse'">'ttymouse'</A>.
When executing an external command from the <A HREF="gui.html#GUI">GUI</A>, waiting for the child to
terminate might not work, causing a hang. (Parmelan)
"make uninstall" didn't delete the <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A> and gvimrc_example.vim
files and the <A HREF="usr_01.html#vimtutor">vimtutor</A>.
<A HREF="os_win32.html#Win32">Win32</A>: "expand("%:p:h")" with no buffer name removed the directory name.
"fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed <A HREF="motion.html#it">it</A>.
Fixed: When <A HREF="options.html#'hlsearch'">'hlsearch'</A> was set and the '<A HREF="change.html#c">c</A>' flag was not in <A HREF="options.html#'cpoptions'">'cpoptions'</A>:
highlighting was not correct. Now overlapping matches are handled correctly.
<A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When started without focus, cursor was shown <A HREF="motion.html#as">as</A> if
with focus.
Don't include <A HREF="options.html#'shellpipe'">'shellpipe'</A> when compiled without <A HREF="quickfix.html#quickfix">quickfix</A>, it's not used.
Don't include <A HREF="options.html#'dictionary'">'dictionary'</A> option when compiled without the <A HREF="various.html#+insert_expand">+insert_expand</A>
feature.
Only include the <A HREF="options.html#'shelltype'">'shelltype'</A> option for the <A HREF="os_amiga.html#Amiga">Amiga</A>.
When making a change to a line, with <A HREF="options.html#'hlsearch'">'hlsearch'</A> on, causing <A HREF="motion.html#it">it</A> to wrap, while
executing a <A HREF="sponsor.html#register">register</A>, the screen would not be updated correctly. This was a
generic problem in update_screenline() being called while must_redraw is
VALID.
Using "<A HREF="windows.html#:bdelete">:bdelete</A>" in a <A HREF="autocmd.html#BufUnload">BufUnload</A> <A HREF="autocmd.html#autocommand">autocommand</A> could cause a crash. The <A HREF="windows.html#window">window</A>
height was added to another <A HREF="windows.html#window">window</A> <A HREF="if_cscop.html#twice">twice</A> in close_window().
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When removing a menu item, the tearoff wasn't updated. (Negri)
Some performance bottlenecks removed. Allocating memory was not efficient.
For <A HREF="os_win32.html#Win32">Win32</A> checking for available memory was slow, don't check <A HREF="motion.html#it">it</A> every time
now. On NT obtaining the user name takes a long time, cache the result (for
all systems).
<A HREF="eval.html#fnamemodify()">fnamemodify()</A> with an argument ":~:." or ":.:~" didn't work properly.
When editing a new file and <A HREF="starting.html#exiting">exiting</A>, the marks for the buffer were not saved
in the <A HREF="starting.html#viminfo">viminfo</A> file.
"<A HREF="editing.html#:confirm">:confirm</A> only" didn't put up a <A HREF="gui_w32.html#dialog">dialog</A>.
These text <A HREF="index.html#objects">objects</A> didn't work when <A HREF="options.html#'selection'">'selection'</A> was "<A HREF="motion.html#exclusive">exclusive</A>": va( vi( va{
vi{ va< vi< vi[ va[.
The <A HREF="gui_w32.html#dialog">dialog</A> for <A HREF="editing.html#writing">writing</A> a readonly file didn't have a valid default. (Negri)
The line number used for error <A HREF="message.html#messages">messages</A> when sourcing a file was reset when
modelines were inspected. It was wrong when executing a function.
The file name and line number for an error message wasn't displayed when <A HREF="motion.html#it">it</A>
was the same <A HREF="motion.html#as">as</A> for the last error, even when this was long ago. Now reset
the name/lnum after a <A HREF="message.html#hit-enter">hit-enter</A> prompt.
In a session file, a "<A HREF="motion.html#%">%</A>" in a file name caused trouble, because fprintf() was
used to write <A HREF="motion.html#it">it</A> to the file.
When skipping statements, a <A HREF="motion.html#mark">mark</A> in an address wasn't skipped correctly:
"ka|if 0|'ad|else|echo|endif". (Roemer)
"<A HREF="editing.html#:wall">:wall</A>" could overwrite a <A HREF="editing.html#not-edited">not-edited</A> file without asking.
<A HREF="gui.html#GUI">GUI</A>: When $DISPLAY was not set or starting the <A HREF="gui.html#GUI">GUI</A> failed in another way, the
console mode then started with wrong colors and skipped initializations. Now
<A HREF="diff.html#do">do</A> an early check if the <A HREF="gui.html#GUI">GUI</A> can be started. Don't source the <A HREF="gui.html#menu.vim">menu.vim</A> or
<A HREF="gui.html#gvimrc">gvimrc</A> when <A HREF="motion.html#it">it</A> will not. Also <A HREF="diff.html#do">do</A> normal <A HREF="terminal.html#terminal">terminal</A> initializations if the <A HREF="gui.html#GUI">GUI</A>
might not start.
When using a <A HREF="autocmd.html#BufEnter">BufEnter</A> <A HREF="autocmd.html#autocommand">autocommand</A> to position the cursor and scroll the
<A HREF="windows.html#window">window</A>, the cursor was always put at the last used line and halfway the <A HREF="windows.html#window">window</A>
anyhow.
When <A HREF="options.html#'wildmode'">'wildmode'</A> was set to "longest,list:full", "<A HREF="editing.html#:e">:e</A> *.c<Tab><Tab>" didn't <A HREF="eval.html#list">list</A>
the matches. Also avoid that listing after a "longest" lists the wrong
matches when the first expansion changed the <A HREF="eval.html#string">string</A> in front of the cursor.
When using "<A HREF="insert.html#:insert">:insert</A>", "<A HREF="insert.html#:append">:append</A>" or "<A HREF="change.html#:change">:change</A>" inside a while loop, was not able
to break out of <A HREF="motion.html#it">it</A> with a <A HREF="pattern.html#CTRL-C">CTRL-C</A>.
<A HREF="os_win32.html#Win32">Win32</A>: "<A HREF="editing.html#:e">:e</A> ." took an awful long time before an error message when used in
"C:\". Was caused by adding another <A HREF="intro.html#backslash">backslash</A> and then trying to get the full
name for "C:\\".
"<A HREF="gui.html#:winpos">:winpos</A> -10 100" was working like "<A HREF="gui.html#:winpos">:winpos</A> -10 -10", because a pointer was
not advanced past the '<A HREF="motion.html#-">-</A>' sign.
When obtaining the value of a hidden option, would give an error message. Now
just use a zero value.
<A HREF="os_os2.html#OS/2">OS/2</A>: Was using argv[0], even though <A HREF="motion.html#it">it</A> was not a useful name. It could be
just "vim", found in the search path.
Xterm: "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'columns'">columns</A>=78" didn't redraw properly (when lines wrap/unwrap) until
after a delay of <A HREF="options.html#'updatetime'">'updatetime'</A>. Didn't check for the size-changed signal.
<A HREF="options.html#'scrollbind'">'scrollbind'</A> didn't work in <A HREF="insert.html#Insert">Insert</A> mode.
Horizontal scrollbinding didn't always work for "<A HREF="motion.html#0">0</A>" and "<A HREF="motion.html#$">$</A>" commands (e.g.,
when <A HREF="options.html#'showcmd'">'showcmd'</A> was off).
When compiled with minimal features but with <A HREF="gui.html#GUI">GUI</A>, switching on the mouse in an
xterm caused garbage, because the mouse codes were not recognized. Don't
enable the mouse when <A HREF="motion.html#it">it</A> can't be recognized. In the <A HREF="gui.html#GUI">GUI</A> <A HREF="motion.html#it">it</A> also didn't work,
the arguments to the mouse code were not interpreted.
When <A HREF="options.html#'showbreak'">'showbreak'</A> used, in <A HREF="insert.html#Insert">Insert</A> mode, when the cursor is just after the last
character in the line, which is also the in the rightmost column, the cursor
position would be like the <A HREF="options.html#'showbreak'">'showbreak'</A> <A HREF="eval.html#string">string</A> is shown, but <A HREF="motion.html#it">it</A> wasn't.
Autocommands could move the cursor in a new file, so that <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="insert.html#i">i</A> didn't show
the right line. Same for when using a filemark to jump to another file.
When redefining the argument <A HREF="eval.html#list">list</A>, the title used for other <A HREF="windows.html#windows">windows</A> could be
showing the wrong info about the position in the argument <A HREF="eval.html#list">list</A>. Also update
this for a "<A HREF="windows.html#:split">:split</A>" command without arguments.
When editing file 97 of 13, "<A HREF="editing.html#:Next">:Next</A>" didn't work. Now <A HREF="motion.html#it">it</A> goes to the last
file in the argument <A HREF="eval.html#list">list</A>.
<A HREF="insert.html#Insert">Insert</A> mode completion (for dictionaries or included files) could not be
interrupted by typing an <A HREF="intro.html#<Esc>"><Esc></A>. Could get <A HREF="message.html#hit-enter">hit-enter</A> prompt after line
completion, or whenever the informative message would get too long.
When using the "<A HREF="editing.html#:edit">:edit</A>" command to re-edit the same file, an <A HREF="autocmd.html#autocommand">autocommand</A> to
jump to the last cursor position caused the cursor to move. Now set the last
used cursor position to avoid this.
When <A HREF="options.html#'comments'">'comments'</A> has a part that starts with white space, <A HREF="change.html#formatting">formatting</A> the
comment didn't work.
At the "<A HREF="tagsrch.html#:tselect">:tselect</A>" prompt <A HREF="intro.html#Normal">Normal</A> mode mappings were used. That has been
disabled.
When <A HREF="options.html#'selection'">'selection'</A> is not "old", some commands still didn't allow the cursor
past the end-of-line in <A HREF="visual.html#Visual">Visual</A> mode.
<A HREF="gui_x11.html#Athena">Athena</A>: When a menu was deleted, <A HREF="motion.html#it">it</A> would appear again (but not functional)
when adding another menu. Now they don't reappear anymore (although they are
not really deleted either).
Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri)
"<A HREF="scroll.html#ze">ze</A>" didn't work when <A HREF="options.html#'number'">'number'</A> was on. (Davis)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Intellimouse code didn't work properly on Windows 98. (Robinson)
A few files were including proto.h a second time, after vim.h had already done
that, which could cause problems with the vim_realloc() <A HREF="map.html#macro">macro</A>.
<A HREF="os_win32.html#Win32">Win32</A> console: <M-x> or ALT-x was not recognized. Also keypad '<A HREF="motion.html#+">+</A>', '<A HREF="motion.html#-">-</A>' and
'*'. (Negri)
<A HREF="os_msdos.html#MS-DOS">MS-DOS</A>: <M-x> didn't work, produced a two-byte code. Now the alphabetic and
number keys work. (Negri)
When finding a lot of matches for a <A HREF="tagsrch.html#tag">tag</A> completion, the check for avoiding
double matches could take a lot of time. Add a line_breakcheck() to be able
to interrupt this. (Deshpande)
When the command line was getting longer than the screen, the <A HREF="message.html#more-prompt">more-prompt</A>
would be given regularly, and the cursor position would be wrong. Now only
show the part of the command line that fits on the screen and force the cursor
to be positioned on the visible part. There can be text after the cursor
which isn't editable.
At the more prompt and with the console <A HREF="gui_w32.html#dialog">dialog</A>, a cursor key was interpreted
<A HREF="motion.html#as">as</A> <A HREF="intro.html#<Esc>"><Esc></A> and OA. Now recognize special keys in get_keystroke(). Ignore mouse
and scrollbar events.
When typing a BS after <A HREF="insert.html#inserting">inserting</A> a middle comment leader, typing the last char
of the end comment leader still changed <A HREF="motion.html#it">it</A> into the end comment leader. (Webb)
When a file system is full, <A HREF="editing.html#writing">writing</A> to a swap file failed. Now first try to
write one block to the file. Try next entry in <A HREF="options.html#'dir'">'dir'</A> if <A HREF="motion.html#it">it</A> fails.
When "<A HREF="change.html#~">~</A>" is in <A HREF="options.html#'whichwrap'">'whichwrap'</A>, doing "<A HREF="change.html#~">~</A>" on last char of a line didn't update the
display.
<A HREF="os_unix.html#Unix">Unix</A>: Expanding <A HREF="editing.html#wildcards">wildcards</A> for "<A HREF="editing.html#:file">:file</A> {\\}" didn't work, because "\}" was
translated to "<A HREF="motion.html#}">}</A>" before the shell got <A HREF="motion.html#it">it</A>. Now don't remove backslashes when
<A HREF="editing.html#wildcards">wildcards</A> are going to be expanded.
<A HREF="os_unix.html#Unix">Unix</A>: "<A HREF="editing.html#:e">:e</A> /tmp/$uid" didn't work. When expanding environment <A HREF="eval.html#variables">variables</A> in a
file name doesn't work, use the shell to expand the file name. "<A HREF="editing.html#:e">:e</A> /tmp/$tty"
still doesn't work though.
"make test" didn't always work on DOS/Windows for test30, because <A HREF="motion.html#it">it</A> depended
on the external "echo" command.
The link.sh <A HREF="usr_41.html#script">script</A> used "make" instead of $MAKE from the Makefile. Caused
problems for generating pathdef.c when "make" doesn't work properly.
On versions that can <A HREF="diff.html#do">do</A> console and <A HREF="gui.html#GUI">GUI</A>: In the console a typed CSI code could
cause trouble.
The patterns in <A HREF="eval.html#expression">expression</A> evaluation didn't ignore the '<A HREF="motion.html#l">l</A>' flag in
<A HREF="options.html#'cpoptions'">'cpoptions'</A>. This broke the working of <A HREF="motion.html#<CR>"><CR></A> in the <A HREF="options.html#options">options</A> <A HREF="windows.html#window">window</A>.
When <A HREF="options.html#'hls'">'hls'</A> off and <A HREF="options.html#'ai'">'ai'</A> on, "O<Esc>" did remove the indent, but <A HREF="motion.html#it">it</A> was still
highlighted red for trailing space.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dropping an encrypted file on a running <A HREF="starting.html#gvim">gvim</A> didn't work right. Vim
would loop while outputting "*" characters. vgetc() was called recursively,
thus <A HREF="motion.html#it">it</A> returns NUL. Added safe_vgetc(), which reads input directly from the
user in this situation.
While reading text from stdin, only an empty screen was shown. Now show that
Vim is reading from stdin.
The cursor shape wasn't set properly when returning to <A HREF="insert.html#Insert">Insert</A> mode, after
using a <A HREF="motion.html#CTRL-O">CTRL-O</A> /asdf command which fails. It would be OK after a few seconds.
Now it's OK right away.
The <A HREF="options.html#'isfname'">'isfname'</A> default for DOS/Windows didn't include the '<A HREF="repeat.html#@">@</A>' character. File
names that contained "dir\@file" could not be edited.
<A HREF="os_win32.html#Win32">Win32</A> console: <C-S-Left> could cause a crash when compiled with Borland or
egcs. (Aaron)
<A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_vms.html#VMS">VMS</A>: "#if HAVE_DIRENT_H" caused problems for some compilers. Use
"#ifdef HAVE_DIRENT_H" instead. (Jones)
When a matching <A HREF="tagsrch.html#tag">tag</A> is in the current file but has a search <A HREF="pattern.html#pattern">pattern</A> that
doesn't match, the cursor would jump to the first line.
<A HREF="os_unix.html#Unix">Unix</A>: Dependencies for pty.c were not included in Makefile. Dependency of
ctags/config.h was not included (only matters for parallel make).
Removed a few Uninitialized Memory Reads (potential crashes). In do_call()
calling clear_var() when not evaluating. In win32_expandpath() and
dos_expandpath() calling backslash_halve() past the end of a file name.
Removed memory leaks: Set_vim_var_string() never freed the value. The
next_list for a <A HREF="syntax.html#syntax">syntax</A> keyword was never freed.
On non-Unix systems, using a file name with <A HREF="editing.html#wildcards">wildcards</A> without a match would
silently fail. E.g., "<A HREF="editing.html#:e">:e</A> *.sh". Now give a "No match" error message.
The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized
<A HREF="motion.html#as">as</A> Vim scripts. Renamed them to *.vim.
[Note: some numbered patches are not relevant when upgrading from version 5.3,
they have been removed]
Patch 5.4m.1
Problem: When editing a file with a long name, would get the <A HREF="message.html#hit-enter">hit-enter</A>
prompt, even though all settings are such that the name should be
truncated to avoid that. filemess() was <A HREF="print.html#printing">printing</A> the file name
without truncating <A HREF="motion.html#it">it</A>.
Solution: Truncate the message in filemess(). Use the same code <A HREF="motion.html#as">as</A> for
msg_trunc_attr(), which is moved to the new function
msg_may_trunc().
Files: src/message.c, src/proto/message.pro, src/fileio.c
Patch 5.4m.3
Problem: The <A HREF="gui_x11.html#Motif">Motif</A> libraries were not found by configure for Digital <A HREF="os_unix.html#Unix">Unix</A>.
Solution: Add "/usr/shlib" to the search path. (Andy Kahn)
Files: src/configure.in, src/configure
Patch 5.4m.5
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using the Save-As menu entry and selecting an
existing file in the file browser, would get a <A HREF="gui_w32.html#dialog">dialog</A> to confirm
overwriting <A HREF="if_cscop.html#twice">twice</A>. (Ed Krall)
Solution: Removed the <A HREF="gui_w32.html#dialog">dialog</A> from the file browser. It would be nicer to
set the "forceit" flag and skip Vim's "<A HREF="editing.html#:confirm">:confirm</A>" <A HREF="gui_w32.html#dialog">dialog</A>, but <A HREF="motion.html#it">it</A>
requires quite a few changes to <A HREF="diff.html#do">do</A> that.
Files: src/gui_w32.c
Patch 5.4m.6
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When reading text from stdin, e.g., "cat foo | <A HREF="starting.html#gvim">gvim</A> -",
a message box would pop up with "-stdin-" (when <A HREF="starting.html#exiting">exiting</A>). (Michael
Schaap)
Solution: Don't switch off <A HREF="term.html#termcap">termcap</A> mode for versions that are GUI-only.
They use another <A HREF="terminal.html#terminal">terminal</A> to read from stdin.
Files: src/main.c, src/fileio.c
Patch 5.4m.7
Problem: <A HREF="os_unix.html#Unix">Unix</A>: running configure with --enable-gtk-check,
--enable-motif-check, --enable-athena-check or --enable-gtktest
had the reverse effect. (Thomas Koehler)
Solution: Use $enable_gtk_check variable correctly in AC_ARG_ENABLE().
Files: src/configure.in, src/configure
Patch 5.4m.9
Problem: Multi-byte: With wrapping lines, the cursor was sometimes 2
characters to the left. <A HREF="autocmd.html#Syntax">Syntax</A> highlighting was wrong when a
double-byte character was split for a wrapping line. When
<A HREF="options.html#'showbreak'">'showbreak'</A> was on the splitting also didn't work.
Solution: Adjust getvcol() and win_line(). (Chong-Dae Park)
Files: src/charset.c, src/screen.c
Patch 5.4m.11
Problem: The "<A HREF="eval.html#:call">:call</A>" command didn't check for illegal trailing characters.
(Stefan Roemer)
Solution: Add the check in do_call().
Files: src/eval.c
Patch 5.4m.13
Problem: With the "<A HREF="change.html#:s">:s</A>" command:
1. When performing a substitute command, the mouse would be
disabled and enabled for every substitution.
2. The cursor position could be beyond the end of the line.
Calling line_breakcheck() could try to position the cursor,
which causes a crash in the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>.
3. When using "<A HREF="change.html#:s">:s</A>" in a "<A HREF="repeat.html#:g">:g</A>" command, the cursor was not put on
the first non-white in the line.
4. There was a <A HREF="message.html#hit-enter">hit-enter</A> prompt when confirming the substitution
and the replacement was a bit longer.
Solution: 1. Only disable/enable the mouse when asking for confirmation.
2. Always put the cursor on the first character, <A HREF="motion.html#it">it</A> is going to be
moved to the first non-blank anyway.
Don't use the cursor position in gui_mch_draw_hollow_cursor(),
get the character from the screen buffer.
3. Added global_need_beginline flag to call beginline() after "<A HREF="repeat.html#:g">:g</A>"
has finished all substitutions.
4. Clear the need_wait_return flag after prompting the user.
Files: src/ex_cmds.c, src/gui_w32.c
Patch 5.4m.14
Problem: When doing "vim xxx", "<A HREF="options.html#:opt">:opt</A>", "<A HREF="windows.html#:only">:only</A>" and then "<A HREF="editing.html#:e">:e</A> xxx" we end
up with two swapfiles for "xxx". That is caused by the "<A HREF="windows.html#:bdel">:bdel</A>"
command which is executed when unloading the <A HREF="options.html#option-window">option-window</A>.
Also, there was no check if closing a buffer made the new one
invalid, this could cause a crash.
Solution: When closing a buffer causes the current buffer to be deleted,
use the new buffer to replace <A HREF="motion.html#it">it</A>. Also detect that the new buffer
has become invalid <A HREF="motion.html#as">as</A> a side effect of closing the current one.
Make <A HREF="autocmd.html#autocommand">autocommand</A> that calls "<A HREF="windows.html#:bdel">:bdel</A>" in optwin.vim nested, so that
the buffer loading <A HREF="motion.html#it">it</A> triggers also executes autocommands.
Also added a test for this in test13.
Files: runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h
src/testdir/test13.in, src/testdir/test13.ok
Patch 5.4m.15
Problem: When using a <A HREF="autocmd.html#BufEnter">BufEnter</A> <A HREF="autocmd.html#autocommand">autocommand</A> to <A HREF="editing.html#reload">reload</A> the <A HREF="syntax.html#syntax">syntax</A> file,
conversion to HTML caused a crash. (Sung-Hyun Nam)
Solution: When using "<A HREF="syntax.html#:syntax">:syntax</A> clear" the current stack of <A HREF="syntax.html#syntax">syntax</A> items was
not cleared. This will cause memory to be used that has already
been freed. Added call to invalidate_current_state() in
syntax_clear().
Files: src/syntax.c
Patch 5.4m.17
Problem: When omitting a '<A HREF="motion.html#)">)</A>' in an <A HREF="eval.html#expression">expression</A> <A HREF="motion.html#it">it</A> would not be seen <A HREF="motion.html#as">as</A> a
failure.
When detecting an error inside (), there would be an error message
for a missing '<A HREF="motion.html#)">)</A>' too.
When using "<A HREF="eval.html#:echo">:echo</A> 1+|echo 2" there was no error message. (Roemer)
When using "<A HREF="eval.html#:exe">:exe</A> 1+" there was no error message.
When using "<A HREF="eval.html#:return">:return</A> 1+" there was no error message.
Solution: Fix do_echo(), do_execute() and do_return() to give an error
message when eval1() returns FAIL.
Fix eval6() to handle trailing '<A HREF="motion.html#)">)</A>' correctly and return FAIL when
it's missing.
Files: src/eval.c
Patch 5.4m.18
Problem: When using <A HREF="eval.html#input()">input()</A> from inside an <A HREF="eval.html#expression">expression</A> entered with
"<A HREF="undo.html#CTRL-R">CTRL-R</A> =" on the command line, there could be a crash. And the
resulting command line was wrong.
Solution: Added getcmdline_prompt(), which handles recursive use of
<A HREF="eval.html#getcmdline()">getcmdline()</A> correctly. It also sets the command line prompt.
Removed cmdline_prompt(). Also use getcmdline_prompt() for
getting the crypt key in get_crypt_key().
Files: src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c
Patch 5.4m.21
Problem: When starting up, the screen structures were first allocated at
the minimal size, then initializations were done with Rows
possibly different from screen_Rows. Caused a crash in rare
situations (GTK with <A HREF="mbyte.html#XIM">XIM</A> and <A HREF="mbyte.html#fontset">fontset</A>).
Solution: Call screenalloc() in main() only after calling ui_get_winsize().
Also avoids a potential delay because of calling screenclear()
while "starting" is non-zero.
Files: src/main.c
Patch 5.4m.22
Problem: In the <A HREF="gui.html#GUI">GUI</A> <A HREF="motion.html#it">it</A> was possible that the screen was resized and the
screen structures re-allocated while redrawing the screen. This
could cause a crash (hard to reproduce). The call sequence goes
through update_screen() .. syntax_start() .. ui_breakcheck() ..
gui_resize_window() .. screenalloc().
Solution: Set updating_screen while redrawing. If the <A HREF="windows.html#window">window</A> is resized
remember the new size and handle <A HREF="motion.html#it">it</A> only after redrawing is
finished.
This also fixes that resizing the screen while still redrawing
(slow <A HREF="syntax.html#syntax">syntax</A> highlighting) would not work properly.
Also disable display_hint, <A HREF="motion.html#it">it</A> was never used.
Files: src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro
Patch 5.4m.23
Problem: When using expand("<cword>") when there was no <A HREF="motion.html#word">word</A> under the
cursor, would get an error message. Same for <cWORD> and <A HREF="cmdline.html#<cfile>"><cfile></A>.
Solution: Don't give an error message, return an empty <A HREF="eval.html#string">string</A>.
Files: src/eval.c
Patch 5.4m.24
Problem: "<A HREF="helphelp.html#:help">:help</A> \|" didn't find anything. It was translated to "/\\|".
Solution: Translate "\|" into "\\bar". First check the table for specific
translations before checking for "\x".
Files: src/ex_cmds.c
Patch 5.4m.25
Problem: <A HREF="os_unix.html#Unix">Unix</A>: When using command line completion on files that contain
'<A HREF="motion.html#'">'</A>', '"'' or '|' the file name could not be used.
Adding this file name to the Buffers menu caused an error message.
Solution: <A HREF="insert.html#Insert">Insert</A> a <A HREF="intro.html#backslash">backslash</A> before these three characters.
Adjust Mungename() function to insert a <A HREF="intro.html#backslash">backslash</A> before '|'.
Files: src/ex_getln.c, runtime/menu.vim
Patch 5.4m.26
Problem: When using a <A HREF="map.html#mapping">mapping</A> of two function keys, e.g., <F1><F1>, and
only the first char of the second key has been read, the <A HREF="map.html#mapping">mapping</A>
would not be recognized. Noticed on some <A HREF="os_unix.html#Unix">Unix</A> systems with xterm.
Solution: Add '<A HREF="various.html#K">K</A>' flag to <A HREF="options.html#'cpoptions'">'cpoptions'</A> to wait for the whole key code, even
when halfway a <A HREF="map.html#mapping">mapping</A>.
Files: src/option.h, src/term.c
Patch 5.4m.27
Problem: When making test33 without the lisp feature <A HREF="motion.html#it">it</A> hangs. Interrupting
the execution of the <A HREF="usr_41.html#script">script</A> then might cause a crash.
Solution: In inchar(), after closing a <A HREF="usr_41.html#script">script</A>, don't use buf[] anymore.
closescript() has freed typebuf[] and buf[] might be pointing
inside typebuf[].
Avoid that test33 hangs when the lisp feature is missing.
Files: src/getchar.c src/testdir/test33.in
"<A HREF="os_os2.html#os2">os2</A>" was missing from the feature <A HREF="eval.html#list">list</A>. Useful for has("os2").
<A HREF="os_beos.html#BeOS">BeOS</A>:
- Included patches from Richard Offer for <A HREF="os_beos.html#BeOS">BeOS</A> R4.5.
- menu code didn't work right. Crashed in the Buffers menu. The <A HREF="windows.html#window">window</A> title
wasn't set. (Offer)
Patch 5.4n.3
Problem: <A HREF="indent.html#C-indenting">C-indenting</A> was wrong after " } else". The white space was not
skipped. Visible when <A HREF="options.html#'cino'">'cino'</A> has "+10".
Solution: Skip white space before calling cin_iselse(). (Norbert Zeh)
Files: src/misc1.c
Patch 5.4n.4
Problem: When the '<A HREF="motion.html#t">t</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is included, after a
"<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>" the search highlighting would not be enabled again
after a <A HREF="tagsrch.html#tag">tag</A> search. (Norbert Zeh)
Solution: When setting the new search <A HREF="pattern.html#pattern">pattern</A> in jumpto_tag(), don't restore
no_hlsearch.
Files: src/tag.c
Patch 5.4n.5
Problem: When using "<A HREF="various.html#:normal">:normal</A>" from a <A HREF="autocmd.html#CursorHold">CursorHold</A> <A HREF="autocmd.html#autocommand">autocommand</A> Vim hangs. The
<A HREF="autocmd.html#autocommand">autocommand</A> is executed down from vgetc(). Calling vgetc()
recursively to execute the command doesn't work then.
Solution: Forbid the use of "<A HREF="various.html#:normal">:normal</A>" when vgetc_busy is set. Give an error
message when this happens.
Files: src/ex_docmd.c, runtime/doc/autocmd.txt
Patch 5.4n.6
Problem: "<A HREF="visual.html#gv">gv</A>" could reselect a <A HREF="visual.html#Visual">Visual</A> that starts and/or ends past the end
of a line. (Robert Webb)
Solution: Check that the start and end of the <A HREF="visual.html#Visual">Visual</A> area are on a valid
character by calling adjust_cursor().
Files: src/normal.c
Patch 5.4n.8
Problem: When a <A HREF="motion.html#mark">mark</A> was on a non existing line (e.g., when the .viminfo
was edited), jumping to <A HREF="motion.html#it">it</A> caused ml_get <A HREF="message.html#errors">errors</A>. (Alexey
Marinichev).
Solution: Added check_cursor_lnum() in nv_gomark().
Files: src/normal.c
Patch 5.4n.9
Problem: ":-2" moved the cursor to a negative line number. (Ralf Schandl)
Solution: Give an error message for a negative line number.
Files: src/ex_docmd.c
Patch 5.4n.10
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: At the <A HREF="message.html#hit-enter">hit-enter</A> prompt, <A HREF="motion.html#it">it</A> was possible to scroll the
text. This erased the prompt and made Vim look like <A HREF="motion.html#it">it</A> is in
<A HREF="intro.html#Normal">Normal</A> mode, while <A HREF="motion.html#it">it</A> is actually still waiting for a <A HREF="motion.html#<CR>"><CR></A>.
Solution: Disallow <A HREF="scroll.html#scrolling">scrolling</A> at the <A HREF="message.html#hit-enter">hit-enter</A> prompt for systems that use
on the fly <A HREF="scroll.html#scrolling">scrolling</A>.
Files: src/message.c
Patch 5.4n.14
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using "<A HREF="gui.html#:winsize">:winsize</A> 80 46" and the height is more than
what fits on the screen, the <A HREF="windows.html#window">window</A> size was made smaller than
asked for (that's OK) and Vim crashed (that's not OK)>
Solution: Call check_winsize() from gui_set_winsize() to resize the <A HREF="windows.html#windows">windows</A>.
Files: src/gui.c
Patch 5.4n.16
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The <A HREF="term.html#<F10>"><F10></A> key both selected the menu and was handled <A HREF="motion.html#as">as</A>
a key hit.
Solution: Apply <A HREF="options.html#'winaltkeys'">'winaltkeys'</A> to <A HREF="term.html#<F10>"><F10></A>, like <A HREF="motion.html#it">it</A> is used for Alt keys.
Files: src/gui_w32.c
Patch 5.4n.17
Problem: Local buffer <A HREF="eval.html#variables">variables</A> were freed when the buffer is unloaded.
That's not logical, since <A HREF="options.html#options">options</A> are not freed. (Ron Aaron)
Solution: Free local buffer <A HREF="eval.html#variables">variables</A> only when <A HREF="change.html#deleting">deleting</A> the buffer.
Files: src/buffer.c
Patch 5.4n.19
Problem: Doing "<A HREF="editing.html#:e">:e</A>" (without argument) in an <A HREF="options.html#option-window">option-window</A> causes trouble.
The mappings for <A HREF="motion.html#<CR>"><CR></A> and <A HREF="motion.html#<Space>"><Space></A> are not removed. When there is
another buffer loaded, the swap file for <A HREF="motion.html#it">it</A> gets mixed up.
(Steve Mueller)
Solution: Also remove the mappings at the <A HREF="autocmd.html#BufUnload">BufUnload</A> event, if they are still
present.
When re-editing the same file causes the current buffer to be
deleted, don't try editing <A HREF="motion.html#it">it</A>.
Also added a test for this situation.
Files: runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in,
src/testdir/test13.ok
Patch 5.4n.24
Problem: <A HREF="os_beos.html#BeOS">BeOS</A>: configure never enabled the <A HREF="gui.html#GUI">GUI</A>, because $with_x was "no".
<A HREF="os_unix.html#Unix">Unix</A> prototypes caused problems, because Display and Widget are
undefined.
Freeing fonts on exit caused a crash.
Solution: Only disable the <A HREF="gui.html#GUI">GUI</A> when $with_x is "no" and $BEOS is not "yes".
Add dummy defines for Display and Widget in proto.h.
Don't free the fonts in gui_exit() for <A HREF="os_beos.html#BeOS">BeOS</A>.
Files: src/configure.in, src/configure, src/proto.h, src/gui.c.
The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild)
Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined.
(Aaron)
<A HREF="os_vms.html#VMS">VMS</A>:
- mch_setenv() had two arguments instead of three.
- The system <A HREF="starting.html#vimrc">vimrc</A> and <A HREF="gui.html#gvimrc">gvimrc</A> files were called "<A HREF="starting.html#.vimrc">.vimrc</A>" and "<A HREF="gui.html#.gvimrc">.gvimrc</A>".
Removed the dot.
- call to RealWaitForChar() had one argument too many. (Campbell)
- WaitForChar() is static, removed the prototype from proto/os_vms.pro.
- Many file accesses failed, because <A HREF="os_unix.html#Unix">Unix</A> style file names were used.
Translate file names to <A HREF="os_vms.html#VMS">VMS</A> style by using vim_fopen().
- Filtering didn't work, because the temporary file name was generated wrong.
- There was an extra newline every 9192 characters when <A HREF="editing.html#writing">writing</A> a file. Work
around <A HREF="motion.html#it">it</A> by <A HREF="editing.html#writing">writing</A> line by line. (Campbell)
- os_vms.c contained "<A HREF="pattern.html##">#</A> typedef int DESC". Should be "typedef int DESC;".
Only mattered for generating prototypes.
- Added file name translation to many places. Made <A HREF="starting.html#easy">easy</A> by defining macros
mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat().
- Set default for <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> to off, because binary <A HREF="tagsrch.html#tag">tag</A> searching apparently
doesn't work for <A HREF="os_vms.html#VMS">VMS</A>.
- make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell)
Patch 5.4o.2
Problem: Crash when using "<A HREF="editing.html#gf">gf</A>" on "file.c://comment here". (Scott Graham)
Solution: Fix wrong use of pointers in get_file_name_in_path().
Files: src/window.c
Patch 5.4o.3
Problem: The horizontal scrollbar was not sized correctly when <A HREF="options.html#'number'">'number'</A> is
set and <A HREF="options.html#'wrap'">'wrap'</A> not set.
<A HREF="gui_x11.html#Athena">Athena</A>: Horizontal scrollbar wasn't updated when the cursor was
positioned with a mouse click just after dragging.
Solution: Subtract 8 from the size when <A HREF="options.html#'number'">'number'</A> set and <A HREF="options.html#'wrap'">'wrap'</A> not set.
Reset gui.dragged_sb when a mouse click is received.
Files: src/gui.c
Patch 5.4o.4
Problem: When running in an xterm and $WINDOWID is set to an illegal value,
Vim would exit with "Vim: Got X error".
Solution: When using the display which was opened for the xterm <A HREF="gui.html#clipboard">clipboard</A>,
check if x11_window is valid by trying to obtain the <A HREF="windows.html#window">window</A> title.
Also add a check in setup_xterm_clip(), for when using X calls to
get the pointer position in an xterm.
Files: src/os_unix.c
Patch 5.4o.5
Problem: <A HREF="gui_x11.html#Motif">Motif</A> version with Lesstif: When removing the menubar and then
using a menu shortcut key, Vim would crash. (raf)
Solution: Disable the menu mnemonics when the menu <A HREF="motion.html#bar">bar</A> is removed.
Files: src/gui_motif.c
Patch 5.4o.9
Problem: The <A HREF="os_dos.html#DOS">DOS</A> install.exe program used the "move" program. That doesn't
work on Windows NT, where "move" is internal to cmd.exe.
Solution: Don't use an external program for moving the executables. Use C
<A HREF="eval.html#functions">functions</A> to copy the file and delete the original.
Files: src/dosinst.c
<A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> obtained the status area height differently from <A HREF="gui_x11.html#GTK">GTK</A>. Moved
status_area_enabled from global.h to gui_x11.c and call
xim_get_status_area_height() to get the status area height.
Patch 5.4p.1
Problem: When using auto-select, and the "<A HREF="visual.html#gv">gv</A>" command is used, would not
always obtain ownership of the selection. Caused by the <A HREF="visual.html#Visual">Visual</A>
area still being the same, but ownership taken away by another
program.
Solution: Reset the <A HREF="gui.html#clipboard">clipboard</A> <A HREF="visual.html#Visual">Visual</A> mode to force updating the selection.
Files: src/normal.c
Patch 5.4p.2
Problem: <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> with <A HREF="mbyte.html#XIM">XIM</A>: Typing 3-byte
<multibyte><multibyte><space> doesn't work correctly with Ami <A HREF="mbyte.html#XIM">XIM</A>.
Solution: Avoid using key_sym XK_VoidSymbol. (Nam)
Files: src/multbyte.c, src/gui_x11.c
Patch 5.4p.4
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The scrollbar values were reduced for a file with more
than 32767 lines. But this info was kept global for all
scrollbars, causing a mixup between the <A HREF="windows.html#windows">windows</A>.
Using the down arrow of a scrollbar in a large file didn't work.
Because of round-off <A HREF="message.html#errors">errors</A> there is no scroll at all.
Solution: Give each scrollbar its own scroll_shift field. When the down
arrow is used, scroll several lines.
Files: src/gui.h, src/gui_w32.c
Patch 5.4p.5
Problem: When <A HREF="change.html#changing">changing</A> <A HREF="windows.html#buffers">buffers</A> in a <A HREF="autocmd.html#BufDelete">BufDelete</A> <A HREF="autocmd.html#autocommand">autocommand</A>, there could be
ml_line <A HREF="message.html#errors">errors</A> and/or a crash. (Schandl) Was caused by <A HREF="change.html#deleting">deleting</A>
the current buffer.
Solution: When the buffer to be deleted unexpectedly becomes the current
buffer, don't delete <A HREF="motion.html#it">it</A>.
Also added a check for this in test13.
Files: src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok
Patch 5.4p.7
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="options.html#'mousemodel'">'mousemodel'</A> set to "popup_setpos" and
clicking the right mouse button outside of the selected area, the
selected area wasn't removed until the popup menu has gone.
(Aaron)
Solution: Set the cursor and update the display before showing the popup
menu.
Files: src/normal.c
Patch 5.4p.8
Problem: The generated bugreport didn't contain information about
<A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> and whether runtime files actually exist.
Solution: Added a few checks to the bugreport <A HREF="usr_41.html#script">script</A>.
Files: runtime/bugreport.vim
Patch 5.4p.9
Problem: The <A HREF="windows.html#windows">windows</A> install.exe created a wrong entry in the popup menu.
The "%1" was "". The full directory was included, even when the
executable had been moved elsewhere. (Ott)
Solution: Double the '<A HREF="motion.html#%">%</A>' to get one from printf. Only include the path to
gvim.exe when <A HREF="motion.html#it">it</A> wasn't moved and it's not in $PATH.
Files: src/dosinst.c
Patch 5.4p.10
Problem: <A HREF="os_win32.html#Win32">Win32</A>: On top of 5.4p.9: The "Edit with Vim" entry sometimes used
a short file name for a directory.
Solution: Change the "%1" to "%L" in the registry entry.
Files: src/dosinst.c
Patch 5.4p.11
Problem: <A HREF="gui_x11.html#Motif">Motif</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#GTK">GTK</A>: When closing the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> when there is a
changed buffer, there was only an error message and Vim would not
exit.
Solution: Put up a <A HREF="gui_w32.html#dialog">dialog</A>, like for "<A HREF="editing.html#:confirm">:confirm</A> qa". Uses the code that was
already used for <A HREF="os_win32.html#MS-Windows">MS-Windows</A>.
Files: src/gui.c, src/gui_w32.c
Patch 5.4p.12
Problem: <A HREF="os_win32.html#Win32">Win32</A>: Trying to expand a <A HREF="eval.html#string">string</A> that is longer than 256
characters could cause a crash. (Steed)
Solution: For the buffer in win32_expandpath() don't use a fixed size array,
allocate <A HREF="motion.html#it">it</A>.
Files: src/os_win32.c
<A HREF="os_msdos.html#MSDOS">MSDOS</A>: Added "-Wall" to Makefile.djg compile flags. Function prototypes for
fname_case() and mch_update_cursor() were missing. "fd" was unused in
mf_sync(). "puiLocation" was unused in myputch(). "newcmd" unused in
mch_call_shell() for DJGPP version.
==============================================================================
VERSION 5.5 *<A NAME="version-5.5"></A><B>version-5.5</B>*
Version 5.5 is a bug-fix version of 5.4.
Changed *<A NAME="changed-5.5"></A><B>changed-5.5</B>*
The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the
size of the executables.
Moved the src/STYLE file to runtime/doc/develop.txt. Added the design goals
to <A HREF="motion.html#it">it</A>.
<A HREF="options.html#'backspace'">'backspace'</A> is now a <A HREF="eval.html#string">string</A> option. See patch 5.4.15.
Added *<A NAME="added-5.5"></A><B>added-5.5</B>*
Included Exuberant Ctags version 3.3. (Darren Hiebert)
In runtime/mswin.vim, map <A HREF="gui_w32.html#CTRL-Q">CTRL-Q</A> to <A HREF="visual.html#CTRL-V">CTRL-V</A>, so that <A HREF="gui_w32.html#CTRL-Q">CTRL-Q</A> can be used
everywhere to <A HREF="diff.html#do">do</A> what <A HREF="visual.html#CTRL-V">CTRL-V</A> used to <A HREF="diff.html#do">do</A>.
Support for decompression of <A HREF="pi_gzip.html#bzip2">bzip2</A> files in <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A>.
When a patch is included, the patch number is entered in a table in version.c.
This allows skipping a patch without breaking a next one.
Support for mouse scroll wheel in <A HREF="options.html#X11">X11</A>. See patch 5.5a.14.
<A HREF="eval.html#line2byte()">line2byte()</A> can be used to get the size of the buffer. See patch 5.4.35.
The <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="change.html#r">r</A> and <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-P">CTRL-P</A> <A HREF="change.html#r">r</A> commands in <A HREF="insert.html#Insert">Insert</A> mode are used to
insert a <A HREF="sponsor.html#register">register</A> literally. See patch 5.4.48.
Uninstall program for <A HREF="os_win32.html#MS-Windows">MS-Windows</A>. To be able to remove the registry entries
for "Edit with Vim". It is registered to be run from the "Add/Remove
programs" application. See patch 5.4.x7.
Fixed *<A NAME="fixed-5.5"></A><B>fixed-5.5</B>*
When using <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A>: An error message when the cursor is on a line
higher than the number of lines in the compressed file. Move the <A HREF="autocmd.html#autocommand">autocommand</A>
for jumping to the last known cursor position to after the decompressing
autocommands.
"<A HREF="starting.html#:mkexrc">:mkexrc</A>" and "<A HREF="starting.html#:mksession">:mksession</A>" wrote the current value of <A HREF="options.html#'textmode'">'textmode'</A>. That may
<A HREF="motion.html#mark">mark</A> a file <A HREF="motion.html#as">as</A> modified, which causes problems. This is a buffer-specific
setting, <A HREF="motion.html#it">it</A> should not affect all files.
"vim --version" wrote two empty lines.
<A HREF="os_unix.html#Unix">Unix</A>: The alarm signal could kill Vim. It is generated by the <A HREF="if_perl.html#Perl">Perl</A> alarm()
function. Ignore SIGALRM.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Toolbar still had the yellow bitmap for running a Vim <A HREF="usr_41.html#script">script</A>.
<A HREF="os_beos.html#BeOS">BeOS</A>: "tmo" must be bigtime_t, instead of double. (Seibert)
Patch 5.4.1
Problem: Test11 fails when $GZIP is set to "<A HREF="starting.html#-v">-v</A>". (Matthew Jackson)
Solution: Set $GZIP to an empty <A HREF="eval.html#string">string</A>.
Files: src/testdir/test11.in
Patch 5.4.2
Problem: Typing <A HREF="intro.html#<Esc>"><Esc></A> at the crypt key prompt caused a crash. (Kallingal)
Solution: Check for a NULL pointer returned from get_crypt_key().
Files: src/fileio.c
Patch 5.4.3
Problem: <A HREF="if_pyth.html#Python">Python</A>: Trying to use the name of an unnamed buffer caused a
crash. (Daniel Burrows)
Solution: Check for b_fname being a NULL pointer.
Files: src/if_python.c
Patch 5.4.4
Problem: <A HREF="os_win32.html#Win32">Win32</A>: When compiled without toolbar, but the '<A HREF="motion.html#T">T</A>' flag is in
<A HREF="options.html#'guioptions'">'guioptions'</A>, there would be an empty space for the toolbar.
Solution: Add two #ifdefs where checking for the '<A HREF="motion.html#T">T</A>' flag. (Vince Negri)
Files: src/gui.c
Patch 5.4.5
Problem: <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Using the Buffers.Refresh menu entry caused a crash.
Looks like any "<A HREF="gui.html#:unmenu">:unmenu</A>" command may cause trouble.
Solution: Disallow "<A HREF="gui.html#:unmenu">:unmenu</A>" in the <A HREF="gui_x11.html#Athena">Athena</A> version. Disable the Buffers
menu, because the Refresh item would not work.
Files: src/menu.c, runtime/menu.vim
Patch 5.4.6
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Using "<A HREF="gui_x11.html#:gui">:gui</A>" in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file caused an error. Only
happens when the <A HREF="gui.html#GUI">GUI</A> forks.
Solution: Don't <A HREF="os_unix.html#fork">fork</A> in a recursive call of gui_start().
Files: src/gui.c
Patch 5.4.7
Problem: Typing '<A HREF="repeat.html#q">q</A>' at the more prompt for the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message causes the
file loading to be interrupted. (Will Day)
Solution: Reset got_int after showing the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.
Files: src/memline.c
Patch 5.4.8
Problem: Edit some file, ":he", "<A HREF="options.html#:opt">:opt</A>": <A HREF="options.html#options">options</A> from help <A HREF="windows.html#window">window</A> are shown,
but pressing space updates from the other <A HREF="windows.html#window">window</A>. (Phillipps)
Also: When there are changes in the <A HREF="options.html#option-window">option-window</A>, ":q!" gives an
error message.
Solution: Before creating the <A HREF="options.html#option-window">option-window</A>, go to a non-help <A HREF="windows.html#window">window</A>.
Use ":bdel!" to delete the buffer.
Files: runtime/optwin.vim
Patch 5.4.9
Just updates version.h. The real patch has been moved to 5.4.x1.
This patch is just to keep the version number correct.
Patch 5.4.10
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When $DISPLAY is invalid, "<A HREF="starting.html#gvim">gvim</A> -f" just exits. It
should run in the <A HREF="terminal.html#terminal">terminal</A>.
Solution: Use gtk_init_check() instead of gtk_init().
Files: src/gui_gtk_x11.c
Patch 5.4.11
Problem: When using the '<A HREF="change.html#S">S</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A>, <A HREF="options.html#'tabstop'">'tabstop'</A> is not copied to
the next buffer for some commands, e.g., "<A HREF="windows.html#:buffer">:buffer</A>".
Solution: When the BCO_NOHELP flag is given to buf_copy_options(), still
copy the <A HREF="options.html#options">options</A> used by do_help() when neither the "from" or "to"
buffer is a help buffer.
Files: src/option.c
Patch 5.4.12
Problem: When using <A HREF="options.html#'smartindent'">'smartindent'</A>, there would be no extra indent if the
current line did not have any indent already. (Hanus Adler)
Solution: There was a wrongly placed "else", that previously matched with
the "if" that set trunc_line. Removed the "else" and added a
check for trunc_line to be false.
Files: src/misc1.c
Patch 5.4.13
Problem: New SGI C compilers need another option for optimisation.
Solution: Add a check in configure for "-OPT:Olimit". (Chin A Young)
Files: src/configure.in, src/configure
Patch 5.4.14
Problem: <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: When the popup menu is present, a tiny <A HREF="windows.html#window">window</A> appears
on the desktop for some users.
Solution: Set the menu widget ID for a popup menu to 0. (Thomas Koehler)
Files: src/gui_motif.c
Patch 5.4.15
Problem: Since <A HREF="options.html#'backspace'">'backspace'</A> set to 0 has been made <A HREF="intro.html#Vi">Vi</A> compatible, <A HREF="motion.html#it">it</A> is no
longer possible to only allow <A HREF="change.html#deleting">deleting</A> autoindent.
Solution: Make <A HREF="options.html#'backspace'">'backspace'</A> a <A HREF="eval.html#list">list</A> of parts, to allow each kind of
backspacing separately.
Files: src/edit.c, src/option.c, src/option.h, src/proto/option.pro,
runtime/doc/option.txt, runtime/doc/insert.txt
Patch 5.4.16
Problem: Multibyte: Locale zh_TW.Big5 was not checked for in configure.
Solution: Add zh_TW.Big5 to configure check. (Chih-Tsun Huang)
Files: src/configure.in, src/configure
Patch 5.4.17
Problem: <A HREF="gui.html#GUI">GUI</A>: When started from inside <A HREF="starting.html#gvim">gvim</A> with ":!gvim", Vim would not
start. ":!gvim -f" works fine.
Solution: After forking, wait a moment in the parent process, to give the
child a chance to set its process group.
Files: src/gui.c
Patch 5.4.18
Problem: <A HREF="if_pyth.html#Python">Python</A>: The clear_history() function also exists in a library.
Solution: Rename clear_history() to clear_hist().
Files: src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro
Patch 5.4.19
Problem: In a <A HREF="terminal.html#terminal">terminal</A> with 25 lines, there is a more prompt after the
<A HREF="usr_11.html#ATTENTION">ATTENTION</A> message. When hitting '<A HREF="repeat.html#q">q</A>' here the <A HREF="gui_w32.html#dialog">dialog</A> prompt
doesn't appear and file loading is interrupted. (Will Day)
Solution: Don't allow quitting the <A HREF="print.html#printing">printing</A> of a message for the <A HREF="gui_w32.html#dialog">dialog</A>
prompt. Added the msg_noquit_more flag for this.
Files: src/message.c
Patch 5.4.20
Problem: <A HREF="gui_x11.html#GTK">GTK</A>: When starting <A HREF="starting.html#gvim">gvim</A>, would send <A HREF="intro.html#escape">escape</A> sequences to the
<A HREF="terminal.html#terminal">terminal</A> to switch the cursor off and on.
Solution: Don't call msg_start() if the <A HREF="gui.html#GUI">GUI</A> is expected to start.
Files: src/main.c
Patch 5.4.21
Problem: <A HREF="gui_x11.html#Motif">Motif</A>: Toplevel menu ordering was wrong when using tear-off items.
Solution: Don't add one to the index for a toplevel menu.
Files: src/gui_motif.c
Patch 5.4.22
Problem: In <A HREF="insert.html#Insert">Insert</A> mode, <A HREF="motion.html#<C-Left>"><C-Left></A>, <A HREF="motion.html#<S-Left>"><S-Left></A>, <A HREF="motion.html#<C-Right>"><C-Right></A> and <A HREF="motion.html#<S-Right>"><S-Right></A> didn't
update the column used for vertical <A HREF="intro.html#movement">movement</A>.
Solution: Set curwin->w_set_curswant for those commands.
Files: src/edit.c
Patch 5.4.23
Problem: When a <A HREF="visual.html#Visual">Visual</A> selection is lost to another program, and then the
same text is Visually selected again, the <A HREF="gui.html#clipboard">clipboard</A> ownership
wasn't regained.
Solution: Set clipboard.vmode to NUL to force regaining the <A HREF="gui.html#clipboard">clipboard</A>.
Files: src/normal.c
Patch 5.4.24
Problem: Encryption: When using "<A HREF="insert.html#:r">:r</A> file" while <A HREF="options.html#'key'">'key'</A> has already entered,
the <A HREF="options.html#'key'">'key'</A> option would be messed up. When <A HREF="editing.html#writing">writing</A> the file <A HREF="motion.html#it">it</A>
would be encrypted with an unknown key and lost! (Brad Despres)
Solution: Don't free cryptkey when <A HREF="motion.html#it">it</A> is equal to the <A HREF="options.html#'key'">'key'</A> option.
Files: src/fileio.c
Patch 5.4.25
Problem: When <A HREF="options.html#'cindent'">'cindent'</A> is set, but <A HREF="options.html#'autoindent'">'autoindent'</A> isn't, comments are not
properly indented when starting a new line. (Mitterand)
Solution: When there is a comment leader for the new line, but <A HREF="options.html#'autoindent'">'autoindent'</A>
isn't set, <A HREF="diff.html#do">do</A> <A HREF="indent.html#C-indenting">C-indenting</A>.
Files: src/misc1.c
Patch 5.4.26
Problem: Multi-byte: a <A HREF="mbyte.html#multi-byte">multi-byte</A> character is never recognized in a file
name, causing a <A HREF="intro.html#backslash">backslash</A> before <A HREF="motion.html#it">it</A> to be removed on Windows.
Solution: Assume that a leading-byte character is a file name character in
vim_isfilec().
Files: src/charset.c
Patch 5.4.27
Problem: Entries in the PopUp[nvic] <A HREF="gui.html#menus">menus</A> were added for several modes, but
only deleted for the mode they were used for. This resulted in
the entry remaining in the PopUp menu.
When removing a PopUp[nvic] menu, the name had been truncated,
could result in greying-out the whole PopUp menu.
Solution: Remove entries for all modes from the PopUp[nvic] <A HREF="gui.html#menus">menus</A>. Remove
the PopUp[nvic] menu entries first, before the name is changed.
Files: src/menu.c
Patch 5.4.28
Problem: When using a <A HREF="autocmd.html#BufWritePre">BufWritePre</A> <A HREF="autocmd.html#autocommand">autocommand</A> to change <A HREF="options.html#'fileformat'">'fileformat'</A>, the
new value would not be used for <A HREF="editing.html#writing">writing</A> the file.
Solution: Check <A HREF="options.html#'fileformat'">'fileformat'</A> after executing the autocommands instead of
before.
Files: src/fileio.c
Patch 5.4.29
Problem: <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: When removing the '<A HREF="index.html#g">g</A>' flag from <A HREF="options.html#'guioptions'">'guioptions'</A>, using a
menu can result in a crash.
Solution: Always grey-out <A HREF="gui.html#menus">menus</A> for <A HREF="gui_x11.html#Athena">Athena</A>, don't hide them.
Files: src/menu.c
Patch 5.4.30
Problem: <A HREF="os_beos.html#BeOS">BeOS</A>: Suspending Vim with <A HREF="starting.html#CTRL-Z">CTRL-Z</A> didn't work (killed Vim). The
first character typed after "<A HREF="various.html#:sh">:sh</A>" goes to Vim, instead of the
started shell.
Solution: Don't <A HREF="starting.html#suspend">suspend</A> Vim, start a new shell. Kill the async read thread
when starting a new shell. It will be restarted later. (Will Day)
Files: src/os_unix.c, src/ui.c
Patch 5.4.31
Problem: <A HREF="gui.html#GUI">GUI</A>: When <A HREF="options.html#'mousefocus'">'mousefocus'</A> is set, moving the mouse over where a
<A HREF="windows.html#window">window</A> boundary was, causes a <A HREF="message.html#hit-enter">hit-enter</A> prompt to be finished.
(Jeff Walker)
Solution: Don't use <A HREF="options.html#'mousefocus'">'mousefocus'</A> at the <A HREF="message.html#hit-enter">hit-enter</A> prompt. Also ignore <A HREF="motion.html#it">it</A>
for the more prompt and a few other situations. When an <A HREF="motion.html#operator">operator</A>
is pending, abort <A HREF="motion.html#it">it</A> first.
Files: src/gui.c
Patch 5.4.32
Problem: <A HREF="os_unix.html#Unix">Unix</A>: $LDFLAGS was not passed to configure.
Solution: Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner)
Files: src/Makefile
Patch 5.4.33
Problem: <A HREF="os_unix.html#Unix">Unix</A>: After expanding an environment variable with the shell, the
next expansion would also use the shell, even though <A HREF="motion.html#it">it</A> is not
needed.
Solution: Reset "recursive" before returning from gen_expand_wildcards().
Files: src/misc1.c
Patch 5.4.34 (also see 5.4.x5)
Problem: When editing a file, and the file name is relative to a directory
above the current directory, the file name was made absolute.
(Gregory Margo)
Solution: Add an argument to shorten_fnames() which indicates if all file
names should be shortened, or only absolute names. In main() only
use shorten_fnames() to shorten absolute names.
Files: src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro
Patch 5.4.35
Problem: There is no function to get the current file size.
Solution: Allow using <A HREF="eval.html#line2byte()">line2byte()</A> with the number of lines in the file plus
one. This returns the offset of the line past the end of the
file, which is the file size plus one.
Files: src/eval.c, runtime/doc/eval.txt
Patch 5.4.36
Problem: Comparing strings while ignoring <A HREF="change.html#case">case</A> didn't work correctly for
some machines. (Mide Steed)
Solution: vim_stricmp() and vim_strnicmp() only returned 0 or 1. Changed
them to return -1 when the first argument is smaller.
Files: src/misc2.c
Patch 5.4.37 (also see 5.4.40 and 5.4.43)
Problem: Long strings from the <A HREF="starting.html#viminfo">viminfo</A> file are truncated.
Solution: When <A HREF="editing.html#writing">writing</A> a long <A HREF="eval.html#string">string</A> to the <A HREF="starting.html#viminfo">viminfo</A> file, first write a line
with the length, then the <A HREF="eval.html#string">string</A> itself in a second line.
Files: src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c,
src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim
Patch 5.4.38
Problem: In the <A HREF="options.html#option-window">option-window</A>, "<A HREF="options.html#:set">:set</A> go&" resulted in <A HREF="options.html#'go'">'go'</A> being handled
like a <A HREF="options.html#boolean">boolean</A> option.
Mappings for <A HREF="motion.html#<Space>"><Space></A> and <A HREF="motion.html#<CR>"><CR></A> were overruled by the <A HREF="options.html#option-window">option-window</A>.
Solution: When the value of an option isn't 0 or 1, don't handle <A HREF="motion.html#it">it</A> like a
<A HREF="options.html#boolean">boolean</A> option.
Save and restore mappings for <A HREF="motion.html#<Space>"><Space></A> and <A HREF="motion.html#<CR>"><CR></A> when entering and
leaving the <A HREF="options.html#option-window">option-window</A>.
Files: runtime/optwin.vim
Patch 5.4.39
Problem: When setting a hidden option, spaces before the equal sign were
not skipped and cause an error message. E.g., "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'csprg'">csprg</A> =cmd".
Solution: When skipping over a hidden option, check for a following "=val"
and skip <A HREF="motion.html#it">it</A> too.
Files: src/option.c
Patch 5.4.40 (depends on 5.4.37)
Problem: Compiler error for "atol(p + 1)". (Axel Kielhorn)
Solution: Add a typecast: "atol((char *)p + 1)".
Files: src/ex_cmds.c
Patch 5.4.41
Problem: Some commands that were not included would give an error message,
even when after "if 0".
Solution: Don't give an error message for an unsupported command when not
executing the command.
Files: src/ex_docmd.c
Patch 5.4.42
Problem: "<A HREF="editing.html#:w">:w</A>" would also cause a truncated message to appear in the message
<A HREF="cmdline.html#history">history</A>.
Solution: Don't put a kept message in the message <A HREF="cmdline.html#history">history</A> when <A HREF="motion.html#it">it</A> starts
with "<A HREF="change.html#<"><</A>".
Files: src/message.c
Patch 5.4.43 (depends on 5.4.37)
Problem: Mixing long lines with multiple lines in a <A HREF="sponsor.html#register">register</A> causes <A HREF="message.html#errors">errors</A>
when <A HREF="editing.html#writing">writing</A> the <A HREF="starting.html#viminfo">viminfo</A> file. (Robinson)
Solution: When reading the <A HREF="starting.html#viminfo">viminfo</A> file to skip <A HREF="sponsor.html#register">register</A> contents, skip
lines that start with "<A HREF="change.html#<"><</A>".
Files: src/ops.c
Patch 5.4.44
Problem: When <A HREF="options.html#'whichwrap'">'whichwrap'</A> includes '<A HREF="change.html#~">~</A>', a "<A HREF="change.html#~">~</A>" command that goes on to the
next line cannot be properly undone. (Zellner)
Solution: Save each line for <A HREF="undo.html#undo">undo</A> in n_swapchar().
Files: src/normal.c
Patch 5.4.45 (also see 5.4.x8)
Problem: When expand("$ASDF") fails, there is an error message.
Solution: Remove the global expand_interactively. Pass a flag down to skip
the error message.
Also: expand("$ASDF") returns an empty <A HREF="eval.html#string">string</A> if $ASDF isn't set.
Previously <A HREF="motion.html#it">it</A> returned "$ASDF" when <A HREF="options.html#'shell'">'shell'</A> is "sh".
Also: <A HREF="eval.html#system()">system()</A> doesn't print an error when the command returns an
error code.
Files: many
Patch 5.4.46
Problem: Backspacing did not always use <A HREF="options.html#'softtabstop'">'softtabstop'</A> after hitting <A HREF="motion.html#<CR>"><CR></A>,
<A HREF="insert.html#inserting">inserting</A> a <A HREF="sponsor.html#register">register</A>, moving the cursor, etc.
Solution: Reset inserted_space much more often in edit().
Files: src/edit.c
Patch 5.4.47
Problem: When executing <A HREF="autocmd.html#BufWritePre">BufWritePre</A> or <A HREF="autocmd.html#BufWritePost">BufWritePost</A> autocommands for a
hidden buffer, the cursor could be moved to a non-existing
position. (Vince Negri)
Solution: Save and restore the cursor and topline for the current <A HREF="windows.html#window">window</A>
when <A HREF="motion.html#it">it</A> is going to be used to execute autocommands for a hidden
buffer. Use an existing <A HREF="windows.html#window">window</A> for the buffer when it's not
hidden.
Files: src/fileio.c
Patch 5.4.48
Problem: A paste with the mouse in <A HREF="insert.html#Insert">Insert</A> mode was not repeated exactly the
same with "<A HREF="repeat.html#.">.</A>". For example, when <A HREF="options.html#'autoindent'">'autoindent'</A> is set and pasting
text with leading indent. (Perry)
Solution: Add the <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="change.html#r">r</A> and <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-P">CTRL-P</A> <A HREF="change.html#r">r</A> commands in <A HREF="insert.html#Insert">Insert</A>
mode, which insert the contents of a <A HREF="sponsor.html#register">register</A> literally.
Files: src/edit.c, src/normal.c, runtime/doc/insert.txt
Patch 5.4.49
Problem: When pasting text with [ <A HREF="change.html#<MiddleMouse>"><MiddleMouse></A>, the cursor could end up
after the last character of the line.
Solution: Correct the cursor position for the change in indent.
Files: src/ops.c
Patch 5.4.x1 (note: Replaces patch 5.4.9)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: menu hints were never used, because WANT_MENU is not
defined until vim.h is included.
Solution: Move the #ifdef WANT_MENU from where MENUHINTS is defined to where
<A HREF="motion.html#it">it</A> is used.
Files: src/gui_w32.c
Patch 5.4.x2
Problem: <A HREF="os_beos.html#BeOS">BeOS</A>: When pasting text, one character was moved to the end.
Solution: Re-enable the <A HREF="os_beos.html#BeOS">BeOS</A> code in fill_input_buf(), and fix timing out
with acquire_sem_etc(). (Will Day)
Files: src/os_beos.c, src/ui.c
Patch 5.4.x3
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When dropping a directory on a running <A HREF="starting.html#gvim">gvim</A> <A HREF="motion.html#it">it</A> crashes.
Solution: Avoid using a NULL file name. Also display a message to indicate
that the current directory was changed.
Files: src/gui_w32.c
Patch 5.4.x4
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Removing an item from the popup menu doesn't work.
Solution: Don't remove the item from the menubar, but from the parent popup
menu.
Files: src/gui_w32.c
Patch 5.4.x5 (addition to 5.4.34)
Files: src/gui_w32.c
Patch 5.4.x6
Problem: <A HREF="os_win32.html#Win32">Win32</A>: Expanding (dir)name starting with a dot doesn't work.
(McCormack) Only when there is a path before <A HREF="motion.html#it">it</A>.
Solution: Fix the check, done before expansion, if the file name <A HREF="pattern.html#pattern">pattern</A>
starts with a dot.
Files: src/os_win32.c
Patch 5.4.x7
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Removing "Edit with Vim" from registry is difficult.
Solution: Add uninstall program to remove the registry keys. It is installed
in the "Add/Remove programs" <A HREF="eval.html#list">list</A> for ease of use.
Also: don't set <A HREF="starting.html#$VIM">$VIM</A> when the executable is with the runtime files.
Also: Add a text file with a step-by-step description of how to
uninstall Vim for <A HREF="os_dos.html#DOS">DOS</A> and Windows.
Files: src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt
Patch 5.4.x8 (addition to 5.4.45)
Files: many
Patch 5.4.x9
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: After executing an external command, focus is not
always regained (when using focus-follows-mouse).
Solution: Add SetFocus() in mch_system(). (Mike Steed)
Files: src/os_win32.c
Patch 5.5a.1
Problem: "<A HREF="eval.html#:let">:let</A> @* = @:" did not work. The text was not put on the
I <A HREF="gui.html#clipboard">clipboard</A>. (Fisher)
Solution: Own the <A HREF="gui.html#clipboard">clipboard</A> and put the text on <A HREF="motion.html#it">it</A>.
Files: src/ops.c
Patch 5.5a.2
Problem: <A HREF="eval.html#append()">append()</A> did not <A HREF="motion.html#mark">mark</A> the buffer modified. Marks below the
new line were not adjusted.
Solution: Fix the f_append() function.
Files: src/eval.c
Patch 5.5a.3
Problem: Editing compressed ".gz" files doesn't work on non-Unix systems,
because there is no "mv" command.
Solution: Add the <A HREF="eval.html#rename()">rename()</A> function and use <A HREF="motion.html#it">it</A> instead of ":!mv".
Also: Disable the automatic jump to the last position, because <A HREF="motion.html#it">it</A>
changes the <A HREF="motion.html#jumplist">jumplist</A>.
Files: src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim
Patch 5.5a.4
Problem: When using whole-line completion in insert mode while the cursor
is in the indent, get "out of memory" error. (Stekrt)
Solution: Don't allocate a negative amount of memory in ins_complete().
Files: src/edit.c
Patch 5.5a.5
Problem: <A HREF="os_win32.html#Win32">Win32</A>: The <A HREF="options.html#'path'">'path'</A> option can hold only up to 256 characters,
because _MAX_PATH is 256. (Robert Webb)
Solution: Use a fixed path length of 1024.
Files: src/os_win32.h
Patch 5.5a.6
Problem: Compiling with gcc on <A HREF="os_win32.html#Win32">Win32</A>, using the <A HREF="os_unix.html#Unix">Unix</A> Makefile, didn't work.
Solution: Add $(SUFFIX) to all places where an executable is used. Also
pass <A HREF="motion.html#it">it</A> to <A HREF="tagsrch.html#ctags">ctags</A>. (Reynolds)
Files: src/Makefile
Patch 5.5a.7
Problem: When using "cat | vim -" in an xterm, the xterm version reply
would end up in the file.
Solution: Read the file from stdin before switching the <A HREF="terminal.html#terminal">terminal</A> to RAW
mode. Should also avoid problems with programs that use a
specific <A HREF="terminal.html#terminal">terminal</A> setting.
Also: when using the <A HREF="gui.html#GUI">GUI</A>, print "Reading from stdin..." in the <A HREF="gui.html#GUI">GUI</A>
<A HREF="windows.html#window">window</A>, to give a hint why <A HREF="motion.html#it">it</A> doesn't <A HREF="diff.html#do">do</A> anything.
Files: src/main.c, src/fileio.c
Patch 5.5a.8
Problem: On multi-threaded Solaris, suspending doesn't work.
Solution: Call pause() when the SIGCONT signal was not received after
sending the SIGTSTP signal. (Nagano)
Files: src/os_unix.c
Patch 5.5a.9
Problem: <A HREF="options.html#'winaltkeys'">'winaltkeys'</A> could be set to an empty argument, which is illegal.
Solution: Give an error message when doing "<A HREF="options.html#:set">:set</A> <A HREF="options.html#'winaltkeys'">winaltkeys</A>=".
Files: src/option.c
Patch 5.5a.10
Problem: <A HREF="os_win32.html#Win32">Win32</A> console: Using ALTGR on a German keyboard to produce "<A HREF="motion.html#}">}</A>"
doesn't work, because the 8th bit is set when ALT is pressed.
Solution: Don't set the 8th bit when ALT and CTRL are used. (Leipert)
Files: src/os_win32.c
Patch 5.5a.11
Problem: <A HREF="if_tcl.html#Tcl">Tcl</A>: Configure always uses tclsh8.0.
Also: Loading a library doesn't work.
Solution: Add "--with-tclsh" configure argument to allow specifying another
name for the <A HREF="if_tcl.html#tcl">tcl</A> shell.
Call Tcl_Init() in tclinit() to make loading libraries work.
(Johannes Zellner)
Files: src/configure.in, src/configure, src/if_tcl.c
Patch 5.5a.12
Problem: The "user_commands" feature is called "<A HREF="map.html#user-commands">user-commands</A>".
Solution: <A HREF="insert.html#Replace">Replace</A> "<A HREF="map.html#user-commands">user-commands</A>" with "user_commands". (Kim Sung-bom)
Keep "<A HREF="map.html#user-commands">user-commands</A>" for the <A HREF="eval.html#has()">has()</A> function, to remain backwards
compatible with 5.4.
Files: src/eval.c, src/version.c
Patch 5.5a.13
Problem: <A HREF="os_os2.html#OS/2">OS/2</A>: When <A HREF="options.html#$HOME">$HOME</A> is not defined, "C:/" is used for the <A HREF="starting.html#viminfo">viminfo</A>
file. That is very wrong when <A HREF="os_os2.html#OS/2">OS/2</A> is on another partition.
Solution: Use <A HREF="starting.html#$VIM">$VIM</A> for the <A HREF="starting.html#viminfo">viminfo</A> file when <A HREF="motion.html#it">it</A> is defined, like for <A HREF="os_msdos.html#MSDOS">MSDOS</A>.
Also: Makefile.os2 didn't depend on os_unix.h.
Files: src/os_unix.h, src/Makefile.os2
Patch 5.5a.14
Problem: <A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A>: The Mouse scroll wheel doesn't work.
Solution: Interpret a click of the wheel <A HREF="motion.html#as">as</A> a key press of the <A HREF="scroll.html#<MouseDown>"><MouseDown></A>
or <A HREF="scroll.html#<MouseUp>"><MouseUp></A> keys. Default behavior is to scroll three lines, or
a full page when Shift is used.
Files: src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c,
src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c,
src/misc2.c, src/normal.c, src/proto/normal.pro, src/vim.h,
runtime/doc/scroll.txt
Patch 5.5a.15
Problem: Using <A HREF="change.html#CTRL-A">CTRL-A</A> in <A HREF="insert.html#Insert">Insert</A> mode doesn't work correctly when the insert
started with the <A HREF="insert.html#<Insert>"><Insert></A> key. (Andreas Rohrschneider)
Solution: <A HREF="insert.html#Replace">Replace</A> <A HREF="insert.html#<Insert>"><Insert></A> with "<A HREF="insert.html#i">i</A>" before setting up the <A HREF="undo.html#redo">redo</A> buffer.
Files: src/normal.c
Patch 5.5a.16
Problem: <A HREF="os_vms.html#VMS">VMS</A>: <A HREF="gui.html#GUI">GUI</A> does not compile and run.
Solution: Various fixes. (Zoltan Arpadffy)
Moved <A HREF="eval.html#functions">functions</A> from os_unix.c to ui.c, so that <A HREF="os_vms.html#VMS">VMS</A> can use them
too: open_app_context(), x11_setup_atoms() and clip_x11* <A HREF="eval.html#functions">functions</A>.
Made xterm_dpy global, it's now used by ui.c and os_unix.c.
Use gethostname() always, sys_hostname doesn't exist.
Files: src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c,
src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro
Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar()
to avoid symbol length limit of 31 characters. (Steve <A HREF="change.html#P">P</A>. Wall)
Patch 5.5b.1
Problem: SASC complains about dead assignments and implicit type casts.
Solution: Removed the dead assignments. Added explicit type casts.
Files: src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c,
src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c,
src/screen.c
Patch 5.5b.2
Problem: When using "<A HREF="motion.html#CTRL-O">CTRL-O</A> O" in <A HREF="insert.html#Insert">Insert</A> mode, hit <A HREF="intro.html#<Esc>"><Esc></A> and then "<A HREF="insert.html#o">o</A>" in
another line truncates that line. (Devin Weaver)
Solution: When using a command that starts <A HREF="insert.html#Insert">Insert</A> mode from <A HREF="motion.html#CTRL-O">CTRL-O</A>, reset
"restart_edit" first. This avoids that edit() is called with a
mix of starting a new edit command and restarting a previous one.
Files: src/normal.c
==============================================================================
VERSION 5.6 *<A NAME="version-5.6"></A><B>version-5.6</B>*
Version 5.6 is a bug-fix version of 5.5.
Changed *<A NAME="changed-5.6"></A><B>changed-5.6</B>*
Small changes to OleVim files. (Christian Schaller)
Inserted "/**/" between patch numbers in src/version.c. This allows for one
line of context, which some versions of patch need.
Reordered the <A HREF="autocmd.html#Syntax">Syntax</A> menu to avoid long submenus. Removed keyboard shortcuts
for alphabetical items to avoid a clash with fixed items.
Added *<A NAME="added-5.6"></A><B>added-5.6</B>*
Included Exuberant Ctags version 3.4. (Darren Hiebert)
OpenWithVim in <A HREF="if_pyth.html#Python">Python</A>. (Christian Schaller)
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: gvimext.dll, for the context menu "Edit with Vim" entry. Avoids
the reported problems with the MS Office taskbar. Now it's a Shell Extension.
(Tianmiao Hu)
New <A HREF="syntax.html#syntax">syntax</A> files:
abel Abel (John Cook)
aml Arc Macro Language (Nikki Knuit)
apachestyle Apache-style config file (Christian Hammers)
cf Cold Fusion (Jeff Lanzarotta)
ctrlh files with <A HREF="motion.html#CTRL-H">CTRL-H</A> sequences (Bram <A HREF="intro.html#Moolenaar">Moolenaar</A>)
cupl CUPL (John Cook)
cuplsim CUPL simulation (John Cook)
erlang Erlang (Kresimir Marzic)
gedcom Gedcom (Paul Johnson)
icon Icon (Wendell Turner)
ist MakeIndex style (Peter Meszaros)
jsp Java Server Pages (Rafael Garcia-Suarez)
rcslog Rcslog (Joe Karthauser)
remind Remind (Davide Alberani)
sqr Structured Query Report Writer (Paul Moore)
tads TADS (Amir Karger)
texinfo Texinfo (Sandor Kopanyi)
xpm2 X Pixmap v2 (Steve Wall)
The '<A HREF="change.html#C">C</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> can be used to switch off concatenation for
sourced lines. See patch 5.5.013 below. |<A HREF="repeat.html#line-continuation">line-continuation</A>|
"excludenl" argument for the "<A HREF="syntax.html#:syntax">:syntax</A>" command. See patch 5.5.032 below.
|<A HREF="syntax.html#:syn-excludenl">:syn-excludenl</A>|
Implemented |<A HREF="scroll.html#z+">z+</A>| and |<A HREF="scroll.html#z^">z^</A>| commands. See patch 5.5.050 below.
Vim logo in Corel Draw format. Can be scaled to any resolution.
Fixed *<A NAME="fixed-5.6"></A><B>fixed-5.6</B>*
Using this <A HREF="map.html#mapping">mapping</A> in <A HREF="visual.html#Select">Select</A> mode, terminated completion:
"<A HREF="map.html#:vnoremap">:vnoremap</A> <C-N> <Esc>a<C-N>" (Benji Fisher)
Ignore K_SELECT in ins_compl_prep().
<A HREF="os_vms.html#VMS">VMS</A> (Zoltan Arpadffy, David Elins):
- ioctl() in pty.c caused trouble, #ifndef <A HREF="os_vms.html#VMS">VMS</A> added.
- Cut <A HREF="change.html#&">&</A> paste mismatch corrected.
- Popup menu line crash corrected. (Patch 5.5.047)
- <A HREF="gui_x11.html#Motif">Motif</A> directories during open and save <A HREF="motion.html#as">as</A> corrected.
- Handle full file names with version numbers. (Patch 5.5.046)
- Directory handling (CD command etc.)
- Corrected file name conversion <A HREF="os_vms.html#VMS">VMS</A> to <A HREF="os_unix.html#Unix">Unix</A> and v.v.
- Recovery was not working.
- Terminal and signal handling was outdated compared to os_unix.c.
- Improved <A HREF="os_vms.html#os_vms.txt">os_vms.txt</A>.
Configure used fprintf() instead of <A HREF="eval.html#printf()">printf()</A> to check for __DATE__ and
__TIME__. (John Card II)
<A HREF="os_beos.html#BeOS">BeOS</A>: Adjust computing the char_height and char_ascent. Round them up
separately, avoids redrawing artifacts. (Mike Steed)
Fix a few <A HREF="mbyte.html#multi-byte">multi-byte</A> problems in menu_name_skip(), set_reg_ic(), searchc() and
findmatchlimit(). (Taro Muraoka)
<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>:
- With <A HREF="gui_x11.html#GTK">GTK</A> 1.2.5 and later the scrollbars were not redrawn correctly.
- Adjusted the gtk_form_draw() function.
- SNiFF connection didn't work.
- <A HREF="options.html#'mousefocus'">'mousefocus'</A> was not working. (Dalecki)
- Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@.
Patch 5.5.001
Problem: Configure in the top directory did not pass on an argument with a
space correctly. For example "./configure --previs="/My home".
(Stephane Chazelas)
Solution: Use '"'$@"' instead of '$*' to pass on the arguments.
Files: configure
Patch 5.5.002
Problem: Compilation error for using "fds[] <A HREF="change.html#&">&</A> POLLIN". (Jeff Walker)
Solution: Use "fds[].revents <A HREF="change.html#&">&</A> POLLIN".
Files: src/os_unix.c
Patch 5.5.003
Problem: The autoconf check for sizeof(int) is wrong on machines where
sizeof(size_t) != sizeof(int).
Solution: Use our own configure check. Also fixes the warning for
cross-compiling.
Files: src/configure.in, src/configure
Patch 5.5.004
Problem: On <A HREF="os_unix.html#Unix">Unix</A> it's not possible to interrupt "<A HREF="various.html#:sleep">:sleep</A> 100".
Solution: Switch <A HREF="terminal.html#terminal">terminal</A> to cooked mode while asleep, to allow a SIGINT to
wake us up. But switch off echo, added TMODE_SLEEP.
Files: src/term.h, src/os_unix.c
Patch 5.5.005
Problem: When using <A HREF="map.html#<f-args>"><f-args></A> with a user command, an empty argument to the
command resulted in one empty <A HREF="eval.html#string">string</A>, while no <A HREF="eval.html#string">string</A> was
expected.
Solution: Catch an empty argument and pass no argument to the function.
(Paul Moore)
Files: src/ex_docmd.c
Patch 5.5.006
Problem: <A HREF="if_pyth.html#Python">Python</A>: When platform-dependent files are in another directory
than the platform-independent files <A HREF="motion.html#it">it</A> doesn't work.
Solution: Also check the executable directory, and add <A HREF="motion.html#it">it</A> to CFLAGS. (Tessa
Lau)
Files: src/configure.in, src/configure
Patch 5.5.007 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> OLE: Occasional crash when <A HREF="starting.html#exiting">exiting</A> while still being used
via OLE.
Solution: Move OleUninitialize() to before <A HREF="change.html#deleting">deleting</A> the application object.
(Vince Negri)
Files: src/if_ole.cpp
Patch 5.5.008
Problem: 10000@@ takes a long time and cannot be interrupted.
Solution: Check for <A HREF="pattern.html#CTRL-C">CTRL-C</A> typed while in the loop to push the <A HREF="sponsor.html#register">register</A>.
Files: src/normal.c
Patch 5.5.009
Problem: Recent Sequent machines don't link with "-linet". (Kurtis Rader)
Solution: Remove configure check for Sequent.
Files: src/configure.in, src/configure
Patch 5.5.010
Problem: Ctags freed a memory block <A HREF="if_cscop.html#twice">twice</A> when <A HREF="starting.html#exiting">exiting</A>. When out of
memory, a misleading error message was given.
Solution: Update to <A HREF="tagsrch.html#ctags">ctags</A> 3.3.2. Also fixes a few other problems. (Darren
Hiebert)
Files: src/ctags/*
Patch 5.5.011
Problem: After "<A HREF="visual.html#CTRL-V">CTRL-V</A> s", the cursor jumps back to the start, while all
other operators leave the cursor on the last changed character.
(Xiangjiang Ma)
Solution: Position cursor on last changed character, if possible.
Files: src/ops.c
Patch 5.5.012
Problem: Using <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> in <A HREF="visual.html#Visual">Visual</A> mode doesn't work when the text includes a
space (just where it's useful). (Stefan Bittner)
Solution: Don't <A HREF="intro.html#escape">escape</A> special characters in a <A HREF="tagsrch.html#tag">tag</A> name with a <A HREF="intro.html#backslash">backslash</A>.
Files: src/normal.c
Patch 5.5.013
Problem: The "<A HREF="insert.html#:append">:append</A>" and "<A HREF="insert.html#:insert">:insert</A>" commands allow using a leading
<A HREF="intro.html#backslash">backslash</A> in a line. The "<A HREF="repeat.html#:source">:source</A>" command concatenates those
lines. (Heinlein)
Solution: Add the '<A HREF="change.html#C">C</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> to switch off concatenation.
Files: src/ex_docmd.c, src/option.h, runtime/doc/options.txt,
runtime/filetype.vim, runtime/scripts.vim
Patch 5.5.014
Problem: When executing a <A HREF="sponsor.html#register">register</A> with "<A HREF="repeat.html#:@">:@</A>", the "<A HREF="insert.html#:append">:append</A>" command would
get text lines with a '<A HREF="cmdline.html#:">:</A>' prepended. (Heinlein)
Solution: Remove the '<A HREF="cmdline.html#:">:</A>' characters.
Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h
Patch 5.5.015
Problem: When using ":g/pat/p", it's hard to see where the output starts,
the "<A HREF="repeat.html#:g">:g</A>" command is overwritten. <A HREF="intro.html#Vi">Vi</A> keeps the "<A HREF="repeat.html#:g">:g</A>" command.
Solution: Keep the "<A HREF="repeat.html#:g">:g</A>" command, but allow overwriting <A HREF="motion.html#it">it</A> with the report
for the number of changes.
Files: src/ex_cmds.c
Patch 5.5.016 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A>: Using regedit to <A HREF="usr_90.html#install">install</A> Vim in the popup menu requires the
user to confirm this in a <A HREF="gui_w32.html#dialog">dialog</A>.
Solution: Use "regedit /s" to avoid the <A HREF="gui_w32.html#dialog">dialog</A>
Files: src/dosinst.c
Patch 5.5.017
Problem: If an error occurs when closing the current <A HREF="windows.html#window">window</A>, Vim could get
stuck in the error handling.
Solution: Don't set curwin to NULL when closing the current <A HREF="windows.html#window">window</A>.
Files: src/window.c
Patch 5.5.018
Problem: Absolute paths in shell scripts <A HREF="diff.html#do">do</A> not always work.
Solution: Use /usr/bin/env to find out the path.
Files: runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl,
runtime/tools/shtags.pl
Patch 5.5.019
Problem: A function call in <A HREF="options.html#'statusline'">'statusline'</A> stops using "<A HREF="editing.html#:q">:q</A>" <A HREF="if_cscop.html#twice">twice</A> from
<A HREF="starting.html#exiting">exiting</A>, when the last argument hasn't been edited.
Solution: Don't decrement quitmore when executing a function. (Madsen)
Files: src/ex_docmd.c
Patch 5.5.020
Problem: When the output of <A HREF="scroll.html#CTRL-D">CTRL-D</A> completion in the commandline goes all
the way to the last column, there is an empty line.
Solution: Don't add a newline when the cursor wrapped already. (Madsen)
Files: src/ex_getln.c
Patch 5.5.021
Problem: When checking if a file name in the <A HREF="tagsrch.html#tags">tags</A> file is relative,
environment <A HREF="eval.html#variables">variables</A> were not expanded.
Solution: Expand the file name before checking if <A HREF="motion.html#it">it</A> is relative. (Madsen)
Files: src/tag.c
Patch 5.5.022
Problem: When setting or resetting <A HREF="options.html#'paste'">'paste'</A> the ruler wasn't updated.
Solution: Update the status lines when <A HREF="options.html#'ruler'">'ruler'</A> changes because of <A HREF="options.html#'paste'">'paste'</A>.
Files: src/option.c
Patch 5.5.023
Problem: When editing a new file and autocommands change the cursor
position, the cursor was moved back to the first non-white, unless
<A HREF="options.html#'startofline'">'startofline'</A> was reset.
Solution: Keep the new column, just like the line number.
Files: src/ex_cmds.c
Patch 5.5.024 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="eval.html#confirm()">confirm()</A> to put up a <A HREF="gui_w32.html#dialog">dialog</A> without a
default button, the <A HREF="gui_w32.html#dialog">dialog</A> would not have keyboard focus.
(Krishna)
Solution: Always set focus to the <A HREF="gui_w32.html#dialog">dialog</A> <A HREF="windows.html#window">window</A>. Only set focus to a button
when a default one is specified.
Files: src/gui_w32.c
Patch 5.5.025
Problem: When using "keepend" in a <A HREF="syntax.html#syntax">syntax</A> region, a contained match that
includes the end-of-line could still force that region to
continue, if there is another contained match in between.
Solution: Check the keepend_level in check_state_ends().
Files: src/syntax.c
Patch 5.5.026
Problem: When starting Vim in a white-on-black xterm, with <A HREF="options.html#'bg'">'bg'</A> set to
"dark", and then starting the <A HREF="gui.html#GUI">GUI</A> with "<A HREF="gui_x11.html#:gui">:gui</A>", setting <A HREF="options.html#'bg'">'bg'</A> to
"light" in the <A HREF="gui.html#gvimrc">gvimrc</A>, the highlighting isn't set. (Tsjokwing)
Solution: Set the highlighting when <A HREF="options.html#'bg'">'bg'</A> is changed in the <A HREF="gui.html#gvimrc">gvimrc</A>, even
though full_screen isn't set.
Files: src/option.c
Patch 5.5.027
Problem: <A HREF="os_unix.html#Unix">Unix</A>: os_unix.c doesn't compile when XTERM_CLIP is used but
WANT_TITLE isn't. (Barnum)
Solution: Move a few <A HREF="eval.html#functions">functions</A> that are used by the <A HREF="options.html#X11">X11</A> title and <A HREF="gui.html#clipboard">clipboard</A>
and put another "#if" around <A HREF="motion.html#it">it</A>.
Files: src/os_unix.c
Patch 5.5.028 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When a file is dropped on <A HREF="os_win32.html#Win32">Win32</A> <A HREF="starting.html#gvim">gvim</A> while at the "<A HREF="cmdline.html#:">:</A>"
prompt, the file is edited but the command line is actually still
there, the cursor goes back to command line on the next command.
(Krishna)
Solution: When dropping a file or directory on <A HREF="starting.html#gvim">gvim</A> while at the "<A HREF="cmdline.html#:">:</A>" prompt,
insert the name of the file/directory. Allows using the
file/directory name for any <A HREF="intro.html#Ex">Ex</A> command.
Files: src/gui_w32.c
Patch 5.5.029
Problem: "<A HREF="motion.html#das">das</A>" at the end of the file didn't delete the last character of
the <A HREF="motion.html#sentence">sentence</A>.
Solution: When there is no character after the <A HREF="motion.html#sentence">sentence</A>, make the operation
<A HREF="motion.html#inclusive">inclusive</A> in current_sent().
Files: src/search.c
Patch 5.5.030
Problem: <A HREF="os_unix.html#Unix">Unix</A>: in os_unix.c, "term_str" is used, which is also defined in
vim.h <A HREF="motion.html#as">as</A> a <A HREF="map.html#macro">macro</A>. (wuxin)
Solution: Renamed "term_str" to "buf" in do_xterm_trace().
Files: src/os_unix.c
Patch 5.5.031 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="starting.html#exiting">exiting</A> Windows, <A HREF="starting.html#gvim">gvim</A> will leave swap files behind
and will be killed ungracefully. (Krishna)
Solution: Catch the WM_QUERYENDSESSION and WM_ENDSESSION <A HREF="message.html#messages">messages</A> and try to
exit gracefully. Allow the user to cancel the shutdown if there
is a changed buffer.
Files: src/gui_w32.c
Patch 5.5.032
Problem: Patch 5.5.025 wasn't right. And C highlighting was still not
working correctly for a #define.
Solution: Added "excludenl" argument to "<A HREF="syntax.html#:syntax">:syntax</A>", to be able not to extend
a containing item when there is a match with the end-of-line.
Files: src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim
Patch 5.5.033
Problem: When reading from stdin, a long line in <A HREF="starting.html#viminfo">viminfo</A> would mess up the
file message. <A HREF="eval.html#readfile()">readfile()</A> uses IObuff for keep_msg, which could be
overwritten by anyone.
Solution: Copy the message from IObuff to msg_buf and set keep_msg to that.
Also change vim_fgets() to not use IObuff any longer.
Files: src/fileio.c
Patch 5.5.034
Problem: "<A HREF="starting.html#gvim">gvim</A> -rv" caused a crash. Using <A HREF="term.html#'t_Co'">'t_Co'</A> before it's set.
Solution: Don't try to initialize the highlighting before <A HREF="motion.html#it">it</A> has been
initialized from main().
Files: src/syntax.c
Patch 5.5.035
Problem: <A HREF="gui_x11.html#GTK">GTK</A> with <A HREF="mbyte.html#XIM">XIM</A>: Resizing with status area was messy, and
"<A HREF="options.html#:set">:set</A> guioptions+=b" didn't work.
Solution: Make status area a separate widget, but not a separate <A HREF="windows.html#window">window</A>.
(Chi-Deok Hwang)
Files: src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c
Patch 5.5.036
Problem: The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to
uncompress a file did not <A HREF="diff.html#do">do</A> detection for <A HREF="options.html#'fileformat'">'fileformat'</A>. This is
because the filtering is done with <A HREF="options.html#'binary'">'binary'</A> set.
Solution: Split the filtering into separate write, <A HREF="change.html#filter">filter</A> and read commands.
Files: runtime/vimrc_example.vim
Patch 5.5.037
Problem: The "<A HREF="undo.html#U">U</A>" command didn't <A HREF="motion.html#mark">mark</A> the buffer <A HREF="motion.html#as">as</A> changed. (McCormack)
Solution: Set the <A HREF="options.html#'modified'">'modified'</A> flag when using "<A HREF="undo.html#U">U</A>".
Files: src/undo.c
Patch 5.5.038
Problem: When typing a long "<A HREF="cmdline.html#:">:</A>" command, so that the screen scrolls up,
causes the <A HREF="message.html#hit-enter">hit-enter</A> prompt, even though the user just typed
return to execute the command.
Solution: Reset need_wait_return if (part of) the command was typed in
<A HREF="eval.html#getcmdline()">getcmdline()</A>.
Files: src/ex_getln.c
Patch 5.5.039
Problem: When using a custom status line, "%a" (file # of #) reports the
index of the current <A HREF="windows.html#window">window</A> for all <A HREF="windows.html#windows">windows</A>.
Solution: Pass a <A HREF="windows.html#window">window</A> pointer to append_arg_number(), and pass the <A HREF="windows.html#window">window</A>
being updated from build_stl_str_hl(). (Stephen <A HREF="change.html#P">P</A>. Wall)
Files: src/buffer.c, src/screen.c, src/proto/buffer.pro
Patch 5.5.040
Problem: Multi-byte: When there is some error in xim_real_init(), <A HREF="motion.html#it">it</A> can
close <A HREF="mbyte.html#XIM">XIM</A> and return. After this there can be a segv.
Solution: Test "xic" for being non-NULL, don't set "<A HREF="mbyte.html#xim">xim</A>" to NULL. Also try
to find more matches for supported styles. (Sung-Hyun Nam)
Files: src/multbyte.c
Patch 5.5.041
Problem: <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: CTRL-_ requires the SHIFT key only on some machines.
Solution: Translate CTRL-- to CTRL-_. (Robert Webb)
Files: src/gui_x11.c
Patch 5.5.042
Problem: <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: keys with ALT were assumed to be used for the menu, even
when the menu has been disabled by removing '<A HREF="motion.html#m">m</A>' from <A HREF="options.html#'guioptions'">'guioptions'</A>.
Solution: Ignore keys with ALT only when gui.menu_is_active is set. (Raf)
Files: src/gui_x11.c
Patch 5.5.043
Problem: <A HREF="gui_x11.html#GTK">GTK</A>: Handling of <A HREF="mbyte.html#fontset">fontset</A> fonts was not right when <A HREF="options.html#'guifontset'">'guifontset'</A>
contains exactly 14 times '<A HREF="motion.html#-">-</A>'.
Solution: Avoid setting fonts when working with a <A HREF="mbyte.html#fontset">fontset</A>. (Sung-Hyun Nam)
Files: src/gui_gtk_x11.c
Patch 5.5.044
Problem: pltags.pl contains an absolute path "/usr/local/bin/perl". That
might not work everywhere.
Solution: Use "/usr/bin/env perl" instead.
Files: runtime/tools/pltags.pl
Patch 5.5.045
Problem: Using "this_session" variable does not work, requires preceding <A HREF="motion.html#it">it</A>
with "<A HREF="eval.html#v:">v:</A>". Default filename for "<A HREF="starting.html#:mksession">:mksession</A>" isn't mentioned
in the docs. (Fisher)
Solution: Support using "this_session" to be backwards compatible.
Files: src/eval.c, runtime/doc/options.txt
Patch 5.5.046 (extra)
Problem: <A HREF="os_vms.html#VMS">VMS</A>: problems with path and filename.
Solution: Truncate file name at last '<A HREF="motion.html#;">;</A>', etc. (Zoltan Arpadffy)
Files: src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c,
src/proto/os_vms.pro
Patch 5.5.047
Problem: <A HREF="os_vms.html#VMS">VMS</A>: Crash when using the popup menu
Solution: Turn the #define MENU_MODE_CHARS into an array. (Arpadffy)
Files: src/structs.h, src/menu.c
Patch 5.5.048
Problem: HP-UX 11: Compiling doesn't work, because both string.h and
strings.h are included. (Squassabia)
Solution: The configure test for including both string.h and strings.h
must include <Xm/Xm.h> first, because <A HREF="motion.html#it">it</A> causes problems.
Files: src/configure.in, src/configure, src/config.h.in
Patch 5.5.049
Problem: <A HREF="os_unix.html#Unix">Unix</A>: When installing Vim, the protection bits of files might be
influenced by the umask.
Solution: Add $(FILEMOD) to Makefile. (Shetye)
Files: src/Makefile
Patch 5.5.050
Problem: "<A HREF="scroll.html#z+">z+</A>" and "<A HREF="scroll.html#z^">z^</A>" commands are missing.
Solution: Implemented "<A HREF="scroll.html#z+">z+</A>" and "<A HREF="scroll.html#z^">z^</A>".
Files: src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt
Patch 5.5.051
Problem: Several <A HREF="os_unix.html#Unix">Unix</A> systems have a problem with the optimization <A HREF="vi_diff.html#limits">limits</A>
check in configure.
Solution: Removed the configure check, let the user add <A HREF="motion.html#it">it</A> manually in
Makefile or the environment.
Files: src/configure.in, src/configure, src/Makefile
Patch 5.5.052
Problem: Crash when using a cursor key at the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> prompt. (Alberani)
Solution: Ignore special keys at the console <A HREF="gui_w32.html#dialog">dialog</A>. Also ignore characters
<A HREF="change.html#>">></A> 255 for other uses of <A HREF="eval.html#tolower()">tolower()</A> and <A HREF="eval.html#toupper()">toupper()</A>.
Files: src/menu.c, src/message.c, src/misc2.c
Patch 5.5.053
Problem: Indenting is wrong after a function when <A HREF="options.html#'cino'">'cino'</A> has "fs". Another
problem when <A HREF="options.html#'cino'">'cino'</A> has "{s".
Solution: Put line after closing "<A HREF="motion.html#}">}</A>" of a function at the left margin.
Apply ind_open_extra in the right way after a '<A HREF="motion.html#{">{</A>'.
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
Patch 5.5.054
Problem: <A HREF="os_unix.html#Unix">Unix</A>: "<A HREF="editing.html#:e">:e</A> #" doesn't work if the alternate file name contains a
space or <A HREF="intro.html#backslash">backslash</A>. (Hudacek)
Solution: When <A HREF="change.html#replacing">replacing</A> "<A HREF="pattern.html##">#</A>", "<A HREF="motion.html#%">%</A>" or other items that stand for a file name,
prepend a <A HREF="intro.html#backslash">backslash</A> before special characters.
Files: src/ex_docmd.c
Patch 5.5.055
Problem: Using "<C-V>$r-" in blockwise <A HREF="visual.html#Visual">Visual</A> mode replaces one character
beyond the end of the line. (Zivkov)
Solution: Only replace existing characters.
Files: src/ops.c
Patch 5.5.056
Problem: After "z20<CR>" <A HREF="message.html#messages">messages</A> were printed at the old command line
position once. (Veselinovic)
Solution: Set msg_row and msg_col when <A HREF="change.html#changing">changing</A> cmdline_row in
win_setheight().
Files: src/window.c
Patch 5.5.057
Problem: After "S<Esc>" <A HREF="motion.html#it">it</A> should be possible to restore the line with "<A HREF="undo.html#U">U</A>".
(Veselinovic)
Solution: Don't call u_clearline() in op_delete() when <A HREF="change.html#changing">changing</A> only one
line.
Files: src/ops.c
Patch 5.5.058
Problem: Using a long search <A HREF="pattern.html#pattern">pattern</A> and then "<A HREF="pattern.html#n">n</A>" causes the <A HREF="message.html#hit-enter">hit-enter</A>
prompt. (Krishna)
Solution: Truncate the echoed <A HREF="pattern.html#pattern">pattern</A>, like other <A HREF="message.html#messages">messages</A>. Moved code for
truncating from msg_attr() to msg_strtrunc().
Files: src/message.c, src/proto/message.pro, src/search.c
Patch 5.5.059
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When $term is invalid, using "<A HREF="starting.html#gvim">gvim</A>" gives an error
message, even though $term isn't really used. (Robbins)
Solution: When the <A HREF="gui.html#GUI">GUI</A> is about to start, skip the error <A HREF="message.html#messages">messages</A> for a
wrong $term.
Files: src/term.c
Patch 5.5.060 (extra)
Problem: Dos 32 bit: When a directory in <A HREF="options.html#'backupdir'">'backupdir'</A> doesn't exist, "<A HREF="editing.html#:w">:w</A>"
causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf)
Solution: The code to work around a LFN bug in Windows 95 doesn't handle a
non-existing target name correctly. When renaming fails, make
sure the file has its original name. Also <A HREF="diff.html#do">do</A> this for the <A HREF="os_win32.html#Win32">Win32</A>
version, although it's unlikely that <A HREF="motion.html#it">it</A> runs into this problem.
Files: src/os_msdos.c, src/os_win32.c
Patch 5.5.061
Problem: When using "\:" in a <A HREF="options.html#modeline">modeline</A>, the <A HREF="intro.html#backslash">backslash</A> is included in the
option value. (Mohsin)
Solution: Remove one <A HREF="intro.html#backslash">backslash</A> before the '<A HREF="cmdline.html#:">:</A>' in a <A HREF="options.html#modeline">modeline</A>.
Files: src/buffer.c, runtime/doc/options.txt
Patch 5.5.062 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> console: Temp files are created in the root of the current
drive, which may be read-only. (Peterson)
Solution: Use the same mechanism of the <A HREF="gui.html#GUI">GUI</A> version: Use $TMP, $TEMP or the
current directory. Cleaned up vim_tempname() a bit.
Files: src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt
Patch 5.5.063
Problem: When using whole-line completion in <A HREF="insert.html#Insert">Insert</A> mode, <A HREF="options.html#'cindent'">'cindent'</A> is
applied, even after <A HREF="change.html#changing">changing</A> the indent of the line.
Solution: Don't reindent the completed line after inserting/removing indent.
(Robert Webb)
Files: src/edit.c
Patch 5.5.064
Problem: has("sniff") doesn't work correctly.
Solution: Return 1 when Vim was compiled with the +sniff feature. (Pruemmer)
Files: src/eval.c
Patch 5.5.065
Problem: When dropping a file on Vim, the <A HREF="options.html#'shellslash'">'shellslash'</A> option is not
effective. (Krishna)
Solution: Fix the slashes in the dropped file names according to
<A HREF="options.html#'shellslash'">'shellslash'</A>.
Files: src/ex_docmd.c, runtime/doc/options.txt
Patch 5.5.066
Problem: For systems with <A HREF="intro.html#backslash">backslash</A> in file name: Setting a file name
option to a value starting with "\\machine" removed a <A HREF="intro.html#backslash">backslash</A>.
Solution: Keep the double <A HREF="intro.html#backslash">backslash</A> for "\\machine", but <A HREF="diff.html#do">do</A> change
"\\\\machine" to "\\machine" for backwards compatibility.
Files: src/option.c, runtime/doc/options.txt
Patch 5.5.067
Problem: With <A HREF="options.html#'hlsearch'">'hlsearch'</A> set, the <A HREF="pattern.html#pattern">pattern</A> "\>" doesn't highlight the first
match in a line. (Benji Fisher)
Solution: Fix highlighting an empty match. Also highlight the first
character in an empty line for "<A HREF="motion.html#$">$</A>".
Files: src/screen.c
Patch 5.5.068
Problem: Crash when a "<A HREF="eval.html#:while">:while</A>" is used with an argument that has an error.
(Sylvain Viart)
Solution: Was using an uninitialized index in the cs_line[] array. The
crash only happened when the index was far off. Made sure the
uninitialized index isn't used.
Files: src/ex_docmd.c
Patch 5.5.069
Problem: Shifting lines in blockwise <A HREF="visual.html#Visual">Visual</A> mode didn't set the <A HREF="options.html#'modified'">'modified'</A>
flag.
Solution: Do set the <A HREF="options.html#'modified'">'modified'</A> flag.
Files: src/ops.c
Patch 5.5.070
Problem: When editing a new file, creating that file outside of Vim, then
editing <A HREF="motion.html#it">it</A> again, "<A HREF="editing.html#:w">:w</A>" still warns for overwriting an existing
file. (Nam)
Solution: The BF_NEW flag in the "b_flags" field wasn't cleared properly.
Files: src/buffer.c, src/fileio.c
Patch 5.5.071
Problem: Using a matchgroup in a "<A HREF="syntax.html#:syn">:syn</A> region", which is the same <A HREF="syntax.html#syntax">syntax</A>
group <A HREF="motion.html#as">as</A> the region, didn't stop a contained item from matching in
the start <A HREF="pattern.html#pattern">pattern</A>.
Solution: Also push an item on the stack when the <A HREF="syntax.html#syntax">syntax</A> ID of the
matchgroup is the same <A HREF="motion.html#as">as</A> the <A HREF="syntax.html#syntax">syntax</A> ID of the region.
Files: src/syntax.c
Patch 5.5.072 (extra)
Problem: Dos 32 bit: When setting <A HREF="options.html#'columns'">'columns'</A> to a too large value, Vim may
crash, and the <A HREF="os_dos.html#DOS">DOS</A> console too.
Solution: Check that the value of <A HREF="options.html#'columns'">'columns'</A> isn't larger than the number of
columns that the BIOS reports.
Files: src/os_msdos.c, src/proto/os_msdos.pro, src/option.c
Patch 5.5.073 (extra)
Problem: Win 32 <A HREF="gui.html#GUI">GUI</A>: The Find and Find/Replace dialogs didn't show the
"match case" checkbox. The Find/Replace <A HREF="gui_w32.html#dialog">dialog</A> didn't handle the
"match whole word" checkbox.
Solution: Support the "match case" and "match whole word" checkboxes.
Files: src/gui_w32.c
Patch 5.6a.001
Problem: Using <A HREF="motion.html#<C-End>"><C-End></A> with a <A HREF="intro.html#count">count</A> doesn't work like <A HREF="motion.html#it">it</A> does with "<A HREF="motion.html#G">G</A>".
(Benji Fisher)
Solution: Accept a <A HREF="intro.html#count">count</A> for <A HREF="motion.html#<C-End>"><C-End></A> and <A HREF="motion.html#<C-Home>"><C-Home></A>.
Files: src/normal.c
Patch 5.6a.002
Problem: The <A HREF="usr_41.html#script">script</A> for conversion to HTML was an older version.
Solution: Add support for running <A HREF="syntax.html#2html.vim">2html.vim</A> on a color <A HREF="terminal.html#terminal">terminal</A>.
Files: runtime/syntax/2html.vim
Patch 5.6a.003
Problem: Defining a function inside a function didn't give an error
message. A missing "<A HREF="eval.html#:endfunction">:endfunction</A>" doesn't give an error message.
Solution: Allow defining a function inside a function.
Files: src/eval.c, runtime/doc/eval.txt
Patch 5.6a.004
Problem: A missing "<A HREF="eval.html#:endwhile">:endwhile</A>" or "<A HREF="eval.html#:endif">:endif</A>" doesn't give an error message.
(Johannes Zellner)
Solution: Check for missing "<A HREF="eval.html#:endwhile">:endwhile</A>" and "<A HREF="eval.html#:endif">:endif</A>" in sourced files.
Add missing "<A HREF="eval.html#:endif">:endif</A>" in file selection macros.
Files: src/ex_docmd.c, runtime/macros/file_select.vim
Patch 5.6a.005
Problem: <A HREF="options.html#'hlsearch'">'hlsearch'</A> was not listed alphabetically. The value of <A HREF="options.html#'toolbar'">'toolbar'</A>
was changed when <A HREF="options.html#'compatible'">'compatible'</A> is set.
Solution: Moved entry of <A HREF="options.html#'hlsearch'">'hlsearch'</A> in options[] table down.
Don't reset <A HREF="options.html#'toolbar'">'toolbar'</A> option to the default value when
<A HREF="options.html#'compatible'">'compatible'</A> is set.
Files: src/option.c
Patch 5.6a.006
Problem: Using a backwards range inside "<A HREF="eval.html#:if">:if</A> 0" gave an error message.
Solution: Don't complain about a range when <A HREF="motion.html#it">it</A> is not going to be used.
(Stefan Roemer)
Files: src/ex_docmd.c
Patch 5.6a.007
Problem: "<A HREF="eval.html#:let">:let</A>" didn't show internal Vim <A HREF="eval.html#variables">variables</A>. (Ron Aaron)
Solution: Do show "<A HREF="repeat.html#:v">:v</A>" <A HREF="eval.html#variables">variables</A> for "<A HREF="eval.html#:let">:let</A>" and "<A HREF="eval.html#:let">:let</A> v:name".
Files: src/eval.c
Patch 5.6a.008
Problem: Selecting a <A HREF="syntax.html#syntax">syntax</A> from the <A HREF="autocmd.html#Syntax">Syntax</A> menu gives an error message.
Solution: <A HREF="insert.html#Replace">Replace</A> "else if" in SetSyn() with "elseif". (Ronald Schild)
Files: runtime/menu.vim
Patch 5.6a.009
Problem: When compiling with <A HREF="various.html#+extra_search">+extra_search</A> but without <A HREF="various.html#+syntax">+syntax</A>, there is a
compilation error in screen.c. (Axel Kielhorn)
Solution: Adjust the #ifdef for declaring and initializing "line" in
win_line(). Also solve compilation problem when <A HREF="various.html#+statusline">+statusline</A> is
used without <A HREF="various.html#+eval">+eval</A>. Another one when <A HREF="various.html#+cmdline_compl">+cmdline_compl</A> is used
without <A HREF="various.html#+eval">+eval</A>.
Files: src/screen.c, src/misc2.c
Patch 5.6a.010
Problem: In a function, ":startinsert!" does not append to the end of the
line if a "<A HREF="various.html#:normal">:normal</A>" command was used to move the cursor. (Fisher)
Solution: Reset "w_set_curswant" to avoid that w_curswant is changed again.
Files: src/ex_docmd.c
Patch 5.6a.011 (depends on 5.6a.004)
Problem: A missing "<A HREF="eval.html#:endif">:endif</A>" or "<A HREF="eval.html#:endwhile">:endwhile</A>" in a function doesn't give an
error message.
Solution: Give that error message.
Files: src/ex_docmd.c
Patch 5.6a.012 (depends on 5.6a.008)
Problem: Some <A HREF="autocmd.html#Syntax">Syntax</A> menu entries caused a <A HREF="message.html#hit-enter">hit-enter</A> prompt.
Solution: Call a function to make the command shorter. Also rename a few
<A HREF="eval.html#functions">functions</A> to avoid name clashes.
Files: runtime/menu.vim
Patch 5.6a.013
Problem: Command line completion works different when another completion
was done earlier. (Johannes Zellner)
Solution: Reset wim_index when starting a new completion.
Files: src/ex_getln.c
Patch 5.6a.014
Problem: Various warning <A HREF="message.html#messages">messages</A> when compiling and running lint with
different combinations of features.
Solution: Fix the warning <A HREF="message.html#messages">messages</A>.
Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c,
src/option.c, src/screen.c, src/search.c, src/syntax.c,
src/feature.h, src/globals.h
Patch 5.6a.015
Problem: The <A HREF="usr_01.html#vimtutor">vimtutor</A> command doesn't always know the value of <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>.
Solution: Let Vim expand <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>, instead of the shell.
Files: src/vimtutor
Patch 5.6a.016 (extra)
Problem: <A HREF="os_mac.html#Mac">Mac</A>: Window size is restricted when starting. Cannot drag the
<A HREF="windows.html#window">window</A> all over the desktop.
Solution: Get real screen size instead of assuming 640x400. Do not use a
fixed number for the drag <A HREF="vi_diff.html#limits">limits</A>. (Axel Kielhorn)
Files: src/gui_mac.c
Patch 5.6a.017
Problem: The "Paste" entry in popup menu for <A HREF="visual.html#Visual">Visual</A>, <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Cmdline">Cmdline</A>
mode is in the wrong position. (Stol)
Solution: Add priority numbers for all Paste menu entries.
Files: runtime/menu.vim
Patch 5.6a.018
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: submenu priority doesn't work.
Help <A HREF="gui_w32.html#dialog">dialog</A> could be destroyed too soon.
When closing a <A HREF="gui_w32.html#dialog">dialog</A> <A HREF="windows.html#window">window</A> (e.g. the "<A HREF="usr_11.html#ATTENTION">ATTENTION</A>" one), Vim would
just hang.
When <A HREF="gui_x11.html#GTK">GTK</A> theme is changed, Vim doesn't adjust to the new colors.
Argument for "<A HREF="change.html#:promptfind">:promptfind</A>" isn't used.
Solution: Fixed the mentioned problems.
Made the dialogs look&feel nicer.
Moved <A HREF="eval.html#functions">functions</A> to avoid the need for a forward declaration.
Fixed reentrancy of the file browser <A HREF="gui_w32.html#dialog">dialog</A>.
Added drag&drop support for <A HREF="gui_x11.html#GNOME">GNOME</A>.
Init the text for the Find/replace <A HREF="gui_w32.html#dialog">dialog</A> from the last used
search <A HREF="eval.html#string">string</A>. Set "match whole word" toggle button correctly.
Made repeat rate for drag outside of <A HREF="windows.html#window">window</A> depend on the
distance from the <A HREF="windows.html#window">window</A>. (Marcin Dalecki)
Made the drag in <A HREF="visual.html#Visual">Visual</A> mode actually work.
Removed recursiveness protection from gui_mch_get_rgb(), <A HREF="motion.html#it">it</A> might
cause more trouble than <A HREF="motion.html#it">it</A> solves.
Files: src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c,
src/proto/ui.pro, src/misc2.c
Patch 5.6a.019
Problem: When trying to recover through NFS, which uses a large block size,
Vim might think the swap file is empty, because mf_blocknr_max is
zero. (Scott McDermott)
Solution: When computing the number of blocks of the file in mf_open(),
round up instead of down.
Files: src/memfile.c
Patch 5.6a.020
Problem: <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#GTK">GTK</A>: Could not set display for <A HREF="starting.html#gvim">gvim</A>.
Solution: Add "<A HREF="gui_x11.html#-display">-display</A>" and "--display" arguments. (Marcin Dalecki)
Files: src/gui_gtk_x11.c
Patch 5.6a.021
Problem: Recovering still may not work when the block size of the device
where the swap file is located is larger than 4096.
Solution: Read block 0 with the minimal block size.
Files: src/memline.c, src/memfile.c, src/vim.h
Patch 5.6a.022 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When an error in the <A HREF="starting.html#vimrc">vimrc</A> causes a <A HREF="gui_w32.html#dialog">dialog</A> to pop up
(e.g., for an existing swap file), Vim crashes. (David Elins)
Solution: Before showing a <A HREF="gui_w32.html#dialog">dialog</A>, open the main <A HREF="windows.html#window">window</A>.
Files: src/gui_w32.c
Patch 5.6a.023
Problem: Using expand("%:gs??/?") causes a crash. (Ron Aaron)
Solution: Check for running into the end of the <A HREF="eval.html#string">string</A> in do_string_sub().
Files: src/eval.c
Patch 5.6a.024
Problem: Using an <A HREF="autocmd.html#autocommand">autocommand</A> to delete a buffer when leaving <A HREF="motion.html#it">it</A> can cause
a crash when jumping to a <A HREF="tagsrch.html#tag">tag</A>. (Franz Gorkotte)
Solution: In do_tag(), store tagstacklen before jumping to another buffer.
Check tagstackidx after jumping to another buffer.
Add extra check in win_split() if tagname isn't NULL.
Files: src/tag.c, src/window.c
Patch 5.6a.025 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The tables for <A HREF="eval.html#toupper()">toupper()</A> and <A HREF="eval.html#tolower()">tolower()</A> are initialized
too late. (Mike Steed)
Solution: Move the <A HREF="starting.html#initialization">initialization</A> to win32_init() and call <A HREF="motion.html#it">it</A> from main().
Files: src/main.c, src/os_w32.c, src/proto/os_w32.pro
Patch 5.6a.026
Problem: When the SNiFF connection is open, shell commands hang. (Pruemmer)
Solution: Skip a second wait() call if waitpid() already detected that the
child has exited.
Files: src/os_unix.c
Patch 5.6a.027 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The "Edit with Vim" popup menu entry causes problems
for the Office toolbar.
Solution: Use a shell extension dll. (Tianmiao Hu)
Added <A HREF="motion.html#it">it</A> to the <A HREF="usr_90.html#install">install</A> and uninstal programs, replaces the old
"Edit with Vim" menu registry entries.
Files: src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt
Patch 5.6a.028 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dialogs and tear-off <A HREF="gui.html#menus">menus</A> can't handle <A HREF="mbyte.html#multi-byte">multi-byte</A>
characters.
Solution: Adjust nCopyAnsiToWideChar() to handle <A HREF="mbyte.html#multi-byte">multi-byte</A> characters
correctly.
Files: src/gui_w32.c
==============================================================================
VERSION 5.7 *<A NAME="version-5.7"></A><B>version-5.7</B>*
Version 5.7 is a bug-fix version of 5.6.
Changed *<A NAME="changed-5.7"></A><B>changed-5.7</B>*
Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid <A HREF="motion.html#it">it</A> being recognized with a
wrong file type. Also renamed src/INSTALL.amiga to INSTALL_ami.txt.
Added *<A NAME="added-5.7"></A><B>added-5.7</B>*
New <A HREF="syntax.html#syntax">syntax</A> files:
stp Stored Procedures (Jeff Lanzarotta)
snnsnet, snnspat, snnsres SNNS (Davide Alberani)
mel MEL (Robert Minsk)
<A HREF="if_ruby.html#ruby">ruby</A> <A HREF="if_ruby.html#Ruby">Ruby</A> (Mirko Nasato)
tli TealInfo (Kurt <A HREF="motion.html#W">W</A>. Andrews)
ora Oracle config file (Sandor Kopanyi)
abaqus Abaqus (Carl Osterwisch)
jproperties Java Properties (Simon Baldwin)
apache Apache config (Allan Kelly)
csp CSP (Jan Bredereke)
samba Samba config (Rafael Garcia-Suarez)
kscript <A HREF="gui_x11.html#KDE">KDE</A> <A HREF="usr_41.html#script">script</A> (Thomas Capricelli)
hb Hyper Builder (Alejandro Forero Cuervo)
fortran Fortran (rewritten) (Ajit <A HREF="change.html#J">J</A>. Thakkar)
sml SML (Fabrizio Zeno Cornelli)
cvs CVS commit (Matt Dunford)
aspperl ASP <A HREF="if_perl.html#Perl">Perl</A> (Aaron Hope)
bc BC calculator (Vladimir Scholtz)
latte Latte (Nick Moffitt)
wml WML (Gerfried Fuchs)
Included Exuberant <A HREF="tagsrch.html#ctags">ctags</A> 3.5.1. (Darren Hiebert)
"display" and "fold" arguments for <A HREF="syntax.html#syntax">syntax</A> items. For future extension, they
are ignored now.
<A HREF="eval.html#strftime()">strftime()</A> function for the <A HREF="os_mac.html#Macintosh">Macintosh</A>.
macros/explorer.vim: A file browser <A HREF="usr_41.html#script">script</A> (M A Aziz Ahmed)
Fixed *<A NAME="fixed-5.7"></A><B>fixed-5.7</B>*
The 16 bit <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> version is now compiled with Bcc 3.1 instead of 4.0. The
executable is smaller.
When a "make test" failed, the output file was lost. Rename <A HREF="motion.html#it">it</A> to
test99.failed to be able to see what went wrong.
After sourcing <A HREF="intro.html#bugreport.vim">bugreport.vim</A>, it's not clear that bugreport.txt has been
written in the current directory. Edit bugreport.txt to avoid that.
Adding <A HREF="mbyte.html#IME">IME</A> support when using Makefile.w32 didn't work. (Taro Muraoka)
<A HREF="os_win32.html#Win32">Win32</A> console: Mouse drags were passed on even when the mouse didn't move.
<A HREF="if_perl.html#Perl">Perl</A> interface: In Buffers(), type of argument to SvPV() was int, should be
STRLEN. (Tony Leneis)
Problem with prototype for <A HREF="eval.html#index()">index()</A> on AIX 4.3.0. Added check for _AIX43 in
os_unix.h. (Jake Hamby)
Mappings in <A HREF="gui_w32.html#mswin.vim">mswin.vim</A> could break when some commands are mapped. Add "nore"
to most mappings to avoid re-mapping.
modify_fname() made a copy of a file name for "<A HREF="various.html#:p">:p</A>" when <A HREF="motion.html#it">it</A> already was a full
path name, which is a bit slow.
<A HREF="os_win32.html#Win32">Win32</A> with Borland C++ 5.5: Pass the path to the compiler on to xxd and <A HREF="tagsrch.html#ctags">ctags</A>,
to avoid depending on $PATH. Fixed "make clean".
Many fixes to <A HREF="os_mac.html#Macintosh">Macintosh</A> specific parts: (mostly by Dany StAmant)
- Only one Help menu.
- No more crash when removing a menu item.
- Support <A HREF="motion.html#as">as</A> External Editor for Codewarrior (still some little glitches).
- Popup menu support.
- Fixed crash when pasting after application switch.
- Color from <A HREF="gui_w32.html#rgb.txt">rgb.txt</A> properly displayed.
- <A HREF="options.html#'isprint'">'isprint'</A> default includes all chars above '<A HREF="change.html#~">~</A>'. (Axel Kielhorn)
- mac_expandpath() was leaking memory.
- Add <A HREF="digraph.html#digraphs">digraphs</A> table. (Axel Kielhorn)
- Multi-byte support: (Kenichi Asai)
Switch keyscript when going in/out of <A HREF="insert.html#Insert">Insert</A> mode.
Draw <A HREF="mbyte.html#multi-byte">multi-byte</A> character correctly.
Don't use mblen() but highest bit of char to detect <A HREF="mbyte.html#multi-byte">multi-byte</A> char.
Display value of <A HREF="mbyte.html#multi-byte">multi-byte</A> in statusline (also for other systems).
- mouse button was not initialized properly to MOUSE_LEFT when
USE_CTRLCLICKMENU not defined.
- With <A HREF="mbyte.html#Japanese">Japanese</A> SJIS characters: Make "<A HREF="motion.html#w">w</A>", "<A HREF="motion.html#b">b</A>", and "<A HREF="motion.html#e">e</A>" work
properly. (Kenichi Asai)
- Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx.
Fixes for <A HREF="os_vms.html#VMS">VMS</A>: (Zoltan Arpadffy) (also see patch 5.6.045 below)
- Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the
tests.
- Various fixes.
- Set <A HREF="options.html#'undolevels'">'undolevels'</A> to 1000 by default.
- Made mch_settitle() equivalent to the one in os_unix.c.
RiscOS: A few prototypes for os_riscos.c were outdated. Generate prototypes
automatically.
Previously released patches:
Patch 5.6.001
Problem: When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which
reduces the indent doesn't delete the "<A HREF="pattern.html##">#</A>" or "<A HREF="motion.html#}">}</A>". (Lorton)
Solution: Adjust ai_col in ins_try_si().
Files: src/edit.c
Patch 5.6.002
Problem: When using the <A HREF="syntax.html#vim.vim">vim.vim</A> <A HREF="syntax.html#syntax">syntax</A> file, a comment with all <A HREF="change.html#uppercase">uppercase</A>
characters causes a hang.
Solution: Adjust <A HREF="pattern.html#pattern">pattern</A> for vimCommentTitle (Charles Campbell)
Files: runtime/syntax/vim.vim
Patch 5.6.003
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Loading a user defined toolbar bitmap gives a warning
about the colormap. Probably because the <A HREF="windows.html#window">window</A> has not been
opened yet.
Solution: Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file.
(Keith Radebaugh)
Files: src/gui_gtk.c
Patch 5.6.004 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> with <A HREF="mbyte.html#IME">IME</A>: When setting <A HREF="options.html#'guifont'">'guifont'</A> to "*", the font
requester appears <A HREF="if_cscop.html#twice">twice</A>.
Solution: In gui_mch_init_font() don't call get_logfont() but copy
norm_logfont from fh. (Yasuhiro Matsumoto)
Files: src/gui_w32.c
Patch 5.6.005
Problem: When <A HREF="options.html#'winminheight'">'winminheight'</A> is zero, <A HREF="index.html#CTRL-W">CTRL-W</A> - with a big number causes a
crash. (David Kotchan)
Solution: Check for negative <A HREF="windows.html#window">window</A> height in win_setheight().
Files: src/window.c
Patch 5.6.006
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Bold font cannot always be used. Memory is freed too
early in gui_mch_init_font().
Solution: Move call to g_free() to after where sdup is used. (Artem Hodyush)
Files: src/gui_gtk_x11.c
Patch 5.6.007 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: Font is not changed when screen font is changed. And
<A HREF="mbyte.html#IME">IME</A> composition <A HREF="windows.html#window">window</A> does not trace the cursor.
Solution: Initialize <A HREF="mbyte.html#IME">IME</A> font. When cursor is moved, set <A HREF="mbyte.html#IME">IME</A> composition
<A HREF="windows.html#window">window</A> with ImeSetCompositionWindow(). Add call to
ImmReleaseContext() in several places. (Taro Muraoka)
Files: src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro
Patch 5.6.008 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A>: When two files exist with the same name but different <A HREF="change.html#case">case</A>
(through NFS or Samba), fixing the file name <A HREF="change.html#case">case</A> could cause the
wrong one to be edited.
Solution: Prefer a perfect match above a match while ignoring <A HREF="change.html#case">case</A> in
fname_case(). (Flemming Madsen)
Files: src/os_win32.c
Patch 5.6.009 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Garbage in Windows Explorer help line when selecting
"Edit with Vim" popup menu entry.
Solution: Only return the help line when called with the GCS_HELPTEXT flag.
(Tianmiao Hu)
Files: GvimExt/gvimext.cpp
Patch 5.6.010
Problem: A file name which contains a TAB was not read correctly from the
<A HREF="starting.html#viminfo">viminfo</A> file and the "<A HREF="windows.html#:ls">:ls</A>" listing was not aligned properly.
Solution: Parse the buffer <A HREF="eval.html#list">list</A> lines in the <A HREF="starting.html#viminfo">viminfo</A> file from the end
backwards. Count a <A HREF="intro.html#Tab">Tab</A> for two characters to align the "<A HREF="windows.html#:ls">:ls</A>" <A HREF="eval.html#list">list</A>.
Files: src/buffer.c
Patch 5.6.011
Problem: When <A HREF="options.html#'columns'">'columns'</A> is huge (using a tiny font) and <A HREF="options.html#'statusline'">'statusline'</A> is
used, Vim can crash.
Solution: Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin)
Files: src/screen.c
Patch 5.6.012
Problem: When using "zsh" for /bin/sh, toolcheck may hang until "exit" is
typed. (Kuratczyk)
Solution: Add "<A HREF="starting.html#-c">-c</A> exit" when checking for the shell version.
Files: src/toolcheck
Patch 5.6.013
Problem: Multibyte char in tooltip is broken.
Solution: Consider <A HREF="mbyte.html#multibyte">multibyte</A> char in replace_termcodes(). (Taro Muraoka)
Files: src/term.c
Patch 5.6.014
Problem: When cursor is at the end of line and the character under cursor
is a <A HREF="mbyte.html#multibyte">multibyte</A> character, "yl" doesn't <A HREF="change.html#yank">yank</A> 1 multibyte-char.
(Takuhiro Nishioka)
Solution: Recognize a multibyte-char at end-of-line correctly in oneright().
(Taro Muraoka)
Also: make "<A HREF="various.html#+quickfix">+quickfix</A>" in "<A HREF="various.html#:version">:version</A>" output appear alphabetically.
Files: src/edit.c
Patch 5.6.015
Problem: New xterm delete key sends <Esc>[3~ by default.
Solution: Added <kDel> and <kIns> to make the set of keypad keys complete.
Files: src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c,
src/misc2.c, src/normal.c, src/os_unix.c, src/term.c
Patch 5.6.016
Problem: When <A HREF="change.html#deleting">deleting</A> a search <A HREF="eval.html#string">string</A> from <A HREF="cmdline.html#history">history</A> from inside a <A HREF="map.html#mapping">mapping</A>,
another entry is deleted too. (Benji Fisher)
Solution: Reset last_maptick when <A HREF="change.html#deleting">deleting</A> the last entry of the search
<A HREF="cmdline.html#history">history</A>. Also: Increment maptick when starting a <A HREF="map.html#mapping">mapping</A> from
typed characters to avoid a just added search <A HREF="eval.html#string">string</A> being
overwritten or removed from <A HREF="cmdline.html#history">history</A>.
Files: src/ex_getln.c, src/getchar.c
Patch 5.6.017
Problem: ":s/e/\^M/" should replace an "<A HREF="motion.html#e">e</A>" with a <A HREF="motion.html#CTRL-M">CTRL-M</A>, not split the
line. (Calder)
Solution: <A HREF="insert.html#Replace">Replace</A> the <A HREF="intro.html#backslash">backslash</A> with a <A HREF="visual.html#CTRL-V">CTRL-V</A> internally. (Stephen <A HREF="change.html#P">P</A>. Wall)
Files: src/ex_cmds.c
Patch 5.6.018
Problem: "<A HREF="helphelp.html#:help">:help</A> [:digit:]" takes a long time to jump to the wrong place.
Solution: <A HREF="insert.html#Insert">Insert</A> a <A HREF="intro.html#backslash">backslash</A> to avoid the special meaning of '<A HREF="motion.html#[]">[]</A>'.
Files: src/ex_cmds.c
Patch 5.6.019
Problem: "snd.c", "snd.java", etc. were recognized <A HREF="motion.html#as">as</A> "mail" <A HREF="filetype.html#filetype">filetype</A>.
Solution: Make <A HREF="pattern.html#pattern">pattern</A> for mail <A HREF="filetype.html#filetype">filetype</A> more strict.
Files: runtime/filetype.vim
Patch 5.6.020 (extra)
Problem: The DJGPP version eats processor time (Walter Briscoe).
Solution: Call __dpmi_yield() in the busy-wait loop.
Files: src/os_msdos.c
Patch 5.6.021
Problem: When <A HREF="options.html#'selection'">'selection'</A> is "<A HREF="motion.html#exclusive">exclusive</A>", a double mouse click in <A HREF="insert.html#Insert">Insert</A>
mode doesn't select last char in line. (Lutz)
Solution: Allow leaving the cursor on the NUL past the line in this <A HREF="change.html#case">case</A>.
Files: src/edit.c
Patch 5.6.022
Problem: "<A HREF="editing.html#:e">:e</A> \~<Tab>" expands to "<A HREF="editing.html#:e">:e</A> ~\$ceelen", which doesn't work.
Solution: Re-insert the <A HREF="intro.html#backslash">backslash</A> before the '<A HREF="change.html#~">~</A>'.
Files: src/ex_getln.c
Patch 5.6.023 (extra)
Problem: Various warnings for the Ming compiler.
Solution: Changes to avoid the warnings. (Bill McCarthy)
Files: src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c,
src/syntax.c, src/vim.rc
Patch 5.6.024 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> console: Entering CTRL-_ requires the <A HREF="intro.html#shift">shift</A> key. (Kotchan)
Solution: Specifically catch keycode 0xBD, like the <A HREF="gui.html#GUI">GUI</A>.
Files: src/os_win32.c
Patch 5.6.025
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Starting the <A HREF="gui.html#GUI">GUI</A> could be interrupted by a SIGWINCH.
(Nils Lohner)
Solution: Repeat the read() call to get the gui_in_use value when
interrupted by a signal.
Files: src/gui.c
Patch 5.6.026 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Toolbar bitmaps are searched for in
$VIMRUNTIME/bitmaps, while <A HREF="gui_x11.html#GTK">GTK</A> looks in $VIM/bitmaps. (Keith
Radebaugh)
Solution: Use $VIM/bitmaps for both, because these are not part of the
<A HREF="intro.html#distribution">distribution</A> but defined by the user.
Files: src/gui_w32.c, runtime/doc/gui.txt
Patch 5.6.027
Problem: <A HREF="if_tcl.html#TCL">TCL</A>: Crash when using a <A HREF="if_tcl.html#Tcl">Tcl</A> <A HREF="usr_41.html#script">script</A> (reported for <A HREF="os_win32.html#Win32">Win32</A>).
Solution: Call Tcl_FindExecutable() in main(). (Brent Fulgham)
Files: src/main.c
Patch 5.6.028
Problem: Xterm patch level 126 sends codes for mouse scroll wheel.
Fully works with xterm patch level 131.
Solution: Recognize the codes for button 4 (0x60) and button 5 (0x61).
Files: src/term.c
Patch 5.6.029
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Shortcut keys cannot be used for a <A HREF="gui_w32.html#dialog">dialog</A>. (Johannes
Zellner)
Solution: Add support for shortcut keys. (Marcin Dalecki)
Files: src/gui_gtk.c
Patch 5.6.030
Problem: When closing a <A HREF="windows.html#window">window</A> and <A HREF="options.html#'ea'">'ea'</A> is set, Vim can crash. (Yasuhiro
Matsumoto)
Solution: Set "curbuf" to a valid value in win_close().
Files: src/window.c
Patch 5.6.031
Problem: Multi-byte: When a double-byte character ends in CSI, Vim waits
for another character to be typed.
Solution: Recognize the CSI <A HREF="motion.html#as">as</A> the second byte of a character and don't wait
for another one. (Yasuhiro Matsumoto)
Files: src/getchar.c
Patch 5.6.032
Problem: Functions with an argument that is a line number don't all accept
"<A HREF="repeat.html#.">.</A>", "<A HREF="motion.html#$">$</A>", etc. (Ralf Arens)
Solution: Add get_art_lnum() and use <A HREF="motion.html#it">it</A> for <A HREF="eval.html#setline()">setline()</A>, <A HREF="eval.html#line2byte()">line2byte()</A> and
<A HREF="eval.html#synID()">synID()</A>.
Files: src/eval.c
Patch 5.6.033
Problem: Multi-byte: "<A HREF="motion.html#f">f</A> " sometimes skips to the second space. (Sung-Hyun
Nam)
Solution: Change logic in searchc() to skip trailing byte of a double-byte
character.
Also: Ask for second byte when searching for double-byte
character. (Park Chong-Dae)
Files: src/search.c
Patch 5.6.034 (extra)
Problem: Compiling with Borland C++ 5.5 fails on <A HREF="eval.html#tolower()">tolower()</A> and <A HREF="eval.html#toupper()">toupper()</A>.
Solution: Use TO_LOWER() and TO_UPPER() instead. Also adjust the Makefile
to make using bcc 5.5 easier.
Files: src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor
Patch 5.6.035
Problem: Listing the"+comments" feature in the "<A HREF="various.html#:version">:version</A>" output depended
on the wrong ID. (Stephen <A HREF="change.html#P">P</A>. Wall)
Solution: Change "CRYPTV" to "COMMENTS".
Files: src/version.c
Patch 5.6.036
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Copy/paste text doesn't work between <A HREF="starting.html#gvim">gvim</A> and <A HREF="syntax.html#Eterm">Eterm</A>.
Solution: Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
Files: src/gui_gtk_x11.c
Patch 5.6.037
Problem: Multi-byte: Can't use "<A HREF="motion.html#f">f</A>" command with <A HREF="mbyte.html#multi-byte">multi-byte</A> character in <A HREF="gui.html#GUI">GUI</A>.
Solution: Enable <A HREF="mbyte.html#XIM">XIM</A> in <A HREF="intro.html#Normal">Normal</A> mode for the <A HREF="gui.html#GUI">GUI</A>. (Sung-Hyun Nam)
Files: src/gui_gtk_x11.c, src/multbyte.c
Patch 5.6.038
Problem: Multi-clicks in <A HREF="gui.html#GUI">GUI</A> are interpreted <A HREF="motion.html#as">as</A> a mouse wheel click. When
<A HREF="options.html#'ttymouse'">'ttymouse'</A> is "xterm" a mouse click is interpreted <A HREF="motion.html#as">as</A> a mouse
wheel click.
Solution: Don't recognize the mouse wheel in check_termcode() in the <A HREF="gui.html#GUI">GUI</A>.
Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63.
Files: src/term.c, src/os_unix.c
Patch 5.6.039
Problem: <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> under <A HREF="gui_x11.html#KDE">KDE</A>: When trying to logout, Vim hangs up the
system. (Hermann Rochholz)
Solution: When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND
property of the <A HREF="windows.html#window">window</A> to let the session manager know we finished
saving ourselves.
Files: src/gui_x11.c
Patch 5.6.040
Problem: When using "<A HREF="change.html#:s">:s</A>" command, matching the <A HREF="pattern.html#regexp">regexp</A> is done <A HREF="if_cscop.html#twice">twice</A>.
Solution: After <A HREF="uganda.html#copying">copying</A> the matched line, adjust the pointers instead of
finding the match again. (Loic Grenie) Added vim_regnewptr().
Files: src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro
Patch 5.6.041
Problem: <A HREF="gui.html#GUI">GUI</A>: <A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A> don't give more than 10 <A HREF="gui_w32.html#dialog">dialog</A> buttons.
Solution: Remove the limit on the number of buttons.
Also support the '<A HREF="visual.html#v">v</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>.
For <A HREF="gui_x11.html#GTK">GTK</A>: Center the buttons.
Files: src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c
Patch 5.6.042
Problem: When doing "vim <A HREF="starting.html#-u">-u</A> vimrc" and <A HREF="starting.html#vimrc">vimrc</A> contains "<A HREF="editing.html#:q">:q</A>", the cursor in
the <A HREF="terminal.html#terminal">terminal</A> can remain off.
Solution: Call cursor_on() in mch_windexit().
Files: src/os_unix.c
Patch 5.6.043 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When selecting guifont with the <A HREF="gui_w32.html#dialog">dialog</A>, <A HREF="options.html#'guifont'">'guifont'</A>
doesn't include the <A HREF="syntax.html#bold">bold</A> or <A HREF="syntax.html#italic">italic</A> attributes.
Solution: Append "<A HREF="insert.html#:i">:i</A>" and/or "<A HREF="windows.html#:b">:b</A>" to <A HREF="options.html#'guifont'">'guifont'</A> in gui_mch_init_font().
Files: src/gui_w32.c
Patch 5.6.044 (extra)
Problem: <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and Windows: The line that dosinst.exe appends to
autoexec.bat to set PATH is wrong when Vim is in a directory with
an embedded space.
Solution: Use double <A HREF="quotes.html#quotes">quotes</A> for the value when there is an embedded space.
Files: src/dosinst.c
Patch 5.6.045 (extra) (fixed version)
Problem: <A HREF="os_vms.html#VMS">VMS</A>: Various small problems.
Solution: Many small changes. (Zoltan Arpadffy)
File name modifier "<A HREF="helphelp.html#:h">:h</A>" keeps the path separator.
File name modifier "<A HREF="editing.html#:e">:e</A>" also removes version.
Compile with MAX_FEAT by default.
When checking for autocommands ignore version in file name.
Be aware of file names being <A HREF="change.html#case">case</A> insensitive.
Added vt320 builtin <A HREF="term.html#termcap">termcap</A>.
Be prepared for an empty default_vim_dir.
Files: runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c
Patch 5.6.046
Problem: Systems with <A HREF="intro.html#backslash">backslash</A> in file name: With <A HREF="options.html#'shellslash'">'shellslash'</A> set, "vim
*/*.c" only uses a slash for the first file name. (Har'El)
Solution: Fix slashes in file name arguments after reading the <A HREF="starting.html#vimrc">vimrc</A> file.
Files: src/option.c
Patch 5.6.047
Problem: $CPPFLAGS is not passed on to <A HREF="tagsrch.html#ctags">ctags</A> configure.
Solution: Add <A HREF="motion.html#it">it</A>. (Walter Briscoe)
Files: src/config.mk.in, src/Makefile
Patch 5.6.048
Problem: <A HREF="undo.html#CTRL-R">CTRL-R</A> in <A HREF="cmdline.html#Command-line">Command-line</A> mode is documented to insert text <A HREF="motion.html#as">as</A> typed,
but inserts text literally.
Solution: Make <A HREF="undo.html#CTRL-R">CTRL-R</A> insert text <A HREF="motion.html#as">as</A> typed, use <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="undo.html#CTRL-R">CTRL-R</A> to insert
literally. This is consistent with <A HREF="insert.html#Insert">Insert</A> mode. But characters
that end <A HREF="cmdline.html#Command-line">Command-line</A> mode are inserted literally.
Files: runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c,
src/ops.c, src/proto/ops.pro
Patch 5.6.049
Problem: Documentation for [!] after "<A HREF="tagsrch.html#:ijump">:ijump</A>" is wrong way around. (Benji
Fisher)
Solution: Fix the documentation. Also improve the code to check for a match
after a /* */ comment.
Files: runtime/doc/tagsearch.txt, src/search.c
Patch 5.6.050
Problem: Replacing is wrong when <A HREF="change.html#replacing">replacing</A> a single-byte char with
double-byte char or the other way around.
Solution: Shift the text after the character when <A HREF="motion.html#it">it</A> is replaced.
(Yasuhiro Matsumoto)
Files: src/normal.c, src/misc1.c
Patch 5.6.051
Problem: ":tprev" and "<A HREF="tagsrch.html#:tnext">:tnext</A>" don't give an error message when trying to
go before the first or beyond the last <A HREF="tagsrch.html#tag">tag</A>. (Robert Webb)
Solution: Added error <A HREF="message.html#messages">messages</A>. Also: Delay a second when a <A HREF="insert.html#file-read">file-read</A>
message is going to overwrite an error message, otherwise <A HREF="motion.html#it">it</A> won't
be seen.
Files: src/fileio.c, src/tag.c
Patch 5.6.052
Problem: Multi-byte: When an <A HREF="intro.html#Ex">Ex</A> command has a '|' or '"'' <A HREF="motion.html#as">as</A> a second byte,
<A HREF="motion.html#it">it</A> terminates the command.
Solution: Skip second byte of <A HREF="mbyte.html#multi-byte">multi-byte</A> char when checking for '|' and '"''.
(Asai Kenichi)
Files: src/ex_docmd.c
Patch 5.6.053
Problem: <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> doesn't work on a <A HREF="tagsrch.html#tag">tag</A> that contains a '|'. (Cesar Crusius)
Solution: Escape '|', '"'' and '\' in <A HREF="tagsrch.html#tag">tag</A> names when using <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> and also
for command-line completion.
Files: src/ex_getln.c, src/normal.c
Patch 5.6.054
Problem: When using "<A HREF="editing.html#:e">:e</A>" and "<A HREF="editing.html#:e">:e</A> #" the cursor is put in the first column
when <A HREF="options.html#'startofline'">'startofline'</A> is set. (Cordell)
Solution: Use the last known column when <A HREF="options.html#'startofline'">'startofline'</A> is set.
Also, use ECMD_LAST more often to simplify the code.
Files: src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro
Patch 5.6.055
Problem: When <A HREF="options.html#'statusline'">'statusline'</A> only contains a text without "<A HREF="motion.html#%">%</A>" and doesn't fit
in the <A HREF="windows.html#window">window</A>, Vim crashes. (Ron Aaron)
Solution: Don't use the pointer for the first item if there is no item.
Files: src/screen.c
Patch 5.6.056 (extra)
Problem: <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>: F11 and F12 don't work when <A HREF="options.html#'bioskey'">'bioskey'</A> is set.
Solution: Use enhanced keyboard <A HREF="eval.html#functions">functions</A>. (Vince Negri)
Detect presence of enhanced keyboard and set bioskey_read and
bioskey_ready.
Files: src/os_msdos.c
Patch 5.6.057 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Multi-byte characters are wrong in dialogs and tear-off
<A HREF="gui.html#menus">menus</A>.
Solution: Use system font instead of a fixed font. (Matsumoto, Muraoka)
Files: src/gui_w32.c
Patch 5.6.058
Problem: When the '<A HREF="insert.html#a">a</A>' flag is not in <A HREF="options.html#'guioptions'">'guioptions'</A>, non-Windows systems
copy Visually selected text to the clipboard/selection on a <A HREF="change.html#yank">yank</A>
or delete command anyway. On Windows <A HREF="motion.html#it">it</A> isn't done even when the
'<A HREF="insert.html#a">a</A>' flag is included.
Solution: Respect the '<A HREF="insert.html#a">a</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A> on all systems.
Files: src/normal.c
Patch 5.6.059 (extra)
Problem: When moving the cursor over <A HREF="syntax.html#italic">italic</A> text and the characters spill
over to the cell on the right, that spill-over is deleted.
Noticed in the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>, can happen on other systems too.
Solution: Redraw <A HREF="syntax.html#italic">italic</A> text starting from a blank, like this is already
done for <A HREF="syntax.html#bold">bold</A> text. (Vince Negri)
Files: src/gui.c, src/gui.h, src/gui_w32.c
Patch 5.6.060
Problem: Some <A HREF="syntax.html#bold">bold</A> characters spill over to the cell on the left, that
spill-over can remain sometimes.
Solution: Redraw a character when the next character was <A HREF="syntax.html#bold">bold</A> and needs
redrawing. (Robert Webb)
Files: src/screen.c
Patch 5.6.061
Problem: When xterm sends 8-bit controls, recognizing the version response
doesn't work.
When using CSI instead of <Esc>[ for the <A HREF="term.html#termcap">termcap</A> color codes,
using 16 colors doesn't work. (Neil Bird)
Solution: Also accept CSI in place of <Esc>[ for the version <A HREF="eval.html#string">string</A>.
Also check for CSI when handling colors 8-15 in term_color().
Use CSI for builtin xterm <A HREF="term.html#termcap">termcap</A> entries when <A HREF="options.html#'term'">'term'</A> contains
"8bit".
Files: runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c,
src/os_unix.c, src/proto/option.pro, src/proto/term.pro
Patch 5.6.062
Problem: The documentation says that setting <A HREF="options.html#'smartindent'">'smartindent'</A> doesn't have an
effect when <A HREF="options.html#'cindent'">'cindent'</A> is set, but <A HREF="motion.html#it">it</A> does make a difference for
lines starting with "<A HREF="pattern.html##">#</A>". (Neil Bird)
Solution: Really ignore <A HREF="options.html#'smartindent'">'smartindent'</A> when <A HREF="options.html#'cindent'">'cindent'</A> is set.
Files: src/misc1.c, src/ops.c
Patch 5.6.063
Problem: Using "<A HREF="insert.html#I">I</A>" in Visual-block mode doesn't accept a <A HREF="intro.html#count">count</A>. (Johannes
Zellner)
Solution: Pass the <A HREF="intro.html#count">count</A> on to do_insert() and edit(). (Allan Kelly)
Files: src/normal.c, src/ops.c, src/proto/ops.pro
Patch 5.6.064
Problem: <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> console: Mouse doesn't work correctly after
including patch 5.6.28. (Vince Negri)
Solution: Don't check for mouse scroll wheel when the mouse code contains
the number of clicks.
Files: src/term.c
Patch 5.6.065
Problem: After moving the cursor around in <A HREF="insert.html#Insert">Insert</A> mode, typing a space can
still trigger an abbreviation. (Benji Fisher)
Solution: Don't check for an abbreviation after moving around in <A HREF="insert.html#Insert">Insert</A> mode.
Files: src/edit.c
Patch 5.6.066
Problem: Still a few <A HREF="syntax.html#bold">bold</A> character spill-over remains after patch 60.
Solution: Clear character just in front of blanking out rest of the line.
(Robert Webb)
Files: src/screen.c
Patch 5.6.067
Problem: When a file name contains a NL, the <A HREF="starting.html#viminfo">viminfo</A> file is corrupted.
Solution: Use viminfo_writestring() to convert the NL to <A HREF="visual.html#CTRL-V">CTRL-V</A> <A HREF="pattern.html#n">n</A>.
Also fix the Buffers menu and listing a menu name with a newline.
Files: runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c
Patch 5.6.068
Problem: Compiling the <A HREF="if_perl.html#Perl">Perl</A> interface doesn't work with <A HREF="if_perl.html#Perl">Perl</A> 5.6.0.
(Bernhard Rosenkraenzer)
Solution: Also check xs_apiversion for the version number when prepending
defines for PL_*.
Files: src/Makefile
Patch 5.6.069
Problem: "go" doesn't always end up at the right character when
<A HREF="options.html#'fileformat'">'fileformat'</A> is "<A HREF="os_dos.html#dos">dos</A>". (Bruce DeVisser)
Solution: Correct computations in ml_find_line_or_offset().
Files: src/memline.
Patch 5.6.070 (depends on 5.6.068)
Problem: Compiling the <A HREF="if_perl.html#Perl">Perl</A> interface doesn't work with <A HREF="if_perl.html#Perl">Perl</A> 5.6.0.
(Bernhard Rosenkraenzer)
Solution: Simpler check instead of the one from patch 68.
Files: src/Makefile
Patch 5.6.071
Problem: "<A HREF="insert.html#A">A</A>" in <A HREF="visual.html#Visual">Visual</A> block mode on a <A HREF="intro.html#Tab">Tab</A> positions the cursor one char to
the right. (Michael Haumann)
Solution: Correct the column computation in op_insert().
Files: src/ops.c
Patch 5.6.072
Problem: When starting Vim with "vim +startinsert", <A HREF="motion.html#it">it</A> enters <A HREF="insert.html#Insert">Insert</A> mode
only after typing the first command. (Andrew Pimlott)
Solution: <A HREF="insert.html#Insert">Insert</A> a dummy command in the stuff buffer.
Files: src/main.c
Patch 5.6.073 (extra) (depends on 5.6.034)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When compiled with Bcc 5.5 <A HREF="gui.html#menus">menus</A> don't work.
In dosinst.c <A HREF="eval.html#toupper()">toupper()</A> and <A HREF="eval.html#tolower()">tolower()</A> give an "internal compiler
error" for Bcc 5.5.
Solution: Define WINVER to 4 to avoid compiling for Windows 2000. (Dan
Sharp) Also cleaned up compilation arguments.
Use our own implementation of <A HREF="eval.html#toupper()">toupper()</A> in dosinst.c. Use
mytoupper() instead of <A HREF="eval.html#tolower()">tolower()</A>.
Files: src/Makefile.bor, src/dosinst.c
Patch 5.6.074 (extra)
Problem: Entering CSI directly doesn't always work, because it's recognized
<A HREF="motion.html#as">as</A> the start of a special key. Mostly a problem with <A HREF="mbyte.html#multi-byte">multi-byte</A>
in the <A HREF="gui.html#GUI">GUI</A>.
Solution: Use K_CSI for a typed CSI character. Use <A HREF="intro.html#<CSI>"><CSI></A> for a normal CSI,
<A HREF="intro.html#<xCSI>"><xCSI></A> for a CSI typed in the <A HREF="gui.html#GUI">GUI</A>.
Files: runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c,
src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c,
src/keymap.h, src/misc2.c
Patch 5.6.075
Problem: When using "<A HREF="insert.html#I">I</A>" or "<A HREF="insert.html#A">A</A>" in <A HREF="visual.html#Visual">Visual</A> block mode while <A HREF="options.html#'sts'">'sts'</A> is set may
change spaces to a <A HREF="intro.html#Tab">Tab</A> the inserted text is not correct. (Mike
Steed) And some other problems when using "<A HREF="insert.html#A">A</A>" to append after the
end of the line.
Solution: Check for change in spaces/tabs after <A HREF="insert.html#inserting">inserting</A> the text. Append
spaces to fill the gap between the end-of-line and the right edge
of the block.
Files: src/ops.c
Patch 5.6.076
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Mapping <M-Space> doesn't work.
Solution: Don't use the "Alt" modifier <A HREF="if_cscop.html#twice">twice</A> in key_press_event().
Files: src/gui_gtk_x11.c
Patch 5.6.077
Problem: <A HREF="gui.html#GUI">GUI</A>: When interrupting an external program with <A HREF="pattern.html#CTRL-C">CTRL-C</A>, <A HREF="starting.html#gvim">gvim</A> might
crash. (Benjamin Korvemaker)
Solution: Avoid using a NULL pointer in ui_inchar_undo().
Files: src/ui.c
Patch 5.6.078
Problem: Locale doesn't always work on FreeBSD. (David O'Brien)
Solution: Link with the "xpg4" library when available.
Files: src/configure.in, src/configure
Patch 5.6.079
Problem: Vim could crash when several <A HREF="if_tcl.html#Tcl">Tcl</A> interpreters are created and
destroyed.
Solution: handle the "exit" command and nested "<A HREF="if_tcl.html#:tcl">:tcl</A>" commands better. (Ingo
Wilken)
Files: runtime/doc/if_tcl.txt, src/if_tcl.c
Patch 5.6.080
Problem: When jumping to a <A HREF="tagsrch.html#tag">tag</A>, generating the <A HREF="tagsrch.html#tags">tags</A> file and jumping to the
same <A HREF="tagsrch.html#tag">tag</A> again uses the old search <A HREF="pattern.html#pattern">pattern</A>. (Sung-Hyun Nam)
Solution: Flush cached <A HREF="tagsrch.html#tag">tag</A> matches when executing an external command.
Files: src/misc2.c, src/proto/tag.pro, src/tag.c
Patch 5.6.081
Problem: "<A HREF="syntax.html#:syn">:syn</A> include" uses a level for the included file, this confuses
contained items included at the same level.
Solution: Use a unique <A HREF="tagsrch.html#tag">tag</A> for each included file. Changed sp_syn_inc_lvl
to sp_syn_inc_tag. (Scott Bigham)
Files: src/syntax.c, src/structs.h
Patch 5.6.082
Problem: When using <A HREF="if_cscop.html#cscope">cscope</A>, Vim can crash.
Solution: Initialize tag_fname in find_tags(). (Anton Blanchard)
Files: src/tag.c
Patch 5.6.083 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A>: The visual beep can't be seen. (Eric Roesinger)
Solution: Flush the output before waiting with GdiFlush(). (Maurice <A HREF="change.html#S">S</A>. Barnum)
Also: Allow specifying the delay in <A HREF="term.html#t_vb">t_vb</A> for the <A HREF="gui.html#GUI">GUI</A>.
Files: src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c,
src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc,
src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro,
src/proto/gui_mac.pro, src/proto/gui_riscos.pro,
src/proto/gui_w32.pro, src/proto/gui_x11.pro,
src/proto/gui_beos.pro
Patch 5.6.084 (depends on 5.6.074)
Problem: <A HREF="gui.html#GUI">GUI</A>: Entering CSI doesn't always work for <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A>.
Solution: Handle typed CSI <A HREF="motion.html#as">as</A> <A HREF="intro.html#<xCSI>"><xCSI></A> (forgot this bit in 5.6.074).
Files: src/gui_x11.c
Patch 5.6.085
Problem: Multi-byte: Using "<A HREF="change.html#r">r</A>" to replace a double-byte char with a
single-byte char moved the cursor one character. (Matsumoto)
Also, using a <A HREF="intro.html#count">count</A> when <A HREF="change.html#replacing">replacing</A> a single-byte char with a
double-byte char didn't work.
Solution: Don't use del_char() to delete the second byte.
Get "ptr" again after calling ins_char().
Files: src/normal.c
Patch 5.6.086 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A>: When using <A HREF="eval.html#libcall()">libcall()</A> and the returned value is not a valid
pointer, Vim crashes.
Solution: Use IsBadStringPtr() to check if the pointer is valid.
Files: src/os_win32.c
Patch 5.6.087
Problem: Multi-byte: Commands and <A HREF="message.html#messages">messages</A> with <A HREF="mbyte.html#multi-byte">multi-byte</A> characters are
displayed wrong.
Solution: Detect double-byte characters. (Yasuhiro Matsumoto)
Files: src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c
Patch 5.6.088
Problem: Multi-byte with <A HREF="gui_x11.html#Motif">Motif</A> or <A HREF="gui_x11.html#Athena">Athena</A>: The message "<A HREF="mbyte.html#XIM">XIM</A> requires
fontset" is annoying when Vim was compiled with <A HREF="mbyte.html#XIM">XIM</A> support but <A HREF="motion.html#it">it</A>
is not being used.
Solution: Remove that message.
Files: src/multbyte.c
Patch 5.6.089
Problem: On non-Unix systems it's possible to overwrite a read-only file
without using "<A HREF="change.html#!">!</A>".
Solution: Check if the file permissions allow overwriting before moving the
file to become the <A HREF="editing.html#backup">backup</A> file.
Files: src/fileio.c
Patch 5.6.090
Problem: When editing a file in "/home/dir/home/dir" this was replaced with
"~~". (Andreas Jellinghaus)
Solution: <A HREF="insert.html#Replace">Replace</A> the home directory only once in home_replace().
Files: src/misc1.c
Patch 5.6.091
Problem: When editing many "no file" files, can't create swap file, because
.sw[a-p] have all been used. (Neil Bird)
Solution: Also use ".sv[a-z]", ".su[a-z]", etc.
Files: src/memline.c
Patch 5.6.092
Problem: FreeBSD: When setting $TERM to a non-valid <A HREF="terminal.html#terminal">terminal</A> name, Vim
hangs in tputs().
Solution: After tgetent() returns an error code, call <A HREF="motion.html#it">it</A> again with the
<A HREF="terminal.html#terminal">terminal</A> name "dumb". This apparently creates an environment in
which tputs() doesn't fail.
Files: src/term.c
Patch 5.6.093 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: "ls | <A HREF="starting.html#gvim">gvim</A> -" will show a message box about reading
stdin when Vim exits. (Donohue)
Solution: Don't write a message about the file read from stdin until the <A HREF="gui.html#GUI">GUI</A>
has started.
Files: src/fileio.c
Patch 5.6.094
Problem: Problem with <A HREF="mbyte.html#multi-byte">multi-byte</A> <A HREF="eval.html#string">string</A> for "<A HREF="eval.html#:echo">:echo</A> var".
Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
Also make do_echo() aware of <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.
Files: src/eval.c, src/message.c
Patch 5.6.095
Problem: With an Emacs TAGS file that include another a relative path
doesn't always work.
Solution: Use expand_tag_fname() on the name of the included file.
(Utz-Uwe Haus)
Files: src/tag.c
Patch 5.6.096
Problem: <A HREF="os_unix.html#Unix">Unix</A>: When editing many files, <A HREF="starting.html#startup">startup</A> can be slow. (Paul
Ackersviller)
Solution: Halve the number of stat() calls used to add a file to the buffer
<A HREF="eval.html#list">list</A>.
Files: src/buffer.c
Patch 5.7a.001
Problem: <A HREF="gui_x11.html#GTK">GTK</A> doesn't respond on drag&drop from ROX-Filer.
Solution: Add "text/uri-list" target. (Thomas Leonard)
Also: fix problem with checking for trash arguments.
Files: src/gui_gtk_x11.c
Patch 5.7a.002
Problem: Multi-byte: <A HREF="options.html#'showmatch'">'showmatch'</A> is performed when second byte of an
inserted double-byte char is a paren or brace.
Solution: Check IsTrailByte() before calling showmatch(). (Taro Muraoka)
Files: src/misc1.c
Patch 5.7a.003
Problem: Multi-byte: After using <A HREF="motion.html#CTRL-O">CTRL-O</A> in <A HREF="insert.html#Insert">Insert</A> mode with the cursor at
the end of the line on a <A HREF="mbyte.html#multi-byte">multi-byte</A> character the cursor moves to
the left.
Solution: Check for <A HREF="mbyte.html#multi-byte">multi-byte</A> character at end-of-line. (Taro Muraoka)
Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
Files: src/edit.c, src/search.c
Patch 5.7a.004
Problem: When reporting the search <A HREF="pattern.html#pattern">pattern</A> offset, the <A HREF="eval.html#string">string</A> could be
unterminated, which may cause a crash.
Solution: Terminate the <A HREF="eval.html#string">string</A> for the search offset. (Stephen <A HREF="change.html#P">P</A>. Wall)
Files: src/search.c
Patch 5.7a.005
Problem: When ":s//~/" doesn't find a match <A HREF="motion.html#it">it</A> reports "[NULL]" for the
<A HREF="pattern.html#pattern">pattern</A>.
Solution: Use get_search_pat() to obtain the actually used <A HREF="pattern.html#pattern">pattern</A>.
Files: src/ex_cmds.c, src/proto/search.pro, src/search.c
Patch 5.7a.006 (extra)
Problem: <A HREF="os_vms.html#VMS">VMS</A>: Various problems, also with the VAXC compiler.
Solution: In many places use the <A HREF="os_unix.html#Unix">Unix</A> code for <A HREF="os_vms.html#VMS">VMS</A> too.
Added time, date and compiler version to version message.
(Zoltan Arpadffy)
Files: src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h,
src/main.c, src/message.c, src/misc1.c, src/os_vms.c,
src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h,
src/proto/os_vms.pro, src/proto/version.pro, src/term.c,
src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c
Patch 5.7a.007
Problem: <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: CTRL-@ is interpreted <A HREF="motion.html#as">as</A> <A HREF="pattern.html#CTRL-C">CTRL-C</A>.
Solution: Only use "intr_char" when <A HREF="motion.html#it">it</A> has been set.
Files: src/gui_x11.c
Patch 5.7a.008
Problem: <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="various.html#CTRL-L">CTRL-L</A> the screen is redrawn <A HREF="if_cscop.html#twice">twice</A>, causing
trouble for <A HREF="syntax.html#bold">bold</A> characters. Also happens when moving with the
scrollbar. Best seen when <A HREF="options.html#'writedelay'">'writedelay'</A> is non-zero.
When starting the <A HREF="gui.html#GUI">GUI</A> with "<A HREF="gui_x11.html#:gui">:gui</A>" the screen is redrawn once with
the wrong colors.
Solution: Only set the geometry hints when the <A HREF="windows.html#window">window</A> size really changed.
This avoids setting <A HREF="motion.html#it">it</A> each time the scrollbar is forcefully
redrawn.
Don't redraw in expose_event() when gui.starting is still set.
Files: src/gui_gtk_x11.c
==============================================================================
VERSION 5.8 *<A NAME="version-5.8"></A><B>version-5.8</B>*
Version 5.8 is a bug-fix version of 5.7.
Changed *<A NAME="changed-5.8"></A><B>changed-5.8</B>*
Ctags is no longer included with Vim. It has grown into a project of its own.
You can find it here: <A HREF="http://ctags.sf.net">http://ctags.sf.net</A>. It is highly recommended as a Vim
companion when you are <A HREF="editing.html#writing">writing</A> programs.
Added *<A NAME="added-5.8"></A><B>added-5.8</B>*
New <A HREF="syntax.html#syntax">syntax</A> files:
acedb AceDB (Stewart Morris)
aflex Aflex (Mathieu Clabaut)
antlr Antlr (Mathieu Clabaut)
<A HREF="syntax.html#asm68k">asm68k</A> 68000 Assembly (Steve Wall)
automake Automake (John Williams)
ayacc Ayacc (Mathieu Clabaut)
<A HREF="motion.html#b">b</A> <A HREF="motion.html#B">B</A> (Mathieu Clabaut)
bindzone BIND zone (glory hump)
blank Blank (Rafal Sulejman)
cfg Configure files (Igor Prischepoff)
changelog ChangeLog (Gediminas Paulauskas)
cl Clever (Phil Uren)
<A HREF="options.html#crontab">crontab</A> Crontab (John Hoelzel)
csc Essbase <A HREF="usr_41.html#script">script</A> (Raul Segura Acevedo)
cynlib Cynlib(C++) (Phil Derrick)
cynpp Cyn++ (Phil Derrick)
debchangelog Debian Changelog (Wichert Akkerman)
debcontrol Debian Control (Wichert Akkerman)
dns DNS zone file (Jehsom)
dtml Zope's DTML (Jean Jordaan)
dylan Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
ecd Embedix Component Description (John Beppu)
fgl Informix 4GL (Rafal Sulejman)
foxpro FoxPro (Powing Tse)
gsp GNU Server Pages (Nathaniel Harward)
gtkrc <A HREF="gui_x11.html#GTK">GTK</A> rc (David Necas)
hercules Hercules (Avant! Corporation) (Dana Edwards)
htmlos HTML/OS by Aestiva (Jason Rust)
inittab SysV process <A HREF="intro.html#control">control</A> (David Necas)
iss Inno Setup (Dominique Stephan)
jam Jam (Ralf Lemke)
jess Jess (Paul Baleme)
lprolog LambdaProlog (Markus Mottl)
ia64 Intel Itanium (parth malwankar)
kix Kixtart (Nigel Gibbs)
mgp MaGic Point (Gerfried Fuchs)
mason Mason (HTML with <A HREF="if_perl.html#Perl">Perl</A>) (Andrew Smith)
mma Mathematica (Wolfgang Waltenberger)
nqc Not Quite C (Stefan Scherer)
omnimark Omnimark (Paul Terray)
openroad OpenROAD (Luis Moreno Serrano)
named BIND configuration (glory hump)
papp PApp (Marc Lehmann)
pfmain Postfix main config (Peter Kelemen)
pic PIC assembly (Aleksandar Veselinovic)
ppwiz PPWizard (Stefan Schwarzer)
progress Progress (Phil Uren)
psf Product Specification File (Rex Barzee)
<A HREF="change.html#r">r</A> <A HREF="change.html#R">R</A> (Tom Payne)
registry <A HREF="os_win32.html#MS-Windows">MS-Windows</A> registry (Dominique Stephan)
robots Robots.txt (Dominique Stephan)
rtf Rich Text Format (Dominique Stephan)
setl SETL (Alex Poylisher)
sgmldecl SGML Declarations (Daniel A. Molina <A HREF="motion.html#W">W</A>.)
sinda Sinda input (Adrian Nagle)
sindacmp Sinda compare (Adrian Nagle)
sindaout Sinda output (Adrian Nagle)
smith SMITH (Rafal Sulejman)
snobol4 Snobol 4 (Rafal Sulejman)
strace Strace (David Necas)
tak TAK input (Adrian Nagle)
takcmp TAK compare (Adrian Nagle)
takout TAK output (Adrian Nagle)
tasm Turbo assembly (FooLman)
texmf TeX configuration (David Necas)
trasys Trasys input (Adrian Nagle)
tssgm TSS Geometry (Adrian Nagle)
tssop TSS Optics (Adrian Nagle)
tsscl TSS Command line (Adrian Nagle)
virata Virata Configuration Script (Manuel M.H. Stol)
vsejcl VSE JCL (David Ondrejko)
wdiff Wordwise <A HREF="diff.html#diff">diff</A> (Gerfried Fuchs)
wsh Windows Scripting Host (Paul Moore)
xkb X Keyboard Extension (David Necas)
Renamed php3 to php, <A HREF="motion.html#it">it</A> now also supports php4 (Lutz Eymers)
Patch 5.7.015
Problem: <A HREF="autocmd.html#Syntax">Syntax</A> files for Vim 6.0 can't be used with 5.x.
Solution: Add the "default" argument to the "<A HREF="syntax.html#:highlight">:highlight</A>" command: Ignore the
command if highlighting was already specified.
Files: src/syntax.c
Generate the <A HREF="autocmd.html#Syntax">Syntax</A> menu with makemenu.vim, so that <A HREF="motion.html#it">it</A> doesn't have to be done
when Vim is starting up. Reduces the <A HREF="starting.html#startup">startup</A> time of the <A HREF="gui.html#GUI">GUI</A>.
Fixed *<A NAME="fixed-5.8"></A><B>fixed-5.8</B>*
Conversion of docs to HTML didn't convert "|<A HREF="tagsrch.html#tag">tag</A>|s" to a hyperlink.
Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)
optwin.vim gave an error when used in <A HREF="intro.html#Vi">Vi</A> compatible mode ('cpo' contains 'C').
<A HREF="if_tcl.html#Tcl">Tcl</A> interpreter: "buffer" command didn't check for presence of an argument.
(Dave Bodenstab)
dosinst.c: Added checks for too long file name.
<A HREF="os_amiga.html#Amiga">Amiga</A>: a file name starting with a colon was considered absolute but <A HREF="motion.html#it">it</A> isn't.
<A HREF="os_amiga.html#Amiga">Amiga</A>: "<A HREF="editing.html#:pwd">:pwd</A>" added a slash when in the root of a drive.
<A HREF="os_mac.html#Macintosh">Macintosh</A>: Warnings for unused <A HREF="eval.html#variables">variables</A>. (Bernhard Pruemmer)
<A HREF="os_unix.html#Unix">Unix</A>: When catching a deadly signal, handle <A HREF="motion.html#it">it</A> in such a way that it's
unlikely that Vim will hang. Call _exit() instead of exit() in <A HREF="change.html#case">case</A> of a
severe problem.
Setting the <A HREF="windows.html#window">window</A> title from nothing to something didn't work after patch 29.
Check for ownership of <A HREF="starting.html#.exrc">.exrc</A> and <A HREF="starting.html#.vimrc">.vimrc</A> was done with stat(). Use lstat() <A HREF="motion.html#as">as</A>
well for extra security.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Printing a file with <A HREF="options.html#'fileformat'">'fileformat'</A> "<A HREF="os_unix.html#unix">unix</A>" didn't work. Set
<A HREF="options.html#'fileformat'">'fileformat'</A> to "<A HREF="os_dos.html#dos">dos</A>" before <A HREF="editing.html#writing">writing</A> the temp file.
<A HREF="os_unix.html#Unix">Unix</A>: Could start waiting for a character when checking for a <A HREF="pattern.html#CTRL-C">CTRL-C</A> typed
when an X event is received.
Could not use <A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> at the same time on FreeBSD, because <A HREF="if_perl.html#Perl">Perl</A> used
"-lc" and <A HREF="if_pyth.html#Python">Python</A> used the threaded C library.
<A HREF="os_win32.html#Win32">Win32</A>: The Mingw compiler gave a few warning <A HREF="message.html#messages">messages</A>.
When using "<A HREF="editing.html#ZZ">ZZ</A>" and an <A HREF="autocmd.html#autocommand">autocommand</A> for <A HREF="editing.html#writing">writing</A> uses an abbreviation <A HREF="motion.html#it">it</A> didn't
work. Don't stuff the "<A HREF="editing.html#:x">:x</A>" command but execute <A HREF="motion.html#it">it</A> directly. (Mikael Berthe)
<A HREF="os_vms.html#VMS">VMS</A> doesn't always have lstat(), added an #ifdef around <A HREF="motion.html#it">it</A>.
Added a few corrections for the <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Axel Kielhorn)
<A HREF="os_win32.html#Win32">Win32</A>: Gvimext could not edit more than a few files at once, the length of the
argument was fixed.
Previously released patches for Vim 5.7:
Patch 5.7.001
Problem: When the current buffer is crypted, and another modified buffer
isn't, "<A HREF="editing.html#:wall">:wall</A>" will encrypt the other buffer.
Solution: In buf_write() use "buf" instead of "curbuf" to check for the
crypt key.
Files: src/fileio.c
Patch 5.7.002
Problem: When <A HREF="options.html#'showmode'">'showmode'</A> is set, using "<A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="insert.html#:r">:r</A> file" waits three seconds
before displaying the read text. (Wichert Akkerman)
Solution: Set "keep_msg" to the file message so that the screen is redrawn
before the three seconds wait for displaying the mode message.
Files: src/fileio.c
Patch 5.7.003
Problem: Searching for "[[:cntrl:]]" doesn't work.
Solution: Exclude NUL from the matching characters, <A HREF="motion.html#it">it</A> terminates the <A HREF="eval.html#list">list</A>.
Files: src/regexp.c
Patch 5.7.004
Problem: <A HREF="gui_x11.html#GTK">GTK</A>: When selecting a new font, Vim can crash.
Solution: In gui_mch_init_font() unreference the old font, not the new one.
Files: src/gui_gtk_x11.c
Patch 5.7.005
Problem: Multibyte: Inserting a wrapped line corrupts kterm screen.
Pasting TEXT/COMPOUND_TEXT into Vim does not work.
On <A HREF="gui_x11.html#Motif">Motif</A> no <A HREF="mbyte.html#XIM">XIM</A> status line is displayed even though <A HREF="motion.html#it">it</A> is
available.
Solution: Don't use xterm trick for wrapping lines for <A HREF="mbyte.html#multibyte">multibyte</A> mode.
Correct a missing "break", added TEXT/COMPOUND_TEXT selection
request.
Add XIMStatusArea fallback code.
(Katsuhito Nagano)
Files: src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c
Patch 5.7.006
Problem: <A HREF="gui.html#GUI">GUI</A>: redrawing the non-Visual selection is wrong when the <A HREF="windows.html#window">window</A>
is unobscured. (Jean-Pierre Etienne)
Solution: Redraw the selection properly and don't clear <A HREF="motion.html#it">it</A>. Added "len"
argument to clip_may_redraw_selection().
Files: src/gui.c, src/ui.c, src/proto/ui.pro
Patch 5.7.007
Problem: <A HREF="if_pyth.html#Python">Python</A>: Crash when using the current buffer <A HREF="if_cscop.html#twice">twice</A>.
Solution: Increase the reference <A HREF="intro.html#count">count</A> for buffer and <A HREF="windows.html#window">window</A> <A HREF="index.html#objects">objects</A>.
(Johannes Zellner)
Files: src/if_python.c
Patch 5.7.008
Problem: In <A HREF="intro.html#Ex">Ex</A> mode, backspacing over the first TAB doesn't work properly.
(Wichert Akkerman)
Solution: Switch the cursor on before <A HREF="print.html#printing">printing</A> the newline.
Files: src/ex_getln.c
Patch 5.7.009 (extra)
Problem: <A HREF="os_mac.html#Mac">Mac</A>: Crash when using a long file.
Solution: Don't redefine malloc() and free(), because <A HREF="motion.html#it">it</A> will break using
realloc().
Files: src/os_mac.h
Patch 5.7.010
Problem: When using <A HREF="change.html#CTRL-A">CTRL-A</A> on a very long number Vim can crash. (Michael
Naumann)
Solution: Truncate the length of the new number to avoid a buffer overflow.
Files: src/ops.c
Patch 5.7.011 (extra)
Problem: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> on NT 5 and Win98: Displaying Hebrew is reversed.
Solution: Output each character separately, to avoid that Windows reverses
the text for some fonts. (Ron Aaron)
Files: src/gui_w32.c
Patch 5.7.012
Problem: When using "-complete=buffer" for "<A HREF="map.html#:command">:command</A>" the user command
fails.
Solution: In a user command don't replace the buffer name with a <A HREF="intro.html#count">count</A> for
the buffer number.
Files: src/ex_docmd.c
Patch 5.7.013
Problem: "<A HREF="pattern.html#gD">gD</A>" didn't always find a match in the first line, depending on
the column the search started at.
Solution: Reset the column to zero before starting to search.
Files: src/normal.c
Patch 5.7.014
Problem: Rot13 encoding was done on characters with accents, which is
wrong. (Sven Gottwald)
Solution: Only <A HREF="diff.html#do">do</A> <A HREF="change.html#rot13">rot13</A> encoding on ASCII characters.
Files: src/ops.c
Patch 5.7.016
Problem: When hitting '<A HREF="pattern.html#n">n</A>' for a ":s///c" command, the ignore-case flag was
not restored, some matches were skipped. (Daniel Blaustein)
Solution: Restore the reg_ic variable when '<A HREF="pattern.html#n">n</A>' was hit.
Files: src/ex_cmds.c
Patch 5.7.017
Problem: When using a Vim <A HREF="usr_41.html#script">script</A> for Vim 6.0 with <A HREF="map.html#<SID>"><SID></A> before a function
name, <A HREF="motion.html#it">it</A> produces an error message even when inside an "if version
>= 600". (Charles Campbell)
Solution: Ignore <A HREF="message.html#errors">errors</A> in the function name when the function is not going
to be defined.
Files: src/eval.c
Patch 5.7.018
Problem: When running "<A HREF="starting.html#rvim">rvim</A>" or "vim -Z" <A HREF="motion.html#it">it</A> was still possible to execute a
shell command with <A HREF="eval.html#system()">system()</A> and <A HREF="editing.html#backtick-expansion">backtick-expansion</A>. (Antonios A.
Kavarnos)
Solution: Disallow executing a shell command in get_cmd_output() and
mch_expand_wildcards().
Files: src/misc1.c, src/os_unix.c
Patch 5.7.019
Problem: Multibyte: In a substitute <A HREF="eval.html#string">string</A>, a <A HREF="mbyte.html#multi-byte">multi-byte</A> character isn't
skipped properly, can be a problem when the second byte is a
<A HREF="intro.html#backslash">backslash</A>.
Solution: Skip an extra byte for a double-byte character. (Muraoka Taro)
Files: src/ex_cmds.c
Patch 5.7.020
Problem: Compilation doesn't work on MacOS-X.
Solution: Add a couple of #ifdefs. (Jamie Curmi)
Files: src/regexp.c, src/ctags/general.h
Patch 5.7.021
Problem: Vim sometimes produces a beep when started in an xterm. Only
happens when compiled without mouse support.
Solution: Requesting the xterm version results in a K_IGNORE. This wasn't
handled when mouse support is disabled. Accept K_IGNORE always.
Files: src/normal.c
Patch 5.7.022
Problem: %v in <A HREF="options.html#'statusline'">'statusline'</A> is not displayed when it's equal to %c.
Solution: Check if %V or %v is used and handle them differently.
Files: src/screen.c
Patch 5.7.023
Problem: Crash when a <A HREF="autocmd.html#WinLeave">WinLeave</A> <A HREF="autocmd.html#autocommand">autocommand</A> deletes the buffer in the other
<A HREF="windows.html#window">window</A>.
Solution: Check that after executing the <A HREF="autocmd.html#WinLeave">WinLeave</A> autocommands there still
is a <A HREF="windows.html#window">window</A> to be closed. Also update the test that was supposed
to check for this problem.
Files: src/window.c, testdir/test13.in, testdir/test13.ok
Patch 5.7.024
Problem: Evaluating an <A HREF="eval.html#expression">expression</A> for <A HREF="options.html#'statusline'">'statusline'</A> can have side effects.
Solution: Evaluate the <A HREF="eval.html#expression">expression</A> in a <A HREF="eval.html#sandbox">sandbox</A>.
Files: src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
src/screen.c, src/undo.c
Patch 5.7.025 (fixed)
Problem: Creating a temp file has a race condition.
Solution: Create a private directory to write the temp files in.
Files: src/fileio.c, src/misc1.c, src/proto/misc1.pro,
src/proto/fileio.pro, src/memline.c, src/os_unix.h
Patch 5.7.026 (extra)
Problem: Creating a temp file has a race condition.
Solution: Create a private directory to write the temp files in.
This is the extra part of patch 5.7.025.
Files: src/os_msdos.h
Patch 5.7.027
Problem: Starting to edit a file can cause a crash. For example when in
<A HREF="insert.html#Insert">Insert</A> mode, using <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="helphelp.html#:help">:help</A> abbr<Tab> to scroll the screen and
then <A HREF="motion.html#<CR>"><CR></A>, which edits a help file. (Robert Bogomip)
Solution: Check if keep_msg is NULL before <A HREF="uganda.html#copying">copying</A> <A HREF="motion.html#it">it</A>.
Files: src/fileio.c
Patch 5.7.028
Problem: Creating a <A HREF="editing.html#backup">backup</A> or swap file could fail in rare situations.
Solution: Use O_EXCL for open().
Files: src/fileio.c, src/memfile.c
Patch 5.7.029
Problem: Editing a file with an extremely long name crashed Vim.
Solution: Check for length of the name when setting the <A HREF="windows.html#window">window</A> title.
Files: src/buffer.c
Patch 5.7.030
Problem: A "<A HREF="quickfix.html#:make">:make</A>" or "<A HREF="quickfix.html#:grep">:grep</A>" command with a very long argument could cause
a crash.
Solution: Allocate the buffer for the shell command.
Files: src/ex_docmd.c
<A HREF="#top">top</A> - <A HREF="index.html">main help file</A>
</PRE>
</BODY>
</HTML>
|