Compare commits

...

342 Commits

Author SHA1 Message Date
Bram Moolenaar
52111f8231 patch 8.1.1237: error for using "compl", reserved word in C++
Problem:    Error for using "compl", reserved word in C++.
Solution:   Rename to "complp". (suggestion by Ken Takata)
2019-04-29 21:30:45 +02:00
Bram Moolenaar
fe368edcc0 patch 8.1.1236: sjiscorr.c not found in shadow directory
Problem:    sjiscorr.c not found in shadow directory. (Tony Mechelynck)
Solution:   Link po/*.c files with "make shadow".
2019-04-29 20:30:54 +02:00
Bram Moolenaar
602abeb20f Update .gitignore 2019-04-29 20:26:05 +02:00
Bram Moolenaar
c0af78fa08 patch 8.1.1235: compiler warnings for using STRLEN() value
Problem:    Compiler warnings for using STRLEN() value.
Solution:   Cast to int. (Christian Brabandt, Mike Williams)
2019-04-29 19:47:22 +02:00
Bram Moolenaar
701df4eb64 patch 8.1.1234: swap file test fails on MS-Windows
Problem:    Swap file test fails on MS-Windows.
Solution:   Only compare the tail of the file names.
2019-04-28 23:07:18 +02:00
Bram Moolenaar
c779c674ac patch 8.1.1233: cannot build tiny version
Problem:    Cannot build tiny version.
Solution:   Remove #ifdef for verb_msg().
2019-04-28 22:53:41 +02:00
Bram Moolenaar
1b243eafb0 patch 8.1.1232: can't build on MS-Windows
Problem:    Can't build on MS-Windows.
Solution:   Define process_still_running.
2019-04-28 22:50:40 +02:00
Bram Moolenaar
67cf86bfff patch 8.1.1231: asking about existing swap file unnecessarily
Problem:    Asking about existing swap file unnecessarily.
Solution:   When it is safe, delete the swap file.  Remove
            HAS_SWAP_EXISTS_ACTION, it is always defined. (closes #1237)
2019-04-28 22:25:38 +02:00
Bram Moolenaar
afde13b62b patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Problem:    A lot of code is shared between vim.exe and gvim.exe.
Solution:   Optionally put the shared code in vim.dll. (Ken Takata,
            closes #4287)
2019-04-28 19:46:49 +02:00
Bram Moolenaar
ab4cece605 patch 8.1.1229: warning for posix_openpt() not declared
Problem:    Warning for posix_openpt() not declared. (Tony Mechelynck)
Solution:   Add declaration.
2019-04-28 18:40:03 +02:00
Bram Moolenaar
45e18cbdc4 patch 8.1.1228: not possible to process tags with a function
Problem:    Not possible to process tags with a function.
Solution:   Add tagfunc() (Christian Brabandt, Andy Massimino, closes #4010)
2019-04-28 18:05:35 +02:00
Bram Moolenaar
7a9df9dd00 patch 8.1.1227: duplicate entries in the generate .desktop files
Problem:    Duplicate entries in the generate .desktop files. (Ralf Schandl)
Solution:   Remove translated entries from the .in files. (closes #4313)
2019-04-28 16:08:30 +02:00
Bram Moolenaar
6c60f47fb9 patch 8.1.1226: {not in Vi} remarks get in the way of useful help text
Problem:    {not in Vi} remarks get in the way of useful help text.
Solution:   Make a list of all Vi options, instead of mentioning what Vi does
            not have.  Update the help text for options.
2019-04-28 16:00:35 +02:00
Bram Moolenaar
1e44968780 patch 8.1.1225: cannot create a pty to use with :terminal on FreeBSD
Problem:    Cannot create a pty to use with :terminal on FreeBSD.
Solution:   Add support for posix_openpt(). (Ozaki Kiichi, closes #4306,
            closes #4289)
2019-04-28 14:59:59 +02:00
Bram Moolenaar
f720d0a77e patch 8.1.1224: MS-Windows: cannot specify font weight
Problem:    MS-Windows: cannot specify font weight.
Solution:   Add the "W" option to 'guifont'. (closes #4309)  Move GUI font
            explanation out of options.txt.
2019-04-28 14:02:47 +02:00
Bram Moolenaar
564344ace9 patch 8.1.1223: middle mouse click test fails without a clipboard
Problem:    Middle mouse click test fails without a clipboard.
Solution:   Check if the clipboard can be used. (Dominique Pelle, Christian
            Brabandt)  Also use WorkingClipboard() instead of checking for the
            "clipboard" feature.
2019-04-28 13:00:12 +02:00
Bram Moolenaar
dcaa54dded patch 8.1.1222: build still fails on MS-Windows
Problem:    Build still fails on MS-Windows.
Solution:   Move another declaration to start of block.
2019-04-27 22:45:00 +02:00
Bram Moolenaar
ad6dc49a75 patch 8.1.1221: filtering does not work when listing marks
Problem:    Filtering does not work when listing marks.
Solution:   Implement filtering marks. (Marcin Szamotulski, closes #3895)
2019-04-27 22:40:08 +02:00
Bram Moolenaar
0ee1bdff7d patch 8.1.1220: build fails on MS-Windows
Problem:    Build fails on MS-Windows.
Solution:   Move declaration to start of block.
2019-04-27 22:38:30 +02:00
Bram Moolenaar
6ee9658774 patch 8.1.1219: not checking for NULL return from alloc()
Problem:    Not checking for NULL return from alloc().
Solution:   Add checks. (Martin Kunev, closes #4303, closes #4174)
2019-04-27 22:06:37 +02:00
Bram Moolenaar
00aa069db8 patch 8.1.1218: cannot set a directory for a tab page
Problem:    Cannot set a directory for a tab page.
Solution:   Add the tab-local directory. (Yegappan Lakshmanan, closes #4212)
2019-04-27 20:37:57 +02:00
Bram Moolenaar
2155a6abaa patch 8.1.1217: MS-Windows: no space reserved for font quality name
Problem:    MS-Windows: no space reserved for font quality name.
Solution:   Add quality_name length if present. (Ken Takata, closes #4311)
2019-04-27 19:15:45 +02:00
Bram Moolenaar
c1b8160b44 patch 8.1.1216: mouse middle click is not tested
Problem:    Mouse middle click is not tested.
Solution:   Add a test. (Dominique Pelle, closes #4310)
2019-04-27 19:11:35 +02:00
Bram Moolenaar
49543fbced patch 8.1.1215: "make clean" does not remove generated src/po files
Problem:    "make clean" does not remove generated src/po files.
Solution:   Remove the files for "make clean". (Christian Brabandt)
2019-04-27 18:32:31 +02:00
Bram Moolenaar
c6b37db1ba patch 8.1.1214: old style tests
Problem:    Old style tests.
Solution:   Move tests from test14 to new style test files. (Yegappan
            Lakshmanan, closes #4308)
2019-04-27 18:00:34 +02:00
Bram Moolenaar
e13a3901ca patch 8.1.1213: "make clean" in top dir does not cleanup indent test output
Problem:    "make clean" in top dir does not cleanup indent test output.
Solution:   Clean the indent test output.  Do not rely on the vim executable
            for that. (closes #4307)
2019-04-27 17:57:31 +02:00
Bram Moolenaar
520e245237 patch 8.1.1212: signal PWR is not tested
Problem:    Signal PWR is not tested.
Solution:   Test that PWR updates the swap file. (Dominique Pelle,
            closes #4312)
2019-04-27 17:32:40 +02:00
Bram Moolenaar
e61e548dd6 patch 8.1.1211: not all user command code is tested
Problem:    Not all user command code is tested.
Solution:   Add more tests.
2019-04-27 15:05:12 +02:00
Bram Moolenaar
ac9fb18020 patch 8.1.1210: support for user commands is spread out
Problem:    Support for user commands is spread out. No good reason to make
            user commands optional.
Solution:   Move user command support to usercmd.c.  Always enable the
            user_commands feature.
2019-04-27 13:04:13 +02:00
Bram Moolenaar
5431589d25 patch 8.1.1209: clever compiler warns for buffer being too small
Problem:    Clever compiler warns for buffer being too small.
Solution:   Make the buffer bigger (even though it's not really needed).
2019-04-26 22:33:49 +02:00
Bram Moolenaar
c8cc0ad477 patch 8.1.1208: links to repository use wrong file name
Problem:    Links to repository use wrong file name.
Solution:   Swap the file names. (Nahuel Ourthe, closes #4304)
2019-04-26 21:31:38 +02:00
Bram Moolenaar
1f3601e92e patch 8.1.1207: some compilers give warning messages
Problem:    Some compilers give warning messages.
Solution:   Initialize variables, change printf() argument. (Christian
            Brabandt, closes #4305)
2019-04-26 20:33:00 +02:00
Bram Moolenaar
d1f90bbcab patch 8.1.1206: user command parsing and listing not properly tested
Problem:    User command parsing and listing not properly tested.
Solution:   Add more tests. (Dominique Pelle, closes #4296)
2019-04-25 22:42:07 +02:00
Bram Moolenaar
a68e595909 patch 8.1.1205: a BufReadPre autocommand may cause the cursor to move
Problem:    A BufReadPre autocommand may cause the cursor to move.
Solution:   Restore the cursor position after executing the autocommand,
            unless the autocommand moved it. (Christian Brabandt,
            closes #4302, closes #4294)
2019-04-25 22:22:01 +02:00
Bram Moolenaar
a561a41a70 patch 8.1.1204: output of :command with address completion is not nice
Problem:    Output of :command with address completion is not nice.
Solution:   Shorten the address completion names.
2019-04-25 21:27:58 +02:00
Bram Moolenaar
69ea587289 patch 8.1.1203: some autocmd tests are old style
Problem:    Some autocmd tests are old style.
Solution:   Turn the tests into new style. (Yegappan Lakshmanan, closes #4295)
2019-04-25 20:29:00 +02:00
Bram Moolenaar
c2d09c9f2c patch 8.1.1202: always get regexp debugging logs when building with -DDEBUG
Problem:    Always get regexp debugging logs when building with -DDEBUG.
Solution:   By default do not create regexp debugging logs. (Ken Takata)
2019-04-25 20:07:51 +02:00
Bram Moolenaar
725310d89e patch 8.1.1201: output of :command is hard to read
Problem:    Output of :command is hard to read.
Solution:   Make some columns wider, some narrower.  Truncate the command when
            listing all.
2019-04-24 23:08:23 +02:00
Bram Moolenaar
31fc39e47b patch 8.1.1200: old style comments in debugger source
Problem:    Old style comments in debugger source.
Solution:   Use new style comments. (Yegappan Lakshmanan, closes #4286)
2019-04-23 18:39:49 +02:00
Bram Moolenaar
8485be4e49 patch 8.1.1199: no test for :abclear
Problem:    No test for :abclear.
Solution:   Add a test. (Dominique Pelle, closes #4292)
2019-04-23 16:36:05 +02:00
Bram Moolenaar
958eabe5e5 patch 8.1.1198: bracketed paste may remain active after Vim exists
Problem:    Bracketed paste may remain active after Vim exists, because the
            terminal emulater restores the setting.
Solution:   Set/reset bracketed paste mode before setting the terminal mode.
            (closes #3579)
2019-04-21 17:22:33 +02:00
Bram Moolenaar
c75e812623 patch 8.1.1197: when starting with multiple tabs file messages is confusing
Problem:    When starting with multiple tabs file messages is confusing.
Solution:   Set 'shortmess' when loading the other tabs. (Christian Brabandt)
2019-04-21 15:55:10 +02:00
Bram Moolenaar
7bde95a461 patch 8.1.1196: parallel build may fail
Problem:    Parallel build may fail.
Solution:   Update dependencies.
2019-04-21 15:22:39 +02:00
Bram Moolenaar
eead75c5e8 patch 8.1.1195: Vim script debugger functionality needs cleanup
Problem:    Vim script debugger functionality needs cleanup.
Solution:   Move debugger code to a separate file.  Add more tests. (Yegappan
            Lakshmanan, closes #4285)
2019-04-21 11:35:00 +02:00
Bram Moolenaar
911ead1269 Update runtime files 2019-04-21 00:03:35 +02:00
Bram Moolenaar
ad3ec76bb8 patch 8.1.1194: typos and small problems in source files
Problem:    Typos and small problems in source files.
Solution:   Small fixes.
2019-04-21 00:00:13 +02:00
Bram Moolenaar
037c54f261 patch 8.1.1193: typos and small problems in test files
Problem:    Typos and small problems in test files.
Solution:   Small improvements.
2019-04-20 23:47:46 +02:00
Bram Moolenaar
4c25bd785a patch 8.1.1192: mode is not cleared when leaving Insert mode with mapped Esc
Problem:    Mode is not cleared when leaving Insert mode with mapped Esc.
Solution:   Clear the mode when redraw_cmdline is set. (closes #4269)
2019-04-20 23:38:07 +02:00
Bram Moolenaar
0fdd943595 patch 8.1.1191: not all debug commands are covered by a test
Problem:    Not all debug commands are covered by a test.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #4282)
2019-04-20 22:28:48 +02:00
Bram Moolenaar
93a4879c20 patch 8.1.1190: has('vimscript-3') does not work
Problem:    has('vimscript-3') does not work.
Solution:   Add "vimscript-3" to the list of features.
2019-04-20 21:54:28 +02:00
Bram Moolenaar
abc7c7fc5a patch 8.1.1189: mode is not cleared when leaving Insert mode
Problem:    Mode is not cleared when leaving Insert mode.
Solution:   Clear the mode when got_int is set. (Ozaki Kiichi, closes #4270)
2019-04-20 15:10:13 +02:00
Bram Moolenaar
d2e716e6df patch 8.1.1188: not all Vim variables require the v: prefix
Problem:    Not all Vim variables require the v: prefix.
Solution:   When scriptversion is 3 all Vim variables can only be used with
            the v: prefix.  (Ken Takata, closes #4274)
2019-04-20 14:39:52 +02:00
Bram Moolenaar
3a4c53ba51 patch 8.1.1187: cannot recognize Pipfile
Problem:    Cannot recognize Pipfile.
Solution:   Use existing filetypes. (Charles Ross, closes #4280)
2019-04-19 23:33:14 +02:00
Bram Moolenaar
334ad41504 patch 8.1.1186: readdir() allocates list twice
Problem:    readdir() allocates list twice.
Solution:   Remove second allocation.  Also check for zero length.
2019-04-19 15:20:46 +02:00
Bram Moolenaar
86ec6d7e1e patch 8.1.1185: mapping for CTRL-X is inconsistent
Problem:    Mapping for CTRL-X is inconsistent.
Solution:   Map CTRL-X to "*d also for the MS-Windows console. (Ken Takata,
            closes #4265)
2019-04-18 21:09:02 +02:00
Bram Moolenaar
137c14bb4f patch 8.1.1184: undo file left behind after running test
Problem:    Undo file left behind after running test.
Solution:   Delete the undo file. (Dominique Pelle, closes #4279)
2019-04-18 20:30:55 +02:00
Bram Moolenaar
b49e3563b9 patch 8.1.1183: typos in VisVim comments
Problem:    Typos in VisVim comments.
Solution:   Correct the typos. (Christ van Willegen)
2019-04-17 18:31:18 +02:00
Bram Moolenaar
b9cdb37176 patch 8.1.1182: some function prototypes are outdated
Problem:    Some function prototypes are outdated.
Solution:   Update function prototypes. (Ken Takata, closes #4267)
2019-04-17 18:24:35 +02:00
Bram Moolenaar
2b00b9b0f3 patch 8.1.1181: tests for mouse clicks are a bit flaky
Problem:    Tests for mouse clicks are a bit flaky when run in an interactive
            terminal.
Solution:   Use "xterm2" instead of "xterm" for 'ttymouse' to avoid spurious
            drag events.
2019-04-17 17:08:27 +02:00
Bram Moolenaar
113bf0672b patch 8.1.1180: Vim script debugger tests are old style
Problem:    Vim script debugger tests are old style.
Solution:   Turn into new style tests. (Yegappan Lakshmanan, closes #4259)
2019-04-17 16:54:05 +02:00
Bram Moolenaar
696d637728 patch 8.1.1179: no test for mouse clicks in the fold column
Problem:    No test for mouse clicks in the fold column.
Solution:   Add a test. (Dominique Pelle, closes #4261)
2019-04-17 16:33:46 +02:00
Bram Moolenaar
4945219b99 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Problem:    When mouse click tests fails value of 'ttytype' is unknown.
Solution:   Add a message to the assert.
2019-04-17 16:27:02 +02:00
Bram Moolenaar
1a4dce7cad patch 8.1.1177: .ts files are recognized as xml, typescript is more common
Problem:    .ts files are recognized as xml, while typescript is more common.
Solution:   Recognize .ts files as typescript. (closes #4264)
2019-04-16 22:21:05 +02:00
Bram Moolenaar
7f27976589 patch 8.1.1176: test for dragging a tab is flaky
Problem:    Test for dragging a tab is flaky.
Solution:   Add a brief sleep.
2019-04-15 21:48:22 +02:00
Bram Moolenaar
e3e3828f93 patch 8.1.1175: no test for dragging a tab and double click for new tab
Problem:    No test for dragging a tab with the mouse and for creating a new
            tab by double clicking in the tabline.
Solution:   Add two tests. (Dominique Pelle, closes #4258)
2019-04-15 20:55:31 +02:00
Bram Moolenaar
8dc4c72923 patch 8.1.1174: cannot build with Ruby 1.8
Problem:    Cannot build with Ruby 1.8. (Tom G. Christensen)
Solution:   Include ruby/st.h. (Ozaki Kiichi, closes #4257)
2019-04-14 19:42:13 +02:00
Bram Moolenaar
a8356bc173 patch 8.1.1173: suspend test has duplicated lines
Problem:    Suspend test has duplicated lines.
Solution:   Use a function.
2019-04-14 14:31:11 +02:00
Bram Moolenaar
74e3d4ec11 patch 8.1.1172: cursor properties were not fully tested
Problem:    Cursor properties were not fully tested.
Solution:   Add a test. (Dominique Pelle, closes #4256)
2019-04-14 14:16:46 +02:00
Bram Moolenaar
316c16797a patch 8.1.1171: statusline test could fail in large terminal
Problem:    Statusline test could fail in large terminal.
Solution:   Make the test work on a huge terminal. (Dominique Pelle,
            closes #4255)
2019-04-14 13:23:40 +02:00
Bram Moolenaar
a0aaf3c4df patch 8.1.1170: terminal ANSI color test does not cover all colors
Problem:    Terminal ANSI color test does not cover all colors.
Solution:   Use the color number, the name is not always resulting in an ANSI
            color when t_Co is 256.
2019-04-13 23:18:21 +02:00
Bram Moolenaar
837854d1bc patch 8.1.1169: writing coverage info in a separate dir is not needed
Problem:    Writing coverage info in a separate dir is not needed.
Solution:   Revert the changes to use a separate directory.
2019-04-13 22:44:51 +02:00
Bram Moolenaar
87dcfd75c2 patch 8.1.1168: not all screen update code of terminal is executed in tests
Problem:    Not all screen update code of the terminal window is executed in
            tests.
Solution:   Redraw before taking a screenshot.
2019-04-13 22:35:29 +02:00
Bram Moolenaar
39f76c6ac0 patch 8.1.1167: no test for closing tab by click in tabline
Problem:    No test for closing tab by click in tabline.
Solution:   Add a test.  Also fix that dragging window separator could fail in
            a large terminal. (Dominique Pelle, closes #4253)
2019-04-13 22:13:23 +02:00
Bram Moolenaar
9c35d05f45 patch 8.1.1166: gettitle test can still fail when another Vim is running
Problem:    Gettitle test can still fail when another Vim is running.
Solution:   Accept any server name number. (Dominique Pelle, closes #4252)
2019-04-13 20:39:15 +02:00
Bram Moolenaar
ca57ab54d7 patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Problem:    No test for mouse clicks in the terminal tabpage line.
Solution:   Add a test. (Dominique Pelle, closes #4247).  Also init
            TabPageIdxs[], in case it's used before a redraw.
2019-04-13 14:53:16 +02:00
Bram Moolenaar
700dfaa86a patch 8.1.1164: gettitle test is failing when server name differs
Problem:    Gettitle test is failing when server name differs. (Kenta Sato)
Solution:   Accept "VIM1" when 'autoservername' is used. (Dominique Pelle,
            closes #4250, closes #4249)
2019-04-13 14:21:19 +02:00
Bram Moolenaar
5d48e0d99a patch 8.1.1163: codecov does not report all the coverage information
Problem:    Codecov does not report all the coverage information.
Solution:   Make a second run with the nested execution output, expect that
            Codecov will merge the results.
2019-04-13 13:44:31 +02:00
Bram Moolenaar
f587ef345e patch 8.1.1162: incorrect coverage information; typo in color name
Problem:    Incorrect coverage information; typo in color name.
Solution:   Fix the typo.  Set environment variables to have a nested Vim
            write the coverage info in another directory.
2019-04-13 13:13:54 +02:00
Bram Moolenaar
1d79ce81e7 patch 8.1.1161: unreachable code
Problem:    Unreachable code.
Solution:   Remove condition that will never be true.  Add tests for all ANSI
            colors.
2019-04-12 22:27:39 +02:00
Bram Moolenaar
c8b3ddab51 patch 8.1.1160: termcodes test would fail in a very big terminal
Problem:    Termcodes test would fail in a very big terminal.
Solution:   Bail out when the row is larger than what will work. (Dominique
            Pelle, closes #4246)
2019-04-12 21:42:52 +02:00
Bram Moolenaar
a8d22e3a40 patch 8.1.1159: MS-Windows: with a silent (un)install $VIM/_vimrc is removed
Problem:    MS-Windows: with a silent (un)install $VIM/_vimrc is removed.
Solution:   Don't delete _vimrc in silent mode. (Ken Takata, closes #4242)
2019-04-12 21:29:33 +02:00
Bram Moolenaar
04af19637c patch 8.1.1158: json encoded string is sometimes missing the final NUL
Problem:    Json encoded string is sometimes missing the final NUL.
Solution:   Add the NUL.  Also for log messages.
2019-04-12 21:19:04 +02:00
Bram Moolenaar
f9b89b4679 patch 8.1.1157: Unicode tables are out of date
Problem:    Unicode tables are out of date.
Solution:   Update to Unicode 12. (Christian Brabandt, closes #4240)
2019-04-12 20:08:55 +02:00
Bram Moolenaar
d489c9801b patch 8.1.1156: Unicode emoji and other image characters not recognized
Problem:    Unicode emoji and other image characters not recognized.
Solution:   Add ranges for musical notation, game pieces, etc. (Martin
            Tournoij, closes #4238)
2019-04-12 20:00:21 +02:00
Bram Moolenaar
3fbd2d7c31 patch 8.1.1155: termcodes tests can be improved
Problem:    Termcodes tests can be improved.
Solution:   Add helper functions to simplify tests.  Dragging statusline for
            xterm and sgr. (Dominique Pelle, closes #4237)
2019-04-11 23:56:16 +02:00
Bram Moolenaar
496555fd18 patch 8.1.1154: getting a newer msgfmt on Travis is too complicated
Problem:    Getting a newer msgfmt on Travis is too complicated.
Solution:   Use a "sourcline" entry. (Ozaki Kiichi, closes #4236)
2019-04-11 20:14:56 +02:00
Bram Moolenaar
9a419ffb93 patch 8.1.1154 2019-04-11 18:44:11 +02:00
Bram Moolenaar
7edf0baef4 patch 8.1.1152: compiler warning with VS2019
Problem:    Compiler warning with VS2019.
Solution:   Specify different offset for "AMD64". (closes #4235)
2019-04-11 17:22:57 +02:00
Bram Moolenaar
679beba800 patch 8.1.1151: build fails when using shadow directory
Problem:    Build fails when using shadow directory.
Solution:   Link the desktop.in files.
2019-04-11 16:21:33 +02:00
Bram Moolenaar
29a9baa077 patch 8.1.1150: generating desktop files not tested on Travis
Problem:    Generating desktop files not tested on Travis.
Solution:   Install a newer msgfmt package. (Christian Brabandt)
2019-04-11 15:49:11 +02:00
Bram Moolenaar
26096cc96f patch 8.1.1149: building desktop files fails with older msgfmt
Problem:    Building desktop files fails with older msgfmt.
Solution:   Add autoconf check.  Avoid always building the desktop files.
2019-04-11 15:25:40 +02:00
Bram Moolenaar
730f48fe36 patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Problem:    CTRL-L with 'incsearch' does not pick up char under cursor.
            (Smylers)
Solution:   Do not compare the position with the cursor position. (Hirohito
            Higashi, closes #3620)
2019-04-11 13:45:57 +02:00
Bram Moolenaar
a60e536a29 patch 8.1.1147: desktop file translations are requiring manual updates
Problem:    Desktop file translations are requiring manual updates.
Solution:   Use the .po files for desktop file translations. (Christian
            Brabandt)
2019-04-11 13:11:39 +02:00
Bram Moolenaar
ef8c83c550 patch 8.1.1146: in MS-Windows console colors in a terminal window are wrong
Problem:    In MS-Windows console colors in a terminal window are wrong.
Solution:   Use the ansi index also for 16 colors. (Ken Takata)
2019-04-11 11:40:13 +02:00
Bram Moolenaar
a7be0f2451 patch 8.1.1145: compiler warning for unused function
Problem:    Compiler warning for unused function. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-04-11 11:19:32 +02:00
Bram Moolenaar
862f1e17ea patch 8.1.1144: too strict checking of the 'spellfile' option
Problem:    Too strict checking of the 'spellfile' option.
Solution:   Allow for a path.
2019-04-10 22:33:41 +02:00
Bram Moolenaar
8f130eda47 patch 8.1.1143: may pass weird strings to file name expansion
Problem:    May pass weird strings to file name expansion.
Solution:   Check for matching characters.  Disallow control characters.
2019-04-10 22:15:19 +02:00
Bram Moolenaar
3fb01a53c6 patch 8.1.1142: no test for dragging the window separators with the mouse
Problem:    No test for dragging the window separators with the mouse.
Solution:   Add a test. (Dominique Pelle, closes #4226)
2019-04-09 21:52:02 +02:00
Bram Moolenaar
1b55797e90 patch 8.1.1141: terminal winpos test fails with very large terminal
Problem:    Terminal winpos test fails with very large terminal. (Dominique
            Pelle)
Solution:   Compute the expected size more accurately. (closes #4228)
2019-04-09 21:17:32 +02:00
Bram Moolenaar
46ad288b9b patch 8.1.1140: not easy to find out what neighbors a window has
Problem:    Not easy to find out what neighbors a window has.
Solution:   Add more arguments to winnr(). (Yegappan Lakshmanan, closes #3993)
2019-04-08 20:01:47 +02:00
Bram Moolenaar
9845f36aa6 patch 8.1.1139: no test for what is fixed in patch 8.1.0716
Problem:    No test for what is fixed in patch 8.1.0716.
Solution:   Add a test. (Yasuhiro Matsumoto, closes #3797)
2019-04-08 18:59:54 +02:00
Bram Moolenaar
d7f246c68c patch 8.1.1138: plugins don't get notified when the popup menu changes
Problem:    Plugins don't get notified when the popup menu changes.
Solution:   Add the CompleteChanged event. (Andy Massimino. closes #4176)
2019-04-08 18:15:41 +02:00
Bram Moolenaar
62e1bb4a11 Update runtime files. 2019-04-08 16:25:07 +02:00
Bram Moolenaar
049736fa8a patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Problem:    Xterm mouse wheel escape sequence is not tested.
Solution:   Add a test using low-level input. (Dominique Pelle, closes #4221)
2019-04-07 21:55:07 +02:00
Bram Moolenaar
905dd905de patch 8.1.1136: decoding of mouse click escape sequence is not tested
Problem:    Decoding of mouse click escape sequence is not tested.
Solution:   Add a test for xterm and SGR using low-level input.  Make
            low-level input execution with feedkeys() work.
2019-04-07 14:21:47 +02:00
Bram Moolenaar
d85c396d51 patch 8.1.1135: build failure for small version
Problem:    Build failure for small version. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-04-07 14:19:14 +02:00
Bram Moolenaar
39803d82db patch 8.1.1134: buffer for quickfix window is reused for another file
Problem:    Buffer for quickfix window is reused for another file.
Solution:   Don't reuse the quickfx buffer. (Yegappan Lakshmanan)
2019-04-07 12:04:51 +02:00
Bram Moolenaar
08499f5a4d patch 8.1.1133: compiler warning for uninitialized struct member
Problem:    Compiler warning for uninitialized struct member. (Yegappan
            Lakshmanan)
Solution:   Add initializer field.
2019-04-07 11:56:49 +02:00
Bram Moolenaar
616aeef21f patch 8.1.1132: getwinpos() test fails on MS-Windows
Problem:    getwinpos() test fails on MS-Windows.
Solution:   Don't try running this test.
2019-04-06 22:21:22 +02:00
Bram Moolenaar
16c34c3765 patch 8.1.1131: getwinpos() does not work in the MS-Windows console
Problem:    getwinpos() does not work in the MS-Windows console.
Solution:   Implement getwinpos().
2019-04-06 22:01:24 +02:00
Bram Moolenaar
1164023828 patch 8.1.1130: MS-Windows: warning for unused variable
Problem:    MS-Windows: warning for unused variable.
Solution:   Remove the variable.
2019-04-06 20:53:29 +02:00
Bram Moolenaar
2d7260d665 patch 8.1.1129: when making a new screendump test have to create the file
Problem:    When making a new screendump test have to create the file.
Solution:   Continue creating the failed screendump, so it can be moved once
            it is correct.
2019-04-06 20:51:52 +02:00
Bram Moolenaar
94a7242ad1 patch 8.1.1128: getwinpos() test does not work on MS-Windows
Problem:    getwinpos() test does not work on MS-Windows.
Solution:   Skip the test.
2019-04-06 20:40:35 +02:00
Bram Moolenaar
6bc9305a02 patch 8.1.1127: getwinpos() doesn't work in terminal on MS-Windows console
Problem:    getwinpos() doesn't work in terminal on MS-Windows console.
Solution:   Adjust #ifdefs.  Disable test for MS-Windows console.
2019-04-06 20:00:19 +02:00
Bram Moolenaar
3d3f21764a patch 8.1.1126: build failure with +terminal but without tgetent
Problem:    Build failure with +terminal but without tgetent.
Solution:   Adjust #ifdef.
2019-04-06 17:56:05 +02:00
Bram Moolenaar
fa1e90cd4d patch 8.1.1125: libvterm does not handle the window position report
Problem:    Libvterm does not handle the window position report.
Solution:   Let libvterm call the fallback CSI handler when not handling CSI
            sequence.  Handle the window position report in Vim.
2019-04-06 17:47:40 +02:00
Bram Moolenaar
d9eefe3155 patch 8.1.1124: insert completion flags are mixed up
Problem:    Insert completion flags are mixed up.
Solution:   Clean up flags use of ins_compl_add() and cp_flags.
2019-04-06 14:22:21 +02:00
Bram Moolenaar
73655cf0ca patch 8.1.1123: no way to avoid filtering for autocomplete function
Problem:    No way to avoid filtering for autocomplete function, causing
            flickering of the popup menu.
Solution:   Add the "equal" field to complete items. (closes #3887)
2019-04-06 13:45:55 +02:00
Bram Moolenaar
9d40128afd patch 8.1.1122: char2nr() does not handle composing characters
Problem:    char2nr() does not handle composing characters.
Solution:   Add str2list() and list2str(). (Ozaki Kiichi, closes #4190)
2019-04-06 13:18:12 +02:00
Bram Moolenaar
4a5711b5ea patch 8.1.1121: test for term_gettitle() was disabled
Problem:    Test for term_gettitle() was disabled.
Solution:   Enable the test and bail out only when it doesn't work. (Dominique
            Pelle, closes #3776)
2019-04-06 12:39:55 +02:00
Bram Moolenaar
543c9b1921 patch 8.1.1120: cannot easily get directory entry matches
Problem:    Cannot easily get directory entry matches.
Solution:   Add the readdir() function. (Yasuhiro Matsumoto, closes #2439)
2019-04-05 22:50:40 +02:00
Bram Moolenaar
577fadfc10 patch 8.1.1119: no support for Windows on ARM64.
Problem:    No support for Windows on ARM64.
Solution:   Add ARM64 support (Leendert van Doorn)
2019-04-04 20:32:24 +02:00
Bram Moolenaar
652de23dc7 patch 8.1.1118: a couple of conditions are hard to understand
Problem:    A couple of conditions are hard to understand.
Solution:   Split the conditions into pieces. (Ozaki Kiichi, closes #3879)
2019-04-04 20:13:09 +02:00
Bram Moolenaar
1cd4dc444a patch 8.1.1117: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
2019-04-04 19:06:14 +02:00
Bram Moolenaar
558ca4ae55 patch 8.1.1116: cannot enforce a Vim script style
Problem:    Cannot enforce a Vim script style.
Solution:   Add the :scriptversion command. (closes #3857)
2019-04-04 18:15:38 +02:00
Bram Moolenaar
8f4aeb5572 patch 8.1.1115: cannot build with older C compiler
Problem:    Cannot build with older C compiler.
Solution:   Move variable declaration to start of block.
2019-04-04 15:40:56 +02:00
Bram Moolenaar
0f248b006c patch 8.1.1114: confusing overloaded operator "." for string concatenation
Problem:    Confusing overloaded operator "." for string concatenation.
Solution:   Add ".." for string concatenation.  Also "let a ..= b".
2019-04-04 15:36:05 +02:00
Bram Moolenaar
eb93f3f0e2 patch 8.1.1113: making an autocommand trigger once is not so easy
Problem:    Making an autocommand trigger once is not so easy.
Solution:   Add the ++once argument.  Also add ++nested as an alias for
            "nested". (Justin M. Keyes, closes #4100)
2019-04-04 15:04:56 +02:00
Bram Moolenaar
87f59b09ea patch 8.1.1112: duplicate code in quickfix file
Problem:    Duplicate code in quickfix file.
Solution:   Move code into functions. (Yegappan Lakshmanan, closes #4207)
2019-04-04 14:04:11 +02:00
Bram Moolenaar
fda1bff39f patch 8.1.1111: it is not easy to check for infinity
Problem:    It is not easy to check for infinity.
Solution:   Add isinf(). (Ozaki Kiichi, closes #3787)
2019-04-04 13:44:37 +02:00
Bram Moolenaar
e5e4e22c1c patch 8.1.1110: composing chars on space wrong when 'listchars' is set
Problem:    Composing chars on space wrong when 'listchars' is set.
Solution:   Do not use "space" and "nbsp" entries of 'listchars' when there is
            a composing character.  (Yee Cheng Chin, closes #4197)
2019-04-04 13:28:45 +02:00
Bram Moolenaar
39b76b7df8 patch 8.1.1109: deleted file still in list of distributed files
Problem:    Deleted file still in list of distributed files.
Solution:   Remove the src/os_w32dll.c entry.
2019-04-04 13:12:07 +02:00
Bram Moolenaar
723dd946f9 Update runtime files. 2019-04-04 13:11:03 +02:00
Bram Moolenaar
7a66627cf4 patch 8.1.1108: test for 'visualbell' doesn't work
Problem:    Test for 'visualbell' doesn't work.
Solution:   Make 'belloff' empty.
2019-04-03 22:52:34 +02:00
Bram Moolenaar
b4e6a2d075 patch 8.1.1107: no test for 'visualbell'
Problem:    No test for 'visualbell'.
Solution:   Add a test.
2019-04-03 21:53:33 +02:00
Bram Moolenaar
449ac47f93 patch 8.1.1106: no test for 'writedelay'
Problem:    No test for 'writedelay'.
Solution:   Add a test.
2019-04-03 21:42:35 +02:00
Bram Moolenaar
5da04ef1b4 patch 8.1.1105: long escape sequences may be split up
Problem:    Long escape sequences may be split up.
Solution:   Assume esccape sequences can be up to 80 bytes long. (Nobuhiro
            Takasaki, closes #4196)
2019-04-03 21:15:58 +02:00
Bram Moolenaar
796cc42d3a patch 8.1.1104: MS-Windows: not all environment variables can be used
Problem:    MS-Windows: not all environment variables can be used.
Solution:   Use the wide version of WinMain() and main(). (Ken Takata,
            closes #4206)
2019-04-03 20:31:00 +02:00
Bram Moolenaar
0eb035c974 patch 8.1.1103: MS-Windows: old API calls are no longer needed
Problem:    MS-Windows: old API calls are no longer needed.
Solution:   Always use the wide functions. (Ken Takata, closes #4199)
2019-04-02 22:15:55 +02:00
Bram Moolenaar
b26705afb5 patch 8.1.1102: Win32 exe file contains unused code
Problem:    Win32 exe file contains unused code.
Solution:   Remove unused #ifdefs and code. (Ken Takata, closes #4198)
2019-04-02 22:02:32 +02:00
Bram Moolenaar
690a905a01 patch 8.1.1101: signals test may fail in the GUI
Problem:    Signals test may fail in the GUI.
Solution:   Skip the test for the GUI. (Yee Checng Chin, closes #4202)
2019-04-02 21:45:41 +02:00
Bram Moolenaar
fd700393be patch 8.1.1100: tag file without trailing newline no longer works
Problem:    Tag file without trailing newline no longer works. (Marco Hinz)
Solution:   Don't expect a newline at the end of the file. (closes #4200)
2019-04-02 21:26:07 +02:00
Bram Moolenaar
b4a6020ac6 patch 8.1.1099: the do_tag() function is too long
Problem:    The do_tag() function is too long.
Solution:   Factor parts out to separate functions.  Move simplify_filename()
            to a file where it fits better. (Andy Massimino, closes #4195)
2019-03-31 19:40:07 +02:00
Bram Moolenaar
95946f1209 patch 8.1.1098: quickfix code duplication
Problem:    Quickfix code duplication.
Solution:   Refactor the qf_init_ext() function. (Yegappan Lakshmanan,
            closes #4193)
2019-03-31 15:31:59 +02:00
Bram Moolenaar
4fc8e2f8bb patch 8.1.1097: Motif build fails
Problem:    Motif build fails. (Paul Jolly)
Solution:   Only use gui_mch_maximized() for MS-Windows. (closes #4194)
2019-03-30 22:26:38 +01:00
Bram Moolenaar
b70a47b774 patch 8.1.1096: MS-Windows: cannot distinguish BS and CTRL-H
Problem:    MS-Windows: cannot distinguish BS and CTRL-H.
Solution:   Add code for VK_BACK. (Linwei, closes #1833)
2019-03-30 22:11:21 +01:00
Bram Moolenaar
8662189736 patch 8.1.1095: MS-Windows: executable() fails on very long filename
Problem:    MS-Windows: executable() fails on very long filename.
Solution:   (Ken Takata, closes #4015)
2019-03-30 21:51:28 +01:00
Bram Moolenaar
5209334c55 patch 8.1.1094: long line in tags file causes error
Problem:    Long line in tags file causes error.
Solution:   Check for overlong line earlier. (Andy Massimino, closes #4051,
            closes #4084)
2019-03-30 21:41:48 +01:00
Bram Moolenaar
96428dd4e9 patch 8.1.1093: support for outdated tags format slows down tag parsing
Problem:    Support for outdated tags format slows down tag parsing.
Solution:   Remove FEAT_TAG_OLDSTATIC.
2019-03-30 21:19:34 +01:00
Bram Moolenaar
372674fca3 patch 8.1.1092: setting 'guifont' when maximized resizes the Vim window
Problem:    Setting 'guifont' when maximized resizes the Vim window. When
            'guioptions' contains "k" gvim may open with a tiny window.
Solution:   Avoid un-maximizing when setting 'guifont'. (Yee Cheng Chin,
            closes #3808)
2019-03-30 20:31:22 +01:00
Bram Moolenaar
f0908e6fe1 patch 8.1.1091: MS-Windows: cannot use multi-byte chars in environment var
Problem:    MS-Windows: cannot use multi-byte chars in environment var.
Solution:   Use the wide API. (Ken Takata, closes #4008)
2019-03-30 20:11:50 +01:00
Bram Moolenaar
2d04a91d69 patch 8.1.1090: MS-Windows: modify_fname() has problems with some 'encoding'
Problem:    MS-Windows: modify_fname() has problems with some 'encoding'.
Solution:   Use GetLongPathNameW() instead of GetLongPathName(). (Ken Takata,
            closes #4007)
2019-03-30 20:04:08 +01:00
Bram Moolenaar
b44b7add8a patch 8.1.1089: tutor does not check $LC_MESSAGES
Problem:    Tutor does not check $LC_MESSAGES.
Solution:   Let $LC_MESSAGES overrule $LANG. (Miklos Vajna, closes #4112)
2019-03-30 19:56:46 +01:00
Bram Moolenaar
9e1e358d37 patch 8.1.1088: height of quickfix window not retained with vertical split
Problem:    Height of quickfix window not retained with vertical split.
Solution:   Use frame_fixed_height() and frame_fixed_width(). (Hongbo Liu,
            closes #4013, closes #2998)
2019-03-30 19:49:06 +01:00
Bram Moolenaar
7559dcef6c patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Problem:    tag stack is incorrect after CTRL-T and then :tag
Solution:   Handle DT_TAG differently. (test by Andy Massimino, closes #3944,
            closes #4177)
2019-03-30 19:12:02 +01:00
Bram Moolenaar
abab0b0fdd patch 8.1.1086: too many curly braces
Problem:    Too many curly braces.
Solution:   Remove curly braces where they are not needed. (Hirohito Higashi,
            closes #3982)
2019-03-30 18:47:01 +01:00
Bram Moolenaar
bd9bf266fc patch 8.1.1085: compiler warning for possibly uninitialized variable
Problem:    Compiler warning for possibly uninitialized variable. (Tony
            Mechelynck)
Solution:   Make conditions more logical.
2019-03-30 18:25:39 +01:00
Bram Moolenaar
aff749145e patch 8.1.1084: cannot delete a match from another window
Problem:    Cannot delete a match from another window. (Paul Jolly)
Solution:   Add window ID argument to matchdelete(), clearmatches(),
            getmatches() and setmatches(). (Andy Massimino, closes #4178)
2019-03-30 18:11:49 +01:00
Bram Moolenaar
8bb41b3d06 patch 8.1.1083: MS-Windows: hang when opening a file on network share
Problem:    MS-Windows: hang when opening a file on network share.
Solution:   Avoid using FindFirstFile(), use GetLongPathNameW(). (Ken Takata,
            closes #3923)
2019-03-30 17:28:16 +01:00
Bram Moolenaar
ab62c19ea0 patch 8.1.1082: "Conceal" match is mixed up with 'hlsearch' match.
Problem:    "Conceal" match is mixed up with 'hlsearch' match.
Solution:   Check that a match is found, not a 'hlsearch' item. (Andy
            Massimino, closes #4073)
2019-03-30 16:39:05 +01:00
Bram Moolenaar
433a5eb9de patch 8.1.1081: MS-Windows: cannot use some fonts
Problem:    MS-Windows: cannot use fonts whose name cannot be represented in
            the current code page.
Solution:   Use wide font functions. (Ken Takata, closes #4000)
2019-03-30 16:24:16 +01:00
Bram Moolenaar
ef7f0e367e patch 8.1.1080: when a screendump test fails, moving the file is a hassle
Problem:    When a screendump test fails, moving the file is a hassle.
Solution:   Instead of appending ".failed" to the file name, keep the same
            file name but put the screendump in the "failed" directory.
            Then the file name only needs to be typed once when moving a
            screendump.
2019-03-30 15:59:51 +01:00
Bram Moolenaar
48aed0824e patch 8.1.1079: no need for a separate ScreenLinesUtf8() test function
Problem:    No need for a separate ScreenLinesUtf8() test function.
Solution:   Get the composing characters with ScreenLines().
2019-03-30 15:44:17 +01:00
Bram Moolenaar
5f8069bbf5 patch 8.1.1078: when 'listchars' is set a composing char on a space is wrong
Problem:    When 'listchars' is set a composing char on a space is wrong.
Solution:   Separate handling a non-breaking space and a space. (Yasuhiro
            Matsumoto, closes #4046)
2019-03-30 15:34:47 +01:00
Bram Moolenaar
9a2c091a74 patch 8.1.1077: reg_executing() is reset by calling input()
Problem:    reg_executing() is reset by calling input().
Solution:   Implement a more generic way to save and restore reg_executing.
            (Ozaki Kiichi, closes #4192)
2019-03-30 14:26:18 +01:00
Bram Moolenaar
7591bb39d5 patch 8.1.1076: file for Insert mode is much too big
Problem:    File for Insert mode is much too big.
Solution:   Split off the code for Insert completion. (Yegappan Lakshmanan,
            closes #4044)
2019-03-30 13:53:47 +01:00
Bram Moolenaar
de5b380042 patch 8.1.1075: function reference count wrong in Python code
Problem:    Function reference count wrong in Python code.
Solution:   Use "O" instead of "N" for the arguments. (Ben Jackson,
            closes #4188)
2019-03-30 12:51:22 +01:00
Bram Moolenaar
bfd3603670 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Problem:    Python test doesn't wipe out hidden buffer.
Solution:   Wipe out the buffer. (Ben Jackson, closes #4189)
2019-03-30 12:33:13 +01:00
Bram Moolenaar
e73f911c53 patch 8.1.1073: space in number column is on wrong side with 'rightleft' set
Problem:    Space in number column is on wrong side with 'rightleft' set.
Solution:   Move the space to the text side.  Add a test.
2019-03-29 18:29:54 +01:00
Bram Moolenaar
8ee4c01b8c patch 8.1.1072: extending sign and foldcolumn below the text is confusing
Problem:    Extending sign and foldcolumn below the text is confusing.
Solution:   Let the sign and foldcolumn stop at the last text line, just like
            the line number column.  Also stop the command line window leader.
            (Christian Brabandt, closes #3964)
2019-03-29 18:08:18 +01:00
Bram Moolenaar
2912abb3a2 patch 8.1.1071: cannot get composing characters from the screen
Problem:    Cannot get composing characters from the screen.
Solution:   Add screenchars() and screenstring(). (partly by Ozaki Kiichi,
            closes #4059)
2019-03-29 14:16:42 +01:00
Bram Moolenaar
e46736b23b patch 8.1.1070: issue templates are not good enough
Problem:    Issue templates are not good enough.
Solution:   Rephrase to anticipate unexperienced users.
2019-03-29 13:12:39 +01:00
Bram Moolenaar
8ac8a77f24 patch 8.1.1069: source README file doesn't look nice on github
Problem:    Source README file doesn't look nice on github.
Solution:   Turn it into markdown, still readable as plain text.
            (WenxuanHuang, closes #4141)
2019-03-29 13:10:08 +01:00
Bram Moolenaar
fd133323d4 patch 8.1.1068: cannot get all the information about current completion
Problem:    Cannot get all the information about current completion.
Solution:   Add complete_info(). (Shougo, Hirohito Higashi, closes #4106)
2019-03-29 12:20:27 +01:00
Bram Moolenaar
723d165c2f patch 8.1.1067: issues added on github are unstructured
Problem:    Issues added on github are unstructured.
Solution:   Add a bug and feature request template. (Ken Takata, closes #4183)
2019-03-29 10:54:37 +01:00
Bram Moolenaar
89828e9fe6 patch 8.1.1066: VIMDLL isn't actually used
Problem:    VIMDLL isn't actually used.
Solution:   Remove VIMDLL support.
2019-03-28 22:43:16 +01:00
Bram Moolenaar
47cf1cc257 patch 8.1.1065: no test for using and deleting menu in the GUI
Problem:    No test for using and deleting menu in the GUI.
Solution:   Add a test.
2019-03-28 22:04:56 +01:00
Bram Moolenaar
c701f320e8 patch 8.1.1064: no test for output conversion in the GTK GUI
Problem:    No test for output conversion in the GTK GUI.
Solution:   Add a simplistic test.
2019-03-28 21:49:21 +01:00
Bram Moolenaar
37db642083 patch 8.1.1063: insufficient testing for wildmenu completion
Problem:    Insufficient testing for wildmenu completion.
Solution:   Extend the test case. (Dominique Pelle, closes #4182)
2019-03-28 21:26:23 +01:00
Bram Moolenaar
a16123a666 patch 8.1.1062: quickfix code is repeated
Problem:    Quickfix code is repeated.
Solution:   Define FOR_ALL_QFL_ITEMS(). Move some code to separate functions.
            (Yegappan Lakshmanan, closes #4166)
2019-03-28 20:31:07 +01:00
Bram Moolenaar
0e97b94875 patch 8.1.1061: when substitute string throws error, substitute happens anyway
Problem:    When substitute string throws error, substitute happens anyway.
Solution:   Skip substitution when aborting. (closes #4161)
2019-03-27 22:53:53 +01:00
Bram Moolenaar
760285dd4f patch 8.1.1060: MS-Windows: get_cmd_args() is no longer needed
Problem:    MS-Windows: get_cmd_args() is no longer needed, get_cmd_argsW() is
            always used.
Solution:   Remove get_cmd_args(). (Ken Takata, closes #4171)
2019-03-27 21:59:45 +01:00
Bram Moolenaar
90d0cf69aa patch 8.1.1059: MS-Windows: PlatformId() is called unnecessarily
Problem:    MS-Windows: PlatformId() is called unnecessarily.
Solution:   Remove calls to PlatformId(). (Ken Takata, closes #4170)
2019-03-27 21:49:14 +01:00
Bram Moolenaar
3a731ee0c2 patch 8.1.1058: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems.
Solution:   Use 98% of the lower limit. (Christian Brabandt)
2019-03-27 21:41:36 +01:00
Bram Moolenaar
6a95c889bf patch 8.1.1057: nsis config is too complicated
Problem:    Nsis config is too complicated.
Solution:   Use "File /r" for the macros and pack directories. (Ken Takata,
            closes #4169)
2019-03-26 23:02:46 +01:00
Bram Moolenaar
e99be0e6d2 patch 8.1.1056: no eval function for Ruby
Problem:    No eval function for Ruby.
Solution:   Add rubyeval(). (Ozaki Kiichi, closes #4152)
2019-03-26 22:51:09 +01:00
Bram Moolenaar
75bf3d22f4 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Problem:    CTRL-G U in Insert mode doesn't work to avoid splitting the undo
            sequence for shift-left and shift-right.
Solution:   Also check dont_sync_undo for shifted cursor keys. (Christian
            Brabandt)
2019-03-26 22:46:05 +01:00
Bram Moolenaar
6fb5c97242 patch 8.1.1054: not checking return value of ga_grow()
Problem:    Not checking return value of ga_grow(). (Coverity)
Solution:   Only append when ga_grow() returns OK.
2019-03-26 21:44:20 +01:00
Bram Moolenaar
d6c3f1fa2b patch 8.1.1053: warning for missing return statement
Problem:    Warning for missing return statement. (Dominique Pelle)
Solution:   Add return statement.
2019-03-26 00:31:21 +01:00
Bram Moolenaar
553e5a5c56 patch 8.1.1052: test for CTRL-C message sometimes fails
Problem:    test for CTRL-C message sometimes fails
Solution:   Make sure there are no changed buffers.
2019-03-25 23:16:34 +01:00
Bram Moolenaar
a4c2a24cc7 patch 8.1.1051: not all ways to switch terminal mode are tested
Problem:    Not all ways to switch terminal mode are tested.
Solution:   Add more test cases.
2019-03-25 23:01:38 +01:00
Bram Moolenaar
3dd174abbf patch 8.1.1050: blank srceen when DirectWrite failed
Problem:    Blank srceen when DirectWrite failed.
Solution:   Call redraw_later_clear() after recreating the Direct2D render
            target. (Ken Takata, closes #4172)
2019-03-25 22:48:18 +01:00
Bram Moolenaar
a84a3dd663 patch 8.1.1049: when user tries to exit with CTRL-C message is confusing
Problem:    When user tries to exit with CTRL-C message is confusing.
Solution:   Only mention ":qa!" when there is a changed buffer. (closes #4163)
2019-03-25 22:21:24 +01:00
Bram Moolenaar
b45125b374 patch 8.1.1048: minor issues with tests
Problem:    Minor issues with tests.
Solution:   Delete unused test OK file.  Add missing entries in list of tests.
            Fix readme file. (Masato Nishihata, closes #4160)
2019-03-24 20:18:40 +01:00
Bram Moolenaar
63b74a8362 Update runtime files. 2019-03-24 15:09:13 +01:00
Bram Moolenaar
db77b84ac2 patch 8.1.1047: WINCH signal is not tested
Problem:    WINCH signal is not tested.
Solution:   Add a test. (Dominique Pelle, closes #4158)
2019-03-24 14:58:31 +01:00
Bram Moolenaar
82b033eff8 patch 8.1.1046: the "secure" variable is used inconsistently
Problem:    the "secure" variable is used inconsistently. (Justin M. Keyes)
Solution:   Set it to one instead of incrementing.
2019-03-24 14:02:04 +01:00
Bram Moolenaar
63dbfd33c1 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Problem:    E315 ml_get error when using Python and hidden buffer.
Solution:   Make sure the cursor position is valid. (Ben Jackson,
            closes #4153, closes #4154)
2019-03-23 17:41:59 +01:00
Bram Moolenaar
c3e92c161d patch 8.1.1044: no way to check the reference count of objects
Problem:    No way to check the reference count of objects.
Solution:   Add test_refcount(). (Ozaki Kiichi, closes #4124)
2019-03-23 14:23:07 +01:00
Bram Moolenaar
b782869033 patch 8.1.1043: Lua interface does not support Blob
Problem:    Lua interface does not support Blob.
Solution:   Add support to Blob. (Ozaki Kiichi, closes #4151)
2019-03-23 13:57:02 +01:00
Bram Moolenaar
832615be12 patch 8.1.1042: the paste test doesn't work properly in the Windows console
Problem:    The paste test doesn't work properly in the Windows console.
Solution:   Disable the test.
2019-03-23 13:30:22 +01:00
Bram Moolenaar
295e3ba31f patch 8.1.1041: test for Arabic no longer needed
Problem:    Test for Arabic no longer needed.
Solution:   Remove the test for something that was intentionally left out.
2019-03-23 12:59:40 +01:00
Bram Moolenaar
b99abaa480 patch 8.1.1040: FEAT_TAG_ANYWHITE is not enabled in any build
Problem:    FEAT_TAG_ANYWHITE is not enabled in any build.
Solution:   Remove the feature.
2019-03-22 17:03:05 +01:00
Bram Moolenaar
e37368c496 patch 8.1.1039: MS-Windows build fails
Problem:    MS-Windows build fails.
Solution:   Remove dependency on arabic.h
2019-03-22 16:57:45 +01:00
Bram Moolenaar
dc4fa190e7 patch 8.1.1038: Arabic support excludes Farsi
Problem:    Arabic support excludes Farsi.
Solution:   Add Farsi support to the Arabic support. (Ali Gholami Rudi,
            Ameretat Reith)
2019-03-22 16:33:15 +01:00
Bram Moolenaar
6b6f7aae4a patch 8.1.1037: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems.
Solution:   Increase tolerance from 3% to 20%.
2019-03-22 14:36:59 +01:00
Bram Moolenaar
9afe5e9cc0 patch 8.1.1036: quickfix function arguments are inconsistent
Problem:    Quickfix function arguments are inconsistent.
Solution:   Pass a list pointer to more functions. (Yegappan Lakshmanan,
            closes #4149)
2019-03-22 14:16:06 +01:00
Bram Moolenaar
0a2f578e22 patch 8.1.1035: prop_remove() second argument is not optional
Problem:    prop_remove() second argument is not optional.
Solution:   Fix argument count.  Use "buf" instead of "curbuf". (closes #4147)
2019-03-22 13:20:43 +01:00
Bram Moolenaar
2ace1bd652 patch 8.1.1034: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Merge FEAT_MOUSE_SGR into FEAT_MOUSE_XTERM / FEAT_MOUSE_TTY.
2019-03-22 12:03:30 +01:00
Bram Moolenaar
ba64ba0935 patch 8.1.1033: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems. (Elimar
            Riesebieter)
Solution:   Increase tolerance from 1% to 3%.
2019-03-22 11:33:09 +01:00
Bram Moolenaar
2c519cf3bf patch 8.1.1032: warnings from clang static analyzer
Problem:    Warnings from clang static analyzer. (Yegappan Lakshmanan)
Solution:   Fix relevant warnings.
2019-03-21 21:45:34 +01:00
Bram Moolenaar
f7e47af776 patch 8.1.1031: memory usage test may still fail
Problem:    Memory usage test may still fail.
Solution:   Drop the unused min value. (Christian Brabandt)
2019-03-21 21:16:36 +01:00
Bram Moolenaar
0398e00a1b patch 8.1.1030: quickfix function arguments are inconsistent
Problem:    Quickfix function arguments are inconsistent.
Solution:   Pass a list pointer instead of info and index. (Yegappan
            Lakshmanan, closes #4135)
2019-03-21 21:12:49 +01:00
Bram Moolenaar
60ebd524cf patch 8.1.1029: DirectWrite doesn't take 'linespace' into account
Problem:    DirectWrite doesn't take 'linespace' into account.
Solution:   Include 'linespace' in the position. (Ken Takata, closes #4137)
2019-03-21 20:50:12 +01:00
Bram Moolenaar
9029b918f9 patch 8.1.1028: MS-Windows: memory leak when creating terminal fails
Problem:    MS-Windows: memory leak when creating terminal fails.
Solution:   Free the command. (Ken Takata, closes #4138)
2019-03-21 19:58:00 +01:00
Bram Moolenaar
08cda65ddf patch 8.1.1027: memory usage test sometimes fails
Problem:    Memory usage test sometimes fails.
Solution:   Use 80% of before.last as the lower limit. (Christian Brabandt)
2019-03-20 22:45:01 +01:00
Bram Moolenaar
d00e024d9f patch 8.1.1026: unused condition
Problem:    Unused condition. (Coverity)
Solution:   Remove the condition.  Also remove unused #define.
2019-03-20 21:42:20 +01:00
Bram Moolenaar
64c8ed366d patch 8.1.1025: checking NULL pointer after addition
Problem:    Checking NULL pointer after addition. (Coverity)
Solution:   First check for NULL, then add the column.
2019-03-20 21:18:34 +01:00
Bram Moolenaar
697005f2cf patch 8.1.1024: stray log calls in terminal code
Problem:    Stray log calls in terminal code. (Christian Brabandt)
Solution:   Remove the calls.
2019-03-20 20:38:44 +01:00
Bram Moolenaar
61be376337 patch 8.1.1023: may use NULL pointer when indexing a blob
Problem:    May use NULL pointer when indexing a blob. (Coverity)
Solution:   Break out of loop after using index on blob
2019-03-19 23:04:17 +01:00
Bram Moolenaar
e142a9467a patch 8.1.1022: may use NULL pointer when out of memory
Problem:    May use NULL pointer when out of memory. (Coverity)
Solution:   Check for blob_alloc() returning NULL.
2019-03-19 23:03:27 +01:00
Bram Moolenaar
8e9a24a127 patch 8.1.1021: pyeval() and py3eval() leak memory
Problem:    pyeval() and py3eval() leak memory.
Solution:   Do not increase the reference count twice. (Ozaki Kiichi,
            closes #4129)
2019-03-19 22:22:55 +01:00
Bram Moolenaar
828bff1f9b patch 8.1.1020: compiler warning for Python3 interface
Problem:    Compiler warning for Python3 interface.
Solution:   Add type cast. (Ozaki Kiichi, closes #4128, closes #4103)
2019-03-19 22:11:41 +01:00
Bram Moolenaar
4eefe47ea4 patch 8.1.1019: Lua: may garbage collect function reference in use
Problem:    Lua: may garbage collect function reference in use.
Solution:   Keep the function name instead of the typeval. Make luaV_setref()
            handle funcref objects. (Ozaki Kiichi, closes #4127)
2019-03-19 21:59:19 +01:00
Bram Moolenaar
8376c3d321 patch 8.1.1018: window cleared when entering Terminal-Normal twice
Problem:    Window cleared when entering Terminal-Normal twice. (Epheien)
Solution:   Don't cleanup scrollback when there is no postponed scrollback.
            (Christian Brabandt, closes #4126)
2019-03-19 20:50:43 +01:00
Bram Moolenaar
493fbe4abe patch 8.1.1017: off-by-one error in filetype detection
Problem:    Off-by-one error in filetype detection.
Solution:   Also check the last line of the file.
2019-03-17 17:16:12 +01:00
Bram Moolenaar
26967617a3 Update runtime files. 2019-03-17 17:13:16 +01:00
Bram Moolenaar
049ca59236 patch 8.1.1016: MS-Windows: No color in shell when using "!" in 'guioptions
Problem:    MS-Windows: No color in shell when using "!" in 'guioptions.
Solution:   Don't stop termcap when using a terminal window for the shell.
            (vim-jp, closes #4117)
2019-03-17 16:59:44 +01:00
Bram Moolenaar
647e24ba3d patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Problem:    Quickfix buffer shows up in list, can't get buffer number.
Solution:   Make the quickfix buffer unlisted when the quickfix window is
            closed.  get the quickfix buffer number with getqflist().
            (Yegappan Lakshmanan, closes #4113)
2019-03-17 16:39:46 +01:00
Bram Moolenaar
38db5276cd patch 8.1.1014: MS-Windows: /analyze only defined for non-debug version
Problem:    MS-Windows: /analyze only defined for non-debug version.
Solution:   Move adding of /analyze up. (Taro Muraoka, closes #4114)
2019-03-17 15:47:25 +01:00
Bram Moolenaar
3b5fef6a99 patch 8.1.1013: MS-Windows: Scrolling fails when dividing the screen
Problem:    MS-Windows: Scrolling fails when dividing the screen.
Solution:   Position the cursor before calling ScrollConsoleScreenBuffer().
            (Nobuhiro Takasaki, closes #4115)
2019-03-17 14:54:53 +01:00
Bram Moolenaar
ab89d7ab89 patch 8.1.1012: memory leak with E461
Problem:    Memory leak with E461.
Solution:   Clear the typeval. (Dominique Pelle, closes #4111)
2019-03-17 14:43:31 +01:00
Bram Moolenaar
2ba4238818 patch 8.1.1011: indent from autoindent not removed from blank line
Problem:    Indent from autoindent not removed from blank line. (Daniel Hahler)
Solution:   Do not reset did_ai when text follows. (closes #4119)
2019-03-16 18:11:07 +01:00
Bram Moolenaar
713bf9e996 patch 8.1.1010: Lua interface leaks memory
Problem:    Lua interface leaks memory.
Solution:   Clear typeval after copying it.
2019-03-16 16:38:41 +01:00
Bram Moolenaar
1f271efbbb patch 8.1.1009: MS-Windows: some text is not baseline aligned
Problem:    MS-Windows: some text is not baseline aligned.
Solution:   Use bottom alignment. (Taro Muraoka, closes #4116, closes #1520)
2019-03-16 15:24:42 +01:00
Bram Moolenaar
0251d2d811 patch 8.1.1008: MS-Windows: HAVE_STDINT_H only defined for non-debug version
Problem:    MS-Windows: HAVE_STDINT_H only defined for non-debug version.
Solution:   Move definition of HAVE_STDINT_H up. (Taro Muraoka, closes #4109)
2019-03-14 21:37:19 +01:00
Bram Moolenaar
209b8e3e3b patch 8.1.1007: using closure may consume a lot of memory
Problem:    Using closure may consume a lot of memory.
Solution:   unreference items that are no longer needed. Add a test. (Ozaki
            Kiichi, closes #3961)
2019-03-14 13:43:24 +01:00
Bram Moolenaar
4aa47b28f4 patch 8.1.1006: repeated code in quickfix support
Problem:    Repeated code in quickfix support.
Solution:   Move code to functions. (Yegappan Lakshmanan, closes #4091)
2019-03-13 06:51:53 +01:00
Bram Moolenaar
55d81cd2a1 patch 8.1.1005: test fails because t_F2 is not set
Problem:    Test fails because t_F2 is not set.
Solution:   Add try-catch.
2019-03-11 08:05:50 +01:00
Bram Moolenaar
e165f63598 patch 8.1.1004: function "luaV_setref()" not covered with tests
Problem:    Function "luaV_setref()" not covered with tests.
Solution:   Add a test. (Dominique Pelle, closes #4089)
2019-03-10 09:48:59 +01:00
Bram Moolenaar
6edbbd8114 patch 8.1.1003: playing back recorded key sequence mistakes key code
Problem:    Playing back recorded key sequence mistakes key code.
Solution:   Insert a <Nop> after the <Esc>. (closes #4068)
2019-03-10 09:41:51 +01:00
Bram Moolenaar
cbef8e1aa1 patch 8.1.1002: "gf" does not always work when URL has a port number
Problem:    "gf" does not always work when URL has a port number. (Jakob
            Schöttl)
Solution:   When a URL is recognized also accept ":". (closes #4082)
2019-03-09 12:32:56 +01:00
Bram Moolenaar
8156ed3755 patch 8.1.1001: Visual area not correct when using 'cursorline'
Problem:    Visual area not correct when using 'cursorline'.
Solution:   Update w_last_cursorline also in Visual mode. (Hirohito Higashi,
            closes #4086)
2019-03-09 11:46:15 +01:00
Bram Moolenaar
fd731b0e31 patch 8.1.1000: indenting is off
Problem:    Indenting is off.
Solution:   Make indenting consistent and update comments. (Ozaki Kiichi,
            closes #4079)
2019-03-09 11:23:58 +01:00
Bram Moolenaar
9d7fdd403a patch 8.1.0999: use register one too often and not properly tested
Problem:    Use register one too often and not properly tested.
Solution:   Do not always use register one when specifying a register.
            (closes #4085)  Add more tests.
2019-03-08 09:50:52 +01:00
Bram Moolenaar
19a66858a5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Problem:    getcurpos() unexpectedly changes "curswant".
Solution:   Save and restore "curswant". (closes #4069)
2019-03-07 11:25:32 +01:00
Bram Moolenaar
d5a5886ce9 patch 8.1.0997: using GUI colors in vim.exe when 'termguicolors' is off
Problem:    Using GUI colors in vim.exe when 'termguicolors' is off.
Solution:   Add condition for 'termguicolors' set. (Ken Takata, closes #4078)
2019-03-07 06:40:27 +01:00
Bram Moolenaar
6bb8c66c8b patch 8.1.0996: a few screendump tests fail because of scrolling
Problem:    A few screendump tests fail because of scrolling.
Solution:   Update the screendumps.
2019-03-05 13:26:55 +01:00
Bram Moolenaar
f0fab3046c patch 8.1.0995: a getchar() call resets the reg_executing() result
Problem:    A getchar() call while executing a register resets the
            reg_executing() result.
Solution:   Save and restore reg_executing. (closes #406
2019-03-05 12:24:10 +01:00
Bram Moolenaar
8fcb60f961 patch 8.1.0994: relative cursor position is not calculated correctly
Problem:    Relative cursor position is not calculated correctly.
Solution:   Always set topline, also when window is one line only.
            (Robert Webb) Add more info to getwininfo() for testing.
2019-03-04 13:18:30 +01:00
Bram Moolenaar
772153f8d8 patch 8.1.0993: ch_read() may return garbage if terminating NL is missing
Problem:    ch_read() may return garbage if terminating NL is missing.
Solution:   Add terminating NUL. (Ozaki Kiichi, closes #4065)
2019-03-04 12:09:49 +01:00
Bram Moolenaar
cce713ddcc patch 8.1.0992: a :normal command resets the reg_executing() result
Problem:    A :normal command while executing a register resets the
            reg_executing() result.
Solution:   Save and restore reg_executing. (closes #4066)
2019-03-04 11:40:12 +01:00
Bram Moolenaar
975880b6e6 patch 8.1.0991: cannot build with a mix of features
Problem:    Cannot build with FEAT_EVAL defined and FEAT_SEARCH_EXTRA
            undefined, and with FEAT_DIFF defined and FEAT_EVAL undefined.
Solution:   Add a couple of #ifdefs. (closes #4067)
2019-03-03 14:42:11 +01:00
Bram Moolenaar
e21c1580b7 patch 8.1.0990: floating point exception with "%= 0" and "/= 0"
Problem:    Floating point exception with "%= 0" and "/= 0".
Solution:   Avoid dividing by zero. (Dominique Pelle, closes #4058)
2019-03-02 11:57:09 +01:00
Bram Moolenaar
bdace838c6 patch 8.1.0989: various small code ugliness
Problem:    Various small code ugliness.
Solution:   Remove pointless NULL checks. Fix function calls. Fix typos.
            (Dominique Pelle, closes #4060)
2019-03-02 10:13:42 +01:00
Bram Moolenaar
d82a81cad9 patch 8.1.0988: deleting location list buffer breaks location list window
Problem:    Deleting a location list buffer breaks location list window
            functionality.
Solution:   (Yegappan Lakshmanan, closes #4056)
2019-03-02 07:57:18 +01:00
Bram Moolenaar
6ef8f9eacd patch 8.1.0987: unnecessary condition in #ifdef
Problem:    Unnecessary condition in #ifdef.
Solution:   Remove using CYGWIN32. (Ken Takata)
2019-03-02 07:15:28 +01:00
Bram Moolenaar
ef8c956172 patch 8.1.0986: rename() is not propertly tested
Problem:    rename() is not propertly tested.
Solution:   Add tests. (Dominique Pelle, closes #4061)
2019-03-02 06:42:07 +01:00
Bram Moolenaar
ab350f89f9 patch 8.1.0985: crash with large number in regexp
Problem:    Crash with large number in regexp. (Kuang-che Wu)
Solution:   Check for long becoming negative int. (closes #)
2019-02-28 06:25:00 +01:00
Bram Moolenaar
c69efcb42f patch 8.1.0984: unnecessary #ifdefs
Problem:    Unnecessary #ifdefs.
Solution:   Remove the #ifdefs. (Ken Takata)
2019-02-27 14:12:01 +01:00
Bram Moolenaar
1eed532999 patch 8.1.0983: checking __CYGWIN32__ unnecessarily
Problem:    Checking __CYGWIN32__ unnecessarily.
Solution:   Remove the checks. (Ken Takata)
2019-02-26 17:03:54 +01:00
Bram Moolenaar
32033d2397 patch 8.1.0982: update_cursor() called twice in :shell
Problem:    update_cursor() called twice in :shell.
Solution:   Remove one of the calls. (Yasuhiro Matsumoto, closes #4039)
2019-02-25 06:28:57 +01:00
Bram Moolenaar
5b868a82ed patch 8.1.0981: pasting in terminal insufficiently tested
Problem:    Pasting in terminal insufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes #4040)
2019-02-25 06:11:53 +01:00
Bram Moolenaar
58d63a0a23 patch 8.1.0980: extend() insufficiently tested
Problem:    extend() insufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes #4040)
2019-02-25 05:56:31 +01:00
Bram Moolenaar
1fa8fdd611 patch 8.1.0979: compiler warning for unused functions
Problem:    Compiler warning for unused functions. (Yasuhiro Matsumoto)
Solution:   Adjust #ifdef.
2019-02-25 05:41:15 +01:00
Bram Moolenaar
2472ae81df patch 8.1.0978: blob not tested with Perl
Problem:    Blob not tested with Perl.
Solution:   Add more test coverage.  Fixes a crash. (Dominique Pelle,
            closes #4037)
2019-02-23 15:04:17 +01:00
Bram Moolenaar
0d13cce345 patch 8.1.0977: blob not tested with Ruby
Problem:    Blob not tested with Ruby.
Solution:   Add more test coverage.  fixes a crash. (Dominique Pelle,
            closes #4036)
2019-02-23 14:23:03 +01:00
Bram Moolenaar
e4963c543d patch 8.1.0976: dosinstall still has buffer overflow problems
Problem:    Dosinstall still has buffer overflow problems.
Solution:   Adjust  buffer sizes. (Yasuhiro Matsumoto, closes #4002)
2019-02-22 19:41:08 +01:00
Bram Moolenaar
c666388367 patch 8.1.0975: using STRNCPY() wrongly. Warning for uninitialized variable
Problem:    Using STRNCPY() wrongly. Warning for uninitialized variable.
Solution:   Use mch_memmove(). Initialize variable. (Yasuhiro Matsumoto,
            closes #3979)
2019-02-22 19:14:54 +01:00
Bram Moolenaar
882d02eeb5 patch 8.1.0974: cannot switch from terminal window to previous tabpage
Problem:    Cannot switch from terminal window to previous tabpage.
Solution:   Make CTRL-W gT move to previous tabpage.
2019-02-22 17:56:43 +01:00
Bram Moolenaar
cd62512c55 patch 8.1.0973: pattern with syntax error gives threee error messages
Problem:    Pattern with syntax error gives threee error messages. (Kuang-che
            Wu)
Solution:   Remove outdated internal error.  Don't fall back to other engine
            after an error.
2019-02-22 17:29:43 +01:00
Bram Moolenaar
72e83c1ae5 patch 8.1.0972: cannot switch from terminal window to next tabpage
Problem:    Cannot switch from terminal window to next tabpage.
Solution:   Make CTRL-W gt move to next tabpage.
2019-02-22 16:09:52 +01:00
Bram Moolenaar
f6b401090e Update runtime files 2019-02-22 15:24:03 +01:00
Bram Moolenaar
55d3bdbbe2 patch 8.1.0971: failure for selecting quoted text object moves cursor
Problem:    Failure for selecting quoted text object moves cursor.
Solution:   Restore the Visual selection on failure. (Christian Brabandt,
            closes #4024)
2019-02-22 15:04:17 +01:00
Bram Moolenaar
ed79d1e348 patch 8.1.0970: text properties test fails when 'encoding' is not utf-8
Problem:    Text properties test fails when 'encoding' is not utf-8.
Solution:   Compare with original value of 'encoding'. (Christian Brabandt,
            closes #3986)
2019-02-22 14:38:58 +01:00
Bram Moolenaar
97c2c05ead patch 8.1.0969: message written during startup is truncated
Problem:    Message written during startup is truncated.
Solution:   Restore message after truncating. (closes 3969)
2019-02-22 13:42:07 +01:00
Bram Moolenaar
527a2d86fb patch 8.1.0968: crash when using search pattern \%Ufffffc23
Problem:    Crash when using search pattern \%Ufffffc23.
Solution:   Limit character to INT_MAX. (closes #4009)
2019-02-21 22:28:51 +01:00
Bram Moolenaar
1417031cfd patch 8.1.0967: stray dependency in test Makefile
Problem:    Stray dependency in test Makefile.
Solution:   Remove it. (Masato Nishihata, closes #4018)
2019-02-21 21:50:46 +01:00
Bram Moolenaar
3876789b23 patch 8.1.0966: one terminal test is flaky
Problem:    One terminal test is flaky.
Solution:   Add to list of flaky tests.
2019-02-21 18:17:14 +01:00
Bram Moolenaar
e86ecbd922 patch 8.1.0965: search test fails
Problem:    Search test fails.
Solution:   Wait a bit longer for the 'ambiwidth' redraw.
2019-02-21 17:48:59 +01:00
Bram Moolenaar
353aca1215 patch 8.1.0964: cannot see in CI why a screenshot test failed
Problem:    Cannot see in CI why a screenshot test failed.
Solution:   Add info about the failure.
2019-02-21 17:05:59 +01:00
Bram Moolenaar
4a7d2d3b40 patch 8.1.0963: illegal memory access when using 'incsearch'
Problem:    Illegal memory access when using 'incsearch'.
Solution:   Reset highlight_match when changing text. (closes #4022)
2019-02-21 16:25:50 +01:00
Bram Moolenaar
d91e5dafd5 patch 8.1.0962: building with MinGW and static libs doesn't work
Problem:    Building with MinGW and static libs doesn't work. (Salman Halim)
Solution:   Add -lgcc. (Ken Takata)
2019-02-21 13:34:07 +01:00
Bram Moolenaar
9166838420 patch 8.1.0961: Mac: fsync may fail sometimes
Problem:    Mac: fsync may fail sometimes.
Solution:   Do not check errno. (Yee Cheng Chin, closes #4025)
2019-02-21 12:16:12 +01:00
Bram Moolenaar
8caa43d815 patch 8.1.0960: when using ConPTY garbage collection has undefined behavior
Problem:    When using ConPTY garbage collection has undefined behavior.
Solution:   Free the channel in a better way. (Nobuhiro Takasaki, closes #4020)
2019-02-20 22:45:06 +01:00
Bram Moolenaar
a25e3d0695 patch 8.1.0959: sorting large numbers is not tested
Problem:    Sorting large numbers is not tested and does not work properly.
Solution:   Add test.  Fix comparing lines with and without a number.
            (Dominique Pelle, closes #4017)
2019-02-20 22:19:05 +01:00
Bram Moolenaar
38f08e76ac patch 8.1.0958: compiling weird regexp pattern is very slow
Problem:    Compiling weird regexp pattern is very slow.
Solution:   When reallocating post list increase size by 50%. (Kuang-che Wu,
            closes #4012)  Make assert_inrange() accept float values.
2019-02-20 22:04:32 +01:00
Bram Moolenaar
3585671888 patch 8.1.0957: Mac: fsync fails on network share
Problem:    Mac: fsync fails on network share.
Solution:   Check for ENOTSUP. (Yee Cheng Chin, closes #4016)
2019-02-20 20:37:01 +01:00
Bram Moolenaar
b9ddda6c2d patch 8.1.0956: using context:0 in 'diffopt' does not work well
Problem:    Using context:0 in 'diffopt' does not work well.
Solution:   Make zero context do the same as one line context. (closes #4005)
2019-02-19 23:00:50 +01:00
Bram Moolenaar
66ae3d199f patch 8.1.0955: matchit autoload directory not in installer
Problem:    Matchit autoload directory not in installer. (Chris Morgan)
Solution:   Adjust the NSIS script. (Christian Brabandt, closes #4006)
2019-02-19 21:40:28 +01:00
Bram Moolenaar
0d8562a999 patch 8.1.0954: arguments of semsg() and siemsg() are not checked
Problem:    Arguments of semsg() and siemsg() are not checked.
Solution:   Add function prototype with __attribute__.
2019-02-19 21:34:05 +01:00
Bram Moolenaar
c9629251a6 patch 8.1.0953: a very long file is truncated at 2^31 lines
Problem:    A very long file is truncated at 2^31 lines.
Solution:   Use LONG_MAX for MAXLNUM. (Dominique Pelle, closes #4011)
2019-02-19 21:24:54 +01:00
Bram Moolenaar
bbd854dc57 patch 8.1.0952: compilation warnings when building the MS-Windows installer
Problem:    Compilation warnings when building the MS-Windows installer.
Solution:   Fix buffer sizes. (Yasuhiro Matsumoto, closes #3999)
2019-02-18 22:19:33 +01:00
Bram Moolenaar
44b443c5db patch 8.1.0951: using WIN64 even though it is never defined
Problem:    Using WIN64 even though it is never defined.
Solution:   Only use _WIN64. (Ken Takata, closes #3997)
2019-02-18 22:14:18 +01:00
Bram Moolenaar
14816ad6e5 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Problem:    Using :python sets 'pyxversion' even when not executed.
Solution:   Check the "skip" flag. (Shane Harper, closes #3995)
2019-02-18 22:04:56 +01:00
Bram Moolenaar
0472b6d149 patch 8.1.0949: MS-windows defines GUI macros different than other systems
Problem:    MS-windows defines GUI macros different than other systems.
Solution:   Swap FEAT_GUI and FEAT_GUI_MSWIN. (Hirohito Higashi, closes #3996)
2019-02-18 21:41:37 +01:00
Bram Moolenaar
d53931ae73 patch 8.1.0948: when built without +eval "Vim --clean" produces errors
Problem:    When built without +eval "Vim --clean" produces errors. (James
            McCoy)
Solution:   Do not enable filetype detection.
2019-02-18 21:32:28 +01:00
Bram Moolenaar
7dca2ebbcf patch 8.1.0947: using MSWIN before it is defined
Problem:    Using MSWIN before it is defined. (Cesar Romani)
Solution:   Move the block that uses MSWIN to below including vim.h. (Ken
            Takata)
2019-02-18 20:42:50 +01:00
Bram Moolenaar
c854898881 Revert change accidentally included in runtime file updates. Closes #3998. 2019-02-18 17:40:18 +01:00
Bram Moolenaar
b0e2da2b23 patch 8.1.0946: Coveralls is not very useful
Problem:    Coveralls is not very useful.
Solution:   Remove Coveralls badge, add badge for packages.
2019-02-17 23:26:50 +01:00
Bram Moolenaar
4c92e75dd4 Update runtime files. 2019-02-17 21:18:32 +01:00
Bram Moolenaar
a5483448cb patch 8.1.0945: internal error when using pattern with NL in the range
Problem:    Internal error when using pattern with NL in the range.
Solution:   Use an actual newline for the range. (closes #3989)  Also fix
            error message.  (Dominique Pelle)
2019-02-17 20:17:02 +01:00
Bram Moolenaar
c85c8fcb9f patch 8.1.0944: format of nbdbg() arguments is not checked
Problem:    Format of nbdbg() arguments is not checked.
Solution:   Add format attribute.  Fix reported problems. (Dominique Pelle,
            closes #3992)
2019-02-17 19:12:21 +01:00
Bram Moolenaar
749f07c0db patch 8.1.0943: still a trace of Farsi support
Problem:    Still a trace of Farsi support.
Solution:   Remove defining macros.
2019-02-17 18:59:10 +01:00
Bram Moolenaar
76cbe811da patch 8.1.0942: options window still checks for the multi_byte feature
Problem:    Options window still checks for the multi_byte feature.
Solution:   Remove the unnecessary check. (Dominique Pelle, closes #3990)
2019-02-17 17:53:49 +01:00
Bram Moolenaar
4f97475d32 patch 8.1.0941: macros for MS-Windows are inconsistent
Problem:    Macros for MS-Windows are inconsistent, using "32", "3264 and
            others.
Solution:   Use MSWIN for all MS-Windows builds.  Use FEAT_GUI_MSWIN for the
            GUI build. (Hirohito Higashi, closes #3932)
2019-02-17 17:44:42 +01:00
Bram Moolenaar
78d21dae9c patch 8.1.0940: MS-Windows console resizing not handled properly
Problem:    MS-Windows console resizing not handled properly.
Solution:   Handle resizing the console better. (Nobuhiro Takasaki,
            closes #3968, closes #3611)
2019-02-17 15:00:52 +01:00
Bram Moolenaar
3678f65d43 patch 8.1.0939: no completion for sign group names
Problem:    No completion for sign group names.
Solution:   Add completion for sign group names and buffer names. (Yegappan
            Lakshmanan, closes #3980)
2019-02-17 14:50:25 +01:00
Bram Moolenaar
21edde8742 patch 8.1.0938: background color is wrong in MS-Windows console
Problem:    Background color is wrong in MS-Windows console when not using VTP.
Solution:   Use g_attrCurrent. (Nobuhiro Takasaki, closes #3987)
2019-02-17 14:10:56 +01:00
Bram Moolenaar
f1b57ab2ab patch 8.1.0937: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete collation element. (Dominique Pelle,
            closes #3985)
2019-02-17 13:53:34 +01:00
Bram Moolenaar
55c77cf2ea patch 8.1.0936: may leak memory when using 'vartabstop'
Problem:    May leak memory when using 'vartabstop'. (Kuang-che Wu)
Solution:   Fix handling allocated memory for 'vartabstop'. (closes #3976)
2019-02-16 19:05:11 +01:00
Bram Moolenaar
8bfd9469ce patch 8.1.0935: old regexp engine may use invalid buffer
Problem:    Old regexp engine may use invalid buffer for 'iskeyword' or
            uninitialized buffer pointer. (Kuang-che Wu)
Solution:   Set rex.reg_buf when compiling the pattern. (closes #3972)
2019-02-16 18:07:57 +01:00
Bram Moolenaar
985079c514 patch 8.1.0934: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete equivalence class. (closes #3970)
2019-02-16 17:07:47 +01:00
Bram Moolenaar
6982f42f33 patch 8.1.0933: When using VTP scroll region isn't used properly
Problem:    When using VTP scroll region isn't used properly.
Solution:   Make better use of the scroll region. (Nobuhiro Takasaki,
            closes #3974)
2019-02-16 16:48:01 +01:00
Bram Moolenaar
14184a3133 patch 8.1.0932: Farsi support is outdated and unused
Problem:    Farsi support is outdated and unused.
Solution:   Delete the Farsi support.
2019-02-16 15:10:30 +01:00
Bram Moolenaar
6902c0eb27 patch 8.1.0931: vtp_working included in GUI build but unused
Problem:    vtp_working included in GUI build but unused.
Solution:   Adjust #ifdefs. (Ken Takata, closes #3971)
2019-02-16 14:07:37 +01:00
Bram Moolenaar
0a1b17bbec patch 8.1.0930: typo in Makefile
Problem:    Typo in Makefile.
Solution:   Change ABORT_CLFAGS to ABORT_CFLAGS. (Kuang-che Wu, closes #3977)
2019-02-16 13:45:09 +01:00
Bram Moolenaar
5acd987258 patch 8.1.0929: no error when requesting ConPTY but it's not available
Problem:    No error when requesting ConPTY but it's not available.
Solution:   Add an error message. (Hirohito Higashi, closes #3967)
2019-02-16 13:35:13 +01:00
Bram Moolenaar
d634024b90 patch 8.1.0928: stray log function call
Problem:    Stray log function call.
Solution:   Remove the log function call.
2019-02-16 00:00:28 +01:00
Bram Moolenaar
0059074008 patch 8.1.0927: USE_CR is never defined
Problem:    USE_CR is never defined.
Solution:   Remove usage of USE_CR. (Ken Takata, closes #3958)
2019-02-15 21:06:09 +01:00
Bram Moolenaar
e93e5a504f patch 8.1.0926: no test for :wnext, :wNext and :wprevious
Problem:    No test for :wnext, :wNext and :wprevious.
Solution:   Add a test. (Dominique Pelle, closes #3963)
2019-02-15 20:22:38 +01:00
Bram Moolenaar
5ff7df509a patch 8.1.0925: terminal scrollback test still still flaky
Problem:    Terminal scrollback test still still flaky.
Solution:   Explicitly set the shell.  Disable ruler. (Ozaki Kiichi,
            closes #3966)
2019-02-15 01:06:13 +01:00
Bram Moolenaar
7e841e3ce5 patch 8.1.0924: terminal scrollback test still flaky
Problem:    Terminal scrollback test still flaky.
Solution:   Wait a bit longer before running the tail command.
2019-02-15 00:26:14 +01:00
Bram Moolenaar
c3ef896608 patch 8.1.0923: terminal dump diff swap does not update file names
Problem:    Terminal dump diff swap does not update file names.
Solution:   Also swap the file name.  Add a test.
2019-02-15 00:16:13 +01:00
Bram Moolenaar
96baf02aa8 patch 8.1.0922: terminal scrollback test is flaky
Problem:    Terminal scrollback test is flaky.
Solution:   Wait a bit before running the tail command.
2019-02-14 23:49:38 +01:00
Bram Moolenaar
81aa0f56f8 patch 8.1.0921: terminal test sometimes fails; using memory after free
Problem:    Terminal test sometimes fails; using memory after free.
Solution:   Fee memory a bit later.  Add test to cover this.  Disable flaky
            screenshot test. (closes #3956)
2019-02-14 23:23:19 +01:00
Bram Moolenaar
29ae223ddc patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Problem:    In Terminal-Normal mode job output messes up the window.
Solution:   Postpone scrolling and updating the buffer when in Terminal-Normal
            mode.
2019-02-14 21:22:01 +01:00
Bram Moolenaar
0f77d6afd5 patch 8.1.0919: compiler warnings
Problem:    Compiler warnings.
Solution:   Add type casts. (Mike Williams)
2019-02-14 20:55:09 +01:00
Bram Moolenaar
9b5c1fcdea patch 8.1.0918: MS-Windows: startup messages are not converted
Problem:    MS-Windows: startup messages are not converted.
Solution:   Convert messages when the current codepage differs from
            'encoding'. (Yasuhiro Matsumoto, closes #3914)
2019-02-14 14:08:04 +01:00
Bram Moolenaar
445e71c5ee patch 8.1.0917: double free when running out of memory
Problem:    Double free when running out of memory.
Solution:   Remove one free. (Ken Takata, closes #3955)
2019-02-14 13:43:36 +01:00
Bram Moolenaar
b999ba2778 patch 8.1.0916: with Python 3.7 "find_module" is not made available
Problem:    With Python 3.7 "find_module" is not made available.
Solution:   Also add "find_module" with Python 3.7. (Joel Frederico,
            closes #3954)
2019-02-14 13:28:45 +01:00
Bram Moolenaar
a787019518 patch 8.1.0915: fsync() may not work properly on Mac
Problem:    fsync() may not work properly on Mac.
Solution:   Use fcntl() with F_FULLFSYNC. (suggested by Justin M. Keyes)
2019-02-14 12:56:36 +01:00
Bram Moolenaar
5fd0f5052f patch 8.1.0914: code related to findfile() is spread out
Problem:    Code related to findfile() is spread out.
Solution:   Put findfile() related code into a new source file. (Yegappan
            Lakshmanan, closes #3934)
2019-02-13 23:13:28 +01:00
Bram Moolenaar
688b3983d8 patch 8.1.0913: CI crashes when running out of memory
Problem:    CI crashes when running out of memory.
Solution:   Apply 'maxmempattern' also to new regexp engine.
2019-02-13 21:47:36 +01:00
Bram Moolenaar
18442cbcc0 patch 8.1.0912: MS-Windows: warning for signed/unsigned
Problem:    MS-Windows: warning for signed/unsigned.
Solution:   Add type cast. (Nobuhiro Takasaki, closes #3945)
2019-02-13 21:22:12 +01:00
Bram Moolenaar
943e9639a9 patch 8.1.0911: tag line with Ex command cannot have extra fields
Problem:    Tag line with Ex command cannot have extra fields.
Solution:   Recognize |;" as the end of the command. (closes #2402)
2019-02-13 21:19:14 +01:00
Bram Moolenaar
15bbd6ec87 patch 8.1.0910: crash with tricky search pattern
Problem:    Crash with tricky search pattern. (Kuang-che Wu)
Solution:   Check for runnning out of memory. (closes #3950)
2019-02-13 20:31:50 +01:00
Bram Moolenaar
d9ef1b8d77 patch 8.1.0909: MS-Windows: using ConPTY even though it is not stable
Problem:    MS-Windows: using ConPTY even though it is not stable.
Solution:   When ConPTY version is unstable, prefer using winpty. (Ken Takata,
            closes #3949)
2019-02-13 19:23:10 +01:00
Bram Moolenaar
9403a2168d patch 8.1.0908: can't handle large value for %{nr}v in regexp
Problem:    Can't handle large value for %{nr}v in regexp. (Kuang-che Wu)
Solution:   Give an error if the value is too large. (closes #3948)
2019-02-13 18:35:06 +01:00
Bram Moolenaar
5382f12c91 patch 8.1.0907: CI tests on AppVeyor are failing
Problem:    CI tests on AppVeyor are failing.
Solution:   Reduce the recursiveness limit for regexp.
2019-02-13 01:18:38 +01:00
Bram Moolenaar
e1ed53f3f9 patch 8.1.0906: using clumsy way to get console window handle
Problem:    Using clumsy way to get console window handle.
Solution:   Use GetConsoleWindow(). (Ken Takata, closes #3940)
2019-02-12 23:12:37 +01:00
Bram Moolenaar
5567ad48b6 patch 8.1.0905: complicated regexp causes a crash
Problem:    Complicated regexp causes a crash. (Kuang-che Wu)
Solution:   Limit the recursiveness of addstate(). (closes #3941)
2019-02-12 23:05:46 +01:00
433 changed files with 30746 additions and 24534 deletions

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve Vim
title: ''
labels: ''
---
_Instructions: Replace the template text and remove irrelevant text (including this line)_
**Describe the bug**
A clear and concise description of what the bug is.
(Issues related to the runtime files should be reported to their maintainer, check the file header.)
**To Reproduce**
Detailed steps to reproduce the behavior:
1. Run `vim --clean` (or `gvim --clean`, etc.)
2. Edit `filename`
3. Type '....'
4. Describe the error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, copy/paste the text or add screenshots to help explain your problem.
**Environment (please complete the following information):**
- Vim version [e.g. 8.1.1234] (Or paste the result of `vim --version`.)
- OS: [e.g. Ubuntu 18.04, Windows 10 1809, macOS 10.14]
- Terminal: [e.g. GNOME Terminal, mintty, iTerm2, tmux, GNU screen] (Use GUI if you use the GUI.)
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an enhancement for Vim
title: ''
labels: enhancement
---
_Instructions: Replace the template text and remove irrelevant text (including this line)_
**Is your feature request related something that is currently hard to do? Please describe.**
A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...]
(If it is related to runtime files, please check their header for where to discuss enhancements.)
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

3
.gitignore vendored
View File

@@ -33,6 +33,8 @@ src/auto/pathdef.c
*.suo
*.res
*.RES
vim*.dll
vim*.lib
src/if_perl.c
src/pathdef.c
src/Obj*/pathdef.c
@@ -68,6 +70,7 @@ src/po/vim.pot
# Generated by "make test"
src/po/*.ck
src/po/*.desktop
src/testdir/mbyte.vim
src/testdir/mzscheme.vim
src/testdir/lua.vim

View File

@@ -69,10 +69,14 @@ branches:
addons:
apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages:
- autoconf
- clang
- lcov
- gettext
- libperl-dev
- python-dev
- python3-dev

View File

@@ -21,9 +21,9 @@ maillist is also fine.
Please use the GitHub issues only for actual issues. If you are not 100% sure
that your problem is a Vim issue, please first discuss this on the Vim user
maillist. Try reproducing the problem without any plugins or settings:
maillist. Try reproducing the problem without any of your plugins or settings:
vim -N -u NONE
vim --clean
If you report an issue, please describe exactly how to reproduce it.
For example, don't say "insert some text" but say what you did exactly:
@@ -56,12 +56,14 @@ If the maintainer does not respond, contact the vim-dev maillist.
# Translations
Translating messages and runtime files is very much appreciated! These things can be translated:
Translating messages and runtime files is very much appreciated! These things
can be translated:
* Messages in Vim, see [src/po/README.txt][1]
Also used for the desktop icons.
* Menus, see [runtime/lang/README.txt][2]
* Vim tutor, see [runtime/tutor/README.txt][3]
* Manual pages, see [runtime/doc/\*.1][4] for examples
* Desktop icon, see [runtime/vim.desktop][5] and [runtime/gvim.desktop][6]
* Installer, see [nsis/lang/\*.nsi][5] for examples
The help files can be translated and made available separately.
See https://www.vim.org/translations.php for examples.
@@ -70,5 +72,4 @@ See https://www.vim.org/translations.php for examples.
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
[5]: https://github.com/vim/vim/blob/master/runtime/vim.desktop
[6]: https://github.com/vim/vim/blob/master/runtime/gvim.desktop
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi

View File

@@ -9,10 +9,9 @@ SRC_ALL = \
appveyor.yml \
ci/appveyor.bat \
src/Make_all.mak \
src/README.txt \
src/README.md \
src/alloc.h \
src/arabic.c \
src/arabic.h \
src/ascii.h \
src/autocmd.c \
src/beval.c \
@@ -24,6 +23,7 @@ SRC_ALL = \
src/charset.c \
src/crypt.c \
src/crypt_zip.c \
src/debugger.c \
src/dict.c \
src/diff.c \
src/digraph.c \
@@ -37,10 +37,9 @@ SRC_ALL = \
src/ex_docmd.c \
src/ex_eval.c \
src/ex_getln.c \
src/farsi.c \
src/farsi.h \
src/feature.h \
src/fileio.c \
src/findfile.c \
src/fold.c \
src/getchar.c \
src/globals.h \
@@ -50,6 +49,7 @@ SRC_ALL = \
src/hardcopy.c \
src/hashtab.c \
src/indent.c \
src/insexpand.c \
src/json.c \
src/json_test.c \
src/kword_test.c \
@@ -98,6 +98,7 @@ SRC_ALL = \
src/textprop.c \
src/ui.c \
src/undo.c \
src/usercmd.c \
src/userfunc.c \
src/version.c \
src/version.h \
@@ -157,6 +158,7 @@ SRC_ALL = \
src/proto/charset.pro \
src/proto/crypt.pro \
src/proto/crypt_zip.pro \
src/proto/debugger.pro \
src/proto/dict.pro \
src/proto/diff.pro \
src/proto/digraph.pro \
@@ -168,8 +170,8 @@ SRC_ALL = \
src/proto/ex_docmd.pro \
src/proto/ex_eval.pro \
src/proto/ex_getln.pro \
src/proto/farsi.pro \
src/proto/fileio.pro \
src/proto/findfile.pro \
src/proto/fold.pro \
src/proto/getchar.pro \
src/proto/gui.pro \
@@ -177,6 +179,7 @@ SRC_ALL = \
src/proto/hardcopy.pro \
src/proto/hashtab.pro \
src/proto/indent.pro \
src/proto/insexpand.pro \
src/proto/json.pro \
src/proto/list.pro \
src/proto/main.pro \
@@ -210,6 +213,7 @@ SRC_ALL = \
src/proto/textprop.pro \
src/proto/ui.pro \
src/proto/undo.pro \
src/proto/usercmd.pro \
src/proto/userfunc.pro \
src/proto/version.pro \
src/proto/winclip.pro \
@@ -509,13 +513,14 @@ SRC_DOS_BIN = \
src/vim.tlb \
src/xpm/COPYRIGHT \
src/xpm/README.txt \
src/xpm/arm64/lib-vc14/libXpm.lib \
src/xpm/include/*.h \
src/xpm/x64/lib-vc14/libXpm.lib \
src/xpm/x64/lib/libXpm.a \
src/xpm/x64/lib/libXpm.lib \
src/xpm/x64/lib-vc14/libXpm.lib \
src/xpm/x86/lib-vc14/libXpm.lib \
src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \
src/xpm/x86/lib-vc14/libXpm.lib \
nsis/icons.zip \
# source files for Amiga, DOS, etc. (also in the extra archive)
@@ -835,8 +840,6 @@ EXTRA = \
$(SRC_EXTRA) \
README_extra.txt \
src/VisVim/VisVim.dll \
farsi/README.txt \
farsi/fonts/*/far-* \
runtime/vimlogo.xpm \
src/tee/Makefile \
src/tee/Make_mvc.mak \
@@ -939,6 +942,8 @@ LANG_SRC = \
src/po/Make_cyg.mak \
src/po/Make_ming.mak \
src/po/Make_mvc.mak \
src/po/vim.desktop.in \
src/po/gvim.desktop.in \
src/po/sjiscorr.c \
src/po/*.po \

View File

@@ -43,13 +43,18 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
@if test "$@" = "test"; then \
$(MAKE) indenttest; \
fi
@# When the target is "clean" also clean for the indent tests.
@if test "$@" = "clean" -o "$@" = "distclean" -o "$@" = "testclean"; then \
cd runtime/indent && \
$(MAKE) clean; \
fi
# Executable used for running the indent tests.
VIM_FOR_INDENTTEST = ../../src/vim
indenttest:
cd runtime/indent && \
$(MAKE) clean VIM="$(VIM_FOR_INDENTTEST)" && \
$(MAKE) clean && \
$(MAKE) test VIM="$(VIM_FOR_INDENTTEST)"

View File

@@ -1,12 +1,12 @@
![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverage Status](https://coveralls.io/repos/github/vim/vim/badge.svg?branch=master)](https://coveralls.io/github/vim/vim?branch=master)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp)
[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim)
## What is Vim? ##

View File

@@ -1,2 +0,0 @@
For information about installation of Farsi fonts and Vim usage in Farsi mode,
refer to the Farsi help file by typing ":help farsi" in Vim.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -322,6 +322,9 @@ Section "$(str_section_exe)" id_section_exe
SetOutPath $0
File /oname=gvim.exe ${VIMSRC}\gvim_ole.exe
!if /FileExists "${VIMSRC}\vim${BIT}.dll"
File ${VIMSRC}\vim${BIT}.dll
!endif
File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
File ${VIMSRC}\vimrun.exe
@@ -354,40 +357,10 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMRT}\indent\*.*
SetOutPath $0\macros
File ${VIMRT}\macros\*.*
SetOutPath $0\macros\hanoi
File ${VIMRT}\macros\hanoi\*.*
SetOutPath $0\macros\life
File ${VIMRT}\macros\life\*.*
SetOutPath $0\macros\maze
File ${VIMRT}\macros\maze\*.*
SetOutPath $0\macros\urm
File ${VIMRT}\macros\urm\*.*
File /r ${VIMRT}\macros\*.*
SetOutPath $0\pack\dist\opt\dvorak\dvorak
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
SetOutPath $0\pack\dist\opt\dvorak\plugin
File ${VIMRT}\pack\dist\opt\dvorak\plugin\*.*
SetOutPath $0\pack\dist\opt\editexisting\plugin
File ${VIMRT}\pack\dist\opt\editexisting\plugin\*.*
SetOutPath $0\pack\dist\opt\justify\plugin
File ${VIMRT}\pack\dist\opt\justify\plugin\*.*
SetOutPath $0\pack\dist\opt\matchit\doc
File ${VIMRT}\pack\dist\opt\matchit\doc\*.*
SetOutPath $0\pack\dist\opt\matchit\plugin
File ${VIMRT}\pack\dist\opt\matchit\plugin\*.*
SetOutPath $0\pack\dist\opt\shellmenu\plugin
File ${VIMRT}\pack\dist\opt\shellmenu\plugin\*.*
SetOutPath $0\pack\dist\opt\swapmouse\plugin
File ${VIMRT}\pack\dist\opt\swapmouse\plugin\*.*
SetOutPath $0\pack\dist\opt\termdebug\plugin
File ${VIMRT}\pack\dist\opt\termdebug\plugin\*.*
SetOutPath $0\pack
File /r ${VIMRT}\pack\*.*
SetOutPath $0\plugin
File ${VIMRT}\plugin\*.*
@@ -1126,7 +1099,9 @@ Section "un.$(str_unsection_rootdir)" id_unsection_rootdir
Call un.GetParent
Pop $0
Delete $0\_vimrc
${IfNot} ${Silent}
Delete $0\_vimrc
${Endif}
RMDir $0
SectionEnd

View File

@@ -74,7 +74,7 @@ LangString str_group_plugin ${LANG_DANISH} "Opret plugin-mapper"
LangString str_desc_plugin ${LANG_DANISH} "Opret plugin-mapper. Plugin-mapper giver mulighed for at udvide Vim ved at slippe en fil i en mappen."
LangString str_section_plugin_home ${LANG_DANISH} "Private"
LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HOME-mappen."
LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HOME (hvis du har defineret et) eller Vim-installationsmappe."
LangString str_section_plugin_vim ${LANG_DANISH} "Delte"
LangString str_desc_plugin_vim ${LANG_DANISH} "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet."
@@ -92,9 +92,9 @@ LangString str_unsection_exe ${LANG_DANISH} "Fjern Vim-eksekverbare-/
LangString str_desc_rm_exe ${LANG_DANISH} "Fjern alle Vim-eksekverbare- og afviklingsfiler."
LangString str_ungroup_plugin ${LANG_DANISH} "Fjern plugin-mapper"
LangString str_desc_rm_plugin ${LANG_DANISH} "Fjern plugin-mapperne hvis de er tomme."
LangString str_desc_rm_plugin ${LANG_DANISH} "Fjern plugin-mapperne, hvis de er tomme."
LangString str_unsection_plugin_home ${LANG_DANISH} "Privat"
LangString str_unsection_plugin_home ${LANG_DANISH} "Private"
LangString str_desc_rm_plugin_home ${LANG_DANISH} "Fjern plugin-mapperne fra HOME-mappen."
LangString str_unsection_plugin_vim ${LANG_DANISH} "Delte"
@@ -164,9 +164,9 @@ LangString str_msg_compat_defaults ${LANG_DANISH} "Vim med nogle forbedringe
LangString str_msg_compat_all ${LANG_DANISH} "Vim med alle forbedringer (indlæs vimrc_example.vim) (standard)"
LangString str_msg_keymap_title ${LANG_DANISH} " Tilknytninger "
LangString str_msg_keymap_desc ${LANG_DANISH} "&Gentilknyt nogle få taster (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F osv.)"
LangString str_msg_keymap_desc ${LANG_DANISH} "&Gentilknyt nogle få taster for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F osv.)"
LangString str_msg_keymap_default ${LANG_DANISH} "Gentilknyt ikke taster (standard)"
LangString str_msg_keymap_windows ${LANG_DANISH} "Gentilknyt nogle få taster til Windows"
LangString str_msg_keymap_windows ${LANG_DANISH} "Gentilknyt nogle få taster"
LangString str_msg_mouse_title ${LANG_DANISH} " Mus "
LangString str_msg_mouse_desc ${LANG_DANISH} "&Opførsel af højre og venstre knapper"

View File

@@ -1,7 +1,7 @@
" Vim functions for file type detection
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Jan 18
" Last Change: 2019 Mar 08
" These functions are moved here from runtime/filetype.vim to make startup
" faster.
@@ -197,7 +197,7 @@ func dist#ft#FTe()
exe 'setf ' . g:filetype_euphoria
else
let n = 1
while n < 100 && n < line("$")
while n < 100 && n <= line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
setf specman
return
@@ -211,7 +211,7 @@ endfunc
" Distinguish between HTML, XHTML and Django
func dist#ft#FThtml()
let n = 1
while n < 10 && n < line("$")
while n < 10 && n <= line("$")
if getline(n) =~ '\<DTD\s\+XHTML\s'
setf xhtml
return
@@ -222,13 +222,13 @@ func dist#ft#FThtml()
endif
let n = n + 1
endwhile
setf html
setf FALLBACK html
endfunc
" Distinguish between standard IDL and MS-IDL
func dist#ft#FTidl()
let n = 1
while n < 50 && n < line("$")
while n < 50 && n <= line("$")
if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
setf msidl
return
@@ -699,7 +699,7 @@ endfunc
func dist#ft#FTxml()
let n = 1
while n < 100 && n < line("$")
while n < 100 && n <= line("$")
let line = getline(n)
" DocBook 4 or DocBook 5.
let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
@@ -725,7 +725,7 @@ endfunc
func dist#ft#FTy()
let n = 1
while n < 100 && n < line("$")
while n < 100 && n <= line("$")
let line = getline(n)
if line =~ '^\s*%'
setf yacc

View File

@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2019 Jan 26
" Last change: 2019 Feb 18
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
@@ -90,28 +90,33 @@ if &t_Co > 2 || has("gui_running")
let c_comment_strings=1
endif
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off".
filetype plugin indent on
" Only do this part when Vim was compiled with the +eval feature.
if 1
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
augroup vimStartup
au!
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off".
filetype plugin indent on
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid, when inside an event handler
" (happens when dropping a file on gvim) and for a commit message (it's
" likely a different one than last time).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
augroup vimStartup
au!
augroup END
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid, when inside an event handler
" (happens when dropping a file on gvim) and for a commit message (it's
" likely a different one than last time).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
augroup END
endif
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jan 19
*autocmd.txt* For Vim version 8.1. Last change: 2019 Apr 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -52,7 +52,7 @@ effects. Be careful not to destroy your text.
2. Defining autocommands *autocmd-define*
*:au* *:autocmd*
:au[tocmd] [group] {event} {pat} [nested] {cmd}
:au[tocmd] [group] {event} {pat} [++once] [++nested] {cmd}
Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching
{pat} |autocmd-patterns|.
@@ -60,7 +60,13 @@ effects. Be careful not to destroy your text.
:autocmd and won't start a comment.
Vim always adds the {cmd} after existing autocommands,
so that the autocommands execute in the order in which
they were given. See |autocmd-nested| for [nested].
they were given.
See |autocmd-nested| for [++nested]. "nested"
(without the ++) can also be used, for backwards
compatibility.
*autocmd-once*
If [++once] is supplied the command is executed once,
then removed ("one shot").
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
See |autocmd-buflocal|.
@@ -128,10 +134,11 @@ prompt. When one command outputs two messages this can happen anyway.
==============================================================================
3. Removing autocommands *autocmd-remove*
:au[tocmd]! [group] {event} {pat} [nested] {cmd}
:au[tocmd]! [group] {event} {pat} [++once] [++nested] {cmd}
Remove all autocommands associated with {event} and
{pat}, and add the command {cmd}. See
|autocmd-nested| for [nested].
{pat}, and add the command {cmd}.
See |autocmd-once| for [++once].
See |autocmd-nested| for [++nested].
:au[tocmd]! [group] {event} {pat}
Remove all autocommands associated with {event} and
@@ -360,6 +367,7 @@ Name triggered by ~
|SessionLoadPost| after loading a session file
|MenuPopup| just before showing the popup menu
|CompleteChanged| after Insert mode completion menu changed
|CompleteDone| after Insert mode completion is done
|User| to be used in combination with ":doautocmd"
@@ -572,7 +580,22 @@ ColorScheme After loading a color scheme. |:colorscheme|
ColorSchemePre Before loading a color scheme. |:colorscheme|
Useful to setup removing things added by a
color scheme, before another one is loaded.
CompleteChanged *CompleteChanged*
After each time the Insert mode completion
menu changed. Not fired on popup menu hide,
use |CompleteDone| for that. Never triggered
recursively.
Sets these |v:event| keys:
completed_item See |complete-items|.
height nr of items visible
width screen cells
row top screen row
col leftmost screen column
size total nr of items
scrollbar TRUE if visible
It is not allowed to change the text |textlock|.
*CompleteDone*
CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning
@@ -621,6 +644,8 @@ CursorMoved After the cursor was moved in Normal or Visual
Not triggered when there is typeahead or when
an operator is pending.
For an example see |match-parens|.
Note: This can not be skipped with
`:noautocmd`.
Careful: This is triggered very often, don't
do anything that the user does not expect or
that is slow.
@@ -665,13 +690,14 @@ DiffUpdated After diffs have been updated. Depending on
change or when doing |:diffupdate|.
*DirChanged*
DirChanged The working directory has changed in response
to the |:cd| or |:lcd| commands, or as a
result of the 'autochdir' option.
to the |:cd| or |:tcd| or |:lcd| commands, or
as a result of the 'autochdir' option.
The pattern can be:
"window" to trigger on `:lcd`
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
"window" to trigger on `:lcd`
"tabpage" to trigger on `:tcd`
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
<afile> is set to the new directory name.
*ExitPre*
ExitPre When using `:quit`, `:wq` in a way it makes
@@ -870,7 +896,6 @@ OptionSet After setting an option. The pattern is
When using |:set| in the autocommand the event
is not triggered again.
*QuickFixCmdPre*
QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
@@ -1024,6 +1049,8 @@ TextChanged After a change was made to the text in the
was defined).
Not triggered when there is typeahead or when
an operator is pending.
Note: This can not be skipped with
`:noautocmd`.
Careful: This is triggered very often, don't
do anything that the user does not expect or
that is slow.
@@ -1465,11 +1492,11 @@ If you want the buffer to be unmodified after changing it, reset the
instead of ":q!".
*autocmd-nested* *E218*
By default, autocommands do not nest. If you use ":e" or ":w" in an
autocommand, Vim does not execute the BufRead and BufWrite autocommands for
By default, autocommands do not nest. For example, if you use ":e" or ":w" in
an autocommand, Vim does not execute the BufRead and BufWrite autocommands for
those commands. If you do want this, use the "nested" flag for those commands
in which you want nesting. For example: >
:autocmd FileChangedShell *.c nested e!
:autocmd FileChangedShell *.c ++nested e!
The nesting is limited to 10 levels to get out of recursive loops.
It's possible to use the ":au" command in an autocommand. This can be a
@@ -1612,5 +1639,8 @@ following command. Example: >
This will write the file without triggering the autocommands defined by the
gzip plugin.
Note that some autocommands are not triggered right away, but only later.
This specifically applies to |CursorMoved| and |TextChanged|.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.1. Last change: 2018 Dec 14
*change.txt* For Vim version 8.1. Last change: 2019 Feb 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -640,11 +640,11 @@ For other systems the tmpnam() library function is used.
For the {pattern} see |pattern|.
{string} can be a literal string, or something
special; see |sub-replace-special|.
*E939*
When [range] and [count] are omitted, replace in the
current line only. When [count] is given, replace in
[count] lines, starting with the last line in [range].
When [range] is omitted start in the current line.
*E939*
[count] must be a positive number. Also see
|cmdline-ranges|.

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.1. Last change: 2018 Apr 18
*channel.txt* For Vim version 8.1. Last change: 2019 Mar 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -308,9 +308,10 @@ higher.
Command "redraw" ~
The other commands do not update the screen, so that you can send a sequence
of commands without the cursor moving around. You must end with the "redraw"
command to show any changed text and show the cursor where it belongs.
The other commands do not explicitly update the screen, so that you can send a
sequence of commands without the cursor moving around. A redraw can happen as
a side effect of some commands. You must end with the "redraw" command to
show any changed text and show the cursor where it belongs.
The argument is normally an empty string:
["redraw", ""] ~

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.1. Last change: 2018 May 02
*develop.txt* For Vim version 8.1. Last change: 2019 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -355,6 +355,24 @@ OK: if (cond)
cmd;
}
When a block has one line the braces can be left out. When an if/else has
braces on one block, it usually looks better when the other block also has
braces:
OK: if (cond)
cmd;
else
cmd;
OK: if (cond)
{
cmd;
}
else
{
cmd;
cmd;
}
Use ANSI (new style) function declarations with the return type on a separate
indented line.
@@ -367,10 +385,10 @@ OK: /*
*/
int
function_name(
int arg1, /* short comment about arg1 */
int arg2) /* short comment about arg2 */
int arg1, // short comment about arg1
int arg2) // short comment about arg2
{
int local; /* comment about local */
int local; // comment about local
local = arg1 * arg2;

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 8.1. Last change: 2017 Oct 03
*diff.txt* For Vim version 8.1. Last change: 2019 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -179,8 +179,8 @@ loaded. Since Vim doesn't allow having two buffers for the same file, you
need another buffer. This command is useful: >
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
\ | diffthis | wincmd p | diffthis
(this is in |vimrc_example.vim|). Use ":DiffOrig" to see the differences
between the current buffer and the file it was loaded from.
(this is in |defaults.vim|). Use ":DiffOrig" to see the differences between
the current buffer and the file it was loaded from.
A buffer that is unloaded cannot be used for the diff. But it does work for
hidden buffers. You can use ":hide" to close a window without unloading the

View File

@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.1. Last change: 2018 Dec 14
*digraph.txt* For Vim version 8.1. Last change: 2019 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -59,18 +59,9 @@ conversion to be available, it might fail. For the NUL character you will see
"10". That's because NUL characters are internally represented with a NL
character. When you write the file it will become a NUL character.
When Vim was compiled without the |+multi_byte| feature, you need to specify
the character in the encoding given with 'encoding'. You might want to use
something like this: >
if has("multi_byte")
digraph oe 339
elseif &encoding == "iso-8859-15"
digraph oe 189
endif
This defines the "oe" digraph for a character that is number 339 in Unicode
and 189 in latin9 (iso-8859-15).
Example: >
digraph oe 339
This defines the "oe" digraph for a character that is number 339 in Unicode.
==============================================================================
2. Using digraphs *digraphs-use*
@@ -164,8 +155,7 @@ a standard meaning:
Example: a: is ä and o: is ö
These are the RFC1345 digraphs for the one-byte characters. See the output of
":digraphs" for the others. The characters above 255 are only available when
Vim was compiled with the |+multi_byte| feature.
":digraphs" for the others.
EURO

View File

@@ -1304,9 +1304,10 @@ use has("browsefilter"): >
==============================================================================
7. The current directory *current-directory*
You may use the |:cd| and |:lcd| commands to change to another directory, so
you will not have to type that directory name in front of the file names. It
also makes a difference for executing external commands, e.g. ":!ls".
You can use the |:cd|, |:tcd| and |:lcd| commands to change to another
directory, so you will not have to type that directory name in front of the
file names. It also makes a difference for executing external commands, e.g.
":!ls".
Changing directory fails when the current buffer is modified, the '.' flag is
present in 'cpoptions' and "!" is not used in the command.
@@ -1334,6 +1335,17 @@ present in 'cpoptions' and "!" is not used in the command.
*:chd* *:chdir*
:chd[ir][!] [path] Same as |:cd|.
*:tcd*
:tcd[!] {path} Like |:cd|, but only set the directory for the current
tab. The current window will also use this directory.
The current directory is not changed for windows in
other tabs and for windows in the current tab that
have their own window-local directory.
{not in Vi}
*:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|. {not in Vi}
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory when
the cursor is in the current window. The current
@@ -1348,17 +1360,26 @@ present in 'cpoptions' and "!" is not used in the command.
:pw[d] Print the current directory name. {Vi: no pwd}
Also see |getcwd()|.
So long as no |:lcd| command has been used, all windows share the same current
directory. Using a command to jump to another window doesn't change anything
for the current directory.
So long as no |:lcd| or |:tcd| command has been used, all windows share the
same current directory. Using a command to jump to another window doesn't
change anything for the current directory.
When a |:lcd| command has been used for a window, the specified directory
becomes the current directory for that window. Windows where the |:lcd|
command has not been used stick to the global current directory. When jumping
to another window the current directory will become the last specified local
current directory. If none was specified, the global current directory is
used.
When a |:cd| command is used, the current window will lose his local current
directory and will use the global current directory from now on.
command has not been used stick to the global or tab-local current directory.
When jumping to another window the current directory will become the last
specified local current directory. If none was specified, the global or
tab-local current directory is used.
When a |:tcd| command has been used for a tab page, the specified directory
becomes the current directory for the current tab page and the current window.
The current directory of other tab pages is not affected. When jumping to
another tab page, the current directory will become the last specified local
directory for that tab page. If the current tab has no local current directory
the global current directory is used.
When a |:cd| command is used, the current window and tab page will lose the
local current directory and will use the global current directory from now on.
After using |:cd| the full path name will be used for reading and writing
files. On some networked file systems this may cause problems. The result of

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.1. Last change: 2019 Feb 03
*eval.txt* For Vim version 8.1. Last change: 2019 Apr 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -27,10 +27,11 @@ done, the features in this document are not available. See |+eval| and
7. Commands |expression-commands|
8. Exception handling |exception-handling|
9. Examples |eval-examples|
10. No +eval feature |no-eval-feature|
11. The sandbox |eval-sandbox|
12. Textlock |textlock|
13. Testing |testing|
10. Vim script version |vimscript-version|
11. No +eval feature |no-eval-feature|
12. The sandbox |eval-sandbox|
13. Textlock |textlock|
14. Testing |testing|
{Vi does not have any of these commands}
@@ -625,8 +626,11 @@ Functions that can be used with a Dictionary: >
1.5 Blobs ~
*blob* *Blob* *Blobs* *E978*
A Blob mostly behaves like a |List| of numbers, where the numbers have an
8-bit value, from 0 to 255.
A Blob is a binary object. It can be used to read an image from a file and
send it over a channel, for example.
A Blob mostly behaves like a |List| of numbers, where each number has the
value of an 8-bit byte, from 0 to 255.
Blob creation ~
@@ -783,10 +787,10 @@ Expression syntax summary, from least to most significant:
expr2 ? expr1 : expr1 if-then-else
|expr2| expr3
expr3 || expr3 .. logical OR
expr3 || expr3 ... logical OR
|expr3| expr4
expr4 && expr4 .. logical AND
expr4 && expr4 ... logical AND
|expr4| expr5
expr5 == expr5 equal
@@ -808,14 +812,15 @@ Expression syntax summary, from least to most significant:
instance
|expr5| expr6
expr6 + expr6 .. number addition, list or blob concatenation
expr6 - expr6 .. number subtraction
expr6 . expr6 .. string concatenation
expr6 + expr6 ... number addition, list or blob concatenation
expr6 - expr6 ... number subtraction
expr6 . expr6 ... string concatenation
expr6 .. expr6 ... string concatenation
|expr6| expr7
expr7 * expr7 .. number multiplication
expr7 / expr7 .. number division
expr7 % expr7 .. number modulo
expr7 * expr7 ... number multiplication
expr7 / expr7 ... number division
expr7 % expr7 ... number modulo
|expr7| expr8
! expr7 logical NOT
@@ -844,7 +849,7 @@ Expression syntax summary, from least to most significant:
{args -> expr1} lambda expression
".." indicates that the operations in this level can be concatenated.
"..." indicates that the operations in this level can be concatenated.
Example: >
&nu || &list && &shell == "csh"
@@ -1023,18 +1028,23 @@ can be matched like an ordinary character. Examples:
expr5 and expr6 *expr5* *expr6*
---------------
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
expr6 - expr6 Number subtraction *expr--*
expr6 . expr6 String concatenation *expr-.*
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
expr6 - expr6 Number subtraction *expr--*
expr6 . expr6 String concatenation *expr-.*
expr6 .. expr6 String concatenation *expr-..*
For |Lists| only "+" is possible and then both expr6 must be a list. The
result is a new list with the two lists Concatenated.
For String concatenation ".." is preferred, since "." is ambiguous, it is also
used for |Dict| member access and floating point numbers.
When |vimscript-version| is 2 or higher, using "." is not allowed.
expr7 * expr7 Number multiplication *expr-star*
expr7 / expr7 Number division *expr-/*
expr7 % expr7 Number modulo *expr-%*
For all, except ".", Strings are converted to Numbers.
For all, except "." and "..", Strings are converted to Numbers.
For bitwise operators see |and()|, |or()| and |xor()|.
Note the difference between "+" and ".":
@@ -1678,7 +1688,8 @@ v:count The count given for the last Normal mode command. Can be used
When there are two counts, as in "3d2w", they are multiplied,
just like what happens in the command, "d6w" for the example.
Also used for evaluating the 'formatexpr' option.
"count" also works, for backwards compatibility.
"count" also works, for backwards compatibility, unless
|scriptversion| is 3 or higher.
*v:count1* *count1-variable*
v:count1 Just like "v:count", but defaults to one when no count is
@@ -1710,7 +1721,8 @@ v:errmsg Last given error message. It's allowed to set this variable.
:silent! next
:if v:errmsg != ""
: ... handle error
< "errmsg" also works, for backwards compatibility.
< "errmsg" also works, for backwards compatibility, unless
|scriptversion| is 3 or higher.
*v:errors* *errors-variable* *assert-return*
v:errors Errors found by assert functions, such as |assert_true()|.
@@ -2013,7 +2025,8 @@ v:shell_error Result of the last shell command. When non-zero, the last
:if v:shell_error
: echo 'could not rename "foo" to "bar"!'
:endif
< "shell_error" also works, for backwards compatibility.
< "shell_error" also works, for backwards compatibility, unless
|scriptversion| is 3 or higher.
*v:statusmsg* *statusmsg-variable*
v:statusmsg Last given status message. It's allowed to set this variable.
@@ -2113,7 +2126,8 @@ v:testing Must be set before using `test_garbagecollect_now()`.
v:this_session Full filename of the last loaded or saved session file. See
|:mksession|. It is allowed to set this variable. When no
session file has been saved, this variable is empty.
"this_session" also works, for backwards compatibility.
"this_session" also works, for backwards compatibility, unless
|scriptversion| is 3 or higher
*v:throwpoint* *throwpoint-variable*
v:throwpoint The point where the exception most recently caught and not
@@ -2144,7 +2158,7 @@ v:val Value of the current item of a |List| or |Dictionary|. Only
v:version Version number of Vim: Major version number times 100 plus
minor version number. Version 5.0 is 500. Version 5.1 (5.01)
is 501. Read-only. "version" also works, for backwards
compatibility.
compatibility, unless |scriptversion| is 3 or higher.
Use |has()| to check if a certain patch was included, e.g.: >
if has("patch-7.4.123")
< Note that patch numbers are specific to the version, thus both
@@ -2262,11 +2276,12 @@ ch_status({handle} [, {options}])
changenr() Number current change number
char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent({lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
clearmatches([{win}]) none clear all matches
col({expr}) Number column nr of cursor or mark
complete({startcol}, {matches}) none set Insert mode completion
complete_add({expr}) Number add completion match
complete_check() Number check for key typed during completion
complete_info([{what}]) Dict get current completion information
confirm({msg} [, {choices} [, {default} [, {type}]]])
Number number of choice picked by user
copy({expr}) any make a shallow copy of {expr}
@@ -2355,7 +2370,7 @@ getjumplist([{winnr} [, {tabnr}]])
getline({lnum}) String line {lnum} of current buffer
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
getloclist({nr} [, {what}]) List list of location list items
getmatches() List list of current matches
getmatches([{win}]) List list of current matches
getpid() Number process ID of Vim
getpos({expr}) List position of cursor, mark, etc.
getqflist([{what}]) List list of quickfix items
@@ -2383,6 +2398,7 @@ has({feature}) Number |TRUE| if feature {feature} supported
has_key({dict}, {key}) Number |TRUE| if {dict} has entry {key}
haslocaldir([{winnr} [, {tabnr}]])
Number |TRUE| if the window executed |:lcd|
or |:tcd|
hasmapto({what} [, {mode} [, {abbr}]])
Number |TRUE| if mapping to {what} exists
histadd({history}, {item}) String add an item to a history
@@ -2407,6 +2423,8 @@ inputsecret({prompt} [, {text}]) String like input() but hiding the text
insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}]
invert({expr}) Number bitwise invert
isdirectory({directory}) Number |TRUE| if {directory} is a directory
isinf({expr}) Number determine if {expr} is infinity value
(positive or negative)
islocked({expr}) Number |TRUE| if {expr} is locked
isnan({expr}) Number |TRUE| if {expr} is NaN
items({dict}) List key-value pairs in {dict}
@@ -2429,6 +2447,7 @@ libcallnr({lib}, {func}, {arg}) Number idem, but return a Number
line({expr}) Number line nr of cursor, last line or mark
line2byte({lnum}) Number byte count of line {lnum}
lispindent({lnum}) Number Lisp indent for line {lnum}
list2str({list} [, {utf8}]) String turn numbers in {list} into a String
localtime() Number current time
log({expr}) Float natural logarithm (base e) of {expr}
log10({expr}) Float logarithm of Float {expr} to base 10
@@ -2446,7 +2465,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
Number highlight positions with {group}
matcharg({nr}) List arguments of |:match|
matchdelete({id}) Number delete match identified by {id}
matchdelete({id} [, {win}]) Number delete match identified by {id}
matchend({expr}, {pat} [, {start} [, {count}]])
Number position where {pat} ends in {expr}
matchlist({expr}, {pat} [, {start} [, {count}]])
@@ -2494,6 +2513,7 @@ py3eval({expr}) any evaluate |python3| expression
pyxeval({expr}) any evaluate |python_x| expression
range({expr} [, {max} [, {stride}]])
List items from {expr} to {max}
readdir({dir} [, {expr}]) List file names in {dir} selected by {expr}
readfile({fname} [, {type} [, {max}]])
List get list of lines from file {fname}
reg_executing() String get the executing register name
@@ -2521,10 +2541,13 @@ repeat({expr}, {count}) String repeat {expr} {count} times
resolve({filename}) String get filename a shortcut points to
reverse({list}) List reverse {list} in-place
round({expr}) Float round off {expr}
rubyeval({expr}) any evaluate |Ruby| expression
screenattr({row}, {col}) Number attribute at screen position
screenchar({row}, {col}) Number character at screen position
screenchars({row}, {col}) List List of characters at screen position
screencol() Number current cursor column
screenrow() Number current cursor row
screenstring({row}, {col}) String characters at screen position
search({pattern} [, {flags} [, {stopline} [, {timeout}]]])
Number search for {pattern}
searchdecl({name} [, {global} [, {thisblock}]])
@@ -2549,7 +2572,7 @@ setfperm({fname}, {mode}) Number set {fname} file permissions to {mode}
setline({lnum}, {line}) Number set line {lnum} to {line}
setloclist({nr}, {list} [, {action} [, {what}]])
Number modify location list using {list}
setmatches({list}) Number restore a list of matches
setmatches({list} [, {win}]) Number restore a list of matches
setpos({expr}, {list}) Number set the {expr} position to {list}
setqflist({list} [, {action} [, {what}]])
Number modify quickfix list using {list}
@@ -2590,6 +2613,8 @@ split({expr} [, {pat} [, {keepempty}]])
List make |List| from {pat} separated {expr}
sqrt({expr}) Float square root of {expr}
str2float({expr}) Float convert String to Float
str2list({expr} [, {utf8}]) List convert each character of {expr} to
ASCII/UTF8 value
str2nr({expr} [, {base}]) Number convert String to Number
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
strcharpart({str}, {start} [, {len}])
@@ -2655,7 +2680,7 @@ term_setkill({buf}, {how}) none set signal to stop job in terminal
term_setrestore({buf}, {command}) none set command to restore terminal
term_setsize({buf}, {rows}, {cols})
none set the size of a terminal
term_start({cmd}, {options}) Number open a terminal window and run a job
term_start({cmd} [, {options}]) Number open a terminal window and run a job
term_wait({buf} [, {time}]) Number wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat})
none make memory allocation fail
@@ -2672,6 +2697,7 @@ test_null_partial() Funcref null value for testing
test_null_string() String null value for testing
test_option_not_set({name}) none reset flag indicating option was set
test_override({expr}, {val}) none test with Vim internal overrides
test_refcount({expr}) Number get the reference count of {expr}
test_scrollbar({which}, {value}, {dragging})
none scroll in the GUI for testing
test_settime({expr}) none set current time for testing
@@ -2893,9 +2919,9 @@ assert_false({actual} [, {msg}]) *assert_false()*
"Expected False but got {actual}" is produced.
assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
This asserts number values. When {actual} is lower than
{lower} or higher than {upper} an error message is added to
|v:errors|. Also see |assert-return|.
This asserts number and |Float| values. When {actual} is lower
than {lower} or higher than {upper} an error message is added
to |v:errors|. Also see |assert-return|.
When {msg} is omitted an error in the form
"Expected range {lower} - {upper}, but got {actual}" is
produced.
@@ -3439,6 +3465,10 @@ char2nr({expr} [, {utf8}]) *char2nr()*
< With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character.
|nr2char()| does the opposite.
To turn a string into a list of character numbers: >
let str = "ABC"
let list = map(split(str, '\zs'), {_, val -> char2nr(val)})
< Result: [65, 66, 67]
cindent({lnum}) *cindent()*
Get the amount of indent for line {lnum} according the C
@@ -3449,9 +3479,11 @@ cindent({lnum}) *cindent()*
feature, -1 is returned.
See |C-indenting|.
clearmatches() *clearmatches()*
Clears all matches previously defined by |matchadd()| and the
|:match| commands.
clearmatches([{win}]) *clearmatches()*
Clears all matches previously defined for the current window
by |matchadd()| and the |:match| commands.
If {win} is specified, use the window with this number or
window ID instead of the current window.
*col()*
col({expr}) The result is a Number, which is the byte index of the column
@@ -3536,9 +3568,58 @@ complete_check() *complete_check()*
Only to be used by the function specified with the
'completefunc' option.
*complete_info()*
complete_info([{what}])
Returns a Dictionary with information about Insert mode
completion. See |ins-completion|.
The items are:
mode Current completion mode name string.
See |complete_info_mode| for the values.
pum_visible |TRUE| if popup menu is visible.
See |pumvisible()|.
items List of completion matches. Each item is a
dictionary containing the entries "word",
"abbr", "menu", "kind", "info" and "user_data".
See |complete-items|.
selected Selected item index. First index is zero.
Index is -1 if no item is selected (showing
typed text only)
inserted Inserted string. [NOT IMPLEMENT YET]
*complete_info_mode*
mode values are:
"" Not in completion mode
"keyword" Keyword completion |i_CTRL-X_CTRL-N|
"ctrl_x" Just pressed CTRL-X |i_CTRL-X|
"whole_line" Whole lines |i_CTRL-X_CTRL-L|
"files" File names |i_CTRL-X_CTRL-F|
"tags" Tags |i_CTRL-X_CTRL-]|
"path_defines" Definition completion |i_CTRL-X_CTRL-D|
"path_patterns" Include completion |i_CTRL-X_CTRL-I|
"dictionary" Dictionary |i_CTRL-X_CTRL-K|
"thesaurus" Thesaurus |i_CTRL-X_CTRL-T|
"cmdline" Vim Command line |i_CTRL-X_CTRL-V|
"function" User defined completion |i_CTRL-X_CTRL-U|
"omni" Omni completion |i_CTRL-X_CTRL-O|
"spell" Spelling suggestions |i_CTRL-X_s|
"eval" |complete()| completion
"unknown" Other internal modes
If the optional {what} list argument is supplied, then only
the items listed in {what} are returned. Unsupported items in
{what} are silently ignored.
Examples: >
" Get all items
call complete_info()
" Get only 'mode'
call complete_info(['mode'])
" Get only 'mode' and 'pum_visible'
call complete_info(['mode', 'pum_visible'])
<
*confirm()*
confirm({msg} [, {choices} [, {default} [, {type}]]])
Confirm() offers the user a dialog, from which a choice can be
confirm() offers the user a dialog, from which a choice can be
made. It returns the number of the choice. For the first
choice this is 1.
Note: confirm() is only supported when compiled with dialog
@@ -4061,7 +4142,7 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()*
all "README" files in the current directory and below: >
:echo expand("**/README")
<
Expand() can also be used to expand variables and environment
expand() can also be used to expand variables and environment
variables that are only known in a shell. But this can be
slow, because a shell may be used to do the expansion. See
|expr-env-expand|.
@@ -4838,9 +4919,28 @@ getcwd([{winnr} [, {tabnr}]])
directory. See also |haslocaldir()|.
With {winnr} and {tabnr} return the local current directory of
the window in the specified tab page.
the window in the specified tab page. If {winnr} is -1 return
the working directory of the tabpage.
If {winnr} is zero use the current window, if {tabnr} is zero
use the current tabpage.
Without any arguments, return the working directory of the
current window.
Return an empty string if the arguments are invalid.
Examples: >
" Get the working directory of the current window
:echo getcwd()
:echo getcwd(0)
:echo getcwd(0, 0)
" Get the working directory of window 3 in tabpage 2
:echo getcwd(3, 2)
" Get the global working directory
:echo getcwd(-1)
" Get the working directory of tabpage 3
:echo getcwd(-1, 3)
" Get the working directory of current tabpage
:echo getcwd(-1, 0)
<
getfsize({fname}) *getfsize()*
The result is a Number, which is the size in bytes of the
given file {fname}.
@@ -4964,16 +5064,23 @@ getloclist({nr} [, {what}]) *getloclist()*
If the optional {what} dictionary argument is supplied, then
returns the items listed in {what} as a dictionary. Refer to
|getqflist()| for the supported items in {what}.
If {what} contains 'filewinid', then returns the id of the
window used to display files from the location list. This
field is applicable only when called from a location list
window. See |location-list-file-window| for more details.
getmatches() *getmatches()*
Returns a |List| with all matches previously defined by
|matchadd()| and the |:match| commands. |getmatches()| is
useful in combination with |setmatches()|, as |setmatches()|
can restore a list of matches saved by |getmatches()|.
In addition to the items supported by |getqflist()| in {what},
the following item is supported by |getloclist()|:
filewinid id of the window used to display files
from the location list. This field is
applicable only when called from a
location list window. See
|location-list-file-window| for more
details.
getmatches([{win}]) *getmatches()*
Returns a |List| with all matches previously defined for the
current window by |matchadd()| and the |:match| commands.
|getmatches()| is useful in combination with |setmatches()|,
as |setmatches()| can restore a list of matches saved by
|getmatches()|.
Example: >
:echo getmatches()
< [{'group': 'MyGroup1', 'pattern': 'TODO',
@@ -5069,6 +5176,9 @@ getqflist([{what}]) *getqflist()*
nr get information for this quickfix list; zero
means the current quickfix list and "$" means
the last quickfix list
qfbufnr number of the buffer displayed in the quickfix
window. Returns 0 if the quickfix buffer is
not present. See |quickfix-buffer|.
size number of entries in the quickfix list
title get the list title |quickfix-title|
winid get the quickfix |window-ID|
@@ -5097,6 +5207,8 @@ getqflist([{what}]) *getqflist()*
items quickfix list entries. If not present, set to
an empty list.
nr quickfix list number. If not present, set to 0
qfbufnr number of the buffer displayed in the quickfix
window. If not present, set to 0.
size number of entries in the quickfix list. If not
present, set to 0.
title quickfix list title text. If not present, set
@@ -5151,7 +5263,7 @@ gettabinfo([{arg}]) *gettabinfo()*
tabnr tab page number.
variables a reference to the dictionary with
tabpage-local variables
windows List of |window-ID|s in the tag page.
windows List of |window-ID|s in the tab page.
gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
Get the value of a tab-local variable {varname} in tab page
@@ -5228,6 +5340,7 @@ getwininfo([{winid}]) *getwininfo()*
tab pages is returned.
Each List item is a Dictionary with the following entries:
botline last displayed buffer line
bufnr number of buffer in the window
height window height (excluding winbar)
loclist 1 if showing a location list
@@ -5237,6 +5350,7 @@ getwininfo([{winid}]) *getwininfo()*
terminal 1 if a terminal window
{only with the +terminal feature}
tabnr tab page number
topline first displayed buffer line
variables a reference to the dictionary with
window-local variables
width window width
@@ -5306,6 +5420,9 @@ glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()*
If the expansion fails, the result is an empty String or List.
You can also use |readdir()| if you need to do complicated
things, such as limiting the number of matches.
A name for a non-existing file is not included. A symbolic
link is only included if it points to an existing file.
However, when the {alllinks} argument is present and it is
@@ -5381,16 +5498,39 @@ has_key({dict}, {key}) *has_key()*
an entry with key {key}. Zero otherwise.
haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()*
The result is a Number, which is 1 when the window has set a
local path via |:lcd|, and 0 otherwise.
The result is a Number:
1 when the window has set a local directory via |:lcd|
2 when the tab-page has set a local directory via |:tcd|
0 otherwise.
Without arguments use the current window.
With {winnr} use this window in the current tab page.
With {winnr} and {tabnr} use the window in the specified tab
page.
{winnr} can be the window number or the |window-ID|.
If {winnr} is -1 it is ignored and only the tabpage is used.
Return 0 if the arguments are invalid.
Examples: >
if haslocaldir() == 1
" window local directory case
elseif haslocaldir() == 2
" tab-local directory case
else
" global directory case
endif
" current window
:echo haslocaldir()
:echo haslocaldir(0)
:echo haslocaldir(0, 0)
" window n in current tab page
:echo haslocaldir(n)
:echo haslocaldir(n, 0)
" window n in tab page m
:echo haslocaldir(n, m)
" tab page m
:echo haslocaldir(-1, m)
<
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
The result is a Number, which is 1 if there is a mapping that
contains {what} in somewhere in the rhs (what it is mapped to)
@@ -5538,7 +5678,6 @@ iconv({expr}, {from}, {to}) *iconv()*
< Note that Vim uses UTF-8 for all Unicode encodings, conversion
from/to UCS-2 is automatically changed to use UTF-8. You
cannot use UCS-2 in a string anyway, because of the NUL bytes.
{only available when compiled with the |+multi_byte| feature}
*indent()*
indent({lnum}) The result is a Number, which is indent of line {lnum} in the
@@ -5696,6 +5835,16 @@ isdirectory({directory}) *isdirectory()*
exist, or isn't a directory, the result is |FALSE|. {directory}
is any expression, which is used as a String.
isinf({expr}) *isinf()*
Return 1 if {expr} is a positive infinity, or -1 a negative
infinity, otherwise 0. >
:echo isinf(1.0 / 0.0)
< 1 >
:echo isinf(-1.0 / 0.0)
< -1
{only available when compiled with the |+float| feature}
islocked({expr}) *islocked()* *E786*
The result is a Number, which is |TRUE| when {expr} is the
name of a locked variable.
@@ -5712,7 +5861,7 @@ islocked({expr}) *islocked()* *E786*
isnan({expr}) *isnan()*
Return |TRUE| if {expr} is a float with value NaN. >
echo isnan(0.0 / 0.0)
< 1 ~
< 1
{only available when compiled with the |+float| feature}
@@ -6095,6 +6244,20 @@ lispindent({lnum}) *lispindent()*
When {lnum} is invalid or Vim was not compiled the
|+lispindent| feature, -1 is returned.
list2str({list} [, {utf8}]) *list2str()*
Convert each number in {list} to a character string can
concatenate them all. Examples: >
list2str([32]) returns " "
list2str([65, 66, 67]) returns "ABC"
< The same can be done (slowly) with: >
join(map(list, {nr, val -> nr2char(val)}), '')
< |str2list()| does the opposite.
When {utf8} is omitted or zero, the current 'encoding' is used.
With {utf8} is 1, always return utf-8 characters.
With utf-8 composing characters work as expected: >
list2str([97, 769]) returns "á"
<
localtime() *localtime()*
Return the current time, measured as seconds since 1st Jan
1970. See also |strftime()| and |getftime()|.
@@ -6332,7 +6495,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
Defines a pattern to be highlighted in the current window (a
"match"). It will be highlighted with {group}. Returns an
identification number (ID), which can be used to delete the
match using |matchdelete()|.
match using |matchdelete()|. The ID is bound to the window.
Matching is case sensitive and magic, unless case sensitivity
or magicness are explicitly overridden in {pattern}. The
'magic', 'smartcase' and 'ignorecase' options are not used.
@@ -6428,11 +6591,13 @@ matcharg({nr}) *matcharg()*
Highlighting matches using the |:match| commands are limited
to three matches. |matchadd()| does not have this limitation.
matchdelete({id}) *matchdelete()* *E802* *E803*
matchdelete({id} [, {win}) *matchdelete()* *E802* *E803*
Deletes a match with ID {id} previously defined by |matchadd()|
or one of the |:match| commands. Returns 0 if successful,
otherwise -1. See example for |matchadd()|. All matches can
be deleted in one operation by |clearmatches()|.
If {win} is specified, use the window with this number or
window ID instead of the current window.
matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
Same as |match()|, but return the index of first character
@@ -6621,6 +6786,10 @@ nr2char({expr} [, {utf8}]) *nr2char()*
nr2char(10), because NULs are represented with newline
characters. nr2char(0) is a real NUL and terminates the
string, thus results in an empty string.
To turn a list of character numbers into a string: >
let list = [65, 66, 67]
let str = join(map(list, {_, val -> nr2char(val)}), '')
< Result: "ABC"
or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted
@@ -6816,8 +6985,7 @@ printf({fmt}, {expr1} ...) *printf()*
*printf-S*
S The text of the String argument is used. If a
precision is specified, no more display cells than the
number specified are used. Without the |+multi_byte|
feature works just like 's'.
number specified are used.
*printf-f* *E807*
f F The Float argument is converted into a string of the
@@ -7155,6 +7323,35 @@ range({expr} [, {max} [, {stride}]]) *range()*
range(2, -2, -1) " [2, 1, 0, -1, -2]
range(0) " []
range(2, 0) " error!
<
*readdir()*
readdir({directory} [, {expr}])
Return a list with file and directory names in {directory}.
You can also use |glob()| if you don't need to do complicated
things, such as limiting the number of matches.
When {expr} is omitted all entries are included.
When {expr} is given, it is evaluated to check what to do:
If {expr} results in -1 then no further entries will
be handled.
If {expr} results in 0 then this entry will not be
added to the list.
If {expr} results in 1 then this entry will be added
to the list.
Each time {expr} is evaluated |v:val| is set to the entry name.
When {expr} is a function the name is passed as the argument.
For example, to get a list of files ending in ".txt": >
readdir(dirname, {n -> n =~ '.txt$'})
< To skip hidden and backup files: >
readdir(dirname, {n -> n !~ '^\.\|\~$'})
< If you want to get a directory tree: >
function! s:tree(dir)
return {a:dir : map(readdir(a:dir),
\ {_, x -> isdirectory(x) ?
\ {x : s:tree(a:dir . '/' . x)} : x})}
endfunction
echo s:tree(".")
<
*readfile()*
readfile({fname} [, {type} [, {max}]])
@@ -7197,7 +7394,7 @@ reg_executing() *reg_executing()*
reg_recording() *reg_recording()*
Returns the single letter name of the register being recorded.
Returns an empty string string when not recording. See |q|.
Returns an empty string when not recording. See |q|.
reltime([{start} [, {end}]]) *reltime()*
Return an item that represents a time value. The format of
@@ -7420,6 +7617,17 @@ round({expr}) *round()*
< -5.0
{only available when compiled with the |+float| feature}
rubyeval({expr}) *rubyeval()*
Evaluate Ruby expression {expr} and return its result
converted to Vim data structures.
Numbers, floats and strings are returned as they are (strings
are copied though).
Arrays are represented as Vim |List| type.
Hashes are represented as Vim |Dictionary| type.
Other objects are represented as strings resulted from their
"Object#to_s" method.
{only available when compiled with the |+ruby| feature}
screenattr({row}, {col}) *screenattr()*
Like |screenchar()|, but return the attribute. This is a rather
arbitrary number that can only be used to compare to the
@@ -7435,6 +7643,13 @@ screenchar({row}, {col}) *screenchar()*
This is mainly to be used for testing.
Returns -1 when row or col is out of range.
screenchars({row}, {col}) *screenchars()*
The result is a List of Numbers. The first number is the same
as what |screenchar()| returns. Further numbers are
composing characters on top of the base character.
This is mainly to be used for testing.
Returns an empty List when row or col is out of range.
screencol() *screencol()*
The result is a Number, which is the current screen column of
the cursor. The leftmost column has number 1.
@@ -7456,6 +7671,14 @@ screenrow() *screenrow()*
Note: Same restrictions as with |screencol()|.
screenstring({row}, {col}) *screenstring()*
The result is a String that contains the base character and
any composing characters at position [row, col] on the screen.
This is like |screenchars()| but returning a String with the
characters.
This is mainly to be used for testing.
Returns an empty String when row or col is out of range.
search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
@@ -7814,10 +8037,13 @@ setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()*
only the items listed in {what} are set. Refer to |setqflist()|
for the list of supported keys in {what}.
setmatches({list}) *setmatches()*
Restores a list of matches saved by |getmatches()|. Returns 0
if successful, otherwise -1. All current matches are cleared
before the list is restored. See example for |getmatches()|.
setmatches({list} [, {win}]) *setmatches()*
Restores a list of matches saved by |getmatches() for the
current window|. Returns 0 if successful, otherwise -1. All
current matches are cleared before the list is restored. See
example for |getmatches()|.
If {win} is specified, use the window with this number or
window ID instead of the current window.
*setpos()*
setpos({expr}, {list})
@@ -8563,6 +8789,18 @@ str2float({expr}) *str2float()*
let f = str2float(substitute(text, ',', '', 'g'))
< {only available when compiled with the |+float| feature}
str2list({expr} [, {utf8}]) *str2list()*
Return a list containing the number values which represent
each character in String {expr}. Examples: >
str2list(" ") returns [32]
str2list("ABC") returns [65, 66, 67]
< |list2str()| does the opposite.
When {utf8} is omitted or zero, the current 'encoding' is used.
With {utf8} set to 1, always treat the String as utf-8
characters. With utf-8 composing characters are handled
properly: >
str2list("á") returns [97, 769]
str2nr({expr} [, {base}]) *str2nr()*
Convert string {expr} to a number.
@@ -8611,10 +8849,10 @@ strcharpart({src}, {start} [, {len}]) *strcharpart()*
strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen when it starts at {col}.
When {col} is omitted zero is used. Otherwise it is the
screen column where to start. This matters for Tab
characters.
String {expr} occupies on the screen when it starts at {col}
(first column is zero). When {col} is omitted zero is used.
Otherwise it is the screen column where to start. This
matters for Tab characters.
The option settings of the current window are used. This
matters for anything that's displayed differently, such as
'tabstop' and 'display'.
@@ -9245,6 +9483,7 @@ term_getcursor({buf}) *term_getcursor()*
is not blinking.
"shape" 1 for a block cursor, 2 for underline and 3
for a vertical bar.
"color" color of the cursor, e.g. "green"
{buf} must be the buffer number of a terminal window. If the
buffer does not exist or is not a terminal window, an empty
@@ -9415,7 +9654,7 @@ term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
exist or is not a terminal window, an error is given.
{only available when compiled with the |+terminal| feature}
term_start({cmd}, {options}) *term_start()*
term_start({cmd} [, {options}]) *term_start()*
Open a terminal window and run {cmd} in it.
{cmd} can be a string or a List, like with |job_start()|. The
@@ -9578,6 +9817,11 @@ test_override({name}, {val}) *test_override()*
< The value of "starting" is saved. It is restored by: >
call test_override('starting', 0)
test_refcount({expr}) *test_refcount()*
Return the reference count of {expr}. When {expr} is of a
type that does not have a reference count, returns -1. Only
to be used for testing.
test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
Pretend using scrollbar {which} to move it to position
{value}. {which} can be:
@@ -10002,17 +10246,30 @@ winline() The result is a Number, which is the screen line of the cursor
*winnr()*
winnr([{arg}]) The result is a Number, which is the number of the current
window. The top window has number 1.
When the optional argument is "$", the number of the
last window is returned (the window count). >
let window_count = winnr('$')
< When the optional argument is "#", the number of the last
accessed window is returned (where |CTRL-W_p| goes to).
If there is no previous window or it is in another tab page 0
is returned.
The optional argument {arg} supports the following values:
$ the number of the last window (the window
count).
# the number of the last accessed window (where
|CTRL-W_p| goes to). If there is no previous
window or it is in another tab page 0 is
returned.
{N}j the number of the Nth window below the
current window (where |CTRL-W_j| goes to).
{N}k the number of the Nth window above the current
window (where |CTRL-W_k| goes to).
{N}h the number of the Nth window left of the
current window (where |CTRL-W_h| goes to).
{N}l the number of the Nth window right of the
current window (where |CTRL-W_l| goes to).
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
Also see |tabpagewinnr()| and |win_getid()|.
Examples: >
let window_count = winnr('$')
let prev_window = winnr('#')
let wnum = winnr('3k')
<
*winrestcmd()*
winrestcmd() Returns a sequence of |:resize| commands that should restore
the current window sizes. Only works properly when no windows
@@ -10272,7 +10529,7 @@ mouse_sgr Compiled with support for sgr mouse.
mouse_urxvt Compiled with support for urxvt mouse.
mouse_xterm Compiled with support for xterm mouse.
mouseshape Compiled with support for 'mouseshape'.
multi_byte Compiled with support for 'encoding'
multi_byte Compiled with support for 'encoding' (always true)
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
@@ -10318,10 +10575,8 @@ syntax_items There are active syntax highlighting items for the
system Compiled to use system() instead of fork()/exec().
tag_binary Compiled with binary searching in tags files
|tag-binary-search|.
tag_old_static Compiled with support for old static tags
tag_old_static Support for old static tags was removed, see
|tag-old-static|.
tag_any_white Compiled with support for any white characters in tags
files |tag-any-white|.
tcl Compiled with Tcl interface.
termguicolors Compiled with true color in terminal support.
terminal Compiled with |terminal| support.
@@ -10338,7 +10593,7 @@ ttyin input is a terminal (tty)
ttyout output is a terminal (tty)
unix Unix version of Vim. *+unix*
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
user_commands User-defined commands.
user_commands User-defined commands. (always true)
vcon Win32: Virtual console support is working, can use
'termguicolors'. Also see |+vtp|.
vertsplit Compiled with vertically split windows |:vsplit|.
@@ -10346,6 +10601,9 @@ vertsplit Compiled with vertically split windows |:vsplit|.
vim_starting True while initial source'ing takes place. |startup|
*vim_starting*
viminfo Compiled with viminfo support.
vimscript-1 Compiled Vim script version 1 support
vimscript-2 Compiled Vim script version 2 support
vimscript-3 Compiled Vim script version 3 support
virtualedit Compiled with 'virtualedit' option. (always true)
visual Compiled with Visual mode. (always true)
visualextra Compiled with extra Visual mode commands. (always
@@ -10836,16 +11094,19 @@ This does NOT work: >
When the selected range of items is partly past the
end of the list, items will be added.
*:let+=* *:let-=* *:letstar=*
*:let/=* *:let%=* *:let.=* *E734*
*:let+=* *:let-=* *:letstar=*
*:let/=* *:let%=* *:let.=* *:let..=* *E734* *E985*
:let {var} += {expr1} Like ":let {var} = {var} + {expr1}".
:let {var} -= {expr1} Like ":let {var} = {var} - {expr1}".
:let {var} *= {expr1} Like ":let {var} = {var} * {expr1}".
:let {var} /= {expr1} Like ":let {var} = {var} / {expr1}".
:let {var} %= {expr1} Like ":let {var} = {var} % {expr1}".
:let {var} .= {expr1} Like ":let {var} = {var} . {expr1}".
:let {var} ..= {expr1} Like ":let {var} = {var} .. {expr1}".
These fail if {var} was not set yet and when the type
of {var} and {expr1} don't fit the operator.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let ${env-name} = {expr1} *:let-environment* *:let-$*
@@ -11203,14 +11464,14 @@ This does NOT work: >
commands are skipped.
When {pattern} is omitted all errors are caught.
Examples: >
:catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
:catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors
:catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts
:catch /^Vim(write):/ " catch all errors in :write
:catch /^Vim\%((\a\+)\)\=:E123/ " catch error E123
:catch /my-exception/ " catch user exception
:catch /.*/ " catch everything
:catch " same as /.*/
:catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
:catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors
:catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts
:catch /^Vim(write):/ " catch all errors in :write
:catch /^Vim\%((\a\+)\)\=:E123:/ " catch error E123
:catch /my-exception/ " catch user exception
:catch /.*/ " catch everything
:catch " same as /.*/
<
Another character can be used instead of / around the
{pattern}, so long as it does not have a special
@@ -12479,7 +12740,39 @@ code can be used: >
unlet scriptnames_output
==============================================================================
10. No +eval feature *no-eval-feature*
10. Vim script versions *vimscript-version* *vimscript-versions*
*scriptversion*
Over time many features have been added to Vim script. This includes Ex
commands, functions, variable types, etc. Each individual feature can be
checked with the |has()| and |exists()| functions.
Sometimes old syntax of functionality gets in the way of making Vim better.
When support is taken away this will break older Vim scripts. To make this
explicit the |:scriptversion| command can be used. When a Vim script is not
compatible with older versions of Vim this will give an explicit error,
instead of failing in mysterious ways. >
:scriptversion 1
< This is the original Vim script, same as not using a |:scriptversion|
command. Can be used to go back to old syntax for a range of lines.
Test for support with: >
has('vimscript-1')
:scriptversion 2
< String concatenation with "." is not supported, use ".." instead.
This avoids the ambiguity using "." for Dict member access and
floating point numbers. Now ".5" means the number 0.5.
>
:scriptversion 3
< All |vim-variable|s must be prefixed by "v:". E.g. "version" doesn't
work as |v:version| anymore, it can be used as a normal variable.
Same for some obvious names as "count" and others.
Test for support with: >
has('vimscript-3')
==============================================================================
11. No +eval feature *no-eval-feature*
When the |+eval| feature was disabled at compile time, none of the expression
evaluation commands are available. To prevent this from causing Vim scripts
@@ -12510,7 +12803,7 @@ When the |+eval| feature is available the command is skipped because of the
silently ignored, and the command is executed.
==============================================================================
11. The sandbox *eval-sandbox* *sandbox* *E48*
12. The sandbox *eval-sandbox* *sandbox* *E48*
The 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' and
'foldtext' options may be evaluated in a sandbox. This means that you are
@@ -12549,7 +12842,7 @@ Note that when in the sandbox and saving an option value and restoring it, the
option will still be marked as it was set in the sandbox.
==============================================================================
12. Textlock *textlock*
13. Textlock *textlock*
In a few situations it is not allowed to change the text in the buffer, jump
to another window and some other things that might confuse or break what Vim
@@ -12565,7 +12858,7 @@ This is not allowed when the textlock is active:
- etc.
==============================================================================
13. Testing *testing*
14. Testing *testing*
Vim can be tested after building it, usually with "make test".
The tests are located in the directory "src/testdir".

View File

@@ -1,4 +1,4 @@
*farsi.txt* For Vim version 8.1. Last change: 2015 Aug 29
*farsi.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@@ -9,261 +9,12 @@ Right to Left and Farsi Mapping for Vim *farsi* *Farsi*
{Vi does not have any of these commands}
*E27*
In order to use right-to-left and Farsi mapping support, it is necessary to
compile Vim with the |+farsi| feature.
Farsi support has been removed in patch 8.1.0932. At that time it was
outdated and unused.
These functions have been made by Mortaza G. Shiran <shiran@jps.net>
If you would like to bring Farsi support back, please have a look at the old
Farsi code, as it was present at the 8.1 release. It should be merged with
Arabic support using the Unicode character set.
Introduction
------------
In right-to-left oriented files the characters appear on the screen from right
to left. This kind of file is most useful when writing Farsi documents,
composing faxes or writing Farsi memos.
The commands, prompts and help files are not in Farsi, therefore the user
interface remains the standard Vi interface.
Highlights
----------
o Editing left-to-right files as in the original Vim, no change.
o Viewing and editing files in right-to-left windows. File orientation is
per window, so it is possible to view the same file in right-to-left and
left-to-right modes, simultaneously.
o Compatibility to the original Vim. Almost all features work in
right-to-left mode (see bugs below).
o Changing keyboard mapping and reverse insert modes using a single
command.
o Backing from reverse insert mode to the correct place in the file
(if possible).
o While in Farsi mode, numbers are entered from left to right. Upon entering
a none number character, that character will be inserted just into the
left of the last number.
o No special terminal with right-to-left capabilities is required. The
right-to-left changes are completely hardware independent. Only
Farsi font is necessary.
o Farsi keymapping on the command line in reverse insert mode.
o Toggling between left-to-right and right-to-left via F8 function key.
o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
function key. Since this makes sense only for the text written in
right-to-left mode, this function is also supported only in right-to-left
mode.
Farsi Fonts *farsi-fonts*
-----------
The following files are found in the subdirectories of the '$VIM/farsi/fonts'
directory:
+ far-a01.pcf X Windows fonts for Unix including Linux systems
+ far-a01.bf X Windows fonts for SunOS
+ far-a01.f16 a screen fonts for Unix including Linux systems
+ far-a01.fon a monospaced fonts for Windows NT/95/98
+ far-a01.com a screen fonts for DOS
Font Installation
-----------------
o Installation of fonts for MS Window systems (NT/95/98)
From 'Control Panel' folder, start the 'Fonts' program. Then from 'file'
menu item select 'Install New Fonts ...'. Browse and select the
'far-a01.fon', then follow the installation guide.
NOTE: several people have reported that this does not work. The solution
is unknown.
o Installation of fonts for X Window systems (Unix/Linux)
Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a
directory of your choice. Change to the directory containing the Farsi
fonts and execute the following commands:
> mkfontdir
> xset +fp path_name_of_farsi_fonts_directory
o Installation of fonts for X Window systems (SunOS)
Copy far-a01.bf font into a directory of your choice.
Change to the directory containing the far-a01.fb fonts and
execute the following commands:
> fldfamily
> xset +fp path_name_of_fonts_directory
o Installation of ASCII screen fonts (Unix/Linux)
For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
directory and execute the setfont program as "setfont far-a01.f16". For
other systems (e.g. SCO Unix), please refer to the fonts installation
section of your system administration manuals.
o Installation of ASCII screen fonts (DOS)
After system power on, prior to the first use of Vim, upload the Farsi
fonts by executing the far-a01.com font uploading program.
Usage
-----
Prior to starting Vim, the environment in which Vim can run in Farsi mode,
must be set. In addition to installation of Farsi fonts, following points
refer to some of the system environments, which you may need to set:
Key code mapping, loading graphic card in ASCII screen mode, setting the IO
driver in 8 bit clean mode ... .
o Setting the Farsi fonts
+ For Vim GUI set the 'guifont' to far-a01. This is done by entering
':set guifont=far-a01' in the Vim window.
You can have 'guifont' set to far-a01 by Vim during the Vim startup
by appending the ':set guifont=far-a01' into your .vimrc file
(in case of NT/95/98 platforms _vimrc).
Under the X Window environment, you can also start Vim with the
'-fn far-a01' option.
+ For Vim within a xterm, start a xterm with the Farsi fonts (e.g.
kterm -fn far-a01). Then start Vim inside the kterm.
+ For Vim under DOS, prior to the first usage of Vim, upload the Farsi
fonts by executing the far-a01.com fonts uploading program.
o Farsi Keymapping Activation
To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
This is done by entering ':set akm' or ':set fk' in the Vim window.
You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm'
or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms.
To turn off the Farsi keymapping as a default second language keymapping,
reset the 'altkeymap' by entering ':set noakm'.
o right-to-left Farsi Mode
By default Vim starts in Left-to-right mode. Following are ways to change
the window orientation:
+ Start Vim with the -F option (e.g. vim -F ...).
+ Use the F8 function key to toggle between left-to-right and right-to-left.
+ While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
the abbreviation for rightleft).
+ Put the 'set rl' line in your '.vimrc' file to start Vim in
right-to-left mode permanently.
Encoding
--------
The letter encoding used is the Vim extended ISIR-3342 standard with a built
in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard.
For document portability reasons, the letter encoding is kept the same across
different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...).
o Keyboard
+ CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
mode as follows:
+ CTRL-_ moves the cursor to the end of the typed text in edit mode.
+ CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
Latin. The Farsi text is then entered in reverse insert mode.
+ F8 - Toggles between left-to-right and right-to-left.
+ F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
ISIR-3342 (supported only in right-to-left mode).
+ Keyboard mapping is based on the Iranian ISIRI-2901 standard.
Following table shows the keyboard mapping while Farsi(akm) mode set:
-------------------------------------
` 1 2 3 4 5 6 7 8 9 0 - =
<09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
~ ! @ # $ % ^ & * ( ) _ +
~ <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
q w e r t z u i o p [ ]
<09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
Q W E R T Z U I O P { }
<09> <20> <20> <20> <20> <20> <20> <20> [ ] { }
-------------------------------------
a s d f g h j k l ; ' \
<09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
A S D F G H J K L : " |
<09> <20><> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
< y x c v b n m , . /
<09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
> Y X C V B N M < > ?
<09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
-------------------------------------
Note:
<09> stands for Farsi PSP (break without space)
<09> stands for Farsi PCN (for HAMZE attribute)
Restrictions
------------
o In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
supported.
o If you change the character mapping between Latin/Farsi, the redo buffer
will be reset (emptied). That is, redo is valid and will function (using
'.') only within the mode you are in.
o While numbers are entered in Farsi mode, the redo buffer will be reset
(emptied). That is, you cannot redo the last changes (using '.') after
entering numbers.
o While in left-to-right mode and Farsi mode set, CTRL-R is not supported.
o While in right-to-left mode, the search on 'Latin' pattern does not work,
except if you enter the Latin search pattern in reverse.
o In command mode there is no support for entering numbers from left
to right and also for the sake of flexibility the keymapping logic is
restricted.
o Under the X Window environment, if you want to run Vim within a xterm
terminal emulator and Farsi mode set, you need to have an ANSI compatible
xterm terminal emulator. This is because the letter codes above 128 decimal
have certain meanings in the standard xterm terminal emulator.
Note: Under X Window environment, Vim GUI works fine in Farsi mode.
This eliminates the need of any xterm terminal emulator.
Bugs
----
While in insert/replace and Farsi mode set, if you repeatedly change the
cursor position (via cursor movement) and enter new text and then try to undo
the last change, the undo will lag one change behind. But as you continue to
undo, you will reach the original line of text. You can also use U to undo all
changes made in the current line.
For more information about the bugs refer to rileft.txt.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -663,6 +663,15 @@ your |vimrc|: >
let rrst_dynamic_comments = 0
RESTRUCTUREDTEXT *ft-rst-plugin*
The following formatting setting are optionally available: >
setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
To enable this behavior, set the following variable in your vimrc: >
let g:rst_style = 1
RPM SPEC *ft-spec-plugin*
Since the text for this plugin is rather long it has been put in a separate

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.1. Last change: 2019 Jan 06
*gui.txt* For Vim version 8.1. Last change: 2019 Apr 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -11,8 +11,9 @@ Vim's Graphical User Interface *gui* *GUI*
3. Mouse Control |gui-mouse|
4. Making GUI Selections |gui-selections|
5. Menus |menus|
6. Extras |gui-extras|
7. Shell Commands |gui-shell|
6. Font |gui-font|
7. Extras |gui-extras|
8. Shell Commands |gui-shell|
Other GUI documentation:
|gui_x11.txt| For specific items of the X11 GUI.
@@ -1037,7 +1038,139 @@ make a selection.
Note that a menu that starts with ']' will not be displayed.
==============================================================================
6. Extras *gui-extras*
6. Font
This section describes font related options.
GUIFONT *gui-font*
'guifont' is the option that tells Vim what font to use. In its simplest form
the value is just one font name. It can also be a list of font names
separated with commas. The first valid font is used. When no valid font can
be found you will get an error message.
On systems where 'guifontset' is supported (X11) and 'guifontset' is not
empty, then 'guifont' is not used. See |xfontset|.
Note: As to the GTK GUIs, no error is given against any invalid names, and the
first element of the list is always picked up and made use of. This is
because, instead of identifying a given name with a font, the GTK GUIs use it
to construct a pattern and try to look up a font which best matches the
pattern among available fonts, and this way, the matching never fails. An
invalid name doesn't matter because a number of font properties other than
name will do to get the matching done.
Spaces after a comma are ignored. To include a comma in a font name precede
it with a backslash. Setting an option requires an extra backslash before a
space and a backslash. See also |option-backslash|. For example: >
:set guifont=Screen15,\ 7x13,font\\,with\\,commas
will make Vim try to use the font "Screen15" first, and if it fails it will
try to use "7x13" and then "font,with,commas" instead.
If none of the fonts can be loaded, Vim will keep the current setting. If an
empty font list is given, Vim will try using other resource settings (for X,
it will use the Vim.font resource), and finally it will try some builtin
default which should always be there ("7x13" in the case of X). The font
names given should be "normal" fonts. Vim will try to find the related bold
and italic fonts.
For Win32, GTK, Motif, Mac OS and Photon: >
:set guifont=*
will bring up a font requester, where you can pick the font you want.
The font name depends on the GUI used. See |setting-guifont| for a way to set
'guifont' for various systems.
For the GTK+ 2 and 3 GUIs, the font name looks like this: >
:set guifont=Andale\ Mono\ 11
That's all. XLFDs are not used. For Chinese this is reported to work well: >
if has("gui_gtk2")
set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
endif
<
(Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)
For Mac OSX you can use something like this: >
:set guifont=Monaco:h10
Also see 'macatsui', it can help fix display problems.
*E236*
Note that the fonts must be mono-spaced (all characters have the same width).
An exception is GTK: all fonts are accepted, but mono-spaced fonts look best.
To preview a font on X11, you might be able to use the "xfontsel" program.
The "xlsfonts" program gives a list of all available fonts.
For the Win32 GUI *E244* *E245*
- Takes these options in the font name (use a ':' to separate the options):
hXX - height is XX (points, can be floating-point)
wXX - width is XX (points, can be floating-point)
WXX - weight is XX (see Note on Weights below)
b - bold. This is equivalent to setting the weight to 700.
i - italic
u - underline
s - strikeout
cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC,
CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL,
HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
TURKISH, VIETNAMESE ANSI and BALTIC. Normally you would use
"cDEFAULT".
qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED,
NONANTIALIASED, CLEARTYPE, DEFAULT. Normally you would use
"qDEFAULT".
Some quality values are not supported in legacy OSs.
- A '_' can be used in the place of a space, so you don't need to use
backslashes to escape the spaces.
Examples: >
:set guifont=courier_new:h12:w5:b:cRUSSIAN
:set guifont=Andale_Mono:h7.5:w4.5
See also |font-sizes|.
Note on Weights: Fonts often come with a variety of weights. "Normal" weights
in Windows have a value of 400 and, left unspecified, this is the value that
will be used when attempting to find fonts. Windows will often match fonts
based on their weight with higher priority than the font name which means a
Book or Medium variant of a font might be used despite specifying a Light or
ExtraLight variant. If you are experiencing heavier weight substitution, then
explicitly setting a lower weight value may mitigate against this unwanted
substitution.
GUIFONTWIDE *gui-fontwide*
When not empty, 'guifontwide' specifies a comma-separated list of fonts to be
used for double-width characters. The first font that can be loaded is
used.
Note: The size of these fonts must be exactly twice as wide as the one
specified with 'guifont' and the same height. If there is a mismatch then
the text will not be drawn correctly.
All GUI versions but GTK+:
'guifontwide' is only used when 'encoding' is set to "utf-8" and
'guifontset' is empty or invalid.
When 'guifont' is set and a valid font is found in it and
'guifontwide' is empty Vim will attempt to find a matching
double-width font and set 'guifontwide' to it.
GTK+ GUI only: *guifontwide_gtk*
If set and valid, 'guifontwide' is always used for double width
characters, even if 'encoding' is not set to "utf-8".
Vim does not attempt to find an appropriate value for 'guifontwide'
automatically. If 'guifontwide' is empty Pango/Xft will choose the
font for characters not available in 'guifont'. Thus you do not need
to set 'guifontwide' at all unless you want to override the choice
made by Pango/Xft.
Windows +multibyte only: *guifontwide_win_mbyte*
If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
==============================================================================
7. Extras *gui-extras*
This section describes other features which are related to the GUI.
@@ -1081,7 +1214,7 @@ A recommended Japanese font is MS Mincho. You can find info here:
http://www.lexikan.com/mincho.htm
==============================================================================
7. Shell Commands *gui-shell*
8. Shell Commands *gui-shell*
For the X11 GUI the external commands are executed inside the gvim window.
See |gui-pty|.

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.1. Last change: 2017 Oct 27
*gui_w32.txt* For Vim version 8.1. Last change: 2019 Apr 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -31,6 +31,17 @@ The GUI will always run in the Windows subsystem. Mostly shells automatically
return with a command prompt after starting gvim. If not, you should use the
"start" command: >
start gvim [options] file ..
< *E988*
The console version with the |-g| option may also start the GUI by executing
gvim.exe: >
vim -g [options] file ..
To make this work, gvim.exe must exist in the same directory as the vim.exe,
and this feature must be enabled at compile time.
One may also use `:gui` from the console version. However, this is an
experimental feature and this feature must be enabled at compile time.
It uses a session file to recreate the current state of the console Vim in the
GUI Vim.
Note: All fonts (bold, italic) must be of the same size!!! If you don't do
this, text will disappear or mess up the display. Vim does not check the font

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 8.1. Last change: 2018 May 06
*gui_x11.txt* For Vim version 8.1. Last change: 2019 Apr 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -48,7 +48,7 @@ that waits for gvim to exit), start gvim with "gvim -f", "vim -gf" or use
":gui -f". Don't use "vim -fg", because "-fg" specifies the foreground
color.
When using "gvim -f" and then ":gui", Vim will run in the foreground. The
When using "vim -f" and then ":gui", Vim will run in the foreground. The
"-f" argument will be remembered. To force running Vim in the background use
":gui -b".

View File

@@ -10,11 +10,12 @@ The Lua Interface to Vim *lua* *Lua*
2. The vim module |lua-vim|
3. List userdata |lua-list|
4. Dict userdata |lua-dict|
5. Funcref userdata |lua-funcref|
6. Buffer userdata |lua-buffer|
7. Window userdata |lua-window|
8. The luaeval function |lua-luaeval|
9. Dynamic loading |lua-dynamic|
5. Blob userdata |lua-blob|
6. Funcref userdata |lua-funcref|
7. Buffer userdata |lua-buffer|
8. Window userdata |lua-window|
9. luaeval() Vim function |lua-luaeval|
10. Dynamic loading |lua-dynamic|
{Vi does not have any of these commands}
@@ -140,6 +141,14 @@ Vim evaluation and command execution, and others.
:echo luaeval('vim.dict(t)')
:" {'1': 3.141593, '2': v:false,
:" 'say': 'hi'}
<
vim.blob([arg]) Returns an empty blob or, if "arg" is a Lua
string, returns a blob b such that b is
equivalent to "arg" as a byte string.
Examples: >
:lua s = "12ab\x00\x80\xfe\xff"
:echo luaeval('vim.blob(s)')
:" 0z31326162.0080FEFF
<
vim.funcref({name}) Returns a Funcref to function {name} (see
|Funcref|). It is equivalent to Vim's
@@ -260,7 +269,34 @@ Examples:
<
==============================================================================
5. Funcref userdata *lua-funcref*
5. Blob userdata *lua-blob*
Blob userdata represent vim blobs. A blob "b" has the following properties:
Properties
----------
o "#b" is the length of blob "b", equivalent to "len(b)" in Vim.
o "b[k]" returns the k-th item in "b"; "b" is zero-indexed, as in Vim.
To modify the k-th item, simply do "b[k] = number"; in particular,
"b[#b] = number" can append a byte to tail.
Methods
-------
o "b:add(bytes)" appends "bytes" to the end of "b".
Examples:
>
:let b = 0z001122
:lua b = vim.eval('b') -- same 'b'
:lua print(b, b[0], #b)
:lua b[1] = 32
:lua b[#b] = 0x33 -- append a byte to tail
:lua b:add("\x80\x81\xfe\xff")
:echo b
<
==============================================================================
6. Funcref userdata *lua-funcref*
Funcref userdata represent funcref variables in Vim. Funcrefs that were
defined with a "dict" attribute need to be obtained as a dictionary key
@@ -293,7 +329,7 @@ Examples:
<
==============================================================================
6. Buffer userdata *lua-buffer*
7. Buffer userdata *lua-buffer*
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
properties and methods:
@@ -345,7 +381,7 @@ Examples:
<
==============================================================================
7. Window userdata *lua-window*
8. Window userdata *lua-window*
Window objects represent vim windows. A window userdata "w" has the following
properties and methods:
@@ -377,7 +413,7 @@ Examples:
<
==============================================================================
8. The luaeval function *lua-luaeval* *lua-eval*
9. luaeval() Vim function *lua-luaeval* *lua-eval*
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
"luaeval". "luaeval" takes an expression string and an optional argument and
@@ -390,10 +426,10 @@ returns the result of the expression. It is semantically equivalent in Lua to:
end
<
Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
list, dict, and funcref userdata are converted to their Vim respective types,
while Lua booleans are converted to numbers. An error is thrown if conversion
of any of the remaining Lua types, including userdata other than lists, dicts,
and funcrefs, is attempted.
list, dict, blob, and funcref userdata are converted to their Vim respective
types, while Lua booleans are converted to numbers. An error is thrown if
conversion of any of the remaining Lua types, including userdata other than
lists, dicts, blobs, and funcrefs, is attempted.
Examples: >
@@ -408,7 +444,7 @@ Examples: >
==============================================================================
9. Dynamic loading *lua-dynamic*
10. Dynamic loading *lua-dynamic*
On MS-Windows and Unix the Lua library can be loaded dynamically. The
|:version| output then includes |+lua/dyn|.

View File

@@ -11,7 +11,8 @@ The Ruby Interface to Vim *ruby* *Ruby*
3. Vim::Buffer objects |ruby-buffer|
4. Vim::Window objects |ruby-window|
5. Global variables |ruby-globals|
6. Dynamic loading |ruby-dynamic|
6. rubyeval() Vim function |ruby-rubyeval|
7. Dynamic loading |ruby-dynamic|
{Vi does not have any of these commands}
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
@@ -198,7 +199,16 @@ $curwin The current window object.
$curbuf The current buffer object.
==============================================================================
6. Dynamic loading *ruby-dynamic*
6. rubyeval() Vim function *ruby-rubyeval*
To facilitate bi-directional interface, you can use |rubyeval()| function to
evaluate Ruby expressions and pass their values to Vim script.
The Ruby value "true", "false" and "nil" are converted to v:true, v:false and
v:null, respectively.
==============================================================================
7. Dynamic loading *ruby-dynamic*
On MS-Windows and Unix the Ruby library can be loaded dynamically. The
|:version| output then includes |+ruby/dyn|.

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 8.1. Last change: 2019 Jan 31
*indent.txt* For Vim version 8.1. Last change: 2019 Feb 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -948,6 +948,11 @@ can sometimes be slow, thus it timeouts after 150 msec. If you notice the
indenting isn't correct, you can set a larger timeout in msec: >
let g:pyindent_searchpair_timeout = 500
If looking back for unclosed parenthesis is still too slow, especially during
a copy-paste operation, or if you don't need indenting inside multi-line
parentheses, you can completely disable this feature: >
let g:pyindent_disable_parentheses_indenting = 1
R *ft-r-indent*

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.1. Last change: 2019 Jan 17
*index.txt* For Vim version 8.1. Last change: 2019 Apr 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -17,9 +17,11 @@ to look for deleting something, use: "/delete".
2.3. Square bracket commands |[|
2.4. Commands starting with 'g' |g|
2.5. Commands starting with 'z' |z|
2.6. Operator-pending mode |operator-pending-index|
3. Visual mode |visual-index|
4. Command-line editing |ex-edit-index|
5. EX commands |ex-cmd-index|
5. Terminal-Job mode |terminal-job-index|
6. EX commands |ex-cmd-index|
For an overview of options see help.txt |option-list|.
For an overview of built-in functions see |functions|.
@@ -166,6 +168,20 @@ commands in CTRL-X submode *i_CTRL-X_index*
|i_CTRL-X_s| CTRL-X s spelling suggestions
{not available when compiled without the |+insert_expand| feature}
commands in completion mode (see |popupmenu-keys|)
|complete_CTRL-E| CTRL-E stop completion and go back to original text
|complete_CTRL-Y| CTRL-Y accept selected match and stop completion
CTRL-L insert one character from the current match
<CR> insert currently selected match
<BS> delete one character and redo search
CTRL-H same as <BS>
<Up> select the previous match
<Down> select the next match
<PageUp> select a match several entries back
<PageDown> select a match several entries forward
other stop completion and insert the typed character
==============================================================================
2. Normal mode *normal-index*
@@ -528,10 +544,8 @@ tag command action in Normal mode ~
|CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]"
|CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^"
|CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _"
|CTRL-W_quote| CTRL-W " terminal window: paste register
|CTRL-W_+| CTRL-W + increase current window height N lines
|CTRL-W_-| CTRL-W - decrease current window height N lines
|CTRL-W_.| CTRL-W . terminal window: type CTRL-W
|CTRL-W_:| CTRL-W : same as |:|, edit a command line
|CTRL-W_<| CTRL-W < decrease current window width N columns
|CTRL-W_=| CTRL-W = make all windows the same height & width
@@ -540,7 +554,6 @@ tag command action in Normal mode ~
|CTRL-W_J| CTRL-W J move current window to the very bottom
|CTRL-W_K| CTRL-W K move current window to the very top
|CTRL-W_L| CTRL-W L move current window to the far right
|CTRL-W_N| CTRL-W N terminal window: go to Terminal Normal mode
|CTRL-W_P| CTRL-W P go to preview window
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|CTRL-W_S| CTRL-W S same as "CTRL-W s"
@@ -570,6 +583,8 @@ tag command action in Normal mode ~
|CTRL-W_gF| CTRL-W g F edit file name under the cursor in a new
tab page and jump to the line number
following the file name.
|CTRL-W_gt| CTRL-W g t same as `gt`: go to next tab page
|CTRL-W_gT| CTRL-W g T same as `gT`: go to previous tab page
|CTRL-W_h| CTRL-W h go to Nth left window (stop at first window)
|CTRL-W_i| CTRL-W i split window and jump to declaration of
identifier under the cursor
@@ -854,6 +869,17 @@ tag char note action in Normal mode ~
|z<Left>| z<Left> same as "zh"
|z<Right>| z<Right> same as "zl"
==============================================================================
2.6 Operator-pending mode *operator-pending-index*
These can be used after an operator, but before a {motion} has been entered.
tag char action in Operator-pending mode ~
-----------------------------------------------------------------------
|o_v| v force operator to work characterwise
|o_V| V force operator to work linewise
|o_CTRL-V| CTRL-V force operator to work blockwise
==============================================================================
3. Visual mode *visual-index*
@@ -976,7 +1002,7 @@ Normal characters are inserted at the current cursor position.
"Completion" below refers to context-sensitive completion. It will complete
file names, tags, commands etc. as appropriate.
tag command action in Command-line editing mode ~
tag command action in Command-line editing mode ~
------------------------------------------------------------------------------
CTRL-@ not used
|c_CTRL-A| CTRL-A do completion on the pattern in front of the
@@ -1016,10 +1042,11 @@ tag command action in Command-line editing mode ~
command-line from history.
|c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal
control flow
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
|c_CTRL-R| CTRL-R {regname}
insert the contents of a register or object
under the cursor as if typed
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {regname}
|c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname}
insert the contents of a register or object
under the cursor literally
CTRL-S (used for terminal control flow)
@@ -1066,16 +1093,37 @@ tag command action in Command-line editing mode ~
|c_<Insert>| <Insert> toggle insert/overstrike mode
|c_<LeftMouse>| <LeftMouse> cursor at mouse click
==============================================================================
5. Terminal-Job mode *terminal-job-index*
Most Normal mode commands except for window commands (|CTRL-W|) do not work in
a terminal window. Switch to Terminal-Normal mode to use them.
This assumes 'termwinkey' is not set.
tag char action in Terminal-Job mode ~
-----------------------------------------------------------------------
|t_CTRL-\_CTRL-N| CTRL-\ CTRL-N switch to Terminal-Normal mode
|t_CTRL-W_N| CTRL-W N switch to Terminal-Normal mode
|t_CTRL-W_:| CTRL-W : enter an Ex command
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
|t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=}
paste register in the terminal
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
|t_CTRL-W_gt| CTRL-W gt go to next tabpage, same as `gt`
|t_CTRL-W_gT| CTRL-W gT go to previous tabpage, same as `gT`
You found it, Arthur! *holy-grail* *:smile*
==============================================================================
5. EX commands *ex-cmd-index* *:index*
6. EX commands *ex-cmd-index* *:index*
This is a brief but complete listing of all the ":" commands, without
mentioning any arguments. The optional part of the command name is inside [].
The commands are sorted on the non-optional part of their name.
tag command action ~
tag command action ~
------------------------------------------------------------------------------
|:!| :! filter lines or execute an external command
|:!!| :!! repeat last ":!" command
@@ -1499,7 +1547,8 @@ tag command action ~
|:sbrewind| :sbr[ewind] split window and go to first file in the
buffer list
|:scriptnames| :scr[iptnames] list names of all sourced Vim scripts
|:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script
|:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script
|:scriptversion| :scriptv[ersion] version of Vim script used
|:scscope| :scs[cope] split window and execute cscope command
|:set| :se[t] show or set options
|:setfiletype| :setf[iletype] set 'filetype', unless it was set already
@@ -1574,6 +1623,8 @@ tag command action ~
|:tab| :tab create new tab when opening new window
|:tag| :ta[g] jump to tag
|:tags| :tags show the contents of the tag stack
|:tcd| :tcd change directory for tab page
|:tchdir| :tch[dir] change directory for tab page
|:tcl| :tc[l] execute Tcl command
|:tcldo| :tcld[o] execute Tcl command for each line
|:tclfile| :tclf[ile] execute Tcl script file

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.1. Last change: 2019 Jan 29
*insert.txt* For Vim version 8.1. Last change: 2019 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -379,8 +379,8 @@ CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
movement (but only if the cursor stays
within same the line)
movement, if the cursor stays within
same the line
-----------------------------------------------------------------------
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
@@ -642,6 +642,7 @@ and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
CTRL-N (next), and CTRL-P (previous).
To get the current completion information, |complete_info()| can be used.
Also see the 'infercase' option if you want to adjust the case of the match.
*complete_CTRL-E*
@@ -1104,6 +1105,9 @@ items:
icase when non-zero case is to be ignored when comparing
items to be equal; when omitted zero is used, thus
items that only differ in case are added
equal when non-zero, always treat this item to be equal when
comparing. Which means, "equal=1" disables filtering
of this item.
dup when non-zero this match will be added even when an
item with the same word is already present.
empty when non-zero this match will be added even when it is
@@ -1111,10 +1115,10 @@ items:
user_data custom data which is associated with the item and
available in |v:completed_item|
All of these except "icase", "dup" and "empty" must be a string. If an item
does not meet these requirements then an error message is given and further
items in the list are not used. You can mix string and Dictionary items in
the returned list.
All of these except "icase", "equal", "dup" and "empty" must be a string. If
an item does not meet these requirements then an error message is given and
further items in the list are not used. You can mix string and Dictionary
items in the returned list.
The "menu" item is used in the popup menu and may be truncated, thus it should
be relatively short. The "info" item can be longer, it will be displayed in

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.1. Last change: 2018 Dec 18
*map.txt* For Vim version 8.1. Last change: 2019 Apr 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1193,9 +1193,10 @@ scripts.
:com[mand] *:com* *:command*
List all user-defined commands. When listing commands,
the characters in the first two columns are
the characters in the first columns are:
! Command has the -bang attribute
" Command has the -register attribute
| Command has the -bar attribute
b Command is local to current buffer
(see below for details on attributes)
The list can be filtered on command name with
@@ -1400,14 +1401,15 @@ It is possible that the special characters in the range like ., $ or % which
by default correspond to the current line, last line and the whole buffer,
relate to arguments, (loaded) buffers, windows or tab pages.
Possible values are:
-addr=lines Range of lines (this is the default)
-addr=arguments Range for arguments
-addr=buffers Range for buffers (also not loaded buffers)
-addr=loaded_buffers Range for loaded buffers
-addr=windows Range for windows
-addr=tabs Range for tab pages
-addr=other other kind of range
Possible values are (second column is the short name used in listing):
-addr=lines Range of lines (this is the default)
-addr=arguments arg Range for arguments
-addr=buffers buf Range for buffers (also not loaded buffers)
-addr=loaded_buffers load Range for loaded buffers
-addr=windows win Range for windows
-addr=tabs tab Range for tab pages
-addr=quickfix qf Range for quickfix entries
-addr=other ? other kind of range
Special cases ~

View File

@@ -14,9 +14,6 @@ For an introduction to the most common features, see |usr_45.txt| in the user
manual.
For changing the language of messages and menus see |mlang.txt|.
{not available when compiled without the |+multi_byte| feature}
1. Getting started |mbyte-first|
2. Locale |mbyte-locale|
3. Encoding |mbyte-encoding|
@@ -44,16 +41,6 @@ features. Unfortunately, every system has its own way to deal with multibyte
languages and it is quite complicated.
COMPILING
If you already have a compiled Vim program, check if the |+multi_byte| feature
is included. The |:version| command can be used for this.
If +multi_byte is not included, you should compile Vim with "normal", "big" or
"huge" features. You can further tune what features are included. See the
INSTALL files in the source directory.
LOCALE
First of all, you must make sure your current locale is set correctly. If
@@ -633,6 +620,21 @@ windows maintains a table of which groups of characters are required for a
locale. You have to specify all the fonts that a locale requires in the
'guifontset' option.
Setting the 'guifontset' option also means that all font names will be handled
as a fontset name. Also the ones used for the "font" argument of the
|:highlight| command.
Note the difference between 'guifont' and 'guifontset': In 'guifont'
the comma-separated names are alternative names, one of which will be
used. In 'guifontset' the whole string is one fontset name,
including the commas. It is not possible to specify alternative
fontset names.
This example works on many X11 systems: >
:set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
<
The fonts must match with the current locale. If fonts for the character sets
that the current locale uses are not included, setting 'guifontset' will fail.
NOTE: The fontset always uses the current locale, even though 'encoding' may
be set to use a different charset. In that situation you might want to use
'guifont' and 'guifontwide' instead of 'guifontset'.

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 8.1. Last change: 2018 Dec 30
*message.txt* For Vim version 8.1. Last change: 2019 Apr 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -703,11 +703,13 @@ Or use ":set nocp".
This happens when an Ex command with mandatory argument(s) was executed, but
no argument has been specified.
*E474* *E475* >
*E474* *E475* *E983* >
Invalid argument
Invalid argument: {arg}
Duplicate argument: {arg}
An Ex command has been executed, but an invalid argument has been specified.
An Ex command or function has been executed, but an invalid argument has been
specified.
*E488* >
Trailing characters

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.1. Last change: 2018 Dec 27
*motion.txt* For Vim version 8.1. Last change: 2019 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -320,7 +320,7 @@ _ <underscore> [count] - 1 lines downward, on the first non-blank
G Goto line [count], default last line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
G is a one of |jump-motions|.
G is one of the |jump-motions|.
*<C-End>*
<C-End> Goto line [count], default last line, on the last
@@ -1021,7 +1021,7 @@ These commands are not marks themselves, but jump to a mark:
A "jump" is a command that normally moves the cursor several lines away. If
you make the cursor "jump" the position of the cursor before the jump is
remembered. You can return to that position with the "''" and "``" command,
remembered. You can return to that position with the "''" and "``" commands,
unless the line containing that position was changed or deleted. The
following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N",
"%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.1. Last change: 2018 Dec 26
*pattern.txt* For Vim version 8.1. Last change: 2019 Feb 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1135,7 +1135,7 @@ x A single character, with no special meaning, matches itself
The "Func" column shows what library function is used. The
implementation depends on the system. Otherwise:
(1) Uses islower() for ASCII and Vim builtin rules for other
characters when built with the |+multi_byte| feature.
characters.
(2) Uses Vim builtin rules
(3) As with (1) but using isupper()
*/[[=* *[==]*
@@ -1211,7 +1211,7 @@ x A single character, with no special meaning, matches itself
\%u20AC Matches the character specified with up to four hexadecimal
characters.
\%U1234abcd Matches the character specified with up to eight hexadecimal
characters.
characters, up to 0x7fffffff
==============================================================================
7. Ignoring case in a pattern */ignorecase*

View File

@@ -3504,7 +3504,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
- Click "Add..."
- Set External Editor (adjust path as needed, include
the quotes and !.! at the end):
"c:\Program Files\Vim\vim70\gvim.exe" !.!
"c:\Program Files\Vim\vim81\gvim.exe" !.!
- Check that the filetype in the box below is
{asterisk}.{asterisk} (all files), or whatever types
you want (cec: change {asterisk} to * ; I had to
@@ -3754,8 +3754,8 @@ by obtaining a copy of the latest (often developmental) netrw at:
The <netrw.vim> script is typically installed on systems as something like:
>
/usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
/usr/local/share/vim/vim7x/autoload/netrw.vim
/usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
/usr/local/share/vim/vim8x/autoload/netrw.vim
(see output of :echo &rtp)
<
which is loaded automatically at startup (assuming :set nocp). If you

View File

@@ -111,10 +111,9 @@ not recognized by Vim will just be converted to lower case and underscores
replaced with '-' signs.
If 'printencoding' is empty or Vim cannot find the file then it will use
'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit
encoding) to find the print character encoding file. If Vim is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.
'encoding' (if it is set an 8-bit encoding) to find the print character
encoding file. If Vim is unable to find a character encoding file then it
will use the "latin1" print character encoding file.
When 'encoding' is set to a multi-byte encoding, Vim will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
@@ -255,9 +254,9 @@ possible. The following tables show the valid combinations:
Japanese JIS_C_1978 x x
JIS_X_1983 x x
JIS_X_1990 x x x
MSWINDOWS x
KANJITALK6 x
KANJITALK7 x
MSWINDOWS x
KANJITALK6 x
KANJITALK7 x
euc-kr cp949 ucs-2 utf-8 ~
Korean KS_X_1992 x

View File

@@ -496,6 +496,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
second quickfix window. If [height] is given the
existing window will be resized to it.
*quickfix-buffer*
The window will contain a special buffer, with
'buftype' equal to "quickfix". Don't change this!
The window will have the w:quickfix_title variable set
@@ -504,7 +505,11 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
status line if the value of 'statusline' is adjusted
properly. Whenever this buffer is modified by a
quickfix command or function, the |b:changedtick|
variable is incremented.
variable is incremented. You can get the number of
this buffer using the getqflist() and getloclist()
functions by passing the 'qfbufnr' item. For a
location list, this buffer is wiped out when the
location list is removed.
*:lop* *:lopen*
:lop[en] [height] Open a window to show the location list for the
@@ -670,12 +675,18 @@ using these functions are below:
" get the quickfix list window id
:echo getqflist({'winid' : 0}).winid
" get the quickfix list window buffer number
:echo getqflist({'qfbufnr' : 0}).qfbufnr
" get the context of the current location list
:echo getloclist(0, {'context' : 0}).context
" get the location list window id of the third window
:echo getloclist(3, {'winid' : 0}).winid
" get the location list window buffer number of the third window
:echo getloclist(3, {'qfbufnr' : 0}).qfbufnr
" get the file window id of a location list window (winnr: 4)
:echo getloclist(4, {'filewinid' : 0}).filewinid
<

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.1. Last change: 2019 Feb 08
*quickref.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -600,7 +600,6 @@ In Insert or Command-line mode:
Short explanation of each option: *option-list*
'aleph' 'al' ASCII code of the letter Aleph (Hebrew)
'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode
'altkeymap' 'akm' for default second language (Farsi/Hebrew)
'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
'autochdir' 'acd' change directory to the file in the current window
@@ -700,7 +699,6 @@ Short explanation of each option: *option-list*
'filetype' 'ft' type of file, used for autocommands
'fillchars' 'fcs' characters to use for displaying special items
'fixendofline' 'fixeol' make sure last line in file has <EOL>
'fkmap' 'fk' Farsi keyboard mapping
'foldclose' 'fcl' close a fold when the cursor leaves it
'foldcolumn' 'fdc' width of the column used to indicate folds
'foldenable' 'fen' set to display all folds open

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.1. Last change: 2018 Dec 18
*repeat.txt* For Vim version 8.1. Last change: 2019 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -323,10 +323,20 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
set encoding=utf-8
scriptencoding utf-8
<
When compiled without the |+multi_byte| feature this
command is ignored.
{not in Vi}
:scriptv[ersion] {version} *:scriptv* *:scriptversion*
*E999* *E984*
Specify the version of Vim for the lines that follow
in the same file. Only applies at the toplevel of
sourced scripts, not inside functions.
If {version} is higher than what the current Vim
version supports E999 will be given. You either need
to rewrite the script to make it work with an older
Vim version, or update Vim to a newer version. See
|vimscript-version| for what changed between versions.
*:scr* *:scriptnames*
:scr[iptnames] List all sourced script names, in the order they were
first sourced. The number is used for the script ID

View File

@@ -55,8 +55,7 @@ automatic installs. Vim also needs to be compiled with |+gettext| feature for
user interface items translations to work.
After downloading an archive from RuVim project, unpack it into your
$VIMRUNTIME directory. We recommend using UTF-8 archive, if your version of
Vim is compiled with |+multi_byte| feature enabled.
$VIMRUNTIME directory. We recommend using UTF-8 archive.
In order to use the Russian documentation, make sure you have set the
'helplang' option to "ru".

View File

@@ -312,25 +312,25 @@ Exceptions:
spell file is used.
For example, with these values:
'runtimepath' is "~/.vim,/usr/share/vim70,~/.vim/after"
'runtimepath' is "~/.vim,/usr/share/vim81,~/.vim/after"
'encoding' is "iso-8859-2"
'spelllang' is "pl"
Vim will look for:
1. ~/.vim/spell/pl.iso-8859-2.spl
2. /usr/share/vim70/spell/pl.iso-8859-2.spl
2. /usr/share/vim81/spell/pl.iso-8859-2.spl
3. ~/.vim/spell/pl.iso-8859-2.add.spl
4. /usr/share/vim70/spell/pl.iso-8859-2.add.spl
4. /usr/share/vim81/spell/pl.iso-8859-2.add.spl
5. ~/.vim/after/spell/pl.iso-8859-2.add.spl
This assumes 1. is not found and 2. is found.
If 'encoding' is "latin1" Vim will look for:
1. ~/.vim/spell/pl.latin1.spl
2. /usr/share/vim70/spell/pl.latin1.spl
2. /usr/share/vim81/spell/pl.latin1.spl
3. ~/.vim/after/spell/pl.latin1.spl
4. ~/.vim/spell/pl.ascii.spl
5. /usr/share/vim70/spell/pl.ascii.spl
5. /usr/share/vim81/spell/pl.ascii.spl
6. ~/.vim/after/spell/pl.ascii.spl
This assumes none of them are found (Polish doesn't make sense when leaving

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.1. Last change: 2018 May 05
*starting.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -321,9 +321,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
and exits.) {not in Vi}
*-F*
-F Farsi mode. Sets the 'fkmap' and 'rightleft' options on.
(Only when compiled with |+rightleft| and |+farsi| features,
otherwise Vim gives an error message and exits.) {not in Vi}
-F This was used for Farsi mode, which has been removed.
See |farsi.txt|.
*-H*
-H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.1. Last change: 2018 Dec 27
*syntax.txt* For Vim version 8.1. Last change: 2019 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1962,7 +1962,7 @@ The g:lisp_rainbow option provides 10 levels of individual colorization for
the parentheses and backquoted parentheses. Because of the quantity of
colorization levels, unlike non-rainbow highlighting, the rainbow mode
specifies its highlighting using ctermfg and guifg, thereby bypassing the
usual colorscheme control using standard highlighting groups. The actual
usual color scheme control using standard highlighting groups. The actual
highlighting used depends on the dark/bright setting (see |'bg'|).
@@ -4694,9 +4694,9 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
To customize a colorscheme use another name, e.g.
To customize a color scheme use another name, e.g.
"~/.vim/colors/mine.vim", and use `:runtime` to load
the original colorscheme: >
the original color scheme: >
runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue
@@ -4704,7 +4704,7 @@ in their own color.
|ColorSchemePre| autocommand event is triggered.
After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: >
For info about writing a color scheme file: >
:edit $VIMRUNTIME/colors/README.txt
:hi[ghlight] List all the current highlight groups that have
@@ -4901,7 +4901,7 @@ ctermbg={color-nr} *highlight-ctermbg*
explicitly. This causes the highlight groups that depend on
'background' to change! This means you should set the colors for
Normal first, before setting other colors.
When a colorscheme is being used, changing 'background' causes it to
When a color scheme is being used, changing 'background' causes it to
be reloaded, which may reset all colors (including Normal). First
delete the "g:colors_name" variable when you don't want this.

View File

@@ -1092,10 +1092,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'termbidi' options.txt /*'termbidi'*
'termencoding' options.txt /*'termencoding'*
'termguicolors' options.txt /*'termguicolors'*
'termmode' options.txt /*'termmode'*
'termwinkey' options.txt /*'termwinkey'*
'termwinscroll' options.txt /*'termwinscroll'*
'termwinsize' options.txt /*'termwinsize'*
'termwintype' options.txt /*'termwintype'*
'terse' options.txt /*'terse'*
'textauto' options.txt /*'textauto'*
'textmode' options.txt /*'textmode'*
@@ -1113,7 +1113,6 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'titlestring' options.txt /*'titlestring'*
'tl' options.txt /*'tl'*
'tm' options.txt /*'tm'*
'tmod' options.txt /*'tmod'*
'to' options.txt /*'to'*
'toolbar' options.txt /*'toolbar'*
'toolbariconsize' options.txt /*'toolbariconsize'*
@@ -1137,6 +1136,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'twk' options.txt /*'twk'*
'tws' options.txt /*'tws'*
'twsl' options.txt /*'twsl'*
'twt' options.txt /*'twt'*
'tx' options.txt /*'tx'*
'uc' options.txt /*'uc'*
'udf' options.txt /*'udf'*
@@ -2521,6 +2521,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lefta windows.txt /*:lefta*
:leftabove windows.txt /*:leftabove*
:let eval.txt /*:let*
:let%= eval.txt /*:let%=*
:let+= eval.txt /*:let+=*
:let-$ eval.txt /*:let-$*
:let-& eval.txt /*:let-&*
@@ -2530,7 +2531,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:let-option eval.txt /*:let-option*
:let-register eval.txt /*:let-register*
:let-unpack eval.txt /*:let-unpack*
:let..= eval.txt /*:let..=*
:let.= eval.txt /*:let.=*
:let/= eval.txt /*:let\/=*
:letstar= eval.txt /*:letstar=*
:lex quickfix.txt /*:lex*
:lexpr quickfix.txt /*:lexpr*
:lf quickfix.txt /*:lf*
@@ -2933,6 +2937,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:scripte repeat.txt /*:scripte*
:scriptencoding repeat.txt /*:scriptencoding*
:scriptnames repeat.txt /*:scriptnames*
:scriptv repeat.txt /*:scriptv*
:scriptversion repeat.txt /*:scriptversion*
:scs if_cscop.txt /*:scs*
:scscope if_cscop.txt /*:scscope*
:se options.txt /*:se*
@@ -3642,7 +3648,6 @@ CTRL-V-alternative gui_w32.txt /*CTRL-V-alternative*
CTRL-W index.txt /*CTRL-W*
CTRL-W_+ windows.txt /*CTRL-W_+*
CTRL-W_- windows.txt /*CTRL-W_-*
CTRL-W_. terminal.txt /*CTRL-W_.*
CTRL-W_: windows.txt /*CTRL-W_:*
CTRL-W_< windows.txt /*CTRL-W_<*
CTRL-W_<BS> windows.txt /*CTRL-W_<BS>*
@@ -3682,7 +3687,6 @@ CTRL-W_H windows.txt /*CTRL-W_H*
CTRL-W_J windows.txt /*CTRL-W_J*
CTRL-W_K windows.txt /*CTRL-W_K*
CTRL-W_L windows.txt /*CTRL-W_L*
CTRL-W_N terminal.txt /*CTRL-W_N*
CTRL-W_P windows.txt /*CTRL-W_P*
CTRL-W_R windows.txt /*CTRL-W_R*
CTRL-W_S windows.txt /*CTRL-W_S*
@@ -3697,9 +3701,11 @@ CTRL-W_c windows.txt /*CTRL-W_c*
CTRL-W_d tagsrch.txt /*CTRL-W_d*
CTRL-W_f windows.txt /*CTRL-W_f*
CTRL-W_gF windows.txt /*CTRL-W_gF*
CTRL-W_gT windows.txt /*CTRL-W_gT*
CTRL-W_g] windows.txt /*CTRL-W_g]*
CTRL-W_g_CTRL-] windows.txt /*CTRL-W_g_CTRL-]*
CTRL-W_gf windows.txt /*CTRL-W_gf*
CTRL-W_gt windows.txt /*CTRL-W_gt*
CTRL-W_g} windows.txt /*CTRL-W_g}*
CTRL-W_h windows.txt /*CTRL-W_h*
CTRL-W_i tagsrch.txt /*CTRL-W_i*
@@ -3710,7 +3716,6 @@ CTRL-W_n windows.txt /*CTRL-W_n*
CTRL-W_o windows.txt /*CTRL-W_o*
CTRL-W_p windows.txt /*CTRL-W_p*
CTRL-W_q windows.txt /*CTRL-W_q*
CTRL-W_quote terminal.txt /*CTRL-W_quote*
CTRL-W_r windows.txt /*CTRL-W_r*
CTRL-W_s windows.txt /*CTRL-W_s*
CTRL-W_t windows.txt /*CTRL-W_t*
@@ -3743,6 +3748,7 @@ ColorScheme autocmd.txt /*ColorScheme*
ColorSchemePre autocmd.txt /*ColorSchemePre*
Command-line cmdline.txt /*Command-line*
Command-line-mode cmdline.txt /*Command-line-mode*
CompleteChanged autocmd.txt /*CompleteChanged*
CompleteDone autocmd.txt /*CompleteDone*
ConPTY terminal.txt /*ConPTY*
Contents quickref.txt /*Contents*
@@ -4688,7 +4694,13 @@ E978 eval.txt /*E978*
E979 eval.txt /*E979*
E98 diff.txt /*E98*
E980 eval.txt /*E980*
E981 starting.txt /*E981*
E982 terminal.txt /*E982*
E983 message.txt /*E983*
E984 repeat.txt /*E984*
E985 eval.txt /*E985*
E99 diff.txt /*E99*
E999 repeat.txt /*E999*
EX intro.txt /*EX*
EXINIT starting.txt /*EXINIT*
Elvis intro.txt /*Elvis*
@@ -5238,6 +5250,7 @@ autocmd-groups autocmd.txt /*autocmd-groups*
autocmd-intro autocmd.txt /*autocmd-intro*
autocmd-list autocmd.txt /*autocmd-list*
autocmd-nested autocmd.txt /*autocmd-nested*
autocmd-once autocmd.txt /*autocmd-once*
autocmd-osfiletypes filetype.txt /*autocmd-osfiletypes*
autocmd-patterns autocmd.txt /*autocmd-patterns*
autocmd-remove autocmd.txt /*autocmd-remove*
@@ -5673,6 +5686,8 @@ complete_CTRL-E insert.txt /*complete_CTRL-E*
complete_CTRL-Y insert.txt /*complete_CTRL-Y*
complete_add() eval.txt /*complete_add()*
complete_check() eval.txt /*complete_check()*
complete_info() eval.txt /*complete_info()*
complete_info_mode eval.txt /*complete_info_mode*
completed_item-variable eval.txt /*completed_item-variable*
completion-functions usr_41.txt /*completion-functions*
complex-change change.txt /*complex-change*
@@ -6065,6 +6080,7 @@ expr-' eval.txt /*expr-'*
expr-+ eval.txt /*expr-+*
expr-- eval.txt /*expr--*
expr-. eval.txt /*expr-.*
expr-.. eval.txt /*expr-..*
expr-/ eval.txt /*expr-\/*
expr-< eval.txt /*expr-<*
expr-<# eval.txt /*expr-<#*
@@ -6128,7 +6144,6 @@ f motion.txt /*f*
false-variable eval.txt /*false-variable*
faq intro.txt /*faq*
farsi farsi.txt /*farsi*
farsi-fonts farsi.txt /*farsi-fonts*
farsi.txt farsi.txt /*farsi.txt*
fasm.vim syntax.txt /*fasm.vim*
fcs_choice-variable eval.txt /*fcs_choice-variable*
@@ -6354,6 +6369,7 @@ ft-rmd-plugin filetype.txt /*ft-rmd-plugin*
ft-rmd-syntax syntax.txt /*ft-rmd-syntax*
ft-rrst-plugin filetype.txt /*ft-rrst-plugin*
ft-rrst-syntax syntax.txt /*ft-rrst-syntax*
ft-rst-plugin filetype.txt /*ft-rst-plugin*
ft-rst-syntax syntax.txt /*ft-rst-syntax*
ft-ruby-omni insert.txt /*ft-ruby-omni*
ft-ruby-syntax syntax.txt /*ft-ruby-syntax*
@@ -7234,6 +7250,7 @@ ip motion.txt /*ip*
iquote motion.txt /*iquote*
is motion.txt /*is*
isdirectory() eval.txt /*isdirectory()*
isinf() eval.txt /*isinf()*
islocked() eval.txt /*islocked()*
isnan() eval.txt /*isnan()*
it motion.txt /*it*
@@ -7361,6 +7378,7 @@ list-identity eval.txt /*list-identity*
list-index eval.txt /*list-index*
list-modification eval.txt /*list-modification*
list-repeat windows.txt /*list-repeat*
list2str() eval.txt /*list2str()*
lite.vim syntax.txt /*lite.vim*
literal-string eval.txt /*literal-string*
lnum-variable eval.txt /*lnum-variable*
@@ -7397,6 +7415,7 @@ love intro.txt /*love*
lowercase change.txt /*lowercase*
lpc.vim syntax.txt /*lpc.vim*
lua if_lua.txt /*lua*
lua-blob if_lua.txt /*lua-blob*
lua-buffer if_lua.txt /*lua-buffer*
lua-commands if_lua.txt /*lua-commands*
lua-dict if_lua.txt /*lua-dict*
@@ -7989,6 +8008,7 @@ omni-sql-completion ft_sql.txt /*omni-sql-completion*
online-help helphelp.txt /*online-help*
opening-window windows.txt /*opening-window*
operator motion.txt /*operator*
operator-pending-index index.txt /*operator-pending-index*
operator-variable eval.txt /*operator-variable*
option-backslash options.txt /*option-backslash*
option-list quickref.txt /*option-list*
@@ -8245,6 +8265,7 @@ quake.vim syntax.txt /*quake.vim*
quickfix quickfix.txt /*quickfix*
quickfix-6 version6.txt /*quickfix-6*
quickfix-ID quickfix.txt /*quickfix-ID*
quickfix-buffer quickfix.txt /*quickfix-buffer*
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
quickfix-context quickfix.txt /*quickfix-context*
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
@@ -8307,6 +8328,7 @@ read-in-close-cb channel.txt /*read-in-close-cb*
read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share*
read-stdin version5.txt /*read-stdin*
readdir() eval.txt /*readdir()*
readfile() eval.txt /*readfile()*
readline.vim syntax.txt /*readline.vim*
recording repeat.txt /*recording*
@@ -8379,6 +8401,7 @@ ruby-dynamic if_ruby.txt /*ruby-dynamic*
ruby-evaluate if_ruby.txt /*ruby-evaluate*
ruby-globals if_ruby.txt /*ruby-globals*
ruby-message if_ruby.txt /*ruby-message*
ruby-rubyeval if_ruby.txt /*ruby-rubyeval*
ruby-set_option if_ruby.txt /*ruby-set_option*
ruby-vim if_ruby.txt /*ruby-vim*
ruby-window if_ruby.txt /*ruby-window*
@@ -8390,6 +8413,7 @@ ruby_no_expensive syntax.txt /*ruby_no_expensive*
ruby_operators syntax.txt /*ruby_operators*
ruby_space_errors syntax.txt /*ruby_space_errors*
ruby_spellcheck_strings syntax.txt /*ruby_spellcheck_strings*
rubyeval() eval.txt /*rubyeval()*
russian russian.txt /*russian*
russian-intro russian.txt /*russian-intro*
russian-issues russian.txt /*russian-issues*
@@ -8438,14 +8462,17 @@ scheme.vim syntax.txt /*scheme.vim*
scp pi_netrw.txt /*scp*
screenattr() eval.txt /*screenattr()*
screenchar() eval.txt /*screenchar()*
screenchars() eval.txt /*screenchars()*
screencol() eval.txt /*screencol()*
screenrow() eval.txt /*screenrow()*
screenstring() eval.txt /*screenstring()*
script usr_41.txt /*script*
script-here if_perl.txt /*script-here*
script-local map.txt /*script-local*
script-variable eval.txt /*script-variable*
scriptnames-dictionary eval.txt /*scriptnames-dictionary*
scriptout-changed version4.txt /*scriptout-changed*
scriptversion eval.txt /*scriptversion*
scroll-binding scroll.txt /*scroll-binding*
scroll-cursor scroll.txt /*scroll-cursor*
scroll-down scroll.txt /*scroll-down*
@@ -8721,6 +8748,7 @@ static-tag tagsrch.txt /*static-tag*
status-line windows.txt /*status-line*
statusmsg-variable eval.txt /*statusmsg-variable*
str2float() eval.txt /*str2float()*
str2list() eval.txt /*str2list()*
str2nr() eval.txt /*str2nr()*
strcasestr() eval.txt /*strcasestr()*
strcharpart() eval.txt /*strcharpart()*
@@ -8820,7 +8848,14 @@ t_AL term.txt /*t_AL*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS*
t_CTRL-W_. terminal.txt /*t_CTRL-W_.*
t_CTRL-W_: terminal.txt /*t_CTRL-W_:*
t_CTRL-W_CTRL-C terminal.txt /*t_CTRL-W_CTRL-C*
t_CTRL-W_CTRL-W terminal.txt /*t_CTRL-W_CTRL-W*
t_CTRL-W_N terminal.txt /*t_CTRL-W_N*
t_CTRL-W_gT terminal.txt /*t_CTRL-W_gT*
t_CTRL-W_gt terminal.txt /*t_CTRL-W_gt*
t_CTRL-W_quote terminal.txt /*t_CTRL-W_quote*
t_CTRL-\_CTRL-N terminal.txt /*t_CTRL-\\_CTRL-N*
t_CV term.txt /*t_CV*
t_Ce term.txt /*t_Ce*
@@ -9010,7 +9045,6 @@ tabpagenr() eval.txt /*tabpagenr()*
tabpagewinnr() eval.txt /*tabpagewinnr()*
tag tagsrch.txt /*tag*
tag-! tagsrch.txt /*tag-!*
tag-any-white tagsrch.txt /*tag-any-white*
tag-binary-search tagsrch.txt /*tag-binary-search*
tag-blocks motion.txt /*tag-blocks*
tag-commands tagsrch.txt /*tag-commands*
@@ -9156,6 +9190,7 @@ terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
terminal-dumptest terminal.txt /*terminal-dumptest*
terminal-functions usr_41.txt /*terminal-functions*
terminal-info term.txt /*terminal-info*
terminal-job-index index.txt /*terminal-job-index*
terminal-key-codes term.txt /*terminal-key-codes*
terminal-ms-windows terminal.txt /*terminal-ms-windows*
terminal-options term.txt /*terminal-options*
@@ -9189,6 +9224,7 @@ test_null_partial() eval.txt /*test_null_partial()*
test_null_string() eval.txt /*test_null_string()*
test_option_not_set() eval.txt /*test_option_not_set()*
test_override() eval.txt /*test_override()*
test_refcount() eval.txt /*test_refcount()*
test_scrollbar() eval.txt /*test_scrollbar()*
test_settime() eval.txt /*test_settime()*
testing eval.txt /*testing*
@@ -9658,6 +9694,8 @@ vimrc-filetype usr_05.txt /*vimrc-filetype*
vimrc-intro usr_05.txt /*vimrc-intro*
vimrc-option-example starting.txt /*vimrc-option-example*
vimrc_example.vim usr_05.txt /*vimrc_example.vim*
vimscript-version eval.txt /*vimscript-version*
vimscript-versions eval.txt /*vimscript-versions*
vimtutor usr_01.txt /*vimtutor*
virtcol() eval.txt /*virtcol()*
visual-block visual.txt /*visual-block*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.1. Last change: 2018 May 04
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Apr 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -14,6 +14,7 @@ See section |29.1| of the user manual for an introduction.
4. Tags details |tag-details|
5. Tags file format |tags-file-format|
6. Include file searches |include-search|
7. Using 'tagfunc' |tag-function|
==============================================================================
1. Jump to a tag *tag-commands*
@@ -529,28 +530,21 @@ gnatxref For Ada. See http://www.gnuada.org/. gnatxref is
part of the gnat package.
The lines in the tags file must have one of these three formats:
The lines in the tags file must have one of these two formats:
1. {tagname} {TAB} {tagfile} {TAB} {tagaddress}
2. {tagfile}:{tagname} {TAB} {tagfile} {TAB} {tagaddress}
3. {tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..
2. {tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..
The first is a normal tag, which is completely compatible with Vi. It is the
only format produced by traditional ctags implementations. This is often used
for functions that are global, also referenced in other files.
Previously an old format was supported, see |tag-old-static|.
The first format is a normal tag, which is completely compatible with Vi. It
is the only format produced by traditional ctags implementations. This is
often used for functions that are global, also referenced in other files.
The lines in the tags file can end in <LF> or <CR><LF>. On the Macintosh <CR>
also works. The <CR> and <NL> characters can never appear inside a line.
*tag-old-static*
The second format is for a static tag only. It is obsolete now, replaced by
the third format. It is only supported by Elvis 1.x and Vim and a few
versions of ctags. A static tag is often used for functions that are local,
only referenced in the file {tagfile}. Note that for the static tag, the two
occurrences of {tagfile} must be exactly the same. Also see |tags-option|
below, for how static tags are used.
The third format is new. It includes additional information in optional
The second format is new. It includes additional information in optional
fields at the end of each line. It is backwards compatible with Vi. It is
only supported by new versions of ctags (such as Exuberant ctags).
@@ -558,8 +552,7 @@ only supported by new versions of ctags (such as Exuberant ctags).
be any identifier. It cannot contain a <Tab>.
{TAB} One <Tab> character. Note: previous versions allowed any
white space here. This has been abandoned to allow spaces in
{tagfile}. It can be re-enabled by including the
|+tag_any_white| feature at compile time. *tag-any-white*
{tagfile}.
{tagfile} The file that contains the definition of {tagname}. It can
have an absolute or relative path. It may contain environment
variables and wildcards (although the use of wildcards is
@@ -571,7 +564,14 @@ only supported by new versions of ctags (such as Exuberant ctags).
{term} ;" The two characters semicolon and double quote. This is
interpreted by Vi as the start of a comment, which makes the
following be ignored. This is for backwards compatibility
with Vi, it ignores the following fields.
with Vi, it ignores the following fields. Example:
APP file /^static int APP;$/;" v
When {tagaddress} is not a line number or search pattern, then
{term} must be |;". Here the bar ends the command (excluding
the bar) and ;" is used to have Vi ignore the rest of the
line. Example:
APP file.c call cursor(3, 4)|;" v
{field} .. A list of optional fields. Each field has the form:
<Tab>{fieldname}:{value}
@@ -592,6 +592,7 @@ only supported by new versions of ctags (such as Exuberant ctags).
The only other field currently recognized by Vim is "file:"
(with an empty value). It is used for a static tag.
The first lines in the tags file can contain lines that start with
!_TAG_
These are sorted to the first lines, only rare tags that start with "!" can
@@ -606,8 +607,7 @@ ignored. (Case is ignored when 'ignorecase' is set and 'tagcase' is
The value '2' should be used then:
!_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~
The other tag that Vim recognizes, but only when compiled with the
|+multi_byte| feature, is the encoding of the tags file:
The other tag that Vim recognizes is the encoding of the tags file:
!_TAG_FILE_ENCODING<Tab>utf-8<Tab>{anything} ~
Here "utf-8" is the encoding used for the tags. Vim will then convert the tag
being searched for from 'encoding' to the encoding of the tags file. And when
@@ -646,6 +646,21 @@ If the command is a normal search command (it starts and ends with "/" or
followed by white space and a '('. This will find macro names and function
names with a type prepended. {the extra searches are not in Vi}
*tag-old-static*
Until March 2019 (patch 8.1.1092) an outdated format was supported:
{tagfile}:{tagname} {TAB} {tagfile} {TAB} {tagaddress}
This format is for a static tag only. It is obsolete now, replaced by
the second format. It is only supported by Elvis 1.x, older Vim versions and
a few versions of ctags. A static tag is often used for functions that are
local, only referenced in the file {tagfile}. Note that for the static tag,
the two occurrences of {tagfile} must be exactly the same. Also see
|tags-option| below, for how static tags are used.
The support was removed, since when you can update to the new Vim version you
should also be able to update ctags to one that supports the second format.
==============================================================================
6. Include file searches *include-search* *definition-search*
*E387* *E388* *E389*
@@ -857,4 +872,70 @@ Common arguments for the commands above:
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
is used as a literal string, not as a search pattern.
==============================================================================
7. Using 'tagfunc' *tag-function*
It is possible to provide Vim with a function which will generate a list of
tags used for commands like |:tag|, |:tselect| and Normal mode tag commands
like |CTRL-]|.
The function used for generating the taglist is specified by setting the
'tagfunc' option. The function will be called with three arguments:
a:pattern The tag identifier used during the tag search.
a:flags List of flags to control the function behavior.
a:info Dict containing the following entries:
buf_ffname Full filename which can be used for priority.
user_data Custom data String, if stored in the tag
stack previously by tagfunc.
Currently two flags may be passed to the tag function:
'c' The function was invoked by a normal command being processed
(mnemonic: the tag function may use the context around the
cursor to perform a better job of generating the tag list.)
'i' In Insert mode, the user was completing a tag (with
|i_CTRL-X_CTRL-]|).
Note that when 'tagfunc' is set, the priority of the tags described in
|tag-priority| does not apply. Instead, the priority is exactly as the
ordering of the elements in the list returned by the function.
*E987*
The function should return a List of Dict entries. Each Dict must at least
include the following entries and each value must be a string:
name Name of the tag.
filename Name of the file where the tag is defined. It is
either relative to the current directory or a full path.
cmd Ex command used to locate the tag in the file. This
can be either an Ex search pattern or a line number.
Note that the format is similar to that of |taglist()|, which makes it possible
to use its output to generate the result.
The following fields are optional:
kind Type of the tag.
user_data String of custom data stored in the tag stack which
can be used to disambiguate tags between operations.
If the function returns |v:null| instead of a List, a standard tag lookup will
be performed instead.
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
The following is a hypothetical example of a function used for 'tagfunc'. It
uses the output of |taglist()| to generate the result: a list of tags in the
inverse order of file names.
>
function! TagFunc(pattern, flags, info)
function! CompareFilenames(item1, item2)
let f1 = a:item1['filename']
let f2 = a:item2['filename']
return f1 >=# f2 ?
\ -1 : f1 <=# f2 ? 1 : 0
endfunction
let result = taglist(a:pattern)
call sort(result, "CompareFilenames")
return result
endfunc
set tagfunc=TagFunc
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 8.1. Last change: 2019 Jan 19
*term.txt* For Vim version 8.1. Last change: 2019 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -539,7 +539,7 @@ there should be a tick at allow-window-ops.
Note about colors: The 't_Co' option tells Vim the number of colors available.
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
to reset to the default colors.
to reset to the default colors. Also see 'termguicolors'.
*termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 03
*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,7 +44,7 @@ If the result is "1" you have it.
{Vi does not have any of these commands}
{only available when compiled with the |+terminal| feature}
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
The terminal feature requires the |+job| and |+channel| features.
==============================================================================
1. Basic use *terminal-use*
@@ -66,20 +66,23 @@ When the keyboard focus is in the terminal window, typed keys will be sent to
the job. This uses a pty when possible. You can click outside of the
terminal window to move keyboard focus elsewhere.
*t_CTRL-W_CTRL-W* *t_CTRL-W_:*
CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
CTRL-W CTRL-W move focus to the next window
CTRL-W : enter an Ex command
See |CTRL-W| for more commands.
Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
Special in the terminal window: *t_CTRL-W_.* *t_CTRL-W_N*
CTRL-W . send a CTRL-W to the job in the terminal
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
CTRL-W N go to Terminal-Normal mode, see |Terminal-mode|
CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode|
CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
CTRL-W " {reg} paste register {reg} *t_CTRL-W_quote*
Also works with the = register to insert the result of
evaluating an expression.
CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C|
CTRL-W gt go to next tabpage, same as `gt` *t_CTRL-W_gt*
CTRL-W gT go to previous tabpage, same as `gT` *t_CTRL-W_gT*
See option 'termwinkey' for specifying another key instead of CTRL-W that
will work like CTRL-W. However, typing 'termwinkey' twice sends 'termwinkey'
@@ -90,8 +93,8 @@ to the job. For example:
'termwinkey' . send 'termwinkey' to the job in the terminal
'termwinkey' CTRL-\ send a CTRL-\ to the job in the terminal
'termwinkey' N go to terminal Normal mode, see below
'termwinkey' CTRL-N same as CTRL-W N
'termwinkey' CTRL-C same as |t_CTRL-W_CTRL-C|
'termwinkey' CTRL-N same as CTRL-W N |t_CTRL-W_N|
'termwinkey' CTRL-C same as CTRL-W CTRL-C |t_CTRL-W_CTRL-C|
*t_CTRL-\_CTRL-N*
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
mode, just like this works in any other mode.
@@ -413,13 +416,13 @@ Just put the files somewhere in your PATH. You can set the 'winptydll' option
to point to the right file, if needed. If you have both the 32-bit and 64-bit
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
build.
*ConPTY*
*ConPTY* *E982*
On more recent versions of MS-Windows 10 (beginning with the "October 2018
Update"), winpty is no longer required. On those versions, |:terminal| will use
Windows' built-in support for hosting terminal applications, "ConPTY". When
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
characters. If you encounter any such issues, set 'termwintype' to "winpty"
(which you then must have instlled).
characters. If you encounter any such issues, install "winpty". Until the
ConPTY problems have been fixed "winpty" will be preferred.
Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.1. Last change: 2019 Feb 02
*todo.txt* For Vim version 8.1. Last change: 2019 Apr 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,8 +38,6 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Timer test doesn't work on MS-Windows console, any way to make it work?
'incsearch' with :s: (#3321)
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
was set. (#3837)
@@ -74,15 +72,15 @@ Terminal debugger:
with another Vim instance.
Terminal emulator window:
- When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962
- When Vim runs in the terminal and changes the title, the statusline needs to
be redrawn.
- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
(#3327)
- Terminal API: Add more functionality? (Ozaki Kiichi 2018 May 13, #2907)
- GUI: hang until key typed. (#3530)
- When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962
- Allow for specifying the directory, with ++cwd={dir}.
- With a vertical split only one window is updated. (Linwei, 2018 Jun 2,
#2977)
@@ -106,9 +104,18 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
Nov 17) Asked about this, Dec 22. Christian will have a look.
Support for popup widows:
- Use text properties to define highlighting.
- Proposal on issue #4063
Notifications for text changes, could be used for LSP.
- New event, similar to TextChanged, but guaranteed to provide sequential
information of all text changes.
Possibly build on undo info (but undo itself is also a change).
How to deal with ":%s/this/that" ?
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087)
Does not build with MinGW out of the box:
- _stat64 is not defined, need to use "struct stat" in vim.h
@@ -117,14 +124,9 @@ Does not build with MinGW out of the box:
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce?
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
Errors found with random data:
heap-buffer-overflow in alist_add (#2472)
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Improve fallback for menu translations, to avoid having to create lots of
files that source the actual file. E.g. menu_da_de -> menu_da
Include part of #3242?
@@ -143,6 +145,13 @@ Williams, 2018 Oct 30)
Problem with :tlmenu: Detach item added with all modes? Issue #3563.
Bug: script written with "-W scriptout" contains Key codes, while the script
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
Mar 5)
When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809.
@@ -153,6 +162,12 @@ C syntax: {} inside () causes following {} to be highlighted as error.
Support setting the character displayed below the last line? Neovim uses
"eob:X" in 'fillchars'.
Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this
added?
This modeline throws unexpected errors: (#4165)
vim: syn=nosyntax
Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:
#2948. (related to #1512?)
On Win32 it stops showing, because showState is already ShS_SHOWING.
@@ -167,13 +182,43 @@ Another request: #3811.
More warnings from static analysis:
https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
Still a E315 error when using terminal. (Masato Nishihata, #3959)
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif? Now test_gui crashes in submenu_change().
Athena is OK.
Motif: Build on Ubuntu can't enter any text in dialog text fields.
nvo-mode mapping works on Windows, not on Linux. (#3678)
Patch to be able to separately map CTRL-H and BS on Windows.
(Linwei, 2017 Jul 11, #1833)
Patch to make Command-V use CTRL-R_CTRL-O* on Mac, like on Windows.
(Ken Takata, #4266)
Patch to improve readability of complicated if(). (ichizok, 2019 Jan 29,
#3879)
No test for NULL after allocating memory: #4174 (martinkunevtoptal does this?)
src/crypt.c line 256;
src/crypt_zip.c line 93;
src/gui_gtk_f.c line 132;
src/gui_gtk_x11 line 1578;
src/libvterm/src/state.c line 332;
src/libvterm/src/state.c line 255;
src/libvterm/src/state.c line 1618;
src/libvterm/src/state.c line 1643
src/libvterm/src/termscreen.c line 83;
src/ops.c line 6185;
src/option.c line 12980;
src/popupmnu.c line 1090;
Missing tests for:
- add_termcap_entry()
When using exclusive selection and vi" that fails, cursor moves to the left.
Cursor should not move. (#4024)
Incsearch test fails when locale is "C". (Dominique Pelle, #3986)
Also run all tests with C locale?
"vat" doesn't work well on XML when the closing > is on another line.
#3927
Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
Related to bracketed paste. I cannot reproduce it.
@@ -182,21 +227,19 @@ When 'confirm' is set a "silent q" doesn't show the prompt. It should in this
case. (Nate Peterson, 2019 Jan 31, #3892)
For "silent! q" it should not prompt and just fail.
Using CTRL-L to add a character to the search string doesn't work for the last
character in the file. (Smylers, 2018 Nov 17, #3620)
Suggested patch by Hirohito Higashi, 2018 Nov 18.
Add <aevent>, which expands to the currently triggered autocommand event name.
(Daniel Hahler, #4232) Or add it to v:event (easier to use but slightly more
expensive).
Some xterm responses are not properly handled: (Markus Gömmel, 2019 Apr 1)
DCS 0 $ r Pt ST should be ignored.
DCS 0 + r/Pt/ ST already ignored?
Using CTRL-L to add a character to the search string that contains \v,
punctiuation is repeated. (Smylers, 2018 Nov 17, #3621)
Using CTRL-L during search only picks up the base character, not a combining
character. (Rick, 2018 Dec 11, #3682)
punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
Patch to convert temp file name. (Yasuhiro Matsumoto, #3520)
Not ready to include yet.
Problem with two buffers with the same name a/b, if it didn't exist before and
is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
@@ -208,15 +251,16 @@ Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
#3405) Introduced by 8.0.1517, which was fixing another memory access error.
(Sep 8)
Patch to add complete_mode(). Shougo - #3866. Alternate patch by Hirohito
Higashi, 2019 Jan 27, included now?
Patch for ConPTY support, new one: #3794 Does this work now? It should.
(Nobuhiro Takasaki)
Add function to make use of internal diff, working on two lists and returning
unified diff (list of lines).
When splitting a window with few text lines, the relative cursor position is
kept, which means part of the text isn't displayed. Better show all the text
when possible. (Dylan Lloyd, #3973)
Patch to not recognize "version" as "v:version", "count" as "v:count".
Ken Takata, #4274.
Patch to implement 'diffref' option. (#3535)
Easier to use a 'diffmaster' option, is the extra complexity needed?
@@ -231,6 +275,46 @@ Patch by Christian, Oct 30.
Patch to clean up CI configs. (Ozaki Kiichi, 2019 Feb 1, #3890)
Patch to filter marks. (Marcin Szamotulski, 2019 Feb 7, #3895)
Patch to add environ(), gets a dict with all environment vars, and getenv(),
useful for environment vars that are not made of keyword chars.
(Yasuhiro Matsumoto, #2875)
Add buffer argument to undotree(). (#4001)
Patch to add optional arguments with default values.
(Andy Massimino, #3952) under development
Patch to add tab-local directories. (Yegappan, #4212)
Good now?
Patch to add more info to OptionSet. Should mention what triggered the change
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
#4118. Proposed implementation: 2019 Mar 27. Tests fail, help update
missing. Updated 2019 Apr 9
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
Nov 17) Asked about this, Dec 22. Christian will have a look.
Patch to add ruby cflags. (#4050, fixes #1081)
Needs modification.
Patch for larger icons in installer. (#978) Still not good.
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
New update 2017 Apr 10, #1628
https://github.com/chrisbra/vim-mq-patches/blob/master/tagfunc
Updated by Andy Massimino, 2018 Feb 7:
https://github.com/andymass/vim/commit/4e3aa0a5dab96d2799567622f3f537e357aa479e
Or should we make it asynchronous?
Patch by Andy Massimino: #4010 - needs a bit more work: produce errors when
something is wrong.
Patch to fix that using "5gj" starting inside a closed fold does not work on
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
Memory leaks in test_channel? (or is it because of fork())
Using uninitialized value in test_crypt.
Memory leak in test_terminal:
@@ -243,6 +327,7 @@ Memory leak in test_terminal:
==23530== by 0x35C923: term_start (terminal.c:421)
==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377)
==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383)
Memory leak in test_alot with pyeval() (allocating partial)
gethostbyname() is old, use getaddrinfo() if available. (#3227)
@@ -252,6 +337,15 @@ Patch to add match count and current index "3/44" when using "n" command.
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
19.
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
Does #2405 do this?
Patch to add an interrupt() function: sets got_int. Useful in an autocommand
such as BufWritePre that checks the file name or contents.
More patches to check:
- #4098 improve Travis config
Should make 'listchars' global-local. Local to window or to buffer?
Probably window.
Add something like 'fillchars' local to window, but allow for specifying a
@@ -318,6 +412,11 @@ Better name?
MS-Windows: .lnk file not resolved properly when 'encoding' is set.
(lkintact, 2018 Sep 22, #3473)
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Script generated by :mksession does not work well if there are windows with
modified buffers
change "silent only" into "silent only!"
@@ -344,24 +443,13 @@ Lemonboy can reproduce (2017 Jun 5)
Also reproduced by Benjamin Doherty, 2018 Oct 4.
Simpler way: Ken Takata, Oct 6.
Height of quickfix window is not retained with vertical splits. (Lifepillar,
2018 Aug 24, #2998)
Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
#2999)
Add more testing of the GTK GUI.
- gtk_test_widget_click() can be used to simulate a click in a widget.
Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()
When using CTRL-W CR in the quickfix window, the jumplist in the opened window
is cleared, to avoid going back to the list of errors buffer (would have two
windows with it). Can we just remove the jump list entries for the quickfix
buffer?
Patch to fix that executable() may fail on very long filename in MS-Windows.
(Ken Takata, 2016 Feb 1, update 2018 Oct 7)
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018
@@ -417,9 +505,6 @@ missing: --nofork, -A , -b, -h, etc.
":au * * command" should not be allowed, only use * for event when listing or
deleting autocmds, not when adding them.
Quickfix window height is not kept with a vertical split. (Lifepillar, 2018
Jun 10, #2998)
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
Delete all the specific stuff for the Borland compiler? (#3374)
@@ -715,9 +800,6 @@ Use gvimext.dll from the nightly build? (Issue #249)
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
8, #1690)
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
Bogus characters inserted when triggering indent while changing text.
(Vitor Antunes, 2016 Nov 22, #1269)
@@ -771,9 +853,6 @@ When session file has name in argument list but the buffer was deleted, the
buffer is not deleted when using the session file. (#1393)
Should add the buffer in hidden state.
When an item in the quickfix list has a file name that does not exist, behave
like the item was not a match for :cnext.
Wrong diff highlighting with three files. (2016 Oct 20, #1186)
Also get E749 on exit.
Another example in #1309
@@ -822,10 +901,6 @@ Implement optional arguments for functions.
call Foo(12, all = 0)
call Foo(12, 15, 0)
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
support, or similar.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
Add a command to take a range of lines, filter them and put the output
somewhere else. :{range}copy {dest} !cmd
@@ -883,10 +958,6 @@ Apr 23, #1653)
Window resizing with 'winfixheight': With a vertical split the height changes
anyway. (Tommy allen, 2017 Feb 21, #1502)
When adding an item to a new quickfix list make ":cnext" jump to that item.
Make a difference being at the first item and not having used :cnext at all.
(Afanasiy Fet, 2017 Jan 3)
Invalid behavior with NULL list. (Nikolai Pavlov, #768)
E.g. deepcopy(test_null_list())
@@ -944,6 +1015,10 @@ sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
Although user could use "xterm -e 'cmd arg'".
Regexp problems:
- NFA engine can be slow for some patterns. Dominique found out that most
time is spent in addstate_here() copying the threads. Instead of copying,
let each thread point to the next one (by offset, the list is reallocated).
(Dominique Pelle, 2019 Feb 18)
- When search pattern has the base character both with and without combining
character, search fails. E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
@@ -1005,9 +1080,6 @@ Add an argument to choose binary or non-binary (like readfile()), when omitted
use the current behavior.
Include the test.
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
New update 2017 Apr 10, #1628
When 'keywordprg' starts with ":" the argument is still escaped as a shell
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
@@ -1076,9 +1148,6 @@ Have a way to get the call stack, in a function and from an exception.
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
This does not work: :set cscopequickfix=a-
(Linewi, 2015 Jul 12, #914)
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
@@ -2079,12 +2148,6 @@ to avoid changing 'eventignore'?
Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
Probably needs a bit of work.
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
With modification for Tatweel character: https://dpaste.de/VmFw
Remark from Ameretat Reith (2014 Oct 13)
List of encoding aliases. (Takao Fujiwara, 2009 Jul 18)
Are they all OK? Update Jul 22.
@@ -2123,8 +2186,6 @@ for GTK, how about others? (Ron Aaron, 2010 Apr 10)
Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)
Motif: Build on Ubuntu can't enter any text in dialog text fields.
":tab split fname" doesn't set the alternate file in the original window,
because win_valid() always returns FALSE. Below win_new_tabpage() in
ex_docmd.c.
@@ -2485,8 +2546,6 @@ Autoconf problem: when checking for iconv library we may add -L/usr/local/lib,
but when compiling further tests -liconv is added without the -L argument,
that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21)
When opening quickfix window, disable spell checking?
Problem with ".add" files when using two languages and restarting Vim. (Raul
Coronado, 2008 Oct 30)
@@ -2549,7 +2608,7 @@ Windows installer: licence text should not use indent, causes bad word wrap.
Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
makes his own wrapper). Add a magic string with the version number to the
.bat file and check for it in the uninstaller. E.g.
# uninstall key: vim7.3*
# uninstall key: vim8.1*
Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
2007 Feb 8)
@@ -2830,9 +2889,6 @@ Small problem displaying diff filler line when opening windows with a script.
Is it allowed that 'backupext' is empty? Problems when backup is in same dir
as original file? If it's OK don't compare with 'patchmode'. (Thierry Closen)
Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
Jan 1)
Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
23)
@@ -2985,8 +3041,6 @@ Awaiting updated patches:
+ 1", but that's ugly.
7 Add patch from Benoit Cerrina to integrate Vim and Perl functions
better. Now also works for Ruby (2001 Nov 10)
- Patch from Herculano de Lima Einloft Neto for better formatting of the
quickfix window (2004 dec 2)
7 When 'rightleft' is set, the search pattern should be displayed right
to left as well? See patch of Dec 26. (Nadim Shaikli)
8 Option to lock all used memory so that it doesn't get swapped to disk
@@ -3004,6 +3058,39 @@ Awaiting updated patches:
and GTK by degreneir (nov 10 and nov 18).
- Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
Better 'rightleft' or BIDI support:
- Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
By Ali Gholami Rudi, also worked on arabic.c
Quickfix/Location List:
- Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
#2999)
- When using CTRL-W CR in the quickfix window, the jumplist in the opened
window is cleared, to avoid going back to the list of errors buffer (would
have two windows with it). Can we just remove the jump list entries for
the quickfix buffer?
- Quickfix window height is not kept with a vertical split. (Lifepillar,
2018 Jun 10, #2998)
- When an item in the quickfix list has a file name that does not exist,
behave like the item was not a match for :cnext.
- When adding an item to a new quickfix list make ":cnext" jump to that
item. Make a difference being at the first item and not having used
:cnext at all. (Afanasiy Fet, 2017 Jan 3)
- This does not work: :set cscopequickfix=a-
(Linewi, 2015 Jul 12, #914)
- When opening quickfix window, disable spell checking?
- Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro,
2007 Jan 1)
- Patch from Herculano de Lima Einloft Neto for better formatting of the
quickfix window (2004 dec 2)
- Amiga: When using quickfix with the Manx compiler we only get the first 25
errors. How do we get the rest?
8 The quickfix file is read without conversion, thus in 'encoding'. Add an
option to specify the encoding of the errorfile and convert it. Also for
":grep" and ":helpgrep".
More generic solution: support a filter (e.g., by calling a function).
7 Add a command that goes back to the position from before jumping to the
first quickfix location. ":cbefore"?
Vi incompatibility:
- Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
@@ -3091,8 +3178,6 @@ Win32 GUI known bugs:
8 The -P argument doesn't work very well with many MDI applications.
The last argument of CreateWindowEx() should be used, see MSDN docs.
Tutorial: http://win32assembly.online.fr/tut32.html
8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
of ":only" is highlighted like the cursor. (Lipelis)
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
@@ -3648,8 +3733,6 @@ Problems that will (probably) not be solved:
- In zsh, "gvim&" changes the terminal settings. This is a zsh problem.
(Jennings)
- Problem with HPterm under X: old contents of window is lost (Cosentino).
- Amiga: When using quickfix with the Manx compiler we only get the first 25
errors. How do we get the rest?
- Amiga: The ":cq" command does not always abort the Manx compiler. Why?
- Linux: A file with protection r--rw-rw- is seen readonly for others. The
access() function in GNU libc is probably wrong.
@@ -3824,8 +3907,6 @@ Tab pages:
8 Add local options for each tab page? E.g., 'diffopt' could differ between
tab pages.
7 Add local highlighting for each tab page?
7 Add local directory for tab pages? How would this interfere with
window-local directories?
Spell checking:
@@ -3982,10 +4063,6 @@ Multi-byte characters:
8 Add an item in 'fileencodings' to check the first line of an XML file for
the encoding. <?xml version="1.0" encoding="UTF-8"?> Or "charset=UTF-8"?
For HTML look for "charset=utf-8".
8 The quickfix file is read without conversion, thus in 'encoding'. Add an
option to specify the encoding of the errorfile and convert it. Also for
":grep" and ":helpgrep".
More generic solution: support a filter (e.g., by calling a function).
8 When a file was converted from 'fileencoding' to 'encoding', a tag search
should also do this on the search pattern. (Andrzej M. Ostruszka)
8 When filtering changes the encoding 'fileencoding' may not work. E.g.,
@@ -5793,8 +5870,6 @@ Various improvements:
from the 'makeprg'?
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
Govindachar)
7 Add a command that goes back to the position from before jumping to the
first quickfix location. ":cbefore"?
7 Allow a window not to have a statusline. Makes it possible to use a
window as a buffer-tab selection.
8 Allow non-active windows to have a different statusline. (Yakov Lerner)

View File

@@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 8.1. Last change: 2019 Jan 26
*usr_05.txt* For Vim version 8.1. Last change: 2019 Feb 27
VIM USER MANUAL - by Bram Moolenaar
@@ -85,7 +85,7 @@ will be explained though. Use the ":help" command to find out more.
>
" Get the defaults that most users want.
source $VIMRUNTIME/defaults.vim
>
This loads the "defaults.vim" file in the $VIMRUNTIME directory. This sets up
Vim for how most users like it. If you are one of the few that don't, then
comment out this line. The commands are explained below:
@@ -164,13 +164,13 @@ The following explains what defaults.vim is doing.
if exists('skip_defaults_vim')
finish
endif
>
Loading defaults.vim can be disabled with this command: >
let skip_defaults_vim = 1
This has to be done in the system vimrc file. See |system-vimrc|. If you
have a user vimrc this is not needed, since defaults.vim will not be loaded
automatically.
>
>
set nocompatible
@@ -191,8 +191,8 @@ character before where Insert mode started. See 'backspace'.
Keep 200 commands and 200 search patterns in the history. Use another number
if you want to remember fewer or more lines. See 'history'.
>
>
set ruler
Always display the current cursor position in the lower right corner of the
@@ -257,7 +257,7 @@ will not need it.
>
inoremap <C-U> <C-G>u<C-U>
>
CTRL-U in insert mode deletes all entered text in the current line. Use
CTRL-G u to first break undo, so that you can undo CTRL-U after inserting a
line break. Revert with ":iunmap <C-U>".
@@ -325,7 +325,7 @@ typing commands at the command-line.
\ | wincmd p | diffthis
This adds the ":DiffOrig" command. Use this in a modified buffer to see the
differences with the file it was loaded from. See |diff|.
differences with the file it was loaded from. See |diff| and |:DiffOrig|.
>
set nolangremap

View File

@@ -1,4 +1,4 @@
*usr_11.txt* For Vim version 8.1. Last change: 2019 Jan 30
*usr_11.txt* For Vim version 8.1. Last change: 2019 Apr 28
VIM USER MANUAL - by Bram Moolenaar
@@ -205,6 +205,13 @@ something wrong. It may be one of these two situations.
NEWER than swap file! ~
NOTE that in the following situation Vim knows the swap file is not useful and
will automatically delete it:
- The file is a valid swap file (Magic number is correct).
- The flag that the file was modified is not set.
- The process is not running.
UNREADABLE SWAP FILE
Sometimes the line
@@ -284,6 +291,7 @@ If you really don't want to see this message, you can add the 'A' flag to the
'shortmess' option. But it's very unusual that you need this.
For remarks about encryption and the swap file, see |:recover-crypt|.
For programatic access to the swap file, see |swapinfo()|.
==============================================================================
*11.4* Further reading

View File

@@ -202,14 +202,28 @@ the other window. This is called a local directory. >
:pwd
/home/Bram/VeryLongFileName
So long as no ":lcd" command has been used, all windows share the same current
directory. Doing a ":cd" command in one window will also change the current
So long as no `:lcd` command has been used, all windows share the same current
directory. Doing a `:cd` command in one window will also change the current
directory of the other window.
For a window where ":lcd" has been used a different current directory is
remembered. Using ":cd" or ":lcd" in other windows will not change it.
When using a ":cd" command in a window that uses a different current
For a window where `:lcd` has been used a different current directory is
remembered. Using `:cd` or `:lcd` in other windows will not change it.
When using a `:cd` command in a window that uses a different current
directory, it will go back to using the shared directory.
TAB LOCAL DIRECTORY
When you open a new tab page, it uses the directory of the window in the
previous tab page from which the new tab page was opened. You can change the
directory of the current tab page using the `:tcd` command. All the windows in
a tab page share this directory except for windows with a window-local
directory. Any new windows opened in this tab page will use this directory as
the current working directory. Using a `:cd` command in a tab page will not
change the working directory of tab pages which have a tab local directory.
When the global working directory is changed using the ":cd" command in a tab
page, it will also change the current tab page working directory.
==============================================================================
*22.3* Finding a file

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.1. Last change: 2019 Jan 29
*usr_41.txt* For Vim version 8.1. Last change: 2019 Apr 06
VIM USER MANUAL - by Bram Moolenaar
@@ -577,8 +577,10 @@ used for. You can find an alphabetical list here: |functions|. Use CTRL-] on
the function name to jump to detailed help on it.
String manipulation: *string-functions*
nr2char() get a character by its ASCII value
char2nr() get ASCII value of a character
nr2char() get a character by its number value
list2str() get a character string from a list of numbers
char2nr() get number value of a character
str2list() get list of numbers from a string
str2nr() convert a string to a Number
str2float() convert a string to a Float
printf() format a string according to % items
@@ -723,6 +725,8 @@ Cursor and mark position: *cursor-functions* *mark-functions*
diff_filler() get the number of filler lines above a line
screenattr() get attribute at a screen line/row
screenchar() get character code at a screen line/row
screenchars() get character codes at a screen line/row
screenstring() get string of characters at a screen line/row
Working with text in the current buffer: *text-functions*
getline() get a line or list of lines from the buffer
@@ -762,7 +766,7 @@ System functions and manipulation of files:
isdirectory() check if a directory exists
getfsize() get the size of a file
getcwd() get the current working directory
haslocaldir() check if current window used |:lcd|
haslocaldir() check if current window used |:lcd| or |:tcd|
tempname() get the name of a temporary file
mkdir() create a new directory
delete() delete a file
@@ -771,6 +775,7 @@ System functions and manipulation of files:
systemlist() get the result of a shell command as a list
hostname() name of the system
readfile() read a file into a List of lines
readdir() get a List of file names in a directory
writefile() write a List of lines or Blob into a file
Date and Time: *date-functions* *time-functions*
@@ -834,6 +839,7 @@ Insert mode completion: *completion-functions*
complete() set found matches
complete_add() add to found matches
complete_check() check if completion should be aborted
complete_info() get current completion information
pumvisible() check if the popup menu is displayed
Folding: *folding-functions*

View File

@@ -153,12 +153,6 @@ language than the text.
language, the default should work fine and you don't need to do anything. The
following is only relevant when you want to edit different languages.
Note:
Using different encodings only works when Vim was compiled to handle
it. To find out if it works, use the ":version" command and check the
output for "+multi_byte". If it's there, you are OK. If you see
"-multi_byte" you will have to find another Vim.
USING UNICODE IN THE GUI

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 8.1. Last change: 2019 Jan 17
*various.txt* For Vim version 8.1. Last change: 2019 Mar 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -82,8 +82,7 @@ g8 Print the hex values of the bytes used in the
value of 'maxcombine' doesn't matter.
Example of a character with two composing characters:
e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
{not in Vi} {only when compiled with the |+multi_byte|
feature}
{not in Vi}
*8g8*
8g8 Find an illegal UTF-8 byte sequence at or after the
@@ -98,8 +97,7 @@ g8 Print the hex values of the bytes used in the
Note that when the cursor is on an illegal byte or the
cursor is halfway a multi-byte character the command
won't move the cursor.
{not in Vi} {only when compiled with the |+multi_byte|
feature}
{not in Vi}
*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
@@ -445,7 +443,7 @@ N *+syntax* Syntax highlighting |syntax|
*+system()* Unix only: opposite of |+fork|
T *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
m *+tag_any_white* Removed; was to allow any white space in tags files
m *+tcl* Tcl interface |tcl|
m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
m *+terminal* Support for terminal window |terminal|
@@ -458,7 +456,8 @@ N *+textprop* |text-properties|
N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
T *+user_commands* User-defined commands. |user-commands|
Always enabled since 8.1.1210.
B *+vartabs* Variable-width tabstops. |'vartabstop'|
N *+viminfo* |'viminfo'|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
@@ -572,17 +571,19 @@ N *+X11* Unix only: can restore window title |X11|
the output, not necessarily the whole line. Only some
commands support filtering, try it out to check if it
works. Some of the commands that support filtering:
|:#| - filter whole line
|:command| - filter by command name
|:files| - filter by file name
|:highlight| - filter by highlight group
|:jumps| - filter by file name
|:let| - filter by variable name
|:list| - filter whole line
|:llist| - filter by file name or module name
|:oldfiles| - filter by file name
|:clist| - filter by file name or module name
|:set| - filter by variable name
|:#| - filter whole line
|:clist| - filter by file name or module name
|:command| - filter by command name
|:files| - filter by file name
|:highlight| - filter by highlight group
|:jumps| - filter by file name
|:let| - filter by variable name
|:list| - filter whole line
|:llist| - filter by file name or module name
|:marks| - filter by text in the current file,
or file name for other files
|:oldfiles| - filter by file name
|:set| - filter by variable name
Only normal messages are filtered, error messages are
not.

View File

@@ -2378,7 +2378,7 @@ Solution: Use the msgfmt command found by configure. (Danek Duvall)
Files: src/config.mk.in, src/po/Makefile
Patch 7.4.323
Problem: Substitute() with zero width pattern breaks multi-byte character.
Problem: substitute() with zero width pattern breaks multi-byte character.
Solution: Take multi-byte character size into account. (Yukihiro Nakadaira)
Files: src/eval.c src/testdir/test69.in, src/testdir/test69.ok
@@ -20311,7 +20311,7 @@ Solution: Use R for a running job and F for a finished job.
Files: src/buffer.c
Patch 8.0.0936
Problem: Mode() returns wrong value for a terminal window.
Problem: mode() returns wrong value for a terminal window.
Solution: Return 't' when typed keys go to a job.
Files: src/evalfunc.c, src/testdir/test_terminal.vim
@@ -20697,7 +20697,7 @@ Solution: Add type cast. (Mike Williams)
Files: src/channel.c
Patch 8.0.1004
Problem: Matchstrpos() without a match returns too many items.
Problem: matchstrpos() without a match returns too many items.
Solution: Also remove the second item when the position is beyond the end of
the string. (Hirohito Higashi) Use an enum for the type.
Files: src/evalfunc.c, src/testdir/test_match.vim
@@ -22544,7 +22544,7 @@ Files: src/ex_getln.c, src/proto/search.pro, src/search.c,
src/testdir/test_search.vim
Patch 8.0.1305
Problem: Writefile() never calls fsync().
Problem: writefile() never calls fsync().
Solution: Follow the 'fsync' option with override to enable or disable.
Files: src/fileio.c, src/evalfunc.c, runtime/doc/eval.txt, src/globals.h,
src/testdir/test_writefile.vim
@@ -22732,7 +22732,7 @@ Solution: Take the winbar into account when computing the new window
Files: src/vim.h, src/window.c
Patch 8.0.1335
Problem: Writefile() using fsync() may give an error for a device.
Problem: writefile() using fsync() may give an error for a device.
(Yasuhiro Matsumoto)
Solution: Ignore fsync() failing. (closes #2373)
Files: src/evalfunc.c
@@ -23618,7 +23618,7 @@ Files: src/edit.c, src/testdir/test_ins_complete.vim,
src/testdir/test_popup.vim, src/testdir/test_edit.vim
Patch 8.0.1483
Problem: Searchpair() might return an invalid value on timeout.
Problem: searchpair() might return an invalid value on timeout.
Solution: When the second search times out, do not accept a match from the
first search. (Daniel Hahler, closes #2552)
Files: src/search.c
@@ -23722,7 +23722,7 @@ Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/Makefile,
src/testdir/Make_all.mak, src/testdir/test_jumplist.vim
Patch 8.0.1498 (after 8.0.1497)
Problem: Getjumplist() returns duplicate entries. (lacygoill)
Problem: getjumplist() returns duplicate entries. (lacygoill)
Solution: Call cleanup_jumplist(). (Yegappan Lakshmanan)
Files: src/evalfunc.c, src/mark.c, src/proto/mark.pro,
src/testdir/test_jumplist.vim
@@ -23842,7 +23842,7 @@ Solution: Restore emsg_silent before executing :try. (closes #2531)
Files: src/ex_docmd.c, src/testdir/test_eval_stuff.vim
Patch 8.0.1519
Problem: Getchangelist() does not use argument as bufname().
Problem: getchangelist() does not use argument as bufname().
Solution: Use get_buf_tv(). (Yegappan Lakshmanan, closes #2641)
Files: src/evalfunc.c, src/testdir/test_changelist.vim

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 8.1. Last change: 2016 Aug 16
*vi_diff.txt* For Vim version 8.1. Last change: 2019 Apr 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -19,8 +19,9 @@ is missing something or because Posix is beside the mark).
3. Limits |limits|
4. The most interesting additions |vim-additions|
5. Other vim features |other-features|
6. Command-line arguments |cmdline-arguments|
7. POSIX compliance |posix-compliance|
6. Supported Vi features |vi-features|
7. Command-line arguments |cmdline-arguments|
8. POSIX compliance |posix-compliance|
==============================================================================
1. Simulated command *simulated-command*
@@ -787,7 +788,80 @@ message, since that may cause a mapping to be aborted.
The AUX: device of the Amiga is supported.
==============================================================================
6. Command-line arguments *cmdline-arguments*
6. Supported Vi features *vi-features*
Vim supports nearly all Vi commands and mostly in the same way. That is when
the 'compatible' option is set and 'cpoptions' contains all flags. What the
effect is of resetting 'compatible' and removing flags from 'cpoptions' can be
found at the help for the specific command.
Below is listed what features are present in Vi. Anything else has been added
by Vim.
The following Ex commands are supported by Vi: ~
TODO
`:set` but not `:set inv{option}`, `:set option&`, `:set all&`,
`:set option+=value`,
`:set option^=value`
`:set option-=value`
`:set option<`
The following Normal mode commands are supported by Vi: ~
TODO
The following options are supported by Vi: ~
'autoindent' 'ai' take indent for new line from previous line
'autowrite' 'aw' automatically write file if changed
'directory' 'dir' list of directory names for the swap file
'edcompatible' 'ed' toggle flags of ":substitute" command
'errorbells' 'eb' ring the bell for error messages
'ignorecase' 'ic' ignore case in search patterns
'lines' number of lines in the display
'lisp' automatic indenting for Lisp
'list' show <Tab> and <EOL>
'magic' changes special characters in search patterns
'modeline' 'ml' recognize 'modelines' at start or end of file
{called modelines in some Vi versions}
'number' 'nu' print the line number in front of each line
'paragraphs' 'para' nroff macros that separate paragraphs
'prompt' 'prompt' enable prompt in Ex mode
'readonly' 'ro' disallow writing the buffer {Vim sets 'readonly'
when editing a file with `:view`}
'remap' allow mappings to work recursively
'report' threshold for reporting nr. of lines changed
'scroll' 'scr' lines to scroll with CTRL-U and CTRL-D
'sections' 'sect' nroff macros that separate sections
'shell' 'sh' name of shell to use for external commands
'shiftwidth' 'sw' number of spaces to use for (auto)indent step
'showmatch' 'sm' briefly jump to matching bracket if insert one
'showmode' 'smd' message on status line to show current mode
'tabstop' 'ts' number of spaces that <Tab> in file uses
'taglength' 'tl' number of significant characters for a tag
'tags' 'tag' list of file names used by the tag command
'tagstack' 'tgst' push tags onto the tag stack {not in all versions
of Vi}
'term' name of the terminal
'terse' shorten some messages
'timeout' 'to' time out on mappings and key codes
'ttytype' 'tty' alias for 'term'
'verbose' 'vbs' give informative messages {only in some Vi
versions as a boolean option}
'warn' warn for shell command when buffer was changed
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
'wrapmargin' 'wm' chars from the right where wrapping starts
'wrapscan' 'ws' searches wrap around the end of the file
'writeany' 'wa' write to file with no need for "!" override
Also see |missing-options|.
==============================================================================
7. Command-line arguments *cmdline-arguments*
Different versions of Vi have different command-line arguments. This can be
confusing. To help you, this section gives an overview of the differences.
@@ -967,7 +1041,7 @@ Only Vim is able to accept options in between and after the file names.
@{cmdfile} Vile: use {cmdfile} as startup file.
==============================================================================
7. POSIX compliance *posix* *posix-compliance*
8. POSIX compliance *posix* *posix-compliance*
In 2005 the POSIX test suite was run to check the compatibility of Vim. Most
of the test was executed properly. There are the few things where Vim

View File

@@ -1,4 +1,4 @@
*visual.txt* For Vim version 8.1. Last change: 2019 Jan 11
*visual.txt* For Vim version 8.1. Last change: 2019 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -118,6 +118,8 @@ gn Search forward for the last used search pattern, like
E.g., "dgn" deletes the text of the next match.
If Visual mode is active, extends the selection
until the end of the next match.
Note: Unlike `n` the search direction does not depend
on the previous search command.
*gN* *v_gN*
gN Like |gn| but searches backward, like with `N`.

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.1. Last change: 2018 Apr 24
*windows.txt* For Vim version 8.1. Last change: 2019 Mar 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -842,6 +842,12 @@ CTRL-W gF *CTRL-W_gF*
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W gt *CTRL-W_gt*
Go to next tab page, same as `gt`.
CTRL-W gT *CTRL-W_gT*
Go to previous tab page, same as `gT`.
Also see |CTRL-W_CTRL-I|: open window for an included file that includes
the keyword under the cursor.

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Jan 28
" Last Change: 2019 Apr 19
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -42,6 +42,8 @@ endif
" Function used for patterns that end in a star: don't set the filetype if the
" file name matches ft_ignore_pat.
" When using this, the entry should probably be further down below with the
" other StarSetf() calls.
func! s:StarSetf(ft)
if expand("<amatch>") !~ g:ft_ignore_pat
exe 'setf ' . a:ft
@@ -54,6 +56,9 @@ au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
" Abaqus or Trasys
au BufNewFile,BufRead *.inp call dist#ft#Check_inp()
" 8th (Firth-derivative)
au BufNewFile,BufRead *.8th setf 8th
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
@@ -92,9 +97,6 @@ au BufNewFile,BufRead build.xml setf ant
" Arduino
au BufNewFile,BufRead *.ino,*.pde setf arduino
" Apache style config file
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
" Apache config file
au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache
au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache
@@ -652,7 +654,6 @@ au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
" Gitolite
au BufNewFile,BufRead gitolite.conf setf gitolite
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
" Gnuplot scripts
@@ -801,7 +802,6 @@ au BufNewFile,BufRead *.jsp setf jsp
" Java Properties resource file (note: doesn't catch font.properties.pl)
au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties
au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
" Jess
au BufNewFile,BufRead *.clp setf jess
@@ -1174,6 +1174,10 @@ au BufNewFile,BufRead *.rcp setf pilrc
" Pine config
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
" Pipenv Pipfiles
au BufNewFile,BufRead Pipfile setf config
au BufNewFile,BufRead Pipfile.lock setf json
" PL/1, PL/I
au BufNewFile,BufRead *.pli,*.pl1 setf pli
@@ -1459,7 +1463,6 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec
" SGML catalog file
au BufNewFile,BufRead catalog setf catalog
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
@@ -1614,6 +1617,10 @@ au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
" Systemd unit files
au BufNewFile,BufRead */systemd/*.{automount,mount,path,service,socket,swap,target,timer} setf systemd
" Systemd overrides
au BufNewFile,BufRead /etc/systemd/system/*.d/*.conf setf systemd
" Systemd temp files
au BufNewFile,BufRead /etc/systemd/system/*.d/.#* setf systemd
" Synopsys Design Constraints
au BufNewFile,BufRead *.sdc setf sdc
@@ -1696,6 +1703,9 @@ au BufNewFile,BufReadPost *.tsscl setf tsscl
" TWIG files
au BufNewFile,BufReadPost *.twig setf twig
" Typescript
au BufNewFile,BufReadPost *.ts setf typescript
" Motif UIT/UIL files
au BufNewFile,BufRead *.uit,*.uil setf uil
@@ -1736,7 +1746,6 @@ au BufNewFile,BufRead *.sv,*.svh setf systemverilog
" VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
" Vim script
au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim
@@ -1858,7 +1867,8 @@ au BufNewFile,BufRead *.xmi setf xml
au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
" Qt Linguist translation source and Qt User Interface Files are XML
au BufNewFile,BufRead *.ts,*.ui setf xml
" However, for .ts Typescript is more common.
au BufNewFile,BufRead *.ui setf xml
" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
au BufNewFile,BufRead *.tpm setf xml
@@ -1949,6 +1959,7 @@ au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
" More Apache style config files
au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle')
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
" More Apache config files
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
@@ -2005,6 +2016,12 @@ au BufNewFile,BufRead *fvwm2rc*
" Gedcom
au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom')
" Git
au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig')
" Gitolite
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
" GTK RC
au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc')
@@ -2017,6 +2034,9 @@ au! BufNewFile,BufRead *jarg*
\| call s:StarSetf('jargon')
\|endif
" Java Properties resource file (note: doesn't catch font.properties.pl)
au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
" Kconfig
au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
@@ -2078,6 +2098,9 @@ au BufRead,BufNewFile *.rdf call dist#ft#Redif()
" Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
" SGML catalog file
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts ending in a star
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
@@ -2089,6 +2112,9 @@ au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
" csh scripts ending in a star
au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
" VHDL
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
" Vim script
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')

25
runtime/ftplugin/8th.vim Normal file
View File

@@ -0,0 +1,25 @@
" Vim ftplugin file
" Language: 8th
" Version: any
" Last Change: 2015/11/08
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: 8th allows any non-whitespace in a name, so you need to do:
" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
" This goes with the syntax/8th.vim file.
" Only do this when not done yet for this buffer
if exists("b:did_8thplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_8thplugin = 1
setlocal ts=2 sts=2 sw=2 et
setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
setlocal suffixesadd=.8th

View File

@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: cobol
" Author: Tim Pope <vimNOSPAM@tpope.info>
" Last Update: By ZyX: use shiftwidth()
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
" Last Update: By Ankit Jain (changed maintainer) on 22.03.2019
" Insert mode mappings: <C-T> <C-D> <Tab>
" Normal mode mappings: < > << >> [[ ]] [] ][

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: MS-DOS .bat files
" Maintainer: Mike Williams <mrw@eandem.co.uk>
" Last Change: 8th May 2012
" Last Change: 14th April 2019
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -16,6 +16,7 @@ set cpo&vim
" BAT comment formatting
setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
setlocal commentstring=::\ %s
setlocal formatoptions-=t formatoptions+=rol
" Define patterns for the browse file filter

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Make
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Apr 22
" Last Change: 2019 Apr 02
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -27,7 +27,7 @@ setlocal commentstring=#\ %s
" Including files.
let &l:include = '^\s*include'
" For matchit.vim, suggested by Albert Netymk.
" For matchit.vim, suggested by Albert Netymk and Ken Takata.
if exists("loaded_matchit")
let b:match_words = '\<if\(n\)\=\(eq\|def\)\>:\<else\>:\<endif\>,\<define\>:\<endef\>'
let b:match_words = '^ *ifn\=\(eq\|def\)\>:^ *else\(\s\+ifn\=\(eq\|def\)\)\=\>:^ *endif\>,\<define\>:\<endef\>,^!\s*if\(n\=def\)\=\>:^!\s*else\(if\(n\=def\)\=\)\=\>:^!\s*endif\>'
endif

View File

@@ -3,7 +3,7 @@
" Maintainer: Tom Picton <tom@tompicton.co.uk>
" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Sun, 15 April 2018
" Last Change: Sun 17 Mar 2019
" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -37,9 +37,10 @@ setlocal suffixesadd=.py
setlocal comments=b:#,fb:-
setlocal commentstring=#\ %s
setlocal omnifunc=pythoncomplete#Complete
if has('python3')
setlocal omnifunc=python3complete#Complete
setlocal omnifunc=python3complete#Complete
elseif has('python')
setlocal omnifunc=pythoncomplete#Complete
endif
set wildignore+=*.pyc
@@ -53,32 +54,34 @@ let b:prev='\v^\s*(class\|def\|async def)>'
let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
if !exists('g:no_plugin_maps') && !exists('g:no_python_maps')
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', v:count1, 0)<cr>"
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', v:count1, 0)<cr>"
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', v:count1, 0)<cr>"
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
endif
if !exists('*<SID>Python_jump')
fun! <SID>Python_jump(mode, motion, flags, count, ...) range
@@ -123,10 +126,80 @@ if !exists('g:pydoc_executable')
let g:pydoc_executable = 0
endif
endif
" Windows-specific pydoc setup
if has('win32') || has('win64')
if executable('python')
" available as Tools\scripts\pydoc.py
let g:pydoc_executable = 1
else
let g:pydoc_executable = 0
endif
endif
" If "pydoc" was found use it for keywordprg.
if g:pydoc_executable
setlocal keywordprg=pydoc
if has('win32') || has('win64')
setlocal keywordprg=python\ -m\ pydoc\
else
setlocal keywordprg=pydoc
endif
endif
" Script for filetype switching to undo the local stuff we may have changed
let b:undo_ftplugin = 'setlocal cinkeys<'
\ . '|setlocal comments<'
\ . '|setlocal commentstring<'
\ . '|setlocal expandtab<'
\ . '|setlocal include<'
\ . '|setlocal includeexpr<'
\ . '|setlocal indentkeys<'
\ . '|setlocal keywordprg<'
\ . '|setlocal omnifunc<'
\ . '|setlocal shiftwidth<'
\ . '|setlocal softtabstop<'
\ . '|setlocal suffixesadd<'
\ . '|setlocal tabstop<'
\ . '|silent! nunmap <buffer> [M'
\ . '|silent! nunmap <buffer> [['
\ . '|silent! nunmap <buffer> []'
\ . '|silent! nunmap <buffer> [m'
\ . '|silent! nunmap <buffer> ]M'
\ . '|silent! nunmap <buffer> ]['
\ . '|silent! nunmap <buffer> ]]'
\ . '|silent! nunmap <buffer> ]m'
\ . '|silent! ounmap <buffer> [M'
\ . '|silent! ounmap <buffer> [['
\ . '|silent! ounmap <buffer> []'
\ . '|silent! ounmap <buffer> [m'
\ . '|silent! ounmap <buffer> ]M'
\ . '|silent! ounmap <buffer> ]['
\ . '|silent! ounmap <buffer> ]]'
\ . '|silent! ounmap <buffer> ]m'
\ . '|silent! xunmap <buffer> [M'
\ . '|silent! xunmap <buffer> [['
\ . '|silent! xunmap <buffer> []'
\ . '|silent! xunmap <buffer> [m'
\ . '|silent! xunmap <buffer> ]M'
\ . '|silent! xunmap <buffer> ]['
\ . '|silent! xunmap <buffer> ]]'
\ . '|silent! xunmap <buffer> ]m'
\ . '|unlet! b:browsefilter'
\ . '|unlet! b:child_match'
\ . '|unlet! b:child_sub'
\ . '|unlet! b:grandparent_match'
\ . '|unlet! b:grandparent_sub'
\ . '|unlet! b:next'
\ . '|unlet! b:next_end'
\ . '|unlet! b:next_endtoplevel'
\ . '|unlet! b:next_toplevel'
\ . '|unlet! b:parent_match'
\ . '|unlet! b:parent_sub'
\ . '|unlet! b:prev'
\ . '|unlet! b:prev_end'
\ . '|unlet! b:prev_endtoplevel'
\ . '|unlet! b:prev_toplevel'
\ . '|unlet! b:undo_ftplugin'
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -30,7 +30,7 @@ setlocal formatoptions+=tcroql
"
" More sophisticated indentation rules should be revisted in the future.
if !exists("g:rst_style") || g:rst_style != 0
if exists("g:rst_style") && g:rst_style != 0
setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
endif

View File

@@ -1,12 +1,23 @@
# The gvim.desktop file is generated by src/po/Makefile, do NOT edit.
# Edit the src/po/gvim.desktop.in file instead.
[Desktop Entry]
Name=gVim
# Translators: This is the Application Name used in the GVim desktop file
Name[de]=GVim
Name=GVim
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[de]=Texteditor
GenericName=Text Editor
# Translators: This is the comment used in the Vim desktop file
Comment[de]=Textdateien bearbeiten
Comment=Edit text files
# The translations should come from the po file. Leave them here for now, they will
# be overwritten by the po file when generating the desktop.file!
GenericName[da]=Teksteditor
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[fr]=Éditeur de texte
GenericName[pl]=Edytor tekstu
Comment=Edit text files
GenericName[is]=Ritvinnsluforrit
Comment[af]=Redigeer tekslêers
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
Comment[ar]=حرّر ملفات نصية
@@ -37,6 +48,7 @@ Comment[hi]=पाठ फ़ाइलें संपादित करें
Comment[hr]=Uređivanje tekstualne datoteke
Comment[hu]=Szövegfájlok szerkesztése
Comment[id]=Edit file teks
Comment[is]=Vinna með textaskrár
Comment[it]=Modifica file di testo
Comment[ja]=テキストファイルを編集します
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
@@ -79,7 +91,11 @@ TryExec=gvim
Exec=gvim -f %F
Terminal=false
Type=Application
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[de]=Text;Editor;
Keywords=Text;editor;
# Translators: This is the Icon file name. Do NOT translate
Icon[de]=gvim
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=true

View File

@@ -11,4 +11,4 @@ test:
clean:
VIMRUNTIME=$(VIMRUNTIME) $(VIM) --clean --not-a-term -u testdir/cleantest.vim
rm -f testdir/*.fail testdir/*.out

View File

@@ -1,7 +1,12 @@
" Vim indent file
" Language: cobol
" Author: Tim Pope <vimNOSPAM@tpope.info>
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
" $Id: cobol.vim,v 1.1 2007/05/05 18:08:19 vimboss Exp $
" Last Update: By Ankit Jain on 22.03.2019
" Ankit Jain 22.03.2019 Changes & fixes:
" Allow chars in 1st 6 columns
" #C22032019
if exists("b:did_indent")
finish
@@ -66,7 +71,9 @@ function! GetCobolIndent(lnum) abort
let ashft = minshft + 1
let bshft = ashft + 4
" (Obsolete) numbered lines
if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)'
" #C22032019: Columns 1-6 could have alphabets as well as numbers
"if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)'
if getline(a:lnum) =~? '^\s*[a-zA-Z0-9]\{6\}\%($\|[ */$CD-]\)'
return 0
endif
let cline = s:stripped(a:lnum)

View File

@@ -2,7 +2,7 @@
" Header: "{{{
" Maintainer: Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de>
" Last Change: 2018 Mar 28
" Last Change: 2019 Mar 20
" Version: 1.0
" Description: HTML indent script with cached state for faster indenting on a
" range of lines.
@@ -902,12 +902,19 @@ func! s:InsideTag(foundHtmlString)
"{{{
if a:foundHtmlString
" Inside an attribute string.
" Align with the previous line or use an external function.
" Align with the opening quote or use an external function.
let lnum = v:lnum - 1
if lnum > 1
if exists('b:html_indent_tag_string_func')
return b:html_indent_tag_string_func(lnum)
endif
" If there is a double quote in the previous line, indent with the
" character after it.
if getline(lnum) =~ '"'
call cursor(lnum, 0)
normal f"
return virtcol('.')
endif
return indent(lnum)
endif
endif

View File

@@ -2,7 +2,7 @@
" Language: Python
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Original Author: David Bustos <bustos@caltech.edu>
" Last Change: 2013 Jul 9
" Last Change: 2019 Feb 21
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -53,58 +53,68 @@ function GetPythonIndent(lnum)
return 0
endif
" searchpair() can be slow sometimes, limit the time to 100 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
call cursor(plnum, 1)
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
let plindent = indent(parlnum)
let plnumstart = parlnum
else
" Identing inside parentheses can be very slow, regardless of the searchpair()
" timeout, so let the user disable this feature if he doesn't need it
let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
if disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
endif
else
" searchpair() can be slow sometimes, limit the time to 150 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
let plindent = indent(parlnum)
let plnumstart = parlnum
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif

View File

@@ -3,10 +3,16 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Latest Revision: 2019-02-02
" Latest Revision: 2019-03-25
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
" 20190325 - Indent fi; correctly
" https://github.com/chrisbra/vim-sh-indent/issues/14
" 20190319 - Indent arrays (only zsh and bash)
" https://github.com/chrisbra/vim-sh-indent/issues/13
" 20190316 - Make use of searchpairpos for nested if sections
" fixes https://github.com/chrisbra/vim-sh-indent/issues/11
" 20190201 - Better check for closing if sections
" 20180724 - make check for zsh syntax more rigid (needs word-boundaries)
" 20180326 - better support for line continuation
@@ -86,6 +92,12 @@ function! GetShIndent()
if line !~ '}\s*\%(#.*\)\=$'
let ind += s:indent_value('default')
endif
" array (only works for zsh or bash)
elseif s:is_array(line) && line !~ ')\s*$' && (&ft is# 'zsh' || s:is_bash())
let ind += s:indent_value('continuation-line')
" end of array
elseif curline =~ '^\s*)$'
let ind -= s:indent_value('continuation-line')
elseif s:is_continuation_line(line)
if pnum == 0 || !s:is_continuation_line(pline)
let ind += s:indent_value('continuation-line')
@@ -114,8 +126,8 @@ function! GetShIndent()
let line = curline
" Current line is a endif line, so get indent from start of "if condition" line
" TODO: should we do the same for other "end" lines?
if curline =~ '^\s*\%(fi\)\s*\%(#.*\)\=$'
let previous_line = search('if.\{-\};\s*then\s*\%(#.*\)\=$', 'bnW')
if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$'
let previous_line = searchpair('\<if\>', '', '\<fi\>', 'bnW')
if previous_line > 0
let ind = indent(previous_line)
endif
@@ -179,6 +191,10 @@ function! s:is_function_definition(line)
\ a:line =~ '^\s*function\s*\w\S\+\s*\%(()\)\?\s*{'
endfunction
function! s:is_array(line)
return a:line =~ '^\s*\<\k\+\>=('
endfunction
function! s:is_case_label(line, pnum)
if a:line !~ '^\s*(\=.*)'
return 0
@@ -272,5 +288,9 @@ function! s:is_end_expression(line)
return a:line =~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
endfunction
function! s:is_bash()
return get(g:, 'is_bash', 0) || get(b:, 'is_bash', 0)
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -82,9 +82,9 @@ RUNNING THE TEST
Before running the test, create a FILETYPE.ok file. You can leave it empty at
first.
Now run "make test". After Vim has done the indenting you will see a
FILETYPE.fail file. This contains the actual result of indenting, and it's
different from the FILETYPE.ok file.
Now run "make test" from the parent directory. After Vim has done the
indenting you will see a FILETYPE.fail file. This contains the actual result
of indenting, and it's different from the FILETYPE.ok file.
Check the contents of the FILETYPE.fail file. If it is perfectly OK, then
rename it to overwrite the FILETYPE.ok file. If you now run "make test" again,

View File

@@ -1,11 +0,0 @@
" Only do this with the +eval feature
if 1
" Deletes all the test output files: *.fail and *.out
for fname in glob('testdir/*.out', 1, 1) + glob('testdir/*.fail', 1, 1)
call delete(fname)
endfor
endif
quit

View File

@@ -9,17 +9,17 @@
</div>
<div
class="foo bar">
class="foo bar">
text
</div>
<div class="foo bar"
data="something">
data="something">
text
</div>
<div class="foo
bar">
bar">
text
</div>

View File

@@ -7,6 +7,7 @@ if 1
set nocp
filetype indent on
syn on
set nowrapscan
set report=9999
@@ -111,7 +112,6 @@ for fname in glob('testdir/*.in', 1, 1)
if failed
exe 'write ' . root . '.fail'
echoerr 'Test ' . fname . ' FAILED!'
sleep 2
else
exe 'write ' . root . '.out'
endif

View File

@@ -10,11 +10,11 @@
<!-- text comment -->
<!--
text comment
text comment
-->
</tag1>
<!--
text comment
text comment
end coment -->
</tag0>
<!-- END_INDENT -->

View File

@@ -1,9 +1,11 @@
" Language: xml
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
" Last Changed: Jan 28, 2019
" Last Changed: Feb 04, 2019
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change:
" 20190204 - correctly handle wrap tags
" https://github.com/chrisbra/vim-xml-ftplugin/issues/5
" 20190128 - Make sure to find previous tag
" https://github.com/chrisbra/vim-xml-ftplugin/issues/4
" 20181116 - Fix indentation when tags start with a colon or an underscore
@@ -74,13 +76,20 @@ fun! <SID>XmlIndentSynCheck(lnum)
endfun
" [-- return the sum of indents of a:lnum --]
fun! <SID>XmlIndentSum(lnum, style, add)
let line = getline(a:lnum)
if a:style == match(line, '^\s*</')
fun! <SID>XmlIndentSum(line, style, add)
if <SID>IsXMLContinuation(a:line) && a:style == 0
" no complete tag, add one additional indent level
" but only for the current line
return a:add + shiftwidth()
elseif <SID>HasNoTagEnd(a:line)
" no complete tag, return initial indent
return a:add
endif
if a:style == match(a:line, '^\s*</')
return (shiftwidth() *
\ (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
\ (<SID>XmlIndentWithPattern(a:line, b:xml_indent_open)
\ - <SID>XmlIndentWithPattern(a:line, b:xml_indent_close)
\ - <SID>XmlIndentWithPattern(a:line, '.\{-}/>'))) + a:add
else
return a:add
endif
@@ -89,19 +98,24 @@ endfun
" Main indent function
fun! XmlIndentGet(lnum, use_syntax_check)
" Find a non-empty line above the current line.
let plnum = prevnonblank(a:lnum - 1)
" Hit the start of the file, use zero indent.
if plnum == 0
if prevnonblank(a:lnum - 1) == 0
" Hit the start of the file, use zero indent.
return 0
endif
" Find previous line with a tag (regardless whether open or closed,
" but always start restrict the match to a line before the current one
" Note: xml declaration: <?xml version="1.0"?>
" won't be found, as it is not a legal tag name
let ptag_pattern = '\%(.\{-}<[/:A-Z_a-z]\)'. '\%(\&\%<'. line('.').'l\)'
let ptag = search(ptag_pattern, 'bnw')
let ptag = search(ptag_pattern, 'bnW')
" no previous tag
if ptag == 0
return 0
endif
let syn_name = ''
if a:use_syntax_check
let check_lnum = <SID>XmlIndentSynCheck(plnum)
let check_lnum = <SID>XmlIndentSynCheck(ptag)
let check_alnum = <SID>XmlIndentSynCheck(a:lnum)
if check_lnum == 0 || check_alnum == 0
return indent(a:lnum)
@@ -113,18 +127,31 @@ fun! XmlIndentGet(lnum, use_syntax_check)
return <SID>XmlIndentComment(a:lnum)
endif
let pline = getline(ptag)
let pind = indent(ptag)
" Get indent from previous tag line
let ind = <SID>XmlIndentSum(ptag, -1, indent(ptag))
let ind = <SID>XmlIndentSum(pline, -1, pind)
let t_ind = ind
" Determine indent from current line
let ind = <SID>XmlIndentSum(a:lnum, 0, ind)
let ind = <SID>XmlIndentSum(getline(a:lnum), 0, ind)
return ind
endfun
func! <SID>IsXMLContinuation(line)
" Checks, whether or not the line matches a start-of-tag
return a:line !~ '^\s*<'
endfunc
func! <SID>HasNoTagEnd(line)
" Checks whether or not the line matches '>' (so finishes a tag)
return a:line !~ '>\s*$'
endfunc
" return indent for a commented line,
" the middle part might be indented on additional level
func! <SID>XmlIndentComment(lnum)
let ptagopen = search(b:xml_indent_open, 'bnw')
let ptagclose = search(b:xml_indent_close, 'bnw')
let ptagopen = search(b:xml_indent_open, 'bnW')
let ptagclose = search(b:xml_indent_close, 'bnW')
if getline(a:lnum) =~ '<!--'
" if previous tag was a closing tag, do not add
" one additional level of indent
@@ -136,10 +163,10 @@ func! <SID>XmlIndentComment(lnum)
endif
elseif getline(a:lnum) =~ '-->'
" end of comment, same as start of comment
return indent(search('<!--', 'bnw'))
return indent(search('<!--', 'bnW'))
else
" middle part of comment, add one additional level
return indent(search('<!--', 'bnw')) + shiftwidth()
return indent(search('<!--', 'bnW')) + shiftwidth()
endif
endfunc

View File

@@ -368,6 +368,95 @@ let g:menutrans_spell_change_ARG_to = 'Ændr\ "%s"\ til'
let g:menutrans_spell_add_ARG_to_word_list = 'Tilføj\ "%s"\ til\ ordliste'
let g:menutrans_spell_ignore_ARG = 'Ignorer "%s"'
" Forsøg på at oversætte netrw-menuen
menut Help<tab><F1> Hjælp<tab><F1>
" -Sep1-
menut Go\ Up\ Directory<tab>- \ mappe\ op<tab>-
menut Apply\ Special\ Viewer<tab>x Anvend\ speciel\ fremviser<tab>x
menut Bookmarks\ and\ History Bogmærker\ og\ historik<tab>:echo "(disabled)"
menut Bookmark\ Current\ Directory<tab>mb Sæt\ bogmærke\ for\ nuværende\ mappe<tab>mb
menut Goto\ Prev\ Dir\ (History)<tab>u \ til\ forrige\ mappe\ (historik)<tab>u
menut Goto\ Next\ Dir\ (History)<tab>U \ til\ næste\ mappe\ (historik)<tab>U
menut List<tab>qb Oplist<tab>qb
menut Browsing\ Control Gennemgangskontol
menut Horizontal\ Split<tab>o Vandret\ opdeling<tab>o
menut Vertical\ Split<tab>v Lodret\ opdeling<tab>v
menut New\ Tab<tab>t Nyt\ faneblad<tab>t
menut Preview<tab>p Forhåndsvis<tab>p
menut Edit\ File\ Hiding\ List<tab><ctrl-h> Rediger\ liste\ til\ filskjulning
menut Edit\ Sorting\ Sequence<tab>S Rediger\ sorteringssekvens<tab>S
menut Quick\ Hide/Unhide\ Dot\ Files<tab>gh Hurtig\ skjul/vis\ punktum-filer<tab>gh
menut Refresh\ Listing<tab><ctrl-l> Genopfrisk\ oplistning<tab>\<c-l> ikke sikker det med \ er korrekt
menut Settings/Options<tab>:NetrwSettings Indstillinger/valgmuligheder<tab>
menut Delete\ File/Directory<tab>D Slet\ fil/mappe<tab>D
menut Edit\ File/Dir Rediger\ fil/mappe
menut Create\ New\ File<tab>% Opret\ ny\ fil<tab>%
menut In\ Current\ Window<tab><cr> I\ nuværende\ vindue<tab>
menut Preview\ File/Directory<tab>p Forhåndsvis\ fil/mappe<tab>p
menut In\ Previous\ Window<tab>P I\ forrige\ vindue<tab>P
menut In\ New\ Window<tab>o I\ nyt\ vindue<tab>o
menut In\ New\ Tab<tab>t I\ nyt\ faneblad<tab>t
menut In\ New\ Vertical\ Window<tab>v I\ nyt\ lodret\ vindue<tab>v
menut Explore Gennemse
menut Directory\ Name Mappenavn<tab>:Explore
menut Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */ test29<tab>:Explore */
menut Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/ test30<tab>:Explore **/
menut Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *// test31<tab>:Explore *//
menut Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **// test32<tab>:Explore **//
menut Next\ Match<tab>:Nexplore Næste\ match<tab>:Nexplore<cr>
menut Prev\ Match<tab>:Pexplore Forrige\ match<tab>:Pexplore<cr>
menut Make\ Subdirectory<tab>d Opret\ undermappe<tab>d
menut Marked\ Files Mærkede\ filer
menut Mark\ File<tab>mf Mærk\ fil<tab>mf
menut Mark\ Files\ by\ Regexp<tab>mr Mærk\ filer\ efter\ regulært\ udtrk<tab>mr
menut Hide-Show-List\ Control<tab>a test38<tab>a
menut Copy\ To\ Target<tab>mc Kopiér\ til\ mål<tab>mc
menut Delete<tab>D Slet<tab>D
menut Diff<tab>md Diff<tab>md
menut Edit<tab>me Rediger<tab>me
menut Exe\ Cmd<tab>mx test43<tab>mx
menut Move\ To\ Target<tab>mm Flyt\ til\ mål<tab>mm
menut Obtain<tab>O Indhent<tab>O
menut Print<tab>mp Udskriv<tab>mp
menut Replace<tab>R Erstat<tab>R
menut Set\ Target<tab>mt Sæt\ mål<tab>mt
menut Tag<tab>mT test49<tab>mT
menut Zip/Unzip/Compress/Uncompress<tab>mz Zip/unzip/komprimér/udpak<tab>mz
menut Obtain\ File<tab>O Indhent\ fil<tab>O
menut Style Stile
menut Listing Oplisting
menut thin<tab>i tynd
menut long<tab>i lang
menut wide<tab>i bred
menut tree<tab>i træ
menut Normal-Hide-Show Normal-skjul-vis
menut Show\ All<tab>a Vis\ alle<tab>
menut Normal<tab>a Normal<tab>
menut Hidden\ Only<tab>a Kun\ skulte<tab>
menut Reverse\ Sorting\ Order<tab> Omvendt\ sorteringsrækkefølge
menut Sorting\ Method Sorteringsmetode
menut Name<tab>s Navn
menut Time<tab>s Tidspunkt
menut Size<tab>s Størrelse
menut Exten<tab>s Endelse
menut Rename\ File/Directory<tab>R Omdøb\ fil/mappe<tab>R
menut Set\ Current\ Directory<tab>c Sæt\ nuværende\ mappe<tab>c
menut History Historik
menut Targets Mål
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -1,8 +1,9 @@
" Menu Translations: German / Deutsch
" Maintainer: Georg Dahn <gorgyd@yahoo.co.uk>
" Originally By: Marcin Dalecki <dalecki@cs.net.pl>
" Johannes Zellner <johannes@zellner.org>
" Last Change: Sat, 11 Mar 2006 22:40:00 CEST
" Maintainer: J<EFBFBD>n Arnar Briem <jonbriem@gmail.com>
" Originally By: Georg Dahn <gorgyd@yahoo.co.uk>
" Marcin Dalecki <dalecki@cs.net.pl>
" Johannes Zellner <johannes@zellner.org>
" Last Change: Mon, 1 April 2019
" vim:set foldmethod=marker tabstop=8:
" Quit when menu translations have already been done.
@@ -60,8 +61,8 @@ menutrans &Global\ Settings &Globale\ Einstellungen
menutrans Startup\ &Settings &Starteinstellungen
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! &Hervorhebungen\ ein-\ und\ ausschalten<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Gro<EFBFBD>schreibung\ &ignorieren\ oder\ benutzen<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Anzeige\ des\ passenden\ &Symbols\ ein-\ und\ ausschalten<Tab>:set\ sm!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Gro<EFBFBD>schreibung\ &ignorieren\ oder\ benutzen<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Anzeige\ des\ passenden\ &Symbols\ ein-\ und\ ausschalten<Tab>:set\ sm!
menutrans &Context\ lines &Zusammenhang
@@ -87,13 +88,13 @@ menutrans F&ile\ Settings &Datei-Einstellungen
" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Anzeige\ der\ Zeilen&nummer\ ein-\ und\ ausschalten<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Anzeige\ der\ relati&ven\ Zeilennummer\ ein-\ und\ ausschalten<Tab>:set\ rnu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Anzeige\ der\ relati&ven\ Zeilennummer\ ein-\ und\ ausschalten<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! &List-Modus\ ein-\ und\ ausschalten<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &Zeilenumbruch\ ein-\ und\ ausschalten<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Umbruch\ an\ &Wortgrenzen\ ein-\ und\ ausschalten<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! &Erweiterung\ von\ Tabulatoren\ ein-\ und\ ausschalten<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! &Automatische\ Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &C-Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ cin!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! &Zeilenumbruch\ ein-\ und\ ausschalten<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! Umbruch\ an\ &Wortgrenzen\ ein-\ und\ ausschalten<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! &Erweiterung\ von\ Tabulatoren\ ein-\ und\ ausschalten<Tab>:set\ et!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! &Automatische\ Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ cin!
" other options
menutrans &Shiftwidth &Schiebeweite
@@ -146,7 +147,7 @@ if has("folding")
menutrans &Delete\ Fold<Tab>zd Faltung\ l<EFBFBD>schen<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Alle\ Faltungen\ l<EFBFBD>schen<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width &Breite\ der\ Faltungsspalte
menutrans Fold\ col&umn\ width &Breite\ der\ Faltungsspalte
endif " has folding
if has("diff")
@@ -236,6 +237,7 @@ menutrans &How-to\ links How-to\ &Index
menutrans &GUI &Graphische\ Oberfl<EFBFBD>che
menutrans &Credits &Autoren
menutrans Co&pying &Urheberrecht
menutrans &Sponsor/Register Sponsern/&Registrieren
menutrans O&rphans &Waisen
menutrans &Find\.\.\. &Suchen\.\.\. " conflicts with Edit.Find
menutrans &Version &Version

View File

@@ -0,0 +1,3 @@
" Menu Translations: Icelandic for iso-8859-1 encoding
source <sfile>:p:h/menu_is_is.latin1.vim

View File

@@ -0,0 +1,3 @@
" Menu Translations: Icelandic for UTF-8 encoding
source <sfile>:p:h/menu_is_is.latin1.vim

View File

@@ -0,0 +1,305 @@
" Menu Translations: Icelandic / <20>slenska
" Maintainer: J<>n Arnar Briem <jonbriem@gmail.com>
" Originally By: J<>n Arnar Briem <jonbriem@gmail.com>
" Last Change: Sun, 24 Mar 2019 22:40:00 CEST
" vim:set foldmethod=marker tabstop=8:
" Quit when menu translations have already been done.
if exists("did_menu_trans")
finish
endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
" The translations below are in latin1, but they work for cp1252 and
" iso-8859-15 without conversion as well.
if &enc != "cp1252" && &enc != "iso-8859-15"
scriptencoding latin1
endif
" {{{ FILE / SKR<4B>
menutrans &File Skr<EFBFBD>
menutrans &Open\.\.\.<Tab>:e Opna\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp Splitt\ opna\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew Opna\ flipa\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew N<EFBFBD>\ Skr<EFBFBD><Tab>:enew
menutrans &Close<Tab>:close Loka<Tab>:close
menutrans &Save<Tab>:w Vista<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav Vista\ sem\.\.\.<Tab>:sav
menutrans &Print Prenta
menutrans Sa&ve-Exit<Tab>:wqa Vista\ og\ Loka<Tab>:wqa
menutrans E&xit<Tab>:qa Loka<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Splitt\ opna\ mismun\ vi<EFBFBD>\.\.\.
menutrans Split\ Patched\ &By\.\.\. Splitt\ opna\ pl<EFBFBD>stra<EFBFBD>\ af\.\.\.
endif
" }}} FILE / SKR<4B>
" {{{ EDIT / BREYTA
menutrans &Edit Breyta
menutrans &Undo<Tab>u Afturkalla<Tab>u
menutrans &Redo<Tab>^R Endurkalla<Tab>^R
menutrans Rep&eat<Tab>\. Endurtaka<Tab>\.
menutrans Cu&t<Tab>"+x Klippa<Tab>"+x
menutrans &Copy<Tab>"+y Afrita<Tab>"+y
menutrans &Paste<Tab>"+gP L<>ma<Tab>"+gP
menutrans Put\ &Before<Tab>[p L<EFBFBD>ma\ Fyrir<Tab>[p
menutrans Put\ &After<Tab>]p L<EFBFBD>ma\ Eftir<Tab>]p
menutrans &Delete<Tab>x Ey<EFBFBD>a<Tab>x
menutrans &Select\ All<Tab>ggVG Velja\ Allt<Tab>ggVG
menutrans &Find\.\.\. Finna\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Finna\ og\ Skipta\.\.\.
" [-- SETTINGS --]
menutrans Settings\ &Window Stillingar\ Glugga
menutrans &Global\ Settings V<EFBFBD><EFBFBD>v<EFBFBD>rar\ Stillingar
menutrans Startup\ &Settings R<EFBFBD>sistillingar
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Munsturau<EFBFBD>kenning\ <20>\/af<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Hunsa\ h<EFBFBD>-l<EFBFBD>gstafi\ <20>\/af<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! S<EFBFBD>na\ P<EFBFBD>run <20>\/af<Tab>:set\ sm!
menutrans &Context\ lines Samhengisl<EFBFBD>nur
menutrans &Virtual\ Edit Skinbreytihamur
menutrans Never Aldrei
menutrans Block\ Selection B<EFBFBD>lkval
menutrans Insert\ mode Innskotshamur
menutrans Block\ and\ Insert B<EFBFBD>lkval\ og\ Innskotshamur
menutrans Always Alltaf
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Innskotshamur\ <20>\/af<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! Vi\ Samh<EFBFBD>fanleiki <20>\/af<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Leita\ <20>\ Sl<EFBFBD><EFBFBD>\.\.\.
menutrans Ta&g\ Files\.\.\. Merkja\ Skr<EFBFBD>r\.\.\.
menutrans Toggle\ &Toolbar T<EFBFBD>labor<EFBFBD>\ <20>\/af
menutrans Toggle\ &Bottom\ Scrollbar Ne<EFBFBD>ri\ Skrunbor<EFBFBD>i\ <20>\/af
menutrans Toggle\ &Left\ Scrollbar Vinstri\ Skrunbor<EFBFBD>i\ <20>\/af
menutrans Toggle\ &Right\ Scrollbar H<EFBFBD>gri\ Skrunbor<EFBFBD>i\ <20>\/af
" Edit/File Settings
menutrans F&ile\ Settings Skr<EFBFBD>ar-Stilingar
" Boolean options
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! L<EFBFBD>nun<EFBFBD>mering\ <20>\/af<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Afst<EFBFBD><EFBFBD>\ L<EFBFBD>nun<EFBFBD>mering\ <20>\/af<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Listahamur\ <20>\/af<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! L<EFBFBD>nuhlaup\ <20>\/af<Tab>:set\ wrap!
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! L<EFBFBD>nuhlaup\ <20>\ or<EFBFBD>i\ <20>\/af<Tab>:set\ lbr!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Tab-v<EFBFBD>kkun\ <20>\/af<Tab>:set\ et!
menutrans Toggle\ &Auto Indenting<Tab>:set\ ai! Sj<EFBFBD>lfvirkur\ Inndr<EFBFBD>ttur\ <20>\/af<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! C-Inndr<EFBFBD>ttur\ <20>\/af<Tab>:set\ cin!
" other options
menutrans &Shiftwidth Shiftbreidd
menutrans Soft\ &Tabstop Mj<EFBFBD>k\ Tabstopp
menutrans Te&xt\ Width\.\.\. Textabreidd\.\.\.
menutrans &File\ Format\.\.\. Skr<EFBFBD>arform\.\.\.
menutrans C&olor\ Scheme Lita<EFBFBD>ema\.\.\.
menutrans &Keymap Lyklaskipan
" }}} EDIT / BREYTA
" {{{ TOOLS / T<>l
if has("spell")
menutrans &Spelling Stafsetning
menutrans &Spell\ Check\ On Villuleit\ <20>
menutrans Spell\ Check\ &Off Villuleit\ af
menutrans To\ &Next\ error<Tab>]s N<EFBFBD>sta\ Villa<Tab>]s
menutrans To\ &Previous\ error<Tab>[s Fyrri\ Villa<Tab>[s
menutrans Suggest\ &Corrections<Tab>z= Leggja\ til\ Lei<EFBFBD>r<EFBFBD>ttingar<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall Endurtaka\ Lei<EFBFBD>r<EFBFBD>ttingu<Tab>:spellrepall
menutrans Set\ language\ to\ "en" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en"
menutrans Set\ language\ to\ "en_au" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_au"
menutrans Set\ language\ to\ "en_ca" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_ca"
menutrans Set\ language\ to\ "en_gb" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_gb"
menutrans Set\ language\ to\ "en_nz" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_nz"
menutrans Set\ language\ to\ "en_us" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_us"
menutrans &Find\ More\ Languages Finna\ fleiri\ Or<EFBFBD>ab<EFBFBD>kur
endif
if has("folding")
menutrans &Folding F<EFBFBD>ldun
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi F<>ldun\ <20>\/af<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv Sj<EFBFBD>\ L<EFBFBD>nu\ Bendils<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Sj<EFBFBD>\ Eing<EFBFBD>ngu\ L<EFBFBD>nu\ Bendils<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm Loka\ Fleiri\ F<EFBFBD>ldunum<Tab>zm
menutrans &Close\ all\ folds<Tab>zM Loka\ <20>llum\ F<EFBFBD>ldunum<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr Opna\ Fleiri\ Faldanir<Tab>zr
menutrans &Open\ all\ folds<Tab>zR Opna\ Allar\ Faldanir<Tab>zR
" fold method
menutrans Fold\ Met&hod F<EFBFBD>ldunar-h<EFBFBD>ttur
menutrans M&anual Handvirkur
menutrans I&ndent Inndr<EFBFBD>ttur
menutrans E&xpression Seg<EFBFBD>
menutrans S&yntax M<EFBFBD>lskipan
menutrans &Diff Mismunur
menutrans Ma&rker Merking
" create and delete folds
menutrans Create\ &Fold<Tab>zf B<EFBFBD>a\ til\ F<EFBFBD>ldun<Tab>zf
menutrans &Delete\ Fold<Tab>zd Ey<EFBFBD>a\ F<EFBFBD>ldun<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Ey<EFBFBD>a\ <20>llum\ F<EFBFBD>ldunum<Tab>zD
" moving around in folds
menutrans Fold\ Col&umn\ Width Breidd\ F<EFBFBD>ldunar
endif " has folding
if has("diff")
menutrans &Diff Mismunur
menutrans &Update Uppf<EFBFBD>ra
menutrans &Get\ Block S<EFBFBD>kja\ B<EFBFBD>lk
menutrans &Put\ Block Setja\ B<EFBFBD>lk
endif
menutrans &Tools T<EFBFBD>l
menutrans &Jump\ to\ this\ tag<Tab>g^] St<EFBFBD>kkva\ <20>\ Merki<Tab>g^]
menutrans Jump\ &back<Tab>^T St<EFBFBD>kkva\ til\ baka<Tab>^T
menutrans Build\ &Tags\ File B<EFBFBD>a\ til\ Merkjaskr<EFBFBD>
menutrans &Make<Tab>:make Sm<EFBFBD><EFBFBD>a<Tab>:make
menutrans &List\ Errors<Tab>:cl Birta\ Villur<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! Birta\ Skilabo<EFBFBD><Tab>:cl!
menutrans &Next\ Error<Tab>:cn N<EFBFBD>sta\ Villa<Tab>:cn
menutrans &Previous\ Error<Tab>:cp Fyrri\ Villa<Tab>:cp
menutrans &Older\ List<Tab>:cold Eldri\ Listi<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew N<EFBFBD>rri\ Listi<Tab>:cnew
menutrans Error\ &Window Villugluggi
menutrans Se&t\ Compiler Smi<EFBFBD>ur
menutrans &Update<Tab>:cwin Uppf<EFBFBD>ra<Tab>:cwin
menutrans &Open<Tab>:copen Opna<Tab>:copen
menutrans &Close<Tab>:cclose Loka<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd Breyta\ <20>\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Breyta\ til\ baka<Tab>:%!xxd\ -r
" }}} TOOLS / T<>L
" {{{ SYNTAX / M<>LSKIPAN
menutrans &Syntax M<EFBFBD>lskipan
menutrans &Show\ filetypes\ in\ menu S<EFBFBD>na\ Skr<EFBFBD>artegundir
menutrans Set\ '&syntax'\ only Stilla\ a<EFBFBD>eins\ 'm<>lskipan'\
menutrans Set\ '&filetype'\ too Stilla\ einnig\ 'skr<6B>artegund'\
menutrans &Off Af
menutrans &Manual Handvirkt
menutrans A&utomatic Sj<EFBFBD>lfvirkt
menutrans on/off\ for\ &This\ file <20>/af\ fyrir\ <20>essa\ skr<EFBFBD>
menutrans Co&lor\ test Litapr<EFBFBD>fun
menutrans &Highlight\ test Au<EFBFBD>kenningarpr<EFBFBD>fun
menutrans &Convert\ to\ HTML Breyta\ <20>\ HTML
" }}} SYNTAX / M<>LSKIPAN
" {{{ BUFFERS / BI<42>MINNI
menutrans &Buffers Bi<EFBFBD>minni
menutrans &Refresh\ menu Uppf<EFBFBD>ra\ valmynd
menutrans Delete Ey<EFBFBD>a
menutrans &Alternate Skipta
menutrans &Next N<EFBFBD>sta
menutrans &Previous Fyrra
" }}} BUFFERS / BI<42>MINNI
" {{{ WINDOW / GLUGGI
menutrans &Window Gluggi
menutrans &New<Tab>^Wn N<EFBFBD>r<Tab>^Wn
menutrans S&plit<Tab>^Ws Splitta<Tab>^Ws
menutrans Split\ &Vertically<Tab>^Wv Splitta\ L<EFBFBD><EFBFBD>r<EFBFBD>tt<Tab>^Wv
menutrans Split\ File\ E&xplorer Splitta\ Skr<EFBFBD>arvafra
menutrans Sp&lit\ To\ #<Tab>^W^^ Splitta\ <20>\ Flipa\ #<Tab>^W^^
menutrans &Close<Tab>^Wc Loka\ Flipa<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo Loka\ <20><>rum\ Flipum<Tab>^Wo
menutrans Ne&xt<Tab>^Ww N<EFBFBD>sti<Tab>^Ww
menutrans P&revious<Tab>^WW Fyrri<Tab>^WW
menutrans &Equal\ Size<Tab>^W= Jafn\ St<EFBFBD>r<Tab>^W=
menutrans &Max\ Height<Tab>^W_ H<EFBFBD>marksh<EFBFBD><EFBFBD><Tab>^W_
menutrans M&in\ Height<Tab>^W1_ L<EFBFBD>gmarksh<EFBFBD><EFBFBD><Tab>^W1_
menutrans Max\ &Width<Tab>^W\| H<EFBFBD>marksbreidd<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\| L<EFBFBD>gmarksbreidd<Tab>^W1\|
menutrans Move\ &To F<EFBFBD>ra
menutrans &Top<Tab>^WK Upp<Tab>^WK
menutrans &Bottom<Tab>^WJ Ni<EFBFBD>ur<Tab>^WJ
menutrans &Left\ side<Tab>^WH Til\ Vinstri<Tab>^WH
menutrans &Right\ side<Tab>^WL Til\ H<EFBFBD>gri<Tab>^WL
menutrans Rotate\ &Up<Tab>^WR R<EFBFBD>lla\ upp<Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr R<EFBFBD>lla\ ni<EFBFBD>ur<Tab>^Wr
menutrans Select\ Fo&nt\.\.\. Velja\ Leturger<EFBFBD>\.\.\.
" }}} WINDOW / GLUGGI
" {{{ HELP / HJ<48>LP
menutrans &Help Hj<EFBFBD>lp
menutrans &Overview<Tab><F1> Yfirlit<Tab><F1>
menutrans &User\ Manual Notendahandb<EFBFBD>k
menutrans &How-to\ links Hj<EFBFBD>lparhlekkir
menutrans &GUI Myndr<EFBFBD>nt\ Vi<EFBFBD>m<EFBFBD>t
menutrans &Credits H<EFBFBD>fundar
menutrans Co&pying Afritun
menutrans &Sponsor/Register Styrkja/Skr<EFBFBD>ning
menutrans O&rphans G<EFBFBD><EFBFBD>ger<EFBFBD>arstarf
menutrans &Find\.\.\. Leit\.\.\. " conflicts with Edit.Find
menutrans &Version <20>tg<EFBFBD>fa
menutrans &About Um\ Forriti<EFBFBD>
" }}} HELP / HJ<48>LP
" {{{ POPUP
menutrans &Undo Til\ Baka
menutrans Cu&t Klippa
menutrans &Copy Afrita
menutrans &Paste L<EFBFBD>ma
menutrans &Delete Ey<EFBFBD>a
menutrans Select\ Blockwise Velja\ B<EFBFBD>lkv<EFBFBD>st
menutrans Select\ &Word Velja\ Or<EFBFBD>
menutrans Select\ &Sentence Velja\ Setningu
menutrans Select\ Pa&ragraph Velja\ Efnisgrein
menutrans Select\ &Line Velja\ L<EFBFBD>nu
menutrans Select\ &Block Velja\ B<EFBFBD>lk
menutrans Select\ &All Velja\ Allt
" }}} POPUP
" {{{ TOOLBAR
if has("toolbar")
if exists("*Do_toolbar_tmenu")
delfun Do_toolbar_tmenu
endif
fun Do_toolbar_tmenu()
tmenu ToolBar.Open Opna Skr<EFBFBD>
tmenu ToolBar.Save Vista Skr<EFBFBD>
tmenu ToolBar.SaveAll Vista Allar Skr<EFBFBD>r
tmenu ToolBar.Print Prenta
tmenu ToolBar.Undo Afturkalla
tmenu ToolBar.Redo Endurkalla
tmenu ToolBar.Cut Klippa
tmenu ToolBar.Copy Afrita
tmenu ToolBar.Paste L<EFBFBD>ma
tmenu ToolBar.Find Finna...
tmenu ToolBar.FindNext Finna N<EFBFBD>sta
tmenu ToolBar.FindPrev Finna fyrri
tmenu ToolBar.Replace Finna og Skipta...
if 0 " disabled; These are in the Windows menu
tmenu ToolBar.New N<EFBFBD>r
tmenu ToolBar.WinSplit Splitta Glugga
tmenu ToolBar.WinMax H<EFBFBD>marksst<EFBFBD>r<EFBFBD> Glugga
tmenu ToolBar.WinMin L<EFBFBD>gmarksst<EFBFBD>r<EFBFBD> Glugga
tmenu ToolBar.WinClose Loka Glugga
endif
tmenu ToolBar.LoadSesn Hla<EFBFBD>a Setu
tmenu ToolBar.SaveSesn Vista Setu
tmenu ToolBar.RunScript Keyra Skriptu
tmenu ToolBar.Make Sm<EFBFBD><EFBFBD>a
tmenu ToolBar.Shell Opna Skel
tmenu ToolBar.RunCtags Sm<EFBFBD><EFBFBD>a Merki
tmenu ToolBar.TagJump Hoppa <20> Merki
tmenu ToolBar.Help Hj<EFBFBD>lp
tmenu ToolBar.FindHelp Finna Hj<EFBFBD>lp...
endfun
endif
" }}} TOOLBAR
" {{{ DIALOG TEXTS
let g:menutrans_no_file = "[Engin Skr<6B>]"
let g:menutrans_help_dialog = "Sl<53>i<EFBFBD> inn skipun e<>a or<6F>a til a<> leita uppl<70>singa um:\n\nForskeyti<74> i_ fyrir <20>lagshamsskipanir (t.d. i_CTRL-X)\nForskeyti<74> c_ fyrir skipanal<61>nuskipanir (t.d. c_<Del>)\nForskeyti<74> ' fyrir nafn <20> valm<6C>guleika (t.d. 'shiftbreidd')"
let g:menutrans_path_dialog = "Sl<53>i<EFBFBD> inn leitarsl<73><6C> fyrir skr<6B>r.\nA<6E>skilji<6A> m<>ppur me<6D> kommu"
let g:menutrans_tags_dialog = "Sl<53>i<EFBFBD> inn nafn Merkjaskr<6B>a.\nA<6E>skilji<6A> n<>fnin me<6D> kommu"
let g:menutrans_textwidth_dialog = "Sl<53>i<EFBFBD> inn n<>ja textabreidd (0 til a<> <20>virkja sni<6E>m<EFBFBD>tun): "
let g:menutrans_fileformat_dialog = "Velji<6A> Skr<6B>arsni<6E>"
" }}}
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -0,0 +1,3 @@
" Menu Translations: Icelandic for UTF-8 encoding
source <sfile>:p:h/menu_is_is.latin1.vim

View File

@@ -300,6 +300,11 @@ call append("$", "tagstack\ta :tag command will use the tagstack")
call <SID>BinOptionG("tgst", &tgst)
call append("$", "showfulltag\twhen completing tags in Insert mode show more info")
call <SID>BinOptionG("sft", &sft)
if has("eval")
call append("$", "tagfunc\ta function to be used to perform tag searches")
call append("$", "\t(local to buffer)")
call <SID>OptionL("tfu")
endif
if has("cscope")
call append("$", "cscopeprg\tcommand for executing cscope")
call <SID>OptionG("csprg", &csprg)
@@ -685,12 +690,10 @@ if has("printer")
call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
call <SID>OptionG("penc", &penc)
endif
if has("multi_byte")
call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbcs", &pmbcs)
call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbfn", &pmbfn)
endif
call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbcs", &pmbcs)
call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbfn", &pmbfn)
endif
call <SID>Header("messages and info")
@@ -996,11 +999,9 @@ call <SID>BinOptionL("eol")
call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("fixeol")
if has("multi_byte")
call append("$", "bomb\tprepend a Byte Order Mark to the file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bomb")
endif
call append("$", "bomb\tprepend a Byte Order Mark to the file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bomb")
call append("$", "fileformat\tend-of-line format: \"dos\", \"unix\" or \"mac\"")
call append("$", "\t(local to buffer)")
call <SID>OptionL("ff")
@@ -1252,33 +1253,31 @@ if has("xim")
endif
if has("multi_byte")
call <SID>Header("multi-byte characters")
call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
call append("$", "\t\"euc-jp\", \"big5\", etc.")
call <SID>OptionG("enc", &enc)
call append("$", "fileencoding\tcharacter encoding for the current file")
call append("$", "\t(local to buffer)")
call <SID>OptionL("fenc")
call append("$", "fileencodings\tautomatically detected character encodings")
call <SID>OptionG("fencs", &fencs)
call append("$", "termencoding\tcharacter encoding used by the terminal")
call <SID>OptionG("tenc", &tenc)
call append("$", "charconvert\texpression used for character encoding conversion")
call <SID>OptionG("ccv", &ccv)
call append("$", "delcombine\tdelete combining (composing) characters on their own")
call <SID>BinOptionG("deco", &deco)
call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
call <SID>OptionG("mco", &mco)
if has("xim") && has("gui_gtk")
call append("$", "imactivatekey\tkey that activates the X input method")
call <SID>OptionG("imak", &imak)
endif
call append("$", "ambiwidth\twidth of ambiguous width characters")
call <SID>OptionG("ambw", &ambw)
call append("$", "emoji\temoji characters are full width")
call <SID>BinOptionG("emo", &emo)
call <SID>Header("multi-byte characters")
call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
call append("$", "\t\"euc-jp\", \"big5\", etc.")
call <SID>OptionG("enc", &enc)
call append("$", "fileencoding\tcharacter encoding for the current file")
call append("$", "\t(local to buffer)")
call <SID>OptionL("fenc")
call append("$", "fileencodings\tautomatically detected character encodings")
call <SID>OptionG("fencs", &fencs)
call append("$", "termencoding\tcharacter encoding used by the terminal")
call <SID>OptionG("tenc", &tenc)
call append("$", "charconvert\texpression used for character encoding conversion")
call <SID>OptionG("ccv", &ccv)
call append("$", "delcombine\tdelete combining (composing) characters on their own")
call <SID>BinOptionG("deco", &deco)
call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
call <SID>OptionG("mco", &mco)
if has("xim") && has("gui_gtk")
call append("$", "imactivatekey\tkey that activates the X input method")
call <SID>OptionG("imak", &imak)
endif
call append("$", "ambiwidth\twidth of ambiguous width characters")
call <SID>OptionG("ambw", &ambw)
call append("$", "emoji\temoji characters are full width")
call <SID>BinOptionG("emo", &emo)
call <SID>Header("various")

335
runtime/syntax/8th.vim Normal file
View File

@@ -0,0 +1,335 @@
" Vim syntax file
" Language: 8th
" Version: 19.01d
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: You should also have the ftplugin/8th.vim file to set 'isk'
if version < 600
syntax clear
finish
elseif exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn clear
" Synchronization method
syn sync ccomment
syn sync maxlines=100
syn case match
syn match eighthColonName "\S\+" contained
syn match eighthColonDef ":\s\+\S\+" contains=eighthColonName
" new words
syn match eighthClasses "\<\S\+:" contained
syn match eighthClassWord "\<\S\+:.\+" contains=eighthClasses
syn keyword eighthEndOfColonDef ; i;
syn keyword eighthDefine var var,
" Built in words
com! -nargs=+ Builtin syn keyword eighthBuiltin <args>
"Builtin ^ < <# <#> = > - -- ,# ; ;; ! ??? / . .# ' () @ * */ \
Builtin ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(* (:) G:(:) (code) G:(code) (getc) G:(getc)
Builtin (gets) G:(gets) (interp) G:(interp) (needs) G:(needs) (putc) G:(putc) (puts) G:(puts) (putslim) G:(putslim)
Builtin (say) G:(say) (stat) G:(stat) ) G:) +listener G:+listener +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN
Builtin -Inf G:-Inf -Inf? G:-Inf? -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .needs G:.needs
Builtin .r G:.r .s G:.s .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip 2drop G:2drop
Builtin 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 4drop G:4drop 8thdt? G:8thdt? 8thver? G:8thver?
Builtin : G:: ; G:; ;; G:;; ;;; G:;;; ;then G:;then ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json
Builtin >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ??? G:??? @ G:@ Inf G:Inf Inf? G:Inf? NaN G:NaN
Builtin NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ ` G:` `` G:`` actor: G:actor:
Builtin again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc args G:args
Builtin array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break?
Builtin build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case G:case caseof G:caseof
Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compat-level G:compat-level
Builtin compile G:compile compile? G:compile? conflict G:conflict const G:const container? G:container?
Builtin cr G:cr curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal defer: G:defer: deg>rad G:deg>rad
Builtin depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump dup G:dup dup? G:dup?
Builtin else G:else enum: G:enum: eval G:eval eval! G:eval! eval0 G:eval0 execnull G:execnull expect G:expect
Builtin extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv fourth G:fourth free G:free func: G:func:
Builtin getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets handler G:handler header G:header help G:help
Builtin hex G:hex i: G:i: i; G:i; if G:if if; G:if; isa? G:isa? items-used G:items-used jcall G:jcall
Builtin jclass G:jclass jmethod G:jmethod json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw
Builtin json> G:json> k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc
Builtin listener@ G:listener@ literal G:literal locals: G:locals: lock G:lock lock-to G:lock-to locked? G:locked?
Builtin log G:log log-async G:log-async log-task G:log-task log-time G:log-time log-time-local G:log-time-local
Builtin long-days G:long-days long-months G:long-months loop G:loop loop- G:loop- map? G:map? mark G:mark
Builtin mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem
Builtin ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not ns G:ns
Builtin ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? number? G:number?
Builtin off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names
Builtin os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse
Builtin parsech G:parsech parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear
Builtin prior G:prior private G:private process-args G:process-args prompt G:prompt public G:public
Builtin putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg
Builtin rand G:rand rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed randbuf G:randbuf randbuf-pcg G:randbuf-pcg
Builtin rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack ref@ G:ref@ reg! G:reg! reg@ G:reg@
Builtin regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat reset G:reset roll G:roll
Builtin rop! G:rop! rot G:rot rpick G:rpick rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage
Builtin s>ns G:s>ns same? G:same? scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post
Builtin sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw
Builtin set-wipe G:set-wipe setenv G:setenv settings! G:settings! settings![] G:settings![] settings@ G:settings@
Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days
Builtin short-months G:short-months sleep G:sleep space G:space stack-check G:stack-check stack-size G:stack-size
Builtin step G:step string? G:string? struct: G:struct: swap G:swap syslang G:syslang sysregion G:sysregion
Builtin tab-hook G:tab-hook tell-conflict G:tell-conflict tempdir G:tempdir tempfilename G:tempfilename
Builtin then G:then third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri
Builtin true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert unlock G:unlock unpack G:unpack
Builtin until G:until until! G:until! var G:var var, G:var, while G:while while! G:while! with: G:with:
Builtin words G:words words-like G:words-like words/ G:words/ xchg G:xchg xor G:xor >auth HTTP:>auth
Builtin sh I:sh tpush I:tpush trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string
Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- 2each a:2each
Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= >map a:>map @ a:@ @@ a:@@ bsearch a:bsearch clear a:clear
Builtin close a:close diff a:diff dot a:dot each a:each each-slice a:each-slice exists? a:exists? filter a:filter
Builtin generate a:generate group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join
Builtin len a:len map a:map map+ a:map+ map= a:map= mean a:mean mean&variance a:mean&variance new a:new
Builtin op a:op op! a:op! op= a:op= open a:open pop a:pop push a:push qsort a:qsort randeach a:randeach
Builtin reduce a:reduce reduce+ a:reduce+ rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+
Builtin slide a:slide sort a:sort union a:union when a:when when! a:when! x a:x x-each a:x-each xchg a:xchg
Builtin y a:y zip a:zip 8thdir app:8thdir asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun
Builtin basedir app:basedir current app:current datadir app:datadir exename app:exename isgui app:isgui
Builtin main app:main oncrash app:oncrash orientation app:orientation pid app:pid restart app:restart
Builtin resumed app:resumed shared? app:shared? standalone app:standalone subdir app:subdir suspended app:suspended
Builtin sysquit app:sysquit (here) asm:(here) >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n>
Builtin used asm:used w, asm:w, ! b:! + b:+ / b:/ = b:= >base64 b:>base64 >hex b:>hex >mpack b:>mpack
Builtin @ b:@ append b:append base64> b:base64> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress
Builtin conv b:conv each b:each each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex>
Builtin len b:len mem> b:mem> move b:move mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack>
Builtin new b:new op b:op rev b:rev search b:search shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb
Builtin writable b:writable xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash
Builtin block@ bc:block@ first-block bc:first-block hash bc:hash last-block bc:last-block load bc:load
Builtin new bc:new save bc:save set-sql bc:set-sql validate bc:validate validate-block bc:validate-block
Builtin add bloom:add filter bloom:filter in? bloom:in? accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect
Builtin disconnect bt:disconnect err? bt:err? leconnect bt:leconnect lescan bt:lescan listen bt:listen
Builtin on? bt:on? read bt:read scan bt:scan service? bt:service? services? bt:services? write bt:write
Builtin * c:* * c:* + c:+ + c:+ = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg
Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >aes128gcm cr:>aes128gcm
Builtin >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt
Builtin >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC CFB cr:CFB CTR cr:CTR ECB cr:ECB
Builtin GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm>
Builtin aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash
Builtin chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@
Builtin cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> dh-genkey cr:dh-genkey
Builtin dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig ecc-genkey cr:ecc-genkey
Builtin ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify edbox-sig cr:edbox-sig
Builtin edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey
Builtin err? cr:err? gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash! hash+ cr:hash+
Builtin hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv? mode cr:mode
Builtin mode@ cr:mode@ randkey cr:randkey restore cr:restore root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt
Builtin rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig
Builtin rsabox> cr:rsabox> rsagenkey cr:rsagenkey save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac
Builtin shard cr:shard tag? cr:tag? totp cr:totp totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step
Builtin unshard cr:unshard uuid cr:uuid uuid> cr:uuid> validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew)
Builtin (.islamic) d:(.islamic) + d:+ +day d:+day +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew
Builtin .islamic d:.islamic .time d:.time / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >msec d:>msec
Builtin >unix d:>unix >ymd d:>ymd Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri
Builtin Heshvan d:Heshvan Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat
Builtin Sivan d:Sivan Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue
Builtin Wed d:Wed adjust-dst d:adjust-dst between d:between d. d:d. dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year
Builtin displaying-hebrew d:displaying-hebrew do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise
Builtin doy d:doy dst? d:dst? dstquery d:dstquery dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer
Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow
Builtin fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic format d:format hanukkah d:hanukkah
Builtin hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name
Builtin islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed islamictoday d:islamictoday join d:join
Builtin last-day-of-hebrew-month d:last-day-of-hebrew-month last-dow d:last-dow last-month d:last-month
Builtin last-week d:last-week last-year d:last-year latitude d:latitude longitude d:longitude longitude d:longitude
Builtin msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month next-week d:next-week
Builtin next-year d:next-year number>hebrew d:number>hebrew omer d:omer parse d:parse pesach d:pesach
Builtin prev-dow d:prev-dow purim d:purim rosh-chodesh? d:rosh-chodesh? rosh-hashanah d:rosh-hashanah
Builtin shavuot d:shavuot start-timer d:start-timer sunrise d:sunrise taanit-esther d:taanit-esther
Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer tisha-beav d:tisha-beav tzadjust d:tzadjust
Builtin unix> d:unix> updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut
Builtin yom-kippur d:yom-kippur add-func db:add-func bind db:bind close db:close col db:col col[] db:col[]
Builtin col{} db:col{} err? db:err? errmsg db:errmsg exec db:exec exec-cb db:exec-cb key db:key mysql? db:mysql?
Builtin odbc? db:odbc? open db:open open? db:open? prepare db:prepare query db:query query-all db:query-all
Builtin rekey db:rekey sqlerrmsg db:sqlerrmsg bp dbg:bp except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info
Builtin prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave
Builtin abspath f:abspath append f:append associate f:associate atime f:atime canwrite? f:canwrite?
Builtin chmod f:chmod close f:close copy f:copy copydir f:copydir create f:create ctime f:ctime dir? f:dir?
Builtin dname f:dname eachbuf f:eachbuf eachline f:eachline enssep f:enssep eof? f:eof? err? f:err?
Builtin exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc getline f:getline getmod f:getmod
Builtin glob f:glob glob-nocase f:glob-nocase include f:include launch f:launch link f:link link> f:link>
Builtin link? f:link? mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime
Builtin mv f:mv open f:open open-ro f:open-ro popen f:popen print f:print read f:read relpath f:relpath
Builtin rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep show f:show size f:size slurp f:slurp
Builtin stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times trash f:trash ungetb f:ungetb
Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen
Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave
Builtin bold font:bold face? font:face? glyph-path font:glyph-path glyph-pos font:glyph-pos info font:info
Builtin italic font:italic ls font:ls measure font:measure new font:new pixels font:pixels pixels? font:pixels?
Builtin points font:points points? font:points? styles font:styles styles? font:styles? underline font:underline
Builtin +child g:+child +kind g:+kind +path g:+path -child g:-child /path g:/path >img g:>img >progress g:>progress
Builtin add-items g:add-items adjustwidth g:adjustwidth allow-orient g:allow-orient arc g:arc arc2 g:arc2
Builtin autohide g:autohide back g:back bezier g:bezier bg g:bg bg? g:bg? bounds g:bounds bounds? g:bounds?
Builtin box-label g:box-label btn-font g:btn-font bubble g:bubble button-size g:button-size buttons-visible g:buttons-visible
Builtin c-text g:c-text callout g:callout center g:center child g:child clear g:clear clearpath g:clearpath
Builtin clr>n g:clr>n coleven g:coleven colordlg g:colordlg colwidth g:colwidth connectededges g:connectededges
Builtin contrasting g:contrasting cp g:cp curmouse? g:curmouse? default-font g:default-font deselect-row g:deselect-row
Builtin dismiss g:dismiss do g:do draw-fitted-text g:draw-fitted-text draw-text g:draw-text draw-text-at g:draw-text-at
Builtin each g:each edit-on-double-click g:edit-on-double-click editable g:editable editdlg g:editdlg
Builtin empty-text g:empty-text enable g:enable enabled? g:enabled? fade g:fade fb-files g:fb-files
Builtin fcolor g:fcolor fg g:fg fg? g:fg? file-filter g:file-filter file-name g:file-name filedlg g:filedlg
Builtin fill g:fill fillall g:fillall fit-text g:fit-text flex! g:flex! focus g:focus fontdlg g:fontdlg
Builtin forward g:forward fullscreen g:fullscreen get-lasso-items g:get-lasso-items get-tab g:get-tab
Builtin getclr g:getclr getfont g:getfont getimage g:getimage getpath g:getpath getroot g:getroot gradient g:gradient
Builtin gui? g:gui? handle g:handle headerheight g:headerheight hide g:hide image g:image image-at g:image-at
Builtin invalidate g:invalidate ix? g:ix? justify g:justify keyinfo g:keyinfo l-text g:l-text laf g:laf
Builtin laf! g:laf! laf? g:laf? len g:len line-width g:line-width lineto g:lineto list+ g:list+ list- g:list-
Builtin loadcontent g:loadcontent localize g:localize m! g:m! m@ g:m@ menu-font g:menu-font menu-update g:menu-update
Builtin menuenabled g:menuenabled mouse? g:mouse? mousepos? g:mousepos? moveto g:moveto msgdlg g:msgdlg
Builtin multi g:multi name g:name named-skin g:named-skin new g:new new-laf g:new-laf next g:next obj g:obj
Builtin on g:on on? g:on? ontop g:ontop oshandle g:oshandle outlinethickness g:outlinethickness panel-size g:panel-size
Builtin panel-size? g:panel-size? parent g:parent path g:path path>s g:path>s pie g:pie pix! g:pix!
Builtin pop g:pop popmenu g:popmenu pos? g:pos? prev g:prev propval! g:propval! propval@ g:propval@
Builtin push g:push qbezier g:qbezier quit g:quit r-text g:r-text readonly g:readonly rect g:rect refresh g:refresh
Builtin restore g:restore root g:root root-item-visible g:root-item-visible rotate g:rotate rowheight g:rowheight
Builtin rrect g:rrect s>path g:s>path save g:save say g:say scale g:scale scolor g:scolor scrollthickness g:scrollthickness
Builtin sectionenable g:sectionenable select! g:select! select@ g:select@ selected-rows g:selected-rows
Builtin set-lasso g:set-lasso set-long-press g:set-long-press set-popup-font g:set-popup-font set-range g:set-range
Builtin set-swipe g:set-swipe set-value g:set-value setcursor g:setcursor setfont g:setfont setheader g:setheader
Builtin sethtml g:sethtml setimage g:setimage setname g:setname setroot g:setroot settab g:settab show g:show
Builtin show-line-numbers g:show-line-numbers show-pct g:show-pct showmenu g:showmenu showtooltip g:showtooltip
Builtin size g:size size? g:size? skin g:skin skin-class g:skin-class stackix g:stackix state g:state
Builtin state? g:state? stepsize g:stepsize stroke g:stroke stroke-fill g:stroke-fill style g:style
Builtin tabname g:tabname text g:text text-box-style g:text-box-style text? g:text? textcolor g:textcolor
Builtin textsize g:textsize timer! g:timer! timer@ g:timer@ toback g:toback tofront g:tofront toggle-row g:toggle-row
Builtin tooltip g:tooltip top g:top transition g:transition translate g:translate tree-open g:tree-open
Builtin triangle g:triangle update g:update updateitems g:updateitems url g:url user g:user user! g:user!
Builtin vertical g:vertical view g:view visible? g:visible? vpos! g:vpos! vpos@ g:vpos@ waitcursor g:waitcursor
Builtin winding g:winding xy g:xy xy? g:xy? +edge gr:+edge +edge+w gr:+edge+w +node gr:+node connect gr:connect
Builtin edges gr:edges m! gr:m! m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges
Builtin nodes gr:nodes traverse gr:traverse + h:+ clear h:clear len h:len new h:new peek h:peek pop h:pop
Builtin push h:push unique h:unique arm? hw:arm? camera hw:camera camera-fmt hw:camera-fmt camera-img hw:camera-img
Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize?
Builtin err? hw:err? gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c!
Builtin i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch?
Builtin mac? hw:mac? mem? hw:mem? poll hw:poll sensor hw:sensor start hw:start stop hw:stop fetch-full imap:fetch-full
Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login new imap:new select-inbox imap:select-inbox
Builtin >file img:>file copy img:copy crop img:crop data img:data desat img:desat fill img:fill filter img:filter
Builtin flip img:flip from-svg img:from-svg new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen
Builtin qr-parse img:qr-parse rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries
Builtin find loc:find sort loc:sort ! m:! !? m:!? + m:+ +? m:+? - m:- @ m:@ @? m:@? @@ m:@@ clear m:clear
Builtin data m:data each m:each exists? m:exists? iter m:iter iter-all m:iter-all keys m:keys len m:len
Builtin map m:map new m:new op! m:op! open m:open vals m:vals xchg m:xchg ! mat:! * mat:* + mat:+ = mat:=
Builtin @ mat:@ col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident
Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new row mat:row same-size? mat:same-size? trans mat:trans
Builtin ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:>
Builtin BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^ abs n:abs acos n:acos acos n:acos asin n:asin
Builtin asin n:asin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat
Builtin bic n:bic bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor ceil n:ceil clamp n:clamp
Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd exp n:exp expmod n:expmod float n:float floor n:floor
Builtin fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? lcm n:lcm ln n:ln
Builtin max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime?
Builtin quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r
Builtin round n:round round2 n:round2 running-variance n:running-variance running-variance-finalize n:running-variance-finalize
Builtin sgn n:sgn shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand
Builtin trunc n:trunc ~= n:~= ! net:! >url net:>url @ net:@ DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6
Builtin PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o
Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind browse net:browse
Builtin close net:close connect net:connect err>s net:err>s err? net:err? get net:get getaddrinfo net:getaddrinfo
Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen net-socket net:net-socket
Builtin opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy! read net:read recvfrom net:recvfrom
Builtin s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt socket net:socket
Builtin tlshello net:tlshello url> net:url> user-agent net:user-agent wait net:wait write net:write
Builtin MAX ns:MAX cast ptr:cast len ptr:len pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig
Builtin + q:+ clear q:clear len q:len new q:new notify q:notify overwrite q:overwrite peek q:peek pick q:pick
Builtin pop q:pop push q:push shift q:shift size q:size slide q:slide throwing q:throwing wait q:wait
Builtin ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ err? r:err? len r:len match r:match new r:new
Builtin rx r:rx str r:str ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic
Builtin >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp
Builtin cmpi s:cmpi compress s:compress days! s:days! each s:each eachline s:eachline expand s:expand
Builtin fill s:fill fmt s:fmt gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr insert s:insert
Builtin intl s:intl intl! s:intl! lang s:lang lc s:lc len s:len lsub s:lsub ltrim s:ltrim map s:map
Builtin months! s:months! new s:new replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch
Builtin rsub s:rsub rtrim s:rtrim script? s:script? search s:search size s:size slice s:slice strfmap s:strfmap
Builtin strfmt s:strfmt trim s:trim tsub s:tsub uc s:uc ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close
Builtin enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@ read sio:read write sio:write new smtp:new
Builtin send smtp:send apply-filter snd:apply-filter devices? snd:devices? end-record snd:end-record
Builtin filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain gain? snd:gain? len snd:len
Builtin loop snd:loop mix snd:mix new snd:new pause snd:pause play snd:play played snd:played rate snd:rate
Builtin record snd:record seek snd:seek stop snd:stop stopall snd:stopall unmix snd:unmix volume snd:volume
Builtin volume? snd:volume? + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op!
Builtin peek st:peek pick st:pick pop st:pop push st:push roll st:roll shift st:shift size st:size
Builtin slide st:slide swap st:swap throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf
Builtin buf> struct:buf> byte struct:byte double struct:double field! struct:field! field@ struct:field@
Builtin float struct:float ignore struct:ignore int struct:int long struct:long struct; struct:struct;
Builtin word struct:word ! t:! @ t:@ assign t:assign curtask t:curtask def-queue t:def-queue def-stack t:def-stack
Builtin done? t:done? err! t:err! err? t:err? getq t:getq guitask t:guitask handler t:handler kill t:kill
Builtin list t:list main t:main name! t:name! name@ t:name@ notify t:notify pop t:pop priority t:priority
Builtin push t:push push< t:push< q-notify t:q-notify q-wait t:q-wait qlen t:qlen result t:result task t:task
Builtin task-n t:task-n task-stop t:task-stop wait t:wait ! w:! @ w:@ alias: w:alias: cb w:cb deprecate w:deprecate
Builtin exec w:exec exec? w:exec? ffifail w:ffifail find w:find forget w:forget is w:is undo w:undo
Builtin >s xml:>s >txt xml:>txt parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream
Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[]
" numbers
syn keyword eighthMath decimal hex base@ base!
syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>'
" recognize hex and binary numbers, the '$' and '%' notation is for eighth
syn match eighthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order!
syn match eighthInteger '\<%[0-1]*[0-1]\+\>'
syn match eighthInteger "\<'.\>"
" Strings
syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+
syn keyword jsonNull null
syn keyword jsonBool /\(true\|false\)/
syn region eighthString start=/\<"/ end=/"\>/
syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/
"syn region jsonObject start=/{/ end=/}/ contained contains=jsonObjEntry,jsonArray,jsonObject, jsonBool, eighthString
"syn region jsonArray start=/\[/ end=/\]/ contained contains=jsonArray,jsonObject, jsonBool, eighthString
" Include files
" syn match eighthInclude '\<\(libinclude\|include\|needs\)\s\+\S\+'
syn region eighthComment start="\zs\\" end="$" contains=eighthTodo
" Define the default highlighting.
if !exists("did_eighth_syntax_inits")
let did_eighth_syntax_inits=1
" The default methods for highlighting. Can be overriden later.
hi def link eighthTodo Todo
hi def link eighthOperators Operator
hi def link eighthMath Number
hi def link eighthInteger Number
hi def link eighthStack Special
hi def link eighthFStack Special
hi def link eighthSP Special
hi def link eighthColonDef Define
hi def link eighthColonName Operator
hi def link eighthEndOfColonDef Define
hi def link eighthDefine Define
hi def link eighthDebug Debug
hi def link eighthCharOps Character
hi def link eighthConversion String
hi def link eighthForth Statement
hi def link eighthVocs Statement
hi def link eighthString String
hi def link eighthComment Comment
hi def link eighthClassDef Define
hi def link eighthEndOfClassDef Define
hi def link eighthObjectDef Define
hi def link eighthEndOfObjectDef Define
hi def link eighthInclude Include
hi def link eighthBuiltin Define
hi def link eighthClasses Define
hi def link eighthClassWord Keyword
hi def link jsonObject Delimiter
hi def link jsonObjEntry Label
hi def link jsonArray Special
hi def link jsonNull Function
hi def link jsonBool Boolean
endif
let b:current_syntax = "8th"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8:sw=4:nocindent:smartindent:

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2018 Sep 21
" Last Change: 2019 Feb 11
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -342,7 +342,7 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
syn keyword cConstant ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR
syn keyword cConstant ENOSTR ENOSYS ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
syn keyword cConstant ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
syn keyword cConstant ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO
syn keyword cConstant EPROTONOSUPPORT EPROTOTYPE ERANGE EROFS ESPIPE ESRCH ESTALE ETIME ETIMEDOUT
syn keyword cConstant ETXTBSY EWOULDBLOCK EXDEV

View File

@@ -1,10 +1,23 @@
" Vim syntax file
" Language: COBOL
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
" (formerly Davyd Ondrejko <vondraco@columbus.rr.com>)
" (formerly Sitaram Chamarty <sitaram@diac.com> and
" James Mitchell <james_mitchell@acm.org>)
" Last Change: 2015 Feb 13
" Last Change: 2019 Mar 22
" Ankit Jain 22.03.2019 Changes & fixes:
" 1. Include inline comments
" 2. Use comment highlight for bad lines
" 3. Change certain 'keywords' to 'matches'
" for additional highlighting
" 4. Different highlighting for COPY, GO TO &
" CALL lines
" 5. Fix for COMP keyword
" 6. Fix for PROCEDURE DIVISION highlighting
" 7. Highlight EXIT PROGRAM like STOP RUN
" 8. Highlight X & A in PIC clause
" Tag: #C22032019
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -12,7 +25,11 @@ if exists("b:current_syntax")
endif
" MOST important - else most of the keywords wont work!
setlocal isk=@,48-57,-
setlocal isk=@,48-57,-,_
if !exists('g:cobol_inline_comment')
let g:cobol_inline_comment=0
endif
syn case ignore
@@ -29,7 +46,10 @@ syn match cobolComment "[/*C].*$" contained
syn match cobolCompiler "$.*$" contained
syn match cobolLine ".*$" contained contains=cobolReserved,@cobolLine
syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
"#C22032019: Fix for PROCEDURE DIVISION USING highlighting, removed . from the
"end of the regex
"syn match cobolDivision \"[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION" contained contains=cobolDivisionName
syn keyword cobolDivisionName contained IDENTIFICATION ENVIRONMENT DATA PROCEDURE
syn match cobolSection "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+SECTION\."he=e-1 contained contains=cobolSectionName
syn keyword cobolSectionName contained CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE
@@ -38,10 +58,12 @@ syn keyword cobolParagraphName contained PROGRAM-ID SOURCE-COMPUTER OBJECT-COMP
"syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved
"#C22032019: Remove BY, REPLACING, PROGRAM, TO, IN from 'keyword' group and add
"to 'match' group or other 'keyword' group
syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC
syn keyword cobolReserved contained ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS
syn keyword cobolReserved contained ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY
syn keyword cobolReserved contained BLANK BLOCK BOTTOM BY CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
syn keyword cobolReserved contained BLANK BLOCK BOTTOM CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
syn keyword cobolReserved contained CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON
syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONTENT CONTINUE
syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATE DATE-COMPILED
@@ -55,52 +77,79 @@ syn keyword cobolReserved contained END-REWRITE END-SEARCH END-START END-STRING
syn keyword cobolReserved contained END-WRITE EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILLER FINAL FIRST FOOTING FOR FROM
syn keyword cobolReserved contained GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O
syn keyword cobolReserved contained IN INDEX INDEXED INDICATE INITIAL INITIALIZE
syn keyword cobolReserved contained INDEX INDEXED INDICATE INITIAL INITIALIZE
syn keyword cobolReserved contained INITIATE INPUT INSPECT INSTALLATION INTO IS JUST
syn keyword cobolReserved contained JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY
syn keyword cobolReserved contained MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT
syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OCCURS OF OFF OMITTED ON OPEN
syn keyword cobolReserved contained OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING
syn keyword cobolReserved contained PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE
syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PROGRAM PURGE QUEUE QUOTES
syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PURGE QUEUE QUOTES
syn keyword cobolReserved contained RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPLACING REPORT REPORTING
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPORT REPORTING
syn keyword cobolReserved contained REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH
syn keyword cobolReserved contained RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED
syn keyword cobolReserved contained SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT
syn keyword cobolReserved contained SORT-MERGE SOURCE STANDARD
syn keyword cobolReserved contained STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2
syn keyword cobolReserved contained SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TO TOP
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TOP
syn keyword cobolReserved contained TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES
syn keyword cobolReserved contained VARYING WHEN WITH WORDS WRITE
syn match cobolReserved contained "\<CONTAINS\>"
syn match cobolReserved contained "\<\(IF\|INVALID\|END\|EOP\)\>"
syn match cobolReserved contained "\<ALL\>"
" #C22032019: Add BY as match instead of keyword: BY not followed by ==
syn match cobolReserved contained "\<BY\>\s\+\(==\)\@!"
syn match cobolReserved contained "\<TO\>"
syn cluster cobolLine add=cobolConstant,cobolNumber,cobolPic
syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES
" #C22032019: Fix for many pic clauses
syn match cobolNumber "\<-\=\d*\.\=\d\+\>" contained
syn match cobolPic "\<S*9\+\>" contained
" syn match cobolPic \"\<S*9\+\>" contained
syn match cobolPic "\<S*9\+V*9*\>" contained
syn match cobolPic "\<$*\.\=9\+\>" contained
syn match cobolPic "\<Z*\.\=9\+\>" contained
syn match cobolPic "\<V9\+\>" contained
syn match cobolPic "\<9\+V\>" contained
syn match cobolPic "\<-\+[Z9]\+\>" contained
syn match cobolTodo "todo" contained containedin=cobolComment
" syn match cobolPic \"\<-\+[Z9]\+\>" contained
syn match cobolPic "\<-*[Z9]\+-*\>" contained
" #C22032019: Add Z,X and A to cobolPic
syn match cobolPic "\<[ZXA]\+\>" contained
syn match cobolTodo "todo" contained containedin=cobolInlineComment,cobolComment
" For MicroFocus or other inline comments, include this line.
" syn region cobolComment start="*>" end="$" contains=cobolTodo,cobolMarker
if g:cobol_inline_comment == 1
syn region cobolInlineComment start="*>" end="$" contains=cobolTodo,cobolMarker
syn cluster cobolLine add=cobolInlineComment
endif
syn match cobolBadLine "[^ D\*$/-].*" contained
" If comment mark somehow gets into column past Column 7.
syn match cobolBadLine "\s\+\*.*" contained
if g:cobol_inline_comment == 1
" #C22032019: It is a bad line only if * is not followed by > when inline
" comments enabled
syn match cobolBadLine "\s\+\*\(>\)\@!.*" contained
else
syn match cobolBadLine "\s\+\*.*" contained
endif
syn cluster cobolStart add=cobolBadLine
syn keyword cobolGoTo GO GOTO
syn keyword cobolCopy COPY
" #C22032019: Different highlighting for GO TO statements
" syn keyword cobolGoTo GO GOTO
syn keyword cobolGoTo GOTO
syn match cobolGoTo /\<GO\>\s\+\<TO\>/
syn match cobolGoToPara /\<GO\>\s\+\<TO\>\s\+[A-Z0-9-]\+/ contains=cobolGoTo
" #C22032019: Highlight copybook name and location in using different group
" syn keyword cobolCopy COPY
syn match cobolCopy "\<COPY\>\|\<IN\>"
syn match cobolCopy "\<REPLACING\>\s\+\(==\)\@="
syn match cobolCopy "\<BY\>\s\+\(==\)\@="
syn match cobolCopyName "\<COPY\>\s\+[A-Z0-9]\+\(\s\+\<IN\>\s\+[A-Z0-9]\+\)\?" contains=cobolCopy
syn cluster cobolLine add=cobolGoToPara,cobolCopyName
" cobolBAD: things that are BAD NEWS!
syn keyword cobolBAD ALTER ENTER RENAMES
@@ -109,8 +158,14 @@ syn cluster cobolLine add=cobolGoTo,cobolCopy,cobolBAD,cobolWatch,cobolEXE
" cobolWatch: things that are important when trying to understand a program
syn keyword cobolWatch OCCURS DEPENDING VARYING BINARY COMP REDEFINES
syn keyword cobolWatch REPLACING RUN
syn match cobolWatch "COMP-[123456XN]"
" #C22032019: Remove REPLACING from cobolWatch 'keyword' group and add to cobolCopy &
" cobolWatch 'match' group
" syn keyword cobolWatch REPLACING RUN
syn keyword cobolWatch RUN PROGRAM
syn match cobolWatch contained "\<REPLACING\>\s\+\(==\)\@!"
" #C22032019: Look for word starting with COMP
" syn match cobolWatch \"COMP-[123456XN]"
syn match cobolWatch "\<COMP-[123456XN]"
syn keyword cobolEXECs EXEC END-EXEC
@@ -127,9 +182,15 @@ syn match cobolWatch "88 " contained nextgroup=cobolLine
"syn match cobolBadID "\k\+-\($\|[^-A-Z0-9]\)" contained
syn cluster cobolLine add=cobolCALLs,cobolString,cobolCondFlow
syn keyword cobolCALLs CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
syn match cobolCALLs "EXIT \+PROGRAM"
" #C22032019: Changes for cobolCALLs group to include thru
" syn keyword cobolCALLs CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
syn keyword cobolCALLs END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE THRU
" #C22032019: Highlight called program
" syn match cobolCALLs \"EXIT \+PROGRAM"
syn match cobolCALLs "\<CALL\>"
syn match cobolCALLProg /\<CALL\>\s\+"\{0,1\}[A-Z0-9]\+"\{0,1\}/ contains=cobolCALLs
syn match cobolExtras /\<VALUE \+\d\+\./hs=s+6,he=e-1
syn cluster cobolLine add=cobolCALLProg
syn match cobolString /"[^"]*\("\|$\)/
syn match cobolString /'[^']*\('\|$\)/
@@ -138,7 +199,7 @@ syn match cobolString /'[^']*\('\|$\)/
syn match cobolIndicator "\%7c[D-]" contained
if exists("cobol_legacy_code")
syn region cobolCondFlow contains=ALLBUT,cobolLine,cobolBadLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
syn region cobolCondFlow contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
endif
" many legacy sources have junk in columns 1-6: must be before others
@@ -146,7 +207,9 @@ endif
if exists("cobol_legacy_code")
syn match cobolBadLine "\%73c.*" containedin=ALLBUT,cobolComment
else
syn match cobolBadLine "\%73c.*" containedin=ALL
" #C22032019: Use comment highlighting for bad lines
" syn match cobolBadLine \"\%73c.*" containedin=ALL
syn match cobolBadLine "\%73c.*" containedin=ALL,cobolInlineComment,cobolComment
endif
" Define the default highlighting.
@@ -160,31 +223,36 @@ if exists("g:cobol_legacy_code")
else
hi def link cobolMarker Error
endif
hi def link cobolCALLs Function
hi def link cobolComment Comment
hi def link cobolKeys Comment
hi def link cobolAreaB Special
hi def link cobolCompiler PreProc
hi def link cobolCondFlow Special
hi def link cobolCopy PreProc
hi def link cobolDeclA cobolDecl
hi def link cobolDecl Type
hi def link cobolExtras Special
hi def link cobolGoTo Special
hi def link cobolConstant Constant
hi def link cobolNumber Constant
hi def link cobolPic Constant
hi def link cobolReserved Statement
hi def link cobolDivision Label
hi def link cobolSection Label
hi def link cobolParagraph Label
hi def link cobolDivisionName Keyword
hi def link cobolSectionName Keyword
hi def link cobolParagraphName Keyword
hi def link cobolString Constant
hi def link cobolTodo Todo
hi def link cobolWatch Special
hi def link cobolIndicator Special
hi def link cobolCALLs Function
hi def link cobolCALLProg Special
hi def link cobolComment Comment
hi def link cobolInlineComment Comment
hi def link cobolKeys Comment
hi def link cobolAreaB Special
hi def link cobolCompiler PreProc
hi def link cobolCondFlow Special
hi def link cobolCopy PreProc
hi def link cobolCopyName Special
hi def link cobolDeclA cobolDecl
hi def link cobolDecl Type
hi def link cobolExtras Special
hi def link cobolGoTo Special
hi def link cobolGoToPara Function
hi def link cobolConstant Constant
hi def link cobolNumber Constant
hi def link cobolPic Constant
hi def link cobolReserved Statement
hi def link cobolDivision Label
hi def link cobolSection Label
hi def link cobolParagraph Label
hi def link cobolDivisionName Keyword
hi def link cobolSectionName Keyword
hi def link cobolParagraphName Keyword
hi def link cobolString Constant
hi def link cobolTodo Todo
hi def link cobolWatch Special
hi def link cobolIndicator Special
hi def link cobolStart Comment
let b:current_syntax = "cobol"

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Aug 31, 2016
" Version: 11
" Last Change: Mar 26, 2019
" Version: 12
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
" quit when a syntax file was already loaded
@@ -10,10 +10,10 @@ if exists("b:current_syntax")
finish
endif
if !has("patch-7.4.1142")
setlocal iskeyword=$,@,48-57,_
else
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
syn iskeyword $,@,48-57,_
else
setlocal iskeyword=$,@,48-57,_
endif
syn case ignore

View File

@@ -3,8 +3,8 @@
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2018 May 31
" Included patch from Jay Sitter to add WAI-ARIA htmlArg keywords
" Last Change: 2018 Apr 7
" Included patch from Jorge Maldonado Ventura to fix rendering
"
" Please check :help html.vim for some comments and a description of the options
@@ -159,47 +159,47 @@ if !exists("html_no_rendering")
" rendering
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop
syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold
syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold
syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop
syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold
syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
syn match htmlLeadingSpace "^\s\+" contained
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop
syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop
syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop
syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop
syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop
syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop
syn region htmlHead start="<head\>" end="</head\_s*>"me=s-1 end="<body\>"me=s-1 end="<h[1-6]\>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
syn region htmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
endif
syn keyword htmlTagName contained noscript

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Feb 15, 2018
" Version: 27
" Last Change: Mar 26, 2019
" Version: 28
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
@@ -16,10 +16,10 @@ endif
if exists("g:lisp_isk")
exe "setl isk=".g:lisp_isk
elseif !has("patch-7.4.1142")
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
else
elseif (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
else
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
endif
if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")

View File

@@ -1,8 +1,9 @@
" Vim syntax file
" Language: Makefile
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/make.vim
" Last Change: 2015 Feb 28
" Maintainer: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: https://github.com/vim/vim/syntax/make.vim
" Last Change: 2019 Apr 02
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -18,7 +19,7 @@ syn match makeSpecial "^\s*[@+-]\+"
syn match makeNextLine "\\\n\s*"
" some directives
syn match makePreCondit "^ *\(ifeq\>\|else\>\|endif\>\|ifneq\>\|ifdef\>\|ifndef\>\)"
syn match makePreCondit "^ *\(ifn\=\(eq\|def\)\>\|else\(\s\+ifn\=\(eq\|def\)\)\=\>\|endif\>\)"
syn match makeInclude "^ *[-s]\=include"
syn match makeStatement "^ *vpath"
syn match makeExport "^ *\(export\|unexport\)\>"
@@ -31,8 +32,8 @@ syn region makeDefine start="^\s*define\s" end="^\s*endef\s*\(#.*\)\?$" contains
" Microsoft Makefile specials
syn case ignore
syn match makeInclude "^! *include"
syn match makePreCondit "! *\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|elseif\|else if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
syn match makeInclude "^!\s*include"
syn match makePreCondit "^!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|else\s*if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
syn case match
" identifiers
@@ -64,7 +65,7 @@ syn match makeCmdNextLine "\\\n."he=e-1 contained
" Statements / Functions (GNU make)
syn match makeStatement contained "(\(subst\|abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
syn match makeStatement contained "(\(abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|file\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|guile\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|subst\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
" Comment
if exists("make_microsoft")
@@ -100,17 +101,17 @@ syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Z
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link makeNextLine makeSpecial
hi def link makeNextLine makeSpecial
hi def link makeCmdNextLine makeSpecial
hi def link makeSpecTarget Statement
hi def link makeSpecTarget Statement
if !exists("make_no_commands")
hi def link makeCommands Number
hi def link makeCommands Number
endif
hi def link makeImplicit Function
hi def link makeImplicit Function
hi def link makeTarget Function
hi def link makeInclude Include
hi def link makePreCondit PreCondit
hi def link makeStatement Statement
hi def link makePreCondit PreCondit
hi def link makeStatement Statement
hi def link makeIdent Identifier
hi def link makeSpecial Special
hi def link makeComment Comment

Some files were not shown because too many files have changed in this diff Show More