blob: 5e38724720949e1b4b5f96038263e2a42a80e109 [file] [log] [blame]
Bram Moolenaar52b91d82013-06-15 21:39:51 +02001*todo.txt* For Vim version 7.3. Last change: 2013 Jun 15
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3
4 VIM REFERENCE MANUAL by Bram Moolenaar
5
6
7 TODO list for Vim *todo*
8
9This is a veeeery long list of known bugs, current work and desired
10improvements. To make it a little bit accessible, the items are grouped by
11subject. In the first column of the line a classification is used to be able
12to look for "the next thing to do":
13
14Priority classification:
159 next point release
168 next release
177 as soon as possible
186 soon
195 should be included
204 nice to have
213 consider including
222 maybe not
231 probably not
24- unclassified
25
26 *votes-for-changes*
27See |develop.txt| for development plans. You can vote for which items should
28be worked on, but only if you sponsor Vim development. See |sponsor|.
29
Bram Moolenaar251e1912011-06-19 05:09:16 +020030Issues can also be entered online: http://code.google.com/p/vim/issues/list
31Updates will be forwarded to the vim_dev maillist. Issues entered there will
32not be repeated below, unless there is extra information.
33
Bram Moolenaar071d4272004-06-13 20:20:40 +000034 *known-bugs*
35-------------------- Known bugs and current work -----------------------
36
Bram Moolenaarad3b3662013-05-17 18:14:19 +020037--- Python interface
38
Bram Moolenaarad3b3662013-05-17 18:14:19 +020039Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
40
41Win32: The Python interface only works with one version of Python, selected at
42compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
43
44Python: Be able to define a Python function that can be called directly from
Bram Moolenaar543b7ef2013-06-01 14:50:56 +020045Vim script. Requires converting the arguments and return value, like with
46vim.bindeval().
Bram Moolenaarad3b3662013-05-17 18:14:19 +020047
Bram Moolenaar203d04d2013-06-06 21:36:40 +020048Python SystemExit exception is not handled properly. Patch to catch the
49exception and give an error. (Yasuhiro Matsumoto)
50Does not work, tests fail.
51
Bram Moolenaarad3b3662013-05-17 18:14:19 +020052--- bug fixes
53
Bram Moolenaarad3b3662013-05-17 18:14:19 +020054Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
55
56Matches might be highlighted correctly. Inefficient patch by Christian
57Brabandt, 2013 Feb 26.
58
59Patch to use bold/italic fonts when 'guifontewide' is set. (Ken Takata, 2013
60Mar 31)
61
62Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
63Patch Sep 18.
64
65Patch for IME problems. Remove hacking code for old IM. (Yukihiro Nakadaira,
662012 Jul 20)
67
68Patch to fix finding toolbar bitmaps. Issue 129.
69
Bram Moolenaarec7944a2013-06-12 21:29:15 +020070Suggestion to remove __QNXNTO__ in gui.c. (Sean Boudreau, 2013 Jun 7)
71
Bram Moolenaarad3b3662013-05-17 18:14:19 +020072Combining characters are not used when executing a register with :@w.
73(William Fugh, 2013 Apr 5, more info from Ben Fritz)
74Patch by Christian Brabandt, 2013 Apr 6. Second one.
75
76MS-Windows ACL support doesn't work well. Patch from Ken Takata, 2012 Aug 29.
77Update Aug 31.
78Another patch for MingW, 2012 Dec 29.
79
80Bug in completion menu. (Olivier Teuliere, 2013 Feb 15)
81Patch by Christian Brabandt, Feb 16.
82
Bram Moolenaar543b7ef2013-06-01 14:50:56 +020083Issue 134: pasting in visual selection in empty buffer.
84Patch by Christian Brabandt, 2013 May 22.
85
Bram Moolenaar203d04d2013-06-06 21:36:40 +020086Patch to fix "gn" on single character matches. (Christian Brabandt, 2013 Jun
872)
88
Bram Moolenaarec7944a2013-06-12 21:29:15 +020089Patch for cscope connection (Narendran, 2013 Jun 10)
90
Bram Moolenaarad3b3662013-05-17 18:14:19 +020091'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt,
922012 Apr 2.
93
Bram Moolenaare6ae6222013-05-21 21:01:10 +020094When someone does a silly thing such as setting rows and columns to 65535,
95handle the out-of-memory and set them to sane values? (jimmywang, 2013 May 17)
96
97InsertEnter doesn't prevent the cursor from moving when it goes to another
98line.
99
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200100":diffoff" does not restore options from before starting diff mode.
101Patch by Christian Brabandt, 2013 May 26.
102
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200103Can't use multi-byte fill character in custom status line.
104Patch by Christian Wellenbrock, 2013 Jun 2. Update Jun 3 (second one).
105
106Patch to fix glob() and globpath() with escaped special characters.
107(Adnan Zafar, 2013 Jun 2, tests Jun 3)
108
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200109---- Fixes to be included before 7.4 above, less important stuff below ----
110
Bram Moolenaarec7944a2013-06-12 21:29:15 +0200111Patch to make has() check for Vim version and patch at the same time.
112(Marc Weber, 2013 Jun 7)
113
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100114Several syntax file match "^\s*" which may get underlined if that's in the
115highlight group. Add a "\zs" after it?
Bram Moolenaar34feacb2012-12-05 19:01:43 +0100116
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200117Go through more coverity reports.
Bram Moolenaar662db672011-03-22 14:05:35 +0100118
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200119Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
120
Bram Moolenaar30b65812012-07-12 22:01:11 +0200121Checking runtime scripts: Thilo Six, 2012 Jun 6.
122
Bram Moolenaarec7944a2013-06-12 21:29:15 +0200123Fold can't be opened after ":move". (Ein Brown)
124Patch from Christian Brabandt doesn't fix it completely.
125
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200126GTK: problem with 'L' in 'guioptions' changing the window width.
127(Aaron Cornelius, 2012 Feb 6)
128
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +0200129Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
130
Bram Moolenaar30b65812012-07-12 22:01:11 +0200131The CompleteDone autocommand needs some info passed to it:
132- The word that was selected (empty if abandoned complete)
133- Type of completion: tag, omnifunc, user func.
134
Bram Moolenaarbf884932013-04-05 22:26:15 +0200135Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
136That is, calling a dictionary function on an autoloaded dict.
137Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
13817)
139Patch by Christian Brabandt, 2013 Mar 23.
Bram Moolenaarff034192013-04-24 18:51:19 +0200140Not 100% sure this is the right solution.
Bram Moolenaarbf884932013-04-05 22:26:15 +0200141
Bram Moolenaar6ee8d892012-01-10 14:55:01 +0100142Win32: When a directory name contains an exclamation mark, completion doesn't
143complete the contents of the directory. No escaping for the "!"? (Jan
144Stocker, 2012 Jan 5)
145
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200146Patch to support expression argument to sort() instead of a function name.
147Yasuhiro Matsumoto, 2013 May 31.
148Or should we add a more general mechanism, like lambda functions?
149
Bram Moolenaar97d62492012-11-15 21:28:22 +0100150Problem caused by patch 7.3.638: window->open does not update window
151correctly. Issue 91.
152
Bram Moolenaarbf884932013-04-05 22:26:15 +0200153Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
1542013 Mar 19, later message)
Bram Moolenaar26402cb2013-02-20 21:26:00 +0100155
156Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)
157
Bram Moolenaar531da592013-05-06 05:58:55 +0200158Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
1595)
160
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200161Bug with 'cursorline' in diff mode. Line being scrolled into view gets
162highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
163
Bram Moolenaar531da592013-05-06 05:58:55 +0200164Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200165May 17: with winlist() and tabpagelist().
166May 19: with local variables.
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200167May 28: with options
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200168
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200169Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020017028) With tests: Oct 9.
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200171
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200172Patch to allow setting w:quickfix_title via setqflist() and setloclist()
173functions. (Christian Brabandt, 2013 May 8, update May 21)
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200174Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200175Second one. Update May 22.
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200176
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100177Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
178
Bram Moolenaard09acef2012-09-21 14:54:30 +0200179Patch for IME handling, adds 'imactivatefunc' and 'imstatusfunc' option.
180(Yukihiro Nakadaira, 2012 Aug 16)
181Patch to improve IME handling. (Yasuhiro Matsumoto, 2012 Jul 18)
182
Bram Moolenaar84f72352012-03-11 15:57:40 +0100183Issue 54: document behavior of -complete, also expands arg.
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100184
Bram Moolenaarff034192013-04-24 18:51:19 +0200185- Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine
186 the two into a regex for searching. (Ned Konz)
187Patch by Christian Brabandt, 2013 Apr 20, unfinished.
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200188
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200189Bug: findfile("any", "http://;") returns http://any. (Andrew Pimlott, 2013 May
1907) Not sure if that can be fixed, but when using "file://" it should be
191possible to check if the file exists.
Bram Moolenaarff034192013-04-24 18:51:19 +0200192
Bram Moolenaarac7bd632013-03-19 11:35:58 +0100193v:register is not directly reset to " after a delete command that specifies a
194register. It is reset after the next command. (Steve Vermeulen, 2013 Mar 16)
195
Bram Moolenaar97d62492012-11-15 21:28:22 +0100196'ff' is wrong for one-line file without EOL. (Issue 77)
197
Bram Moolenaarbf884932013-04-05 22:26:15 +0200198Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
199Needs a different check for CLEARTYPE_QUALITY.
200
Bram Moolenaar30b65812012-07-12 22:01:11 +0200201Issue 72: 'autochdir' causes problems for :vimgrep.
202
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200203In the ATTENTION message about an existing swap file, mention the name of the
204process that is running. It might actually be some other program, e.g. after
205a reboot.
206
Bram Moolenaar30b65812012-07-12 22:01:11 +0200207MS-Windows: Crash opening very long file name starting with "\\".
208(Christian Brock, 2012 Jun 29)
Bram Moolenaar9a7224b2012-04-30 15:56:52 +0200209
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100210patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
211
Bram Moolenaar84f72352012-03-11 15:57:40 +0100212Syntax update problem in one buffer opened in two windows, bottom window is
213not correctly updated. (Paul Harris, 2012 Feb 27)
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100214
Bram Moolenaard09acef2012-09-21 14:54:30 +0200215Patch to add assignments in cscope. (Uli Meis, Estabrooks, 2012 Sep 1)
216Alternate patch by Gary Johnson, Sep 4.
217
Bram Moolenaar15146672011-10-20 22:22:38 +0200218Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
219Or use expand('<sid>')?
220
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100221Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
222
Bram Moolenaar34700a62013-03-07 13:20:54 +0100223Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100224
Bram Moolenaarbf884932013-04-05 22:26:15 +0200225Patch to use directX to draw text on Windows. Adds the 'renderoptions'
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200226option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100227
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200228Patch to add 'completeselect' option. Specifies how to select a candidate in
229insert completion. (Shougo, 2013 May 29)
230Update to add to existing 'completeopt'. 2013 May 30
231
Bram Moolenaarac7bd632013-03-19 11:35:58 +0100232Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
233
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100234b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
2357)
236
Bram Moolenaar9b451252012-08-15 17:43:31 +0200237Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
2382012 Aug 4)
239
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100240Patch to improve equivalence classes in regexp patterns.
241(Christian Brabandt, 2013 Jan 16, update Jan 17)
242
Bram Moolenaar97d62492012-11-15 21:28:22 +0100243Patch with suggestions for starting.txt. (Tony Mechelynck, 2012 Oct 24)
244But use Gnome instead of GTK?
245
Bram Moolenaarff034192013-04-24 18:51:19 +0200246Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
247Saito, 2013 Apr 24)
248
Bram Moolenaar97d62492012-11-15 21:28:22 +0100249Should be possible to enable/disable matchparen per window or buffer.
250Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin
251Szamotulski, 2012 Nov 8)
Bram Moolenaard09acef2012-09-21 14:54:30 +0200252
Bram Moolenaar9b451252012-08-15 17:43:31 +0200253Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott,
2542012 Aug 11) Disallow :new when BufUnload is being handled?
255
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200256Patch to add ":ldo" and ":cdo", execute commands over quickfix list and
257location list. (Yegappan Lakshmanan, 2013 Jun 2)
258
Bram Moolenaar30b65812012-07-12 22:01:11 +0200259MS-Windows resizing problems:
260- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
261 20. Uses getWindowRect() instead of GetWindowPlacement()
262- Win32: When the taskbar is at the top of the screen creating the tabbar
263 causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan
264 12) Patch: 2012 Jan 13 Needs more work (2012 Feb 2)
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100265
Bram Moolenaar30b65812012-07-12 22:01:11 +0200266'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)
Bram Moolenaarc8734422012-06-01 22:38:45 +0200267
Bram Moolenaarad3b3662013-05-17 18:14:19 +0200268Patch to append regexp to tag commands to make it possible to select one out
Bram Moolenaarbf884932013-04-05 22:26:15 +0200269of many matches. (Cody Cutler, 2013 Mar 28)
270
Bram Moolenaar34700a62013-03-07 13:20:54 +0100271Help for 'b:undo_indent'. (Thilo Six, 2012 May 28)
Bram Moolenaarc8734422012-06-01 22:38:45 +0200272Also question if examples are correct.
273
Bram Moolenaar97d62492012-11-15 21:28:22 +0100274It should be possible to make globpath() return a list instead of a string,
275like with glob(). (Greg Novack, 2012 Nov 2)
276
Bram Moolenaar30b65812012-07-12 22:01:11 +0200277The input map for CTRL-O in mswin.vim causes problems after CTRL-X CTRL-O.
278Suggestion for another map. (Philip Mat, 2012 Jun 18)
279But use "gi" instead of "a". Or use CTRL-\ CTRL-O.
Bram Moolenaarc8734422012-06-01 22:38:45 +0200280
Bram Moolenaard09acef2012-09-21 14:54:30 +0200281Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012
282Aug 16)
283
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200284Have an option for spell checking to not mark any Chinese, Japanese or other
285double-width characters as error. Or perhaps all characters above 256.
286(Bill Sun) Helps a lot for mixed Asian and latin text.
287
Bram Moolenaar97d62492012-11-15 21:28:22 +0100288When there are no command line arguments ":next" and ":argu" give E163, which
289is confusing. Should say "the argument list is empty".
290
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100291URXVT:
Bram Moolenaar34feacb2012-12-05 19:01:43 +0100292- will get stuck if byte sequence does not contain the expected semicolon.
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100293- Use urxvt mouse support also in xterm. Explanations:
294 http://www.midnight-commander.org/ticket/2662
295
Bram Moolenaar97d62492012-11-15 21:28:22 +0100296MS-Windows: test 17 fails. Analysis by Michael Soyka, 2012 Nov 5.
297
Bram Moolenaar30b65812012-07-12 22:01:11 +0200298Patch to add tests for if_xcmdsrv.c., Jul 8, need some more work. (Brian Burns)
Bram Moolenaar6c35bea2012-07-25 17:49:10 +0200299New tests Jul 13. Update Jul 17. Discussion Jul 18.
Bram Moolenaarc8734422012-06-01 22:38:45 +0200300
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100301When running Vim in silent ex mode, an existing swapfile causes Vim to wait
302for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
303Do give the prompt? Quit with an error?
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100304
Bram Moolenaard38b0552012-04-25 19:07:41 +0200305Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
306
307Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
308
Bram Moolenaarff034192013-04-24 18:51:19 +0200309Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
310Apr 18)
311
Bram Moolenaar15146672011-10-20 22:22:38 +0200312Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
313And one for gui_x11.txt.
314
Bram Moolenaar30b65812012-07-12 22:01:11 +0200315- Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
316 Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30)
317 Version for latest MacVim: Tobia Conforto, 2009 Nov 23
318 More recent version: https://retracile.net/wiki/VimBreakIndent
319 Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200320 Update by Taylor Hedberg, 2013 May 30.
Bram Moolenaar30b65812012-07-12 22:01:11 +0200321
Bram Moolenaar5dc62522012-02-13 00:05:22 +0100322":cd" doesn't work when current directory path contains "**".
323finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
324Requires a rewrite of the file_file_in_path code.
325
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200326Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
Bram Moolenaaradc21822011-04-01 18:03:16 +0200327
Bram Moolenaar30b65812012-07-12 22:01:11 +0200328Should use has("browsefilter") in ftplugins. Requires patch 7.3.593.
329
Bram Moolenaar34700a62013-03-07 13:20:54 +0100330Update for vim2html.pl. (Tyru, 2013 Feb 22)
331
Bram Moolenaar6be7f872012-01-20 21:08:56 +0100332Issue 48: foldopen error can't be caught by try/catch
333
Bram Moolenaar15146672011-10-20 22:22:38 +0200334Patch to sort functions starting with '<' after others. Omit dict functions,
335they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
336
Bram Moolenaar5dc62522012-02-13 00:05:22 +0100337Patch to pass list to or(), and() and xor(). (Yasuhiro Matsumoto, 2012 Feb 8)
338
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100339Patch to improve "it" and "at" text object matching. (Christian Brabandt, 2011
340Nov 20)
341
Bram Moolenaarc8734422012-06-01 22:38:45 +0200342Patch to improve GUI find/replace dialog. (Christian Brabandt, 2012 May 26)
Bram Moolenaar30b65812012-07-12 22:01:11 +0200343Update Jun 2.
Bram Moolenaarc8734422012-06-01 22:38:45 +0200344
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100345`] moves to character after insert, instead of the last inserted character.
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100346(Yukihiro Nakadaira, 2011 Dec 9)
347
348Plugin for Modeleasy. (Massimiliano Tripoli, 2011 Nov 29)
349
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100350BufWinLeave triggers too late when quitting last window in a tab page. (Lech
351Lorens, 2012 Feb 21)
352
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100353Patch for 'transparency' option. (Sergiu Dotenco, 2011 Sep 17)
354Only for MS-Windows. No documentation. Do we want this?
355
Bram Moolenaarb6b046b2011-12-30 13:11:27 +0100356Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27)
357
Bram Moolenaar6ee8d892012-01-10 14:55:01 +0100358Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
359Needs more work. Pinged 2012 Jan 4.
360
Bram Moolenaarc8734422012-06-01 22:38:45 +0200361Issue 64: when 'incsearch' is on can't paste LF on command line.
362
Bram Moolenaar30b65812012-07-12 22:01:11 +0200363On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz,
3642012 Jun 19)
365
Bram Moolenaaradc21822011-04-01 18:03:16 +0200366'cursorline' is displayed too short when there are concealed characters and
367'list' is set. (Dennis Preiser)
368Patch 7.3.116 was the wrong solution.
Bram Moolenaar97293012011-07-18 19:40:27 +0200369Christian Brabandt has another incomplete patch. (2011 Jul 13)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200370
Bram Moolenaar251e1912011-06-19 05:09:16 +0200371With concealed text mouse click doesn't put the cursor in the right position.
372(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,
373need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.
374
375Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
376only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
37721, Ben Fritz, 2010 Sep 14)
378
Bram Moolenaar8e52a592012-05-18 21:49:28 +0200379'cursorline' works on a text line only. Add 'cursorscreenline' for
380highlighting the screen line. (Christian Brabandt, 2012 Mar 31)
381
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100382Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
383New feature, requires testing. Made some remarks.
384
385Win32: Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011
386Sep 17) Asked for feedback from others.
387
Bram Moolenaar6be7f872012-01-20 21:08:56 +0100388Win32: Cannot cd into a directory that starts with a space. (Andy Wokula, 2012
389Jan 19)
390
Bram Moolenaar61d35bd2012-03-28 20:51:51 +0200391Win32: default for 'backupcopy' is wrong for a symbolic link. (mklink one
392two). (Benjamin Fritz, 2012 Mar 15)
393
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200394Need to escape $HOME on Windows? (ZyX, 2011 Jul 21)
Bram Moolenaaradc21822011-04-01 18:03:16 +0200395
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100396"2" in 'formatopions' not working in comments. (Christian Corneliussen, 2011
397Oct 26)
398
Bram Moolenaaradc21822011-04-01 18:03:16 +0200399Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
400
Bram Moolenaar2df58b42012-11-28 18:21:11 +0100401Using "p" in Visual mode while specifying the small delete register "-
402overwrites the register before it is put. (Marcin Szamotulski, 2012 Nov 23)
403
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200404With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
405register. (Michael Seiwald, 2011 Jun 28) I can't reproduce it.
Bram Moolenaar251e1912011-06-19 05:09:16 +0200406
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200407In GTK Gvim, setting 'lines' and 'columns' to 99999 causes a crash (Tony
408Mechelynck, 2011 Apr 25). Can reproduce the crash sometimes:
409 gvim -N -u NONE --cmd 'set lines=99999 columns=99999'
410(gvim:25968): Gdk-WARNING **: Native Windows wider or taller than 65535 pixels are not supported
411The program 'gvim' received an X Window System error.
412This probably reflects a bug in the program.
413The error was 'RenderBadPicture (invalid Picture parameter)'.
414 (Details: serial 313 error_code 161 request_code 149 minor_code 8)
415 (Note to programmers: normally, X errors are reported asynchronously;
416 that is, you will receive the error a while after causing it.
417 To debug your program, run it with the --sync command line
418 option to change this behavior. You can then get a meaningful
419 backtrace from your debugger if you break on the gdk_x_error() function.)
420Check that number of pixels doesn't go above 65535?
421
Bram Moolenaaradc21822011-04-01 18:03:16 +0200422Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
423
Bram Moolenaaradc21822011-04-01 18:03:16 +0200424When using a Vim server, a # in the path causes an error message.
425(Jeff Lanzarotta, 2011 Feb 17)
426
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100427Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
428Fritz (2011 Oct 27).
429
Bram Moolenaaradc21822011-04-01 18:03:16 +0200430Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
431
Bram Moolenaar251e1912011-06-19 05:09:16 +0200432Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and
433doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011
434Jun 17)
435
Bram Moolenaar84f72352012-03-11 15:57:40 +0100436When there is a ">" in a line that "gq" wraps to the start of the next line,
437then the following line will pick it up as a leader. Should get the leader
438from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
439
Bram Moolenaaradc21822011-04-01 18:03:16 +0200440Using ":break" or something else that stops executing commands inside a
441":finally" does not rethrow a previously uncaught exception. (ZyX, 2010 Oct
44215)
443
444Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
445
Bram Moolenaarec7944a2013-06-12 21:29:15 +0200446BT regexp engine: After trying a \@> match and failing, submatches are not
447cleared. See test64.
448
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200449Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
450
Bram Moolenaar9b451252012-08-15 17:43:31 +0200451Patch to make "z=" work when 'spell' is off. Does this have nasty side
452effects? (Christian Brabandt, 2012 Aug 5)
453Would also need to do this for spellbadword() and spellsuggest().
454
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200455Patch for variable tabstops.
456
Bram Moolenaaradc21822011-04-01 18:03:16 +0200457On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
45864 bits value. Change all number options to use nropt_T and define it to the
459right type.
460
461string() can't parse back "inf" and "nan". Fix documentation or fix code?
462(ZyX, 2010 Aug 23)
463
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200464Make 'formatprg' global-local. (Sung Pae)
465
Bram Moolenaaradc21822011-04-01 18:03:16 +0200466When doing "redir => s:foo" in a script and then "redir END" somewhere else
467(e.g. in a function) it can't find s:foo.
468
Bram Moolenaard960d762011-09-21 19:22:10 +0200469When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
470doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
471
Bram Moolenaar5302d9e2011-09-14 17:55:08 +02004727 Make "ga" show the digraph for a character, if it exists.
473Patch from Christian Brabandt, 2011 Aug 19.
474
Bram Moolenaaradc21822011-04-01 18:03:16 +0200475maparg() does not show the <script> flag. When temporarily changing a
476mapping, how to restore the script ID?
477
Bram Moolenaaradc21822011-04-01 18:03:16 +0200478Bug in try/catch: return with invalid compare throws error that isn't caught.
479(ZyX, 2011 Jan 26)
480
Bram Moolenaar97293012011-07-18 19:40:27 +0200481When setting a local option value from the global value, add a script ID that
482indicates this, so that ":verbose set" can give a hint. Check with options in
483the help file.
484
Bram Moolenaaradc21822011-04-01 18:03:16 +0200485After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
486Also for another example (ZyX, 2011 Jan 24)
487
488Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
489
490"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
491
Bram Moolenaaradc21822011-04-01 18:03:16 +0200492Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
49330)
494
Bram Moolenaar251e1912011-06-19 05:09:16 +0200495Patch to addd TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
496May 24) Update May 26.
497
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100498Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
499
Bram Moolenaaradc21822011-04-01 18:03:16 +0200500When a script contains "redir => s:foo" but doesn't end redirection, a
501following "redir" command gives an error for not being able to access s:foo.
502(ZyX, 2011 Mar 27)
503
504Problem with "syn sync gouphere". (Gustavo Niemeyer, 2011 Jan 27)
505
506Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
5072010 Dec 18)
508
Bram Moolenaar251e1912011-06-19 05:09:16 +0200509With a filler line in diff mode, it isn't displayed in the column with line
510number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5)
511Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems.
512
Bram Moolenaar5302d9e2011-09-14 17:55:08 +02005138 Add a command to jump to the next character highlighted with "Error".
514Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
515
5168 Add an event like CursorHold that is triggered repeatedly, not just once
517 after typing something.
518Need for CursorHold that retriggers. Use a key that doesn't do anything, or a
519function that resets did_cursorhold.
520Patch by Christian Brabandt, 2011 May 6.
521
5227 Use "++--", "+++--" for different levels instead of "+---" "+----".
523Patch by Christian Brabandt, 2011 Jul 27.
524Update by Ben Fritz, with fix for TOhtml. (2011 Jul 30)
525
5269 Add %F to 'errorformat': file name without spaces. Useful on Unix to
527 avoid matching something up to a time 11:22:33.
528Patch by Christian Brabandt, 2011 Jul 27.
529
530Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
531Update Nov 19. James Vega: still not right. Christian: it's difficult.
532
533Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
534Also add named groups: \%{name}(re) and \%{name}g
535
Bram Moolenaaradc21822011-04-01 18:03:16 +0200536In the sandbox it's not allowed to do many things, but it's possible to change
537or set variables. Add a way to prevent variables from being changed in the
538sandbox? E.g.: ":protect g:restore_settings".
539
540GTK: drawing a double-width combining character over single-width characters
541doesn't look right. (Dominique Pelle, 2010 Aug 8)
542
543GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
544
545Win32: tear-off menu does not work when menu language is German. (Markus
546Bossler, 2011 Mar 2) Fixed by 7.3.095?
547
548Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
549
5507.3.014 changed how backslash at end of line works, but still get a NUL when
551there is one backslash. (Ray Frush, 2010 Nov 18) What does the original ex
552do?
553
Bram Moolenaaradc21822011-04-01 18:03:16 +0200554Searching mixed with Visual mode doesn't redraw properly. (James Vega, 2010 Nov
55522)
556
Bram Moolenaard58e9292011-02-09 17:07:58 +0100557New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
558- move compflags to separate growarray?
Bram Moolenaar9b451252012-08-15 17:43:31 +0200559- instead of a regexp use a hashtable. Expand '?', '*', '+'. What would be
Bram Moolenaard58e9292011-02-09 17:07:58 +0100560 the maximum repeat for * and +?
561
Bram Moolenaar662db672011-03-22 14:05:35 +0100562"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
5632011 Feb 27)
564
Bram Moolenaar4a748032010-09-30 21:47:56 +0200565Copy/paste between Vim and Google chrome doesn't work well for multi-byte
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200566characters. (Ben Haskell, 2010 Sep 17)
Bram Moolenaar4a748032010-09-30 21:47:56 +0200567When putting text in the cut buffer (when exiting) and conversion doesn't work
568properly, Prepend "ENC==={value of 'enc'}:" to the text and don't convert?
569Then it should at least work from Vim to Vim and in other applications it's
570clear why it doesn't work.
Bram Moolenaard38b0552012-04-25 19:07:41 +0200571Experimental patch by Christian Brabandt, 2012 Apr 19.
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200572
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200573Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
574^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
575
Bram Moolenaar26402cb2013-02-20 21:26:00 +0100576'colorcolumn' has higher priority than hlsearch. Should probably be the other
577way around. (Nazri Ramliy, 2013 Feb 19)
578
Bram Moolenaard58e9292011-02-09 17:07:58 +0100579When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
580exit. It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
5819) Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.
582
583g` not working correctly when using :edit. It works OK when editing a file on
584the command line. (Ingo Karkat, 2011 Jan 25)
585
Bram Moolenaar81af9252010-12-10 20:35:50 +0100586Since patch 7.2.46 Yankring plugin has become very slow, eventually make Vim
587crash? (Raiwil, 2010 Nov 17)
588
Bram Moolenaarec7944a2013-06-12 21:29:15 +0200589Does not work with NFA regexp engine:
590- \%u, \%x, \%o, \%d followed by a composing character
591
592Regexp engine performance:
593- Profiling:
594 ./vim -u NONE -s ~/vim/test/ruby.vim
595 ./vim -u NONE -s ~/vim/test/loop.vim
596 ./vim -u NONE -s ~/vim/test/alsa.vim
597 ./vim -s ~/vim/test/todo.vim
598 ./vim -s ~/vim/test/xml.vim
599 Dominique Pelle: xmlSyncDT is particularly slow (Jun 7)
600- More test files from the src/pkg/regexp/testdata directory in the Go repo.
601- Performance tests:
602 - Using asciidoc syntax. (Marek Schimara, 2013 Jun 6)
603 - ~/vim/text/FeiqCfg.xml (file from Netjune)
604 - ~/vim/text/edl.svg (also XML)
605 - glts has five tests. (May 25)
606 - ~/vim/test/slowsearch
607 - ~/vim/test/rgb.vim
608 - search for a.*e*exn in the vim executable. Go to last line to use
609 'hlsearch'.
610 - Slow combination of folding and PHP syntax highlighting. Script to
611 reproduce it. Caused by "syntax sync fromstart" in combination with patch
612 7.2.274. (Christian Brabandt, 2010 May 27) Generally, folding with
613 'foldmethod' set to "syntax" is slow. Do profiling to find out why.
614
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200615Patch to add 'systemencoding', convert between 'encoding' and this for file
616names, shell commands and the like. (Kikuchan, 2010 Oct 14)
617Assume the system converts between the actual encoding of the filesystem to
618the system encoding (usually utf-8).
619
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100620Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
62126)
622
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200623Problem producing tags file when hebrew.frx is present. It has a BOM.
624Results in E670. (Tony Mechelynck, 2010 May 2)
625
Bram Moolenaar15146672011-10-20 22:22:38 +0200626'beval' option should be global-local.
627
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100628Ruby: ":ruby print $buffer.number" returns zero.
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200629
Bram Moolenaar755bd262010-08-14 17:46:20 +0200630setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
Bram Moolenaar2a988a12010-08-13 15:24:39 +0200631
Bram Moolenaar05365702010-10-27 18:34:44 +02006327 The 'directory' option supports changing path separators to "%" to make
633 file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
634 Patch by Christian Brabandt, 2010 Oct 21.
635
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200636getpos()/setpos() don't include curswant. getpos() could return a fifth
637element. setpos() could accept an optional fifth element.
638Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
639and that it's documented.
640
Bram Moolenaar05365702010-10-27 18:34:44 +0200641With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
6422010 Oct 24)
643
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100644Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
645Alternative from Christian Brabandt. (2010 Sep 19)
646
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200647Messages in message.txt are highlighted as examples.
648
Bram Moolenaar05365702010-10-27 18:34:44 +0200649When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
650Oct 22) 'isprint' is set to "@,161-255".
651
Bram Moolenaardc685ab2010-08-13 21:16:49 +0200652Test 73 fails on MS-Windows when compiled with DJGPP and run twice. How to
653delete the Xfind directory? Add an rmdir() function, just like we have
654mkdir().
655
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200656":echo "\x85" =~# '[\u0085]'" returns 1 instead of 0. (ZyX, 2010 Oct 3)
657
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200658'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)
659
Bram Moolenaar6ee8d892012-01-10 14:55:01 +0100660C-indenting: A matching { in a comment is ignored, but intermediate { are not
661checked to be in a comment. Implement FM_SKIPCOMM flag of findmatchlimit().
662Issue 46.
663
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100664When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
665right away. (Samuel Ferencik, 2010 Dec 7)
666
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200667Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
668
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100669Using CompilerSet doesn't record where an option was set from. E.g., in the
670gcc compiler plugin. (Gary Johnson, 2010 Dec 13)
671
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200672":helpgrep" does not put the cursor in the correct column when preceded by
673accented character. (Tony Mechelynck, 2010 Apr 15)
674
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200675Don't call check_restricted() for histadd(), setbufvar(), settabvar(),
676setwinvar().
677
Bram Moolenaar9de99972010-08-09 22:33:06 +0200678Echo starts in the wrong column:
679 while 1 | let s = input('A') | echo 'R' | endw
680(Boyko Bantchev, 2010 Aug 9)
681
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100682Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
683
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100684When writing a file > 2Gbyte, the reported number of bytes is negative.
685(Antonio Colombo, 2010 Dec 18)
686
Bram Moolenaar8408a9a2010-07-30 22:41:22 +0200687Patch: Let rare word highlighting overrule good word highlighting.
Bram Moolenaar97293012011-07-18 19:40:27 +0200688(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
Bram Moolenaar8408a9a2010-07-30 22:41:22 +0200689
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200690When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
691instead of one. (Constantin Pan, 2010 Sep 10)
692
Bram Moolenaar81af9252010-12-10 20:35:50 +0100693Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
694
Bram Moolenaar5302d9e2011-09-14 17:55:08 +0200695Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
696Winckler, 2011 May 11)
697Requires a map mode for Insert mode started from blockwise Visual mode.
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100698
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100699Writing nested List and Dict in viminfo gives error message and can't be read
700back. (Yukihiro Nakadaira, 2010 Nov 13)
701
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100702Can 'undolevels' be a buffer-local option? Helps for making big changes in
703one file only, set 'ul' to -1 only for that buffer.
704Patch by Christian Brabandt, 2010 Dec 17. Needs test.
705
Bram Moolenaarb52073a2010-03-17 20:02:06 +0100706Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200707Additional info by Dominique Pelle. (also on 2010 Apr 10)
708
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100709CreateFile and CreateFileW are used without sharing, filewritable() fails when
710the file was already open (e.g. script is being sourced). Add FILE_SHARE_READ|
711FILE_SHARE_WRITE in mch_access()? (Phillippe Vaucher, 2010 Nov 2)
712
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200713Is ~/bin (literally) in $PATH supposed to work? (Paul, 2010 March 29)
714Looks like only bash can do it. (Yakov Lerner)
715
Bram Moolenaarb2c03502010-07-02 20:20:09 +0200716Cscope "cs add" stopped working somewhat before 7.2.438. (Gary Johnson, 2010
717Jun 29) Caused by 7.2.433?
718
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100719I often see pasted text (from Firefox, to Vim in xterm) appear twice.
720Also, Vim in xterm sometimes loses copy/paste ability (probably after running
721an external command).
Bram Moolenaar6dfc28b2010-02-11 14:19:15 +0100722
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200723Jumplist doesn't work properly in Insert mode? (Jean Johner, 2010 Mar 20)
724
Bram Moolenaarb52073a2010-03-17 20:02:06 +0100725Problem with transparent cmdline. Also: Terminal title is wrong with
726non-ASCII character. (Lily White, 2010 Mar 7)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100727
728iconv() doesn't fail on an illegal character, as documented. (Yongwei Wu, 2009
729Nov 15, example Nov 26) Add argument to specify whether iconv() should fail
730or replace with a character and continue?
731
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100732Add local time at start of --startuptime output.
733Requires configure check for localtime().
734Use format year-month-day hr:min:sec.
735
Bram Moolenaar34feacb2012-12-05 19:01:43 +0100736Patch to add "combine" to :syntax, combines highlight attributes. (Nate
737Soares, 2012 Dec 3)
738
739Patch to make ":hi link" also take arguments. (Nate Soares, 2012 Dec 4)
740
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100741Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
742Find tail? Might have a / in argument. Find space? Might have space in
743path.
744
Bram Moolenaard58e9292011-02-09 17:07:58 +0100745Test 51 fails when language set to German. (Marco, 2011 Jan 9)
Bram Moolenaar9b451252012-08-15 17:43:31 +0200746Dominique can't reproduce it.
Bram Moolenaard58e9292011-02-09 17:07:58 +0100747
Bram Moolenaar61d35bd2012-03-28 20:51:51 +0200748'ambiwidth' should be global-local.
749
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200750":function f(x) keepjumps" creates a function where every command is executed
751like it has ":keepjumps" before it.
752
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100753Coverity: ask someone to create new user: Dominique.
Bram Moolenaar755bd262010-08-14 17:46:20 +0200754Check if there are new reported defects: http://scan.coverity.com/rung2.html
755
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100756Patch to support :undo absolute jump to file save number. (Christian Brabandt,
7572010 Nov 5)
758
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100759Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
760Jan 7)
761
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100762Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
763Only with "vim -u NONE".
764
765Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
766
Bram Moolenaar00654022011-02-25 14:42:19 +0100767With 'wildmode' set to "longest:full,full" and pressing Tab once the first
768entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
769Feb 12)
770
Bram Moolenaar4421d6a2010-08-14 13:33:56 +0200771Display error when 'tabline' that includes a file name with double-width
772characters. (2010 Aug 14, bootleq)
773
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100774Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)
775
Bram Moolenaar97293012011-07-18 19:40:27 +0200776Using ']' as the end of a range in a pattern requires double escaping:
777 /[@-\\]] (Andy Wokula, 2011 Jun 28)
778
Bram Moolenaard960d762011-09-21 19:22:10 +0200779Syntax priority problem. (Charles Campbell, 2011 Sep 15)
780
Bram Moolenaar97ea5112010-06-12 06:46:44 +0200781When completion inserts the first match, it may trigger the line to be folded.
782Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
783
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100784When a:base in 'completefunc' starts with a number it's passed as a number,
785not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
786string value.
787
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100788Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
789
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100790For running gvim on an USB stick: avoid the OLE registration. Use a command
791line argument -noregister.
792
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100793When using an expression in 'statusline' leading white space sometimes goes
794missing (but not always). (ZyX, 2010 Nov 1)
795
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200796When a mapping exists both for insert mode and lang-insert mode, the last one
797doesn't work. (Tyru, 2010 May 6) Or is this intended?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100798
799Still a problem with ":make" in the wrong directory. Caused by ":bufdo".
800(Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
801Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
802There also is a BufLeave/BufEnter aucmd to save/restore view.
803Does the patch to save/restore globaldir work?
804
805":bufdo normal gg" while 'hidden' is set leaves buffers without syntax
806highlighting. Don't disable Syntax autocommands then? Or add a flag/modifier
807to avoid changing 'eventignore'?
808
809Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
810Probably needs a bit of work.
811
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100812List of encoding aliases. (Takao Fujiwara, 2009 Jul 18)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100813Are they all OK? Update Jul 22.
814
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200815Win32: Improved Makefile for MSVC. (Leonardo Valeri Manera, 2010 Aug 18)
816
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100817Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)
818
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200819Win32: Patch for enabling quick edit mode in console. (Craig Barkhouse, 2010
820Sep 1)
821
Bram Moolenaar5dc62522012-02-13 00:05:22 +0100822Win32: Patch for using .png files for icons. (Charles Peacech, 2012 Feb 5)
823
Bram Moolenaar33aea182010-08-07 13:19:27 +0200824Putting a Visual block while 'visualedit' is "all" does not leave the cursor
825on the first character. (John Beckett, 2010 Aug 7)
826
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100827Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
8282009 Jul 18)
829
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100830Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
831Added test, updates, June 23.
832
833Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
834window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
835Needs more work.
836
837Problem with <script> mappings (Andy Wokula, 2009 Mar 8)
838
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100839When starting Vim with "gvim -f -u non_existent_file > foo.txt" there are a
840few control characters in the output. (Dale Wiles, 2009 May 28)
841
Bram Moolenaara3e6bc92013-01-30 14:18:00 +0100842'cmdwinheight' is only used in last window when 'winheight' is a large value.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100843(Tony Mechelynck, 2009 Apr 15)
844
845Status line containing winnr() isn't updated when splitting the window (Clark
846J. Wang, 2009 Mar 31)
847
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200848When $VIMRUNTIME is set in .vimrc, need to reload lang files. Already done
849for GTK, how about others? (Ron Aaron, 2010 Apr 10)
850
Bram Moolenaarede981a2010-08-11 23:37:32 +0200851Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)
852
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200853Motif: Build on Ubuntu can't enter any text in dialog text fields.
854
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100855When 'ft' changes redraw custom status line.
856
857":tab split fname" doesn't set the alternate file in the original window,
858because win_valid() always returns FALSE. Below win_new_tabpage() in
859ex_docmd.c.
860
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200861Space before comma in function definition not allowed: "function x(a , b)"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100862Give a more appropriate error message. Add a remark to the docs.
863
864string_convert() should be able to convert between utf-8 and utf-16le. Used
865for GTK clipboard. Avoid requirement for iconv.
866
867Now that colnr_T is int instead of unsigned, more type casts can be removed.
868
869'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul
87020)
871
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100872Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
8732009 Apr 7) Reminder Apr 14.
874
875Add "no_hlsearch" to winsaveview().
876
877Cursorline highlighting combines with Search ('hlsearch') but not with
878SpellBad. (Jim Karsten, 2009 Mar 18)
879
880When 'foldmethod' is "indent", using >> on a line just above a fold makes the
881cursor line folded. (Evan Laforge, 2009 Oct 17)
882
883When 'foldmethod' is "indent", adding an empty line below a fold and then
884indented text, creates a new fold instead of joining it with the previous one.
885(Evan Laforge, 2009 Oct 17)
886
887Bug: When reloading a buffer changed outside of Vim, BufRead autocommands
888are applied to the wrong buffer/window. (Ben Fritz, 2009 Apr 2, May 11)
889Ignore window options when not in the right window?
890Perhaps we need to use a hidden window for applying autocommands to a buffer
891that doesn't have a window.
892
893When using "ab foo bar" and mapping <Tab> to <Esc>, pressing <Tab> after foo
894doesn't trigger the abbreviation like <Esc> would. (Ramana Kumar, 2009 Sep 6)
895
896getbufvar() to get a window-local option value for a buffer that's not
897displayed in a window should return the value that's stored for that buffer.
898
899":he ctrl_u" can be auto-corrected to ":he ctrl-u".
900
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100901There should be a way after an abbreviation has expanded to go back to what
902was typed. CTRL-G h ? Would also undo last word or line break inserted
903perhaps. And undo CTRL-W. CTRL-G l would redo.
904
Bram Moolenaar84f888a2010-08-05 21:40:16 +0200905Diff mode out of sync. (Gary Johnson, 2010 Aug 4)
906
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200907Support a 'systemencoding' option (for Unix). It specifies the encoding of
908file names. (Kikuchan, 2010 Oct 5). Useful on a latin1 or double-byte Asian
909system when 'encoding' is "utf-8".
910
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100911Win32 GUI: Changing manifest helps for dpi changes (Joe Castro, 2009 Mar 27)
912
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100913Win32 GUI: last message from startup doesn't show up when there is an echoerr
914command. (Cyril Slobin, 2009 Mar 13)
915
916Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
917
918Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
919does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
920
Bram Moolenaarf5963f72010-07-23 22:10:27 +0200921opening/closing window causes other window with 'winfixheight' to change
922height. Also happens when there is another window in the frame, if it's not
Bram Moolenaar2c3b1d92010-07-24 16:58:02 +0200923very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
Bram Moolenaarf5963f72010-07-23 22:10:27 +0200924
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100925Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
926(Felix Kater, 2009 Mar 3)
927
Bram Moolenaar97d62492012-11-15 21:28:22 +0100928Session file generates error upon loading, cause by --remote-silent-tab.
Bram Moolenaar81af9252010-12-10 20:35:50 +0100929(7tommm (ytommm) 2010 Nov 24)
930
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100931Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
932char 0x0301. (Tony Mechelynck, 2009 Mar 4)
933
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100934A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
935
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100936Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
937messages, even though locale is not supported. But ":lang messages
938es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
9392009 Jan 26)
940
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +0100941When $HOME contains special characters, such as a comma, escape them when used
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100942in an option. (Michael Hordijk, 2009 May 5)
943Turn "esc" argument of expand_env_esc() into string of chars to be escaped.
944
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100945Should make 'ignorecase' global-local, so that it makes sense setting it from
946a modeline.
947
948Add cscope target to Makefile. (Tony Mechelynck, 2009 Jun 18, replies by
949Sergey Khorev)
950
951Consider making YankRing or something else that keeps a list of yanked text
952part of standard Vim. The "1 to "9 registers are not sufficient.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000953
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000954netrw: dragging status line causes selection of entry. Should check row
955number to be below last visible line.
956
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100957After doing "su" $HOME can be the old user's home, thus ~root/file is not
958correct. Don't use it in the swap file.
959
960Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
961(Henrik Ohman, 2009, Jan 29)
962
Bram Moolenaar166af9b2010-11-16 20:34:40 +0100963shellescape() depends on 'shellshash' for quoting. That doesn't work when
964'shellslash' is set but using cmd.exe. (Ben Fritz)
965Use a different option or let it depend on whether 'shell' looks like a
966unix-like shell?
967
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200968Bug: in Ex mode (after "Q") backslash before line break, when yanked into a
969register and executed, results in <Nul>: instead of line break.
970(Konrad Schwarz, 2010 Apr 16)
971
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100972Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
973Now at: http://vimgadgets.sourceforge.net/liblinebreak/
974
975Greek sigma character should be lower cased depending on the context. Can we
976make this work? (Dominique Pelle, 2009 Sep 24)
977
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100978When changing 'encoding' convert all the swap file names, so that we can
979still delete them. Also convert all buffer file names?
980
981"gqip" in Insert mode has an off-by-one error, causing it to reflow text.
982(Raul Coronado, 2009 Nov 2)
983
984Update src/testdir/main.aap.
985
986"vim -c 'sniff connect'" hangs Vim. (Dominique Pelle, 2008 Dec 7)
987
988Something wrong with session that has "cd" commands and "badd", in such a way
989that Vim doesn't find the edited file in the buffer list, causing the
990ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
991Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
992
993Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
Bram Moolenaarff034192013-04-24 18:51:19 +0200994Maybe call it v:motiontype.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100995
Bram Moolenaarc236c162008-07-13 17:41:49 +0000996Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
997
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100998MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
999doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
1000probably causes this.
1001
1002'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
Bram Moolenaar927edbd2010-05-17 22:07:47 +020010032009 Jan 16)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001004
1005Document that default font in Athena can be set with resources:
1006 XtDefaultFont: "9x15"
1007 XtDefaultFontSet: "9x15"
1008(Richard Sherman, 2009 Apr 12)
1009
1010Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
1011":bufdo e" when buffers are open in windows. ex_listdo(eap) could set the
1012option only for when jumping to another buffer, not when the command argument
1013is executed.
Bram Moolenaarc236c162008-07-13 17:41:49 +00001014
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001015":pedit %" with a BufReadPre autocommand causes the cursor to move to the
1016first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
Bram Moolenaar49325942007-05-10 19:19:59 +00001017
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001018Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
1019laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
1020Works OK with Vim in an xterm.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001021
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001022Cursor line moves in other window when using CTRL-W J that doesn't change
1023anything. (Dasn, 2009 Apr 7)
1024
1025On Unix "glob('does not exist~')" returns the string. Without the "~" it
1026doesn't. (John Little, 2008 Nov 9)
1027Shell expansion returns unexpanded string?
1028Don't use shell when "~" is not at the start?
1029
1030":unlet $VAR" doesn't work.
1031
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001032When using ":e ++enc=foo file" and the file is already loaded with
1033'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
1034fileencoding differs. Reload the buffer in this situation? Need to check for
1035the buffer to be unmodified.
1036Unfinished patch by Ian Kelling, 2008 Jul 11. Followup Jul 14, need to have
1037another look at it.
1038
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001039c.vim: XXX in a comment is colored yellow, but not when it's after "#if 0".
1040(Ilya Dogolazky, 2009 Aug 7)
1041
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001042You can type ":w ++bad=x fname", but the ++bad argument is ignored. Give an
1043error message? Or is this easy to implement? (Nathan Stratton Treadway, 2008
1044Aug 20) This is in ucs2bytes(), search for 0xBF. Using the ++bad argument is
1045at the other match for 0xBF.
1046
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001047When adding "-complete=file" to a user command this also changes how the
1048argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)
1049
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001050Win32: associating a type with Vim doesn't take care of space after a
1051backslash? (Robert Vibrant, 2008 Jun 5)
1052
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001053Win32: bold font doesn't work when 'guifontwide' has been set. (Yue Wu, 2010
1054Aug 23)
1055
1056When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
1057line. It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
1058
1059Using an insert mode expression mapping, cursor is not in the expected
1060position. (ZyX, 2010 Aug 29)
1061
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001062After using <Tab> for command line completion after ":ta blah" and getting E33
1063(no tags file), further editing the command to e.g., ":echo 'blah'", the
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001064command is not executed. Fix by Ian Kelling?
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001065
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001066":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
1067Chase) Fix by Ian Kelling, 2008 Jul 14.
1068
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001069Use "\U12345678" for 32 bit Unicode characters? (Tony Mechelynck, 2009
1070Apr 6) Or use "\u(123456)", similar to Perl.
1071
1072When mapping : to ; and ; to :, @; doesn't work like @: and @: doesn't work
1073either. Matt Wozniski: nv_at() calls do_execreg() which uses
1074put_in_typebuf(). Char mapped twice?
1075
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001076Despite adding save_subexpr() this still doesn't work properly:
1077Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
1078Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
1079Backreference not cleared when retrying after \@<= fails?
1080(Brett Stahlman, 2008 March 8)
1081
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001082Problem with remote_send(). (Charles Campbell, 2008 Aug 12)
1083
1084ftplugin for help file should set 'isk' to help file value.
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001085
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001086Win32: remote editing fails when the current directory name contains "[".
1087(Ivan Tishchenko, Liu Yubao) Suggested patch by Chris Lubinski: Avoid
1088escaping characters where the backslash is not removed later. Asked Chris for
1089an alternate solution, also for src/ex_getln.c.
Bram Moolenaarc236c162008-07-13 17:41:49 +00001090This also fails when the file or directory name contains "%". (Thoml, 2008
1091July 7)
Bram Moolenaard09acef2012-09-21 14:54:30 +02001092Using --remote-silent while the current directory has a # in the name does not
1093work, the # needs to be escaped. (Tramblay Bruno, 2012 Sep 15)
1094
1095When using remote-silent the -R flag is not passed on. (Axel Bender, 2012 May
109631)
1097
1098Win32: A --remote command that has a directory name starting with a ( doesn't
1099work, the backslash is removed, assuming that it escapes the (. (Valery
1100Kondakoff, 2009 May 13)
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001101
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001102Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
11032008 May 14)
1104
1105Problem with CTRL-F. (Charles Campbell, 2008 March 21)
1106Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
1107'lines' is 54. (2008 March 27)
1108
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001109Problem with pointer wrapping around in getvcol(). (Wolfgang Kroworsch, 2008
1110Oct 19) Check for "col" being "MAXCOL" separately?
1111
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001112Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
1113Works OK when 'cmdheight' is 2.
1114
Bram Moolenaar543b7ef2013-06-01 14:50:56 +020011158 Use a mechanism similar to omni completion to figure out the kind of tab
1116 for CTRL-] and jump to the appropriate matching tag (if there are
1117 several).
1118 Alternative: be able to define a function that takes the tag name and uses
1119 taglist() to find the right location. With indication of using CTRL-] so
1120 that the context can be taken into account. (Robert Webb)
1121Patch by Christian Brabandt, 2013 May 31.
1122
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001123Test54 should not use shell commands. Make it portable.
1124
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001125The utf class table is missing some entries:
1126 0x2212, minus sign
1127 0x2217, star
1128 0x2500, bar
1129 0x26ab, circle
1130
1131Visual line mode doesn't highlight properly when 'showbreak' is used and the
1132line doesn't fit. (Dasn, 2008 May 1)
1133
1134GUI: In Normal mode can't yank the modeless selection. Make "gy" do this?
1135Works like CTRL-Y in Command line mode.
1136
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001137Mac: Move Carbon todo items to os_mac.txt. Note that this version is frozen,
1138try the Cocoa version.
1139
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001140Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
1141changed or the window is resized.
1142
Bram Moolenaar81af9252010-12-10 20:35:50 +01001143GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
1144the window isn't redrawn properly, see two vertical bars.
1145
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001146Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
1147Mar 5) Alternative: Kazuki Sakamoto, Mar 7.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001148
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001149Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
11501) Reply by Ben Schmidt.
1151
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001152C't: On utf-8 system, editing file with umlaut through Gnome results in URL
1153with %nn%nn, which is taken as two characters instead of one.
1154Try to reproduce at work.
1155
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001156Patch for default choice in file changed dialog. (Bjorn Winckler, 2008 Oct 19)
1157Is there a way to list all the files first?
1158
1159When 'smartcase' is set and using CTRL-L to add to the search pattern it may
1160result in no matches. Convert chars to lower case? (Erik Wognsen, 2009 Apr
116116)
1162
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001163Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
1164Haskell, 2010 Aug 24)
1165
1166Fail to edit file after failed register access. Error flag remains set?
1167(Lech Lorens, 2010 Aug 30)
1168
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001169Patch for redo register. (Ben Schmidt, 2007 Oct 19)
1170Await response to question to make the register writable.
1171
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001172src/testdir/Make_dos.mak: not all tests are included, e.g., test49, without a
1173remark why.
1174
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001175Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
11761)
1177
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001178In the swapfile dialog, add a H(elp) option that gives more info about what
1179each choice does. Similar to ":help swap-exists-choices"
1180
1181try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
1182
Bram Moolenaard58e9292011-02-09 17:07:58 +01001183try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
1184
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001185":tab help" always opens a new tab, while ":help" re-uses an existing window.
1186Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
1187
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001188Add ":nofold". Range will apply without expanding to closed fold.
1189
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001190Using Aap to build Vim: add remarks about how to set personal preferences.
1191Example on http://www.calmar.ws/tmp/aap.html
1192
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001193Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
1194Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
1195Jul 31)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001196
1197C syntax: {} inside () causes following {} to be highlighted as error.
1198(Michalis Giannakidis, 2006 Jun 1)
1199
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001200Can't easily close the help window, like ":pc" closes the preview window and
1201":ccl" closes the quickfix window. Add ":hclose". (Chris Gaal)
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001202Patch for :helpclose, Christian Brabandt, 2010 Sep 6.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001203
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001204When 'diffopt' has "context:0" a single deleted line causes two folds to merge
1205and mess up syncing. (Austin Jennings, 2008 Jan 31)
1206
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001207Gnome improvements: Edward Catmur, 2007 Jan 7
1208 Also use Save/Discard for other GUIs
1209
1210New PHP syntax file, use it? (Peter Hodge)
1211
Bram Moolenaar251e1912011-06-19 05:09:16 +02001212":echoe" in catch block stops processing, while this doesn't happen outside of
1213a catch block. (ZyX, 2011 Jun 2)
1214
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001215'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
1216Likonen, March 19)
1217
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001218Test 54 uses shell commands, that doesn't work on non-Unix systems. Use some
1219other way to test buffer-local autocommands.
1220
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001221The documentation mentions the priority for ":2match" and ":3match", but it
1222appears the last one wins. (John Beckett, 2008 Jul 22) Caused by adding
1223matchadd()? Suggested patch by John, 2008 Jul 24.
1224
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001225When 'encoding' is utf-8 the command line is redrawn as a whole on every
1226character typed. (Tyler Spivey, 2008 Sep 3) Only redraw cmdline for
1227'arabicshape' when there is a character on the command line for which
1228(ARABIC_CHAR(u8c)) is TRUE.
1229
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001230Cheng Fang made javacomplete. (2007 Aug 11)
1231Asked about latest version: 0.77.1 is on www.vim.org.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001232
1233More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
1234
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001235Amiga patches with vbcc. (Adrien Destugues, 2010 Aug 30)
1236http://pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
1237
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001238Insert mode completion: When editing the text and pressing CTRL-N again goes
1239back to originally completed text, edited text is gone. (Peng Yu, 2008 Jul 24)
1240Suggestion by Ben Schmidt, 2008 Aug 6.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001241
1242Problem with compound words? (Bert, 2008 May 6)
1243No warning for when flags are defined after they are used in an affix.
1244
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001245Screen redrawing when continuously updating the buffer and resizing the
1246terminal. (Yakov Lerner, 2006 Sept 7)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001247
1248Add option settings to help ftplugin. (David Eggum, 2006 Dec 18)
1249
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001250Autoconf problem: when checking for iconv library we may add -L/usr/local/lib,
1251but when compiling further tests -liconv is added without the -L argument,
1252that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001253
1254When opening quickfix window, disable spell checking?
1255
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001256Problem with ".add" files when using two languages and restarting Vim. (Raul
1257Coronado, 2008 Oct 30)
1258
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001259Popup menu redraw: Instead of first redrawing the text and then drawing the
1260popup menu over it, first draw the new popup menu, remember its position and
1261size and then redraw the text, skipping the characters under the popup menu.
1262This should avoid flicker. Other solution by A.Politz, 2007 Aug 22.
1263
Bram Moolenaar49325942007-05-10 19:19:59 +00001264Windows 98: pasting from the clipboard with text from another application has
1265a trailing NUL. (Joachim Hofmann) Perhaps the length specified for CF_TEXT
1266isn't right?
1267
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001268When a register contains illegal bytes, writing viminfo in utf-8 and reading
1269it back doesn't result in utf-8. (Devin Bayer)
1270
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001271Command line completion: Scanning for tags doesn't check for typed key now and
1272then? Hangs for about 5 seconds. Appears to be caused by finding include
1273files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
Bram Moolenaarc236c162008-07-13 17:41:49 +00001274Additional info: When using the |wildcards| ** globing, vim hangs
1275indefinitely on lots of directories. The |file-searching| globing, like in
1276":set path=/**" does not hang as often as with globing with |wildcards|, like
1277in ":1find /**/file". This is for a files that unix "find" can find very
1278quick. Merging the 2 kinds of globing might make this an easier fix. (Ian
1279Kelling, 2008 July 4)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001280
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001281When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
1282parenthesis escaped but not the space. That's inconsistent. Either escape
1283neither or both. No escaping might be best, because it doesn't depend on
1284particularities of the shell. (Zvi Har'El, 2007 Nov 10) (Teemu Likonen, 2008
1285Jun 3)
1286However, for backwards compatibility escaping might be necessary. Check if
1287the user put quotes around the expanded item?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001288
Bram Moolenaar20f90cf2011-05-19 12:22:51 +02001289A throw in a function causes missing an endif below the call. (Spiros
1290Bousbouras, 2011 May 16)
1291
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001292Error E324 can be given when a cron script has wiped out our temp directory.
1293Give a clear error message about this (and tell them not to wipe out /tmp).
1294
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001295Color for cUserLabel should differ from case label, so that a mistake in a
1296switch list is noticed:
1297 switch (i)
1298 {
1299 case 1:
1300 foobar:
1301 }
1302
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001303Look at http://www.gtk-server.org/ . It has a Vim script implementation.
1304
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001305Netbeans problem. Use "nc -l 127.0.0.1 55555" for the server, then run gvim
1306with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
1307go to Insert mode and add a few lines. Then backspacing every other time
1308moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
1309
Bram Moolenaar8b682772010-07-30 21:49:40 +02001310Patch to use Modern UI 2.0 for the Nsis installer. (Guopeng Wen, 2010 Jul 30)
Bram Moolenaar20f90cf2011-05-19 12:22:51 +02001311Latest version: 2011 May 18
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +010013128 Windows install with NSIS: make it possible to do a silent install, see
1313 http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
1314 Version from Guopeng Wen that does this (2010 Dec 27)
Bram Moolenaar8e52a592012-05-18 21:49:28 +02001315Alternative: MSI installer: https://github.com/petrkle/vim-msi/
Bram Moolenaar8b682772010-07-30 21:49:40 +02001316
Bram Moolenaarb6b046b2011-12-30 13:11:27 +01001317Windows installer should install 32-bit version of right-click handler also on
131864-bit systems. (Brian Cunningham, 2011 Dec 28)
1319
1320Windows installer could add a "open in new tab of existing Vim" menu entry.
1321Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
1322Just have two choices, always using one Vim and selecting between using an
1323argument list or opening each file in a separate tab.
1324(Erik Falor, 2008 May 21, 2008 Jun 26)
1325
Bram Moolenaar20f90cf2011-05-19 12:22:51 +02001326Windows installer: licence text should not use indent, causes bad word wrap.
1327(Benjamin Fritz, 2010 Aug 16)
1328
1329Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
1330makes his own wrapper). Add a magic string with the version number to the
1331.bat file and check for it in the uninstaller. E.g.
1332 # uninstall key: vim7.3*
1333
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001334Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
13352007 Feb 8)
1336
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001337Win32: Can't complete shell command names. Why is setting xp_context in
1338set_one_cmd_context() inside #ifndef BACKSLASH_IN_FILENAME?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001339
1340Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
1341
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001342Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
1343
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001344Win32: XPM support only works with path without spaces. Patch by Mathias
1345Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31.
1346New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
1347patches by Mathias, see mail Feb 22)
1348
1349Win32: compiling with normal features and OLE fails. Patch by Mathias
1350Michaelis, 2006 Jun 4.
1351
1352Win32: echo doesn't work for gvim.exe.mnf. Use inline file. Patch by Mathias
1353Michaelis. http://groups.yahoo.com/group/vimdev/message/43765
1354Patch that includes this and does more by George Reilly, 2007 Feb 12
1355
1356Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22)
1357
1358Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
13592007 Feb 18)
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001360Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001361
1362Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
Bram Moolenaared39e1d2008-08-09 17:55:22 +00001363label. (Tsakiridis, 2007 Feb 18) Patch from Ian Kelling, 2008 Aug 6.
1364
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001365Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen
1366with the more prompt. Caused by setting the guitablabel? (Thomas Michael
1367Engelke, 2007 Dec 20 - 2008 Jan 17)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001368
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001369Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing
1370pointer in long and seek offset in 64 bit var.
1371
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001372Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
1373
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001374Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
1375Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
1376only takes 'shellslash' into account.
1377
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001378Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
1379Ebersbach, 2008 Feb 1)
1380
1381Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
1382Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
1383Does the conversion in the other direction work when 'filenecodings' is set
1384properly?
1385
1386Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
13872007 Jun 21)
1388
1389When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
1390Jun 18)
1391
1392If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
1393
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001394Feature request: Command to go to previous tab, like what CTRL-W p does for
1395windows. (Adam George)
1396
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001397F1 - F4 in an xterm produce a different escape sequence when used with a
1398modifier key. Need to catch three different sequences. Use K_ZF1, like
1399K_ZHOME? (Dickey, 2007 Dec 2)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001400
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001401UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
1402to work. (Tony Mechelynck, 2007 March 2)
1403
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001404In debug mode, using CTRL-R = to evaluate a function causes stepping through
1405the function. (Hari Krishna Dara, 2006 Jun 28)
1406
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001407C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
1408
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001409":lockvar" should use copyID to avoid endless loop.
1410
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001411When using --remote-silent and the file name matches 'wildignore' get an E479
Bram Moolenaarc236c162008-07-13 17:41:49 +00001412error. without --remote-silent it works fine. (Ben Fritz, 2008 Jun 20)
Bram Moolenaar49325942007-05-10 19:19:59 +00001413
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001414Gvim: dialog for closing Vim should check if Vim is busy writing a file. Then
1415use a different dialog: "busy saving, really quit? yes / no".
1416
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001417Check other interfaces for changing curbuf in a wrong way. Patch like for
1418if_ruby.c.
1419
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001420":helpgrep" should use the directory from 'helpfile'.
1421
1422The need_fileinfo flag is messy. Instead make the message right away and put
1423it in keep_msg?
1424
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001425Editing a file remotely that matches 'wildignore' results in a "no match"
Bram Moolenaarff312a42010-05-16 15:14:25 +02001426error. Should only happen when there are wildcards, not when giving the file
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001427name literally, and esp. if there is only one name.
1428
Bram Moolenaar1423b9d2006-05-07 15:16:06 +00001429Test 61 fails sometimes. This is a timing problem: "sleep 2" sometimes takes
1430longer than 2 seconds.
Bram Moolenaard68071d2006-05-02 22:08:30 +00001431
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001432Using ":au CursorMoved * cmd" invokes mch_FullName(), which can be slow.
1433Can this be avoided? (Thomas Waba, 2008 Aug 24)
1434Also for ":w" without a file name.
1435The buffer has the full path in ffname, should pass this to the autocommand.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001436
1437"vim -C" often has 'nocompatible', because it's set in some startup script.
1438Set 'compatible' after startup is done? Patch by James Vega, 2008 Feb 7.
1439
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001440VMS: while editing a file found in complex, Vim will save file into the first
1441directory of the path and not to the original location of the file.
1442(Zoltan Arpadffy)
1443
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001444VMS: VFC files are in some cases truncated during reading (Zoltan Arpadffy)
1445
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001446input() completion should not insert a backslash to escape a space in a file
1447name?
1448
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001449Ruby completion is insecure. Can this be fixed?
1450
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001451When 'backupskip' is set from $TEMP special characters need to be escaped.
1452(patch by Grembowietz, 2007 Feb 26, not quite right)
1453Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\("
1454will be seen as a path separator plus "\(".
1455
Bram Moolenaar6dfc28b2010-02-11 14:19:15 +01001456gvim d:\path\path\(FILE).xml should not remove the \ before the (.
1457This also fails with --remote.
1458
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001459When doing ":quit" the Netbeans "killed" event isn't sent. (Xavier de Gaye,
14602008 Nov 10) call netbeans_file_closed() at the end of buf_freeall(), or in
1461all places where buf_freeall() is called?
1462
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001463aucmd_prepbuf() should also use a window in another tab page.
1464
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001465When unloading a buffer in a BufHidden autocommand the hidden flag is reset?
1466(Bob Hiestand, 2008 Aug 26, Aug 27)
1467
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001468Substituting an area with a line break with almost the same area does change
1469the Visual area. Can this be fixed? (James Vega, 2006 Sept 15)
1470
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001471GUI: When combining fg en bg make sure they are not equal.
1472
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001473Spell checking: Add a way to specify punctuation characters. Add the
1474superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
1475
1476Spell checking in popup menu: If the only problem is the case of the first
1477character, don't offer "ignore" and "add to word list".
1478
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001479Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
1480Jun 5)
1481
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001482Use different romanian dictionary for spell checking. (Andrei Popescu, Nov
14832008) Use http://downloads.sourceforge.net/rospell/ro_RO.3.2.zip
1484Or the hunspell-ro.3.2.tar.gz file, it also has a iso-8859-2 list.
1485
1486In a C file with spell checking, in "% integer" "nteger" is seen as an error,
1487but "]s" doesn't find it. "nteger" by itself is found. (Ralf Wildenhues, 2008
1488Jul 22)
1489
1490There should be something about spell checking in the user manual.
1491
1492Spell menu: When using the Popup menu to select a replacement word,
1493":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use "z="
1494somehow? Or use a new function.
1495
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001496Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
1497
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001498Add an option to specify the character to use when a double-width character is
1499moved to the next line. Default '>', set to a space to blank it out. Check
1500that char is single width when it's set (compare with 'listchars').
1501
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001502The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
1503
1504Session file creation: 'autochdir' causes trouble. Keep it off until after
1505loading all files.
1506
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001507Win32: When 'autochdir' is on and 'encoding' is changed, files on the command
1508line are opened again, but from the wrong directory. Apply 'autochdir' only
1509after starting up?
1510
Bram Moolenaar6dfc28b2010-02-11 14:19:15 +01001511When showing a diff between a non-existent file and an existing one, with the
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001512cursor in the empty buffer, the other buffer only shows the last line. Change
1513the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27)
1514
1515Add autocommand for when a tabpage is being closed. Also for when a tab page
1516has been created.
1517
1518Using ":make" blocks Vim. Allow running one make in the background (if the
1519shell supports it), catch errors in a file and update the error list on the
1520fly. A bit like "!make > file&" and repeating ":cf file". ":bgmake",
1521background make. ":bgcancel" interrupts it.
1522A.Politz may work on this.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001523
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001524These two abbreviations don't give the same result:
1525 let asdfasdf = "xyz\<Left>"
1526 cabbr XXX <C-R>=asdfasdf<CR>
1527 cabbr YYY xyz<Left>
1528
1529Michael Dietrich: maximized gvim sometimes displays output of external command
1530partly. (2006 Dec 7)
1531
1532In FileChangedShell command it's no longer allowed to switch to another
1533buffer. But the changed buffer may differ from the current buffer, how to
1534reload it then?
1535
1536New syntax files for fstab and resolv from Radu Dineiu, David Necas did
1537previous version.
1538
1539For Aap: include a config.arg.example file with hints how to use config.arg.
1540
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001541Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
1542only one buffer line displayed, causes display errors.
1543
1544Completing with 'wildmenu' and using <Up> and <Down> to move through directory
1545tree stops unexpectedly when using ":cd " and entering a directory that
1546doesn't contain other directories.
1547
Bram Moolenaard58e9292011-02-09 17:07:58 +01001548Setting 'background' resets the Normal background color:
1549 highlight Normal ctermbg=DarkGray
1550 set background=dark
1551This is undesired, 'background' is supposed to tell Vim what the background
1552color is, not reset it.
1553
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001554Linux distributions:
1555- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
1556 known to Vim. 88 colors instead of 16 works better. See ":help
1557 xfree-xterm".
1558- Suggest including bare "vi" and "vim" with X11, syntax, etc.
1559
1560Completion menu: For a wrapping line, completing a long file name, only the
1561start of the path is shown in the menu. Should move the menu to the right to
1562show more text of the completions. Shorten the items that don't fit in the
1563middle?
1564
1565When running inside screen it's possible to kill the X server and restart it
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001566(using pty's the program can keep on running). Vim dies because it loses the
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001567connection to the X server. Can Vim simply quit using the X server instead of
1568dying? Also relevant when running in a console.
1569
1570Accessing file#var in a function should not need the g: prepended.
1571
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001572When exiting detects a modified buffer, instead of opening the buffer in the
1573current tab, use an existing tab, if possible. Like finding a window where
1574the buffer is displayed. (Antonios Tsakiridis)
1575
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001576When ":cn" moves to an error in the same line the message isn't shortened.
1577Only skip shortening for ":cc"?
1578
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001579Write "making vim work better" for the docs (mostly pointers): *nice*
1580 - sourcing $VIMRUNTIME/vimrc_example.vim
1581 - setting 'mouse' to "a"
1582 - getting colors in xterm
1583 - compiling Vim with X11, GUI, etc.
1584
1585Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
1586Campbell 2006 Jul 06.
1587
1588Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
1589
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001590A custom completion function in a ":command" cannot be a Funcref. (Andy
1591Wokula, 2007 Aug 25)
1592
1593Problem with using :redir in user command completion function? (Hari Krishna
1594Dara, 2006 June 21)
1595
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001596Another resizing problem when setting 'columns' and 'lines' to a very large
1597number. (Tony Mechelynck, 2007 Feb 6)
1598
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001599After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
1600the cursor line. It works OK after some other commands.
1601
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001602Win32: Is it possible to have both postscript and Win32 printing?
1603Does multi-byte printing with ":hardcopy" work? Add remark in documentation
1604about this.
1605
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001606Check: Running Vim in a console and still having connect to the X server for
1607copy/paste: is stopping the X server handled gracefully? Should catch the X
1608error and stop using the connection to the server.
1609
1610Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
1611Jul 26, Gary Johnson)
1612
Bram Moolenaarff312a42010-05-16 15:14:25 +02001613Using UTF-8 character with ":command" does not work properly. (Matt Wozniski,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010016142008 Sep 29)
1615
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001616In the Netbeans interface add a "vimeval" function, so that the other side can
1617check the result of has("patch13").
1618
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001619Cursor line at bottom of window instead of halfway after saving view and
1620restoring. Only with 'nowrap'. (Robert Webb, 2008 Aug 25)
1621
Bram Moolenaar00654022011-02-25 14:42:19 +01001622Netrw has trouble executing autocommands only for a directory. Add <isdir>
1623and <notisdir> to autocommand patterns? Also <isfile>?
1624
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001625Add command modifier that skips wildcard expansion, so that you don't need to
1626put backslashes before special chars, only for white space.
1627
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001628Syntax HL: open two windows on the same C code, delete a ")" in one window,
1629resulting in highlighted "{" in that window, not in the other.
1630
1631In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
1632can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
1633
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001634GTK: when the Tab pages bar appears or disappears while the window is
1635maximized the window is no longer maximized. Patch that has some idea but
1636doesn't work from Geoffrey Antos, 2008 May 5.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001637Also: the window may no longer fit on the screen, thus the command line is not
1638visible.
1639
Bram Moolenaar81af9252010-12-10 20:35:50 +01001640When right after "vim file", "M" then CTRL-W v the windows are scrolled
1641differently and unexpectedly. Caused by patch 7.2.398?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001642
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001643The magic clipboard format "VimClipboard2" appears in several places. Should
1644be only one.
1645
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001646"vim -C" often has 'nocompatible', because it's set somewhere in a startup
1647script. Do "set compatible" after startup?
1648
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001649It's difficult to debug numbered functions (function in a Dictionary). Print
1650the function name before resolving it to a number?
1651 let d = {}
1652 fun! d.foo()
1653 echo "here"
1654 endfun
1655 call d.foo(9)
1656
1657Add a mark for the other end of the Visual area (VIsual pos). '< and '> are
1658only set after Visual moded is ended.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001659Also add a variable for the Visual mode. So that this mode and '< '> can be
1660used to set what "gv" selects. (Ben Schmidt)
1661
1662Win32: When running ":make" and 'encoding' differs from the system locale, the
1663output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu)
1664Should we use 'termencoding' for this?
1665
Bram Moolenaar996343d2010-07-04 22:20:21 +02001666Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001667"auto" should detect this situation and work like 'backupcopy' is "yes". File
1668name is something like "c:\path\foo.txt:bar", includes a colon. (Alex
1669Jakushev, 2008 Feb 1)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001670
Bram Moolenaar97d62492012-11-15 21:28:22 +01001671printf() uses the field width in bytes. Can it be made character width,
1672perhaps with a modifier? What does Posix say?
1673
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001674Small problem displaying diff filler line when opening windows with a script.
1675(David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )
1676
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001677Is it allowed that 'backupext' is empty? Problems when backup is in same dir
1678as original file? If it's OK don't compare with 'patchmode'. (Thierry Closen)
1679
1680Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
1681Jan 1)
1682
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001683Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
168423)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001685
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001686":mkview" isn't called with the right buffer argument. Happens when using
1687tabs and the autocommand "autocmd BufWinLeave * mkview". (James Vega, 2007
1688Jun 18)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001689
1690xterm should be able to pass focus changes to Vim, so that Vim can check for
1691buffers that changed. Perhaps in misc.c, function selectwindow().
1692Xterm 224 supports it!
1693
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001694When completing from another file that uses a different encoding completion
1695text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
1696latin1. Example from Gombault Damien, 2007 Mar 24.
1697
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001698Is it possible to use "foo#var" instead of "g:foo#var" inside a function?
1699
1700Syntax HL: When using "nextgroup" and the group has an empty match, there is
1701no search at that position for another match. (Lukas Mai, 2008 April 11)
1702
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001703In gvim the backspace key produces a backspace character, but on Linux the
1704VERASE key is Delete. Set VERASE to Backspace? (patch by Stephane Chazelas,
17052007 Oct 16)
1706
1707TermResponse autocommand isn't always triggered when using vimdiff. (Aron
1708Griffis, 2007 Sep 19)
1709
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001710Create a gvimtutor.1 file and change Makefiles to install it.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001711
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001712When 'encoding' is utf-8 typing text at the end of the line causes previously
1713typed characters to be redrawn. Caused by patch 7.1.329. (Tyler Spivey, 2008
1714Sep 3, 11)
1715
1716When Vim in an xterm owns the selection and the user does ":shell" Vim doesn't
1717respond to selection requests. Invoking XtDisownSelection() before executing
1718the shell doesn't help. Would require forking and doing a message loop, like
1719what happens for the GUI.
1720
1721X11: Putting more than about 262040 characters of text on the clipboard and
1722pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
1723clip_x11_request_selection_cb() is called with zero value and length.
1724Also: Get an error message from free() in the process that owns the selection.
1725Seems to happen when the selection is requested the second time, but before
1726clip_x11_convert_selection_cb() is invoked, thus in X library code.
1727
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001728":vimgrep" does not recognize a recursive symlink. Is it possible to detect
1729this, at least for Unix (using device/inode)?
1730
1731When switching between windows the cursor is often put in the middle.
1732Remember the relative position and restore that, just like lnum and col are
1733restored. (Luc St-Louis)
1734
Bram Moolenaarb2c03502010-07-02 20:20:09 +02001735Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
17362010 Jun 30)
1737
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001738
Bram Moolenaare6ae6222013-05-21 21:01:10 +02001739At next release:
Bram Moolenaara3e6bc92013-01-30 14:18:00 +01001740- Build a huge version by default.
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01001741- Improve plugin handling: Automatic updates, handle dependencies?
1742 E.g. Vundle: https://github.com/gmarik/vundle
Bram Moolenaar00654022011-02-25 14:42:19 +01001743
1744
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001745More patches:
Bram Moolenaar26dcc7e2010-07-14 22:35:55 +02001746- Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
1747 Needs a few tests.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001748- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
1749- Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct
1750 21)
1751- Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
1752 patch May 10)
1753- Extra argument to strtrans() to translate special keys to their name (Eric
1754 Arnold, 2006 May 22)
1755- 'threglookexp' option: only match with first word in thesaurus file.
1756 (Jakson A. Aquino, 2006 Jun 14)
1757- Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
1758- Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
1759- ml_append_string(): efficiently append to an existing line. (Brad
1760 Beveridge, 2006 Aug 26) Use in some situations, e.g., when pasting a
1761 character at a time?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001762- recognize hex numbers better. (Mark Manning, 2006 Sep 13)
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001763- Add <AbbrExpand> key, to expand an abbreviation in a mapping. (Kana
1764 Natsuno, 2008 Jul 17)
1765- Add 'wspara' option, also accept blank lines like empty lines for "{" and
1766 "}". (Mark Lundquist, 2008 Jul 18)
1767- Patch to add CTRL-T to delete part of a path on cmdline. (Adek, 2008 Jul
1768 21)
1769- Instead of creating a copy of the tutor in all the shell scripts, do it in
1770 vimtutor.vim. (Jan Minar, 2008 Jul 20)
1771- When fsync() fails there is no hint about what went wrong. Patch by Ben
1772 Schmidt, 2008 Jul 22.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001773- testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
1774 Sep 13)
1775- Patch for adding "space" item in 'listchars'. (Jérémie Roquet, 2009 Oct 29,
1776 Docs patch Oct 30)
Bram Moolenaar26dcc7e2010-07-14 22:35:55 +02001777- Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by
1778 Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts
1779 more friendly for the Vim distribution.
1780 New version received 2008 Jan 6.
1781 No maintenance in two years...
Bram Moolenaar5aae4192010-08-03 23:00:38 +02001782- Patch to open dropped files in new tabs. (Michael Trim, 2010 Aug 3)
Bram Moolenaard68071d2006-05-02 22:08:30 +00001783
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001784Awaiting updated patches:
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000017859 Mac unicode patch (Da Woon Jung, Eckehard Berns):
1786 8 Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
1787 New patch 2004 Jun 16
1788 - selecting proportional font breaks display
1789 - UTF-8 text causes display problems. Font replacement causes this.
1790 - Command-key mappings do not work. (Alan Schmitt)
1791 - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
1792 (Alan Schmitt)
1793 - remove 'macatsui' option when this has been fixed.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001794 - when 'macatsui' is off should we always convert to "macroman" and ignore
1795 'termencoding'?
Bram Moolenaar76b92b22006-03-24 22:46:53 +000017969 HTML indenting can be slow. Caused by using searchpair(). Can search()
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001797 be used instead? A.Politz is looking into a solution.
Bram Moolenaarf193fff2006-04-27 00:02:13 +000017988 Win32: Add minidump generation. (George Reilly, 2006 Apr 24)
Bram Moolenaar768b8c42006-03-04 21:58:33 +000017998 Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001800 Aric Blumer has a patch for this. He will update the patch for 6.3.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018017 Completion of network shares, patch by Yasuhiro Matsumoto.
1802 Update 2004 Sep 6.
1803 How does this work? Missing comments.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018048 Add a few more command names to the menus. Patch from Jiri Brezina
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001805 (28 feb 2002). Will mess the translations...
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018067 ATTENTION dialog choices are more logical when "Delete it' appears
1807 before "Quit". Patch by Robert Webb, 2004 May 3.
1808- Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
1809 for multi-byte characters.
1810- Win32: add options to print dialog. Patch from Vipin Aravind.
1811- Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
1812 use the patch that keeps using HLF_8 if HLF_WS has not
1813 been given values.
1814 Add section in help files for these highlight groups?
18158 "fg" and "bg" don't work in an xterm. Get default colors from xterm
Bram Moolenaar18144c82006-04-12 21:52:12 +00001816 with an ESC sequence.
1817 xterm can send colors for many things. E.g. for the cursor:
1818 <Esc>]12;?<Bel>
1819 Can use this to get the background color and restore the colors on exit.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018207 Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Marcin
1821 Dalecki has a patch for Motif and Carbon)
1822- Add possibility to highlight specific columns (for Fortran). Or put a
1823 line in between columns (e.g., for 'textwidth').
1824 Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
18258 Add functions:
1826 gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
1827 Update 2004 Sep 10
1828 Another patch from Edward L. Fox (2005 Nov 24)
1829 Search in 'runtimepath'?
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001830 More docs needed about how to use this.
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001831 How to get the messages into the .po files?
Bram Moolenaar72597a52010-07-18 15:31:08 +02001832 strchars() Like strlen() and strwidth() but counting characters
1833 instead of bytes.
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001834 confirm() add "flags" argument, with 'v' for vertical
1835 layout and 'c' for console dialog. (Haegg)
1836 Flemming Madsen has a patch for the 'c' flag
1837 (2003 May 13)
1838 raisewin() raise gvim window (see HierAssist patch for
1839 Tcl implementation ~/vim/HierAssist/ )
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001840 taglist() add argument to specify maximum number of matches.
1841 useful for interactive things or completion.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00001842 col('^') column of first non-white character.
1843 Can use "len(substitute(getline('.'), '\S.*', '', ''))
1844 + 1", but that's ugly.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018457 Add patch from Benoit Cerrina to integrate Vim and Perl functions
1846 better. Now also works for Ruby (2001 Nov 10)
1847- Patch from Herculano de Lima Einloft Neto for better formatting of the
1848 quickfix window (2004 dec 2)
18497 When 'rightleft' is set, the search pattern should be displayed right
1850 to left as well? See patch of Dec 26. (Nadim Shaikli)
Bram Moolenaar8cacf352006-04-15 20:27:24 +000018518 Option to lock all used memory so that it doesn't get swapped to disk
1852 (uncrypted). Patch by Jason Holt, 2003 May 23. Uses mlock.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000018537 Add ! register, for shell commands. (patch from Grenie)
18548 In the gzip plugin, also recognize *.gz.orig, *.gz.bak, etc. Like it's
1855 done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1.
18567 Add a "-@ filelist" argument: read file names from a file. (David
1857 Kotchan has a patch for it)
18588 Include a connection to an external program through a pipe? See
1859 patches from Felbinger for a mathematica interface.
1860 Or use emacs server kind of thing?
18617 Add ":justify" command. Patch from Vit Stradal 2002 Nov 25.
1862- findmatch() should be adjusted for Lisp. See remark at
1863 get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram,
1864 incomplete patch Mar 18)
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001865- For GUI Find/Replace dialog support using a regexp. Patch for Motif
1866 and GTK by degreneir (nov 10 and nov 18).
1867- Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
1868
1869
Bram Moolenaar071d4272004-06-13 20:20:40 +00001870Vi incompatibility:
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001871- Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
1872 Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
Bram Moolenaar071d4272004-06-13 20:20:40 +000018738 With undo/redo only marks in the changed lines should be changed. Other
1874 marks should be kept. Vi keeps each mark at the same text, even when it
1875 is deleted or restored. (Webb)
1876 Also: A mark is lost after: make change, undo, redo and undo.
1877 Example: "{d''" then "u" then "d''": deletes an extra line, because the ''
1878 position is one line down. (Veselinovic)
Bram Moolenaar071d4272004-06-13 20:20:40 +000018798 When stdin is not a tty, and Vim reads commands from it, an error should
1880 make Vim exit.
18817 Unix Vim (not gvim): Typing CTRL-C in Ex mode should finish the line
1882 (currently you can continue typing, but it's truncated later anyway).
1883 Requires a way to make CTRL-C interrupt select() when in cooked input.
18848 When loading a file in the .exrc, Vi loads the argument anyway. Vim skips
1885 loading the argument if there is a file already. When no file argument
1886 given, Vi starts with an empty buffer, Vim keeps the loaded file. (Bearded)
18876 In Insert mode, when using <BS> or <Del>, don't wipe out the text, but
1888 only move back the cursor. Behaves like '$' in 'cpoptions'. Use a flag
1889 in 'cpoptions' to switch this on/off.
18908 When editing a file which is a symbolic link, and then opening another
1891 symbolic link on the same file, Vim uses the name of the first one.
1892 Adjust the file name in the buffer to the last one used? Use several file
1893 names in one buffer???
1894 Also: When first editing file "test", which is symlink to "test2", and
1895 then editing "test2", you end up editing buffer "test" again. It's not
1896 logical that the name that was first used sticks with the buffer.
18977 The ":undo" command works differently in Ex mode. Edit a file, make some
1898 changes, "Q", "undo" and _all_ changes are undone, like the ":visual"
1899 command was one command.
Bram Moolenaareaa48e72005-06-08 22:07:37 +00001900 On the other hand, an ":undo" command in an Ex script only undoes the last
1901 change (e.g., use two :append commands, then :undo).
Bram Moolenaar071d4272004-06-13 20:20:40 +000019027 The ":map" command output overwrites the command. Perhaps it should keep
1903 the ":map" when it's used without arguments?
19047 CTRL-L is not the end of a section? It is for Posix! Make it an option.
19057 Implement 'prompt' option. Init to off when stdin is not a tty.
19067 CTRL-T in Insert mode inserts 'shiftwidth' of spaces at the cursor. Add a
1907 flag in 'cpoptions' for this.
19087 Add a way to send an email for a crashed edit session. Create a file when
1909 making changes (containing name of the swap file), delete it when writing
1910 the file. Supply a program that can check for crashed sessions (either
1911 all, for a system startup, or for one user, for in a .login file).
19127 Vi doesn't do autoindenting when input is not from a tty (in Ex mode).
19137 "z3<CR>" should still use the whole window, but only redisplay 3 lines.
19147 ":tag xx" should move the cursor to the first non-blank. Or should it go
1915 to the match with the tag? Option?
19167 Implement 'autoprint'/'ap' option.
19177 Add flag in 'cpoptions' that makes <BS> after a count work like <Del>
1918 (Sayre).
19197 Add flag in 'cpoptions' that makes operator (yank, filter) not move the
1920 cursor, at least when cancelled. (default Vi compatible).
Bram Moolenaar071d4272004-06-13 20:20:40 +000019217 This Vi-trick doesn't work: "Q" to go to Ex mode, then "g/pattern/visual".
1922 In Vi you can edit in visual mode, and when doing "Q" you jump to the next
1923 match. Nvi can do it too.
19247 Support '\' for line continuation in Ex mode for these commands: (Luebking)
1925 g/./a\ g/pattern1/ s/pattern2/rep1\\
1926 line 1\ line 2\\
1927 line 2\ line 3\\
1928 . line4/
19296 ":e /tmp/$tty" doesn't work. ":e $uid" does. Is $tty not set because of
1930 the way the shell is started?
19316 Vi compatibility (optional): make "ia<CR><ESC>10." do the same strange
1932 thing. (only repeat insert for the first line).
1933
1934
Bram Moolenaar071d4272004-06-13 20:20:40 +00001935GTK+ GUI known bugs:
Bram Moolenaar768b8c42006-03-04 21:58:33 +000019369 Crash with X command server over ssh. (Ciaran McCreesh, 2006 Feb 6)
Bram Moolenaar071d4272004-06-13 20:20:40 +000019378 GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
1938 Machowski) They are displayed as separate characters. Problem in
1939 creating a label?
Bram Moolenaar6e7c7f32005-08-24 22:16:11 +000019408 GTK 2: Combining UTF-8 characters are sometimes not drawn properly.
1941 Depends on the font size, "monospace 13" has the problem. Vim seems to do
1942 everything right, must be a GTK bug. Is there a way to work around it?
Bram Moolenaar071d4272004-06-13 20:20:40 +000019439 Can't paste a Visual selection from GTK-gvim to vim in xterm or Motif gvim
1944 when it is longer than 4000 characters. Works OK from gvim to gvim and
1945 vim to vim. Pasting through xterm (using the shift key) also works.
1946 It starts working after GTK gvim loses the selection and gains it again.
Bram Moolenaare580b0c2006-03-21 21:33:03 +00001947- Gnome2: When moving the toolbar out of the dock, so that it becomes
1948 floating, it can no longer be moved. Therefore making it float has been
1949 blocked for now.
1950
Bram Moolenaar071d4272004-06-13 20:20:40 +00001951
1952Win32 GUI known bugs:
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001953- Win32: tearoff menu window should have a scrollbar when it's taller than
1954 the screen.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000019558 non-ASCII font names don't work. Need to convert from 'encoding' and use
1956 the wide functions.
Bram Moolenaar071d4272004-06-13 20:20:40 +000019578 On Windows 98 the unicows library is needed to support functions with UCS2
1958 file names. Can we load unicows.dll dynamically?
19598 The -P argument doesn't work very well with many MDI applications.
1960 The last argument of CreateWindowEx() should be used, see MSDN docs.
1961 Tutorial: http://win32assembly.online.fr/tut32.html
19628 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
1963 WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
19647 Windows XP: When using "ClearType" for text smoothing, a column of yellow
1965 pixels remains when typing spaces in front of a "D" ('guifont' set to
1966 "lucida_console:h8").
19676 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
1968 of ":only" is highlighted like the cursor. (Lipelis)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000019698 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
1970 characters to make Asian languages work. Win32 fonts contain both
1971 type of characters.
Bram Moolenaar071d4272004-06-13 20:20:40 +000019727 When font smoothing is enabled, redrawing can become very slow. The reason
1973 appears to be drawing with a transparent background. Would it be possible
1974 to use an opaque background in most places?
19758 Use another default for 'termencoding': the active codepage. Means that
1976 when 'encoding' is changed typing characters still works properly.
1977 Alternative: use the Unicode functions to obtain typed characters.
19788 Win32: Multi-byte characters are not displayed, even though the same font
1979 in Notepad can display them. (Srinath Avadhanula) Try with the
1980 UTF-8-demo.txt page with Andale Mono.
19817 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
1982 2004 May 9)
19838 Win32: When clicking on the gvim title bar, which gives it focus, produces
1984 a file-changed dialog, after clicking on a button in that dialog the gvim
1985 window follows the mouse. The button-up event is lost. Only with
1986 MS-Windows 98?
1987 Try this: ":set sw ts", get enter-prompt, then change the file in a
1988 console, go back to Vim and click "reload" in the dialog for the changed
1989 file: Window moves with the cursor!
1990 Put focus event in input buffer and let generic Vim code handle it?
Bram Moolenaar071d4272004-06-13 20:20:40 +000019918 Win32: When mouse is hidden and in the toolbar, moving it won't make it
1992 appear. (Sami Salonen)
Bram Moolenaar071d4272004-06-13 20:20:40 +000019938 Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
1994 comes available. (Poucet) It works OK on Win 98 but doesn't work on Win
1995 NT 4.0. Leaves a grey area where the scrollbar was. ":set go+=r" also
1996 doesn't work properly.
19978 When Vim is minimized and when maximizing it a file-changed dialog pops
1998 up, Vim isn't maximized. It should be done before the dialog, so that it
1999 appears in the right position. (Webb)
20009 When selecting at the more-prompt or hit-enter-prompt, the right mouse
2001 button doesn't give popup menu.
2002 At the hit-enter prompt CTRL-Y doesn't work to copy the modeless
2003 selection.
2004 On the command line, don't get a popup menu for the right mouse button.
2005 Let the middle button paste selected text (not the clipboard but the
2006 non-Visual selection)? Otherwise CTRL-Y has to be used to copy the text.
20078 When 'grepprg' doesn't execute, the error only flashes by, the
2008 user can hardly see what is wrong. (Moore)
2009 Could use vimrun with an "-nowait" argument to only wait when an error
2010 occurs, but "command.com" doesn't return an error code.
20118 When the 'shell' cannot be executed, should give an appropriate error msg.
2012 Esp. for a filter command, currently it only complains the file could not
2013 be read.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020147 Add an option to add one pixel column to the character width? Lucida
2015 Console italic is wider than the normal font ("d" overlaps with next char).
2016 Opposite of 'linespace': 'columnspace'.
20177 At the hit-enter prompt scrolling now no longer works. Need to use the
2018 keyboard to get around this. Pretend <CR> was hit when the user tries to
Bram Moolenaar4463f292005-09-25 22:20:24 +00002019 scroll?
Bram Moolenaar071d4272004-06-13 20:20:40 +000020207 Scrollbar width doesn't change when selecting other windows appearance.
2021 Also background color of Toolbar and rectangle below vert. scrollbar.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020226 Drawing text transparently doesn't seem to work (when drawing part cursor).
20238 CTRL key doesn't always work in combination with ALT key. It does work
2024 for function keys, not for alphabetic characters. Perhaps this is because
2025 CTRL-ALT is used by Windows as AltGr?
20268 CTRL-- doesn't work for AZERTY, because it's CTRL-[ for QWERTY. How do we
2027 know which keyboard is being used?
20287 When scrolling, and a background color is dithered, the dither pattern
2029 doesn't always join correctly between the scrolled area and the new drawn
2030 area (Koloseike).
20318 When gui_init_font() is called with "*", p_guifont is freed while it might
2032 still be used somewhere. This is too tricky, do the font selection first,
2033 then set the new font by name (requires putting all logfont parameters in
2034 the font name).
2035
2036
2037Athena and Motif:
Bram Moolenaar5313dcb2005-02-22 08:56:13 +000020386 New Motif toolbar button from Marcin Dalecki:
2039 - When the mouse pointer is over an Agide button the red becomes black.
2040 Something with the way colors are specified in the .xpm file.
2041 - The pixmap is two pixels smaller than it should be. The gap is filled
2042 with grey instead of the current toolbar background color.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020439 Can configure be changed to disable netbeans if the Xpm library is
2044 required and it's missing?
20458 When using the resource "Vim*borderwidth 2" the widgets are positioned
2046 wrong.
20479 XIM is disabled by default for SGI/IRIX. Fix XIM so that 'imdisable' can
2048 be off by default.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000020499 XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto) For now,
Bram Moolenaar071d4272004-06-13 20:20:40 +00002050 keep XIM active at all times when the input method has the preediting
2051 flag.
20528 X11: A menu that contains an umlaut is truncated at that character.
2053 Happens when the locale is "C", which uses ASCII instead of IS0-8859-1.
2054 Is there a way to use latin1 by default? Gnome_init() seems to do this.
20558 Perhaps use fontsets for everything?
20566 When starting in English and switching the language to Japanese, setting
2057 the locale with ":lang", 'guifontset' and "hi menu font=", deleting all
2058 menus and setting them again, the menus don't use the new font. Most of
2059 the tooltips work though...
20607 Motif: when using a file selection dialog, the specified file name is not
2061 always used (when specifying a filter or another directory).
20628 When 'encoding' is different from the current locale (e.g., utf-8) the
2063 menu strings don't work. Requires conversion from 'encoding' to the
2064 current locale. Workaround: set 'langmenu'.
2065
2066
2067Athena GUI:
Bram Moolenaar166af9b2010-11-16 20:34:40 +010020689 The first event for any button in the menu or toolbar appears to get lost.
2069 The second click on a menu does work.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020709 When dragging the scrollbar thumb very fast, focus is only obtained in
2071 the scrollbar itself. And the thumb is no longer updated when moving
2072 through files.
20737 The file selector is not resizable. With a big font it is difficult to
2074 read long file names. (Schroeder)
20754 Re-write the widget attachments and code so that we will not have to go
2076 through and calculate the absolute position of every widget every time the
2077 window is refreshed/changes size. This will help the "flashing-widgets"
2078 problem during a refresh.
20795 When starting gvim with all the default colors and then typing
2080 ":hi Menu guibg=cyan", the menus change color but the background of the
2081 pullright pixmap doesn't change colors.
2082 If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
2083 colors as it should.
2084 Allocating a new pixmap and setting the resource doesn't change the
2085 pullright pixmap's colors. Why? Possible Athena bug?
2086
2087
2088Motif GUI:
Bram Moolenaar00659062010-09-21 22:34:02 +02002089- gui_mch_browsedir() is missing, browsedir() doesn't work nicely.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020907 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
2091 David Harrison says it's OK (it exists in Motif 1.2).
Bram Moolenaar071d4272004-06-13 20:20:40 +000020928 Lesstif: When deleting a menu that's torn off, the torn off menu becomes
2093 very small instead of disappearing. When closing it, Vim crashes.
2094 (Phillipps)
2095
2096
2097GUI:
20989 On Solaris, creating the popup menu causes the right mouse button no
2099 longer to work for extending the selection. (Halevy)
21009 When running an external program, it can't always be killed with CTRL-C.
Bram Moolenaar51ac12f2005-07-02 23:21:11 +00002101 e.g., on Solaris 5.5, when using "K" (Keech). Other 'guipty' problems on
Bram Moolenaar071d4272004-06-13 20:20:40 +00002102 Solaris 2.6. (Marley)
21039 On Solaris: Using a "-geometry" argument, bigger than the window where Vim
2104 is started from, causes empty lines below the cmdline. (raf)
21058 X11 GUI: When menu is disabled by excluding 'm' from 'guioptions', ALT key
2106 should not be used to trigger a menu (like the Win32 version).
21078 When setting 'langmenu', it should be effective immediately. Store both
2108 the English and the translated text in the menu structure. Re-generate
2109 the translation when 'langmenu' has changed.
21108 Basic flaw in the GUI code: NextScreen is updated before calling
2111 gui_write(), but the GUI code relies on NextScreen to represent the state
2112 of where it is processing the output.
2113 Need better separation of Vim core and GUI code.
21148 When fontset support is enabled, setting 'guifont' to a single font
2115 doesn't work.
21168 Menu priority for sub-menus for: Amiga, BeOS.
Bram Moolenaar1056d982006-03-09 22:37:52 +000021178 When translating menus ignore the part after the Tab, the shortcut. So
2118 that the same menu item with a different shortcut (e.g., for the Mac) are
2119 still translated.
Bram Moolenaar446beb42011-05-10 17:18:44 +020021208 Add menu separators for Amiga.
Bram Moolenaar071d4272004-06-13 20:20:40 +000021218 Add way to specify the file filter for the browse dialog. At least for
2122 browse().
21238 Add dialog for search/replace to other GUIs? Tk has something for this,
2124 use that code? Or use console dialog.
21258 When selecting a font with the font dialog and the font is invalid, the
2126 error message disappears too quick.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +000021277 More features in the find/replace dialog:
2128 - regexp on/off
2129 - search in selection/buffer/all buffers/directory
2130 when all buffers/directory is used:
2131 - filter for file name
2132 when directory is used:
2133 - subdirectory on/off
2134 - top directory browser
Bram Moolenaar071d4272004-06-13 20:20:40 +000021358 gui_check_colors() is not called at the right moment. Do it much later,
2136 to avoid problems.
21378 gui_update_cursor() is called for a cursor shape change, even when there
2138 are mappings to be processed. Only do something when going to wait for
2139 input. Or maybe every 100 ms?
21408 X11: When the window size is reduced to fit on screen, there are blank
2141 lines below the text and bottom scrollbar. "gvim -geometry 80x78+0+0".
2142 When the "+0+0" is omitted it works.
21438 When starting an external command, and 'guipty' set, BS and DEL are mixed
2144 up. Set erase character somehow?
21458 A dead circumflex followed by a space should give the '^' character
2146 (Rommel). Look how xterm does this.
2147 Also: Bednar has some code for dead key handling.
2148 Also: Nedit 5.0.2 with USE_XMIM does it right. (Gaya)
21498 The compose key doesn't work properly (Cepas). Both for Win32 and X11.
21507 The cursor in an inactive window should be hollow. Currently it's not
2151 visible.
21527 GUI on Solaris 2.5.1, using /usr/dt/..: When gvim starts, cursor is
2153 hollow, after window lowered/raised it's OK. (Godfrey)
21547 When starting GUI with ":gui", and window is made smaller because it
2155 doesn't fit on the screen, there is an extra redraw.
21568 When setting font with .Xdefaults, there is an extra empty line at the
2157 bottom, which disappears when using ":set guifont=<Tab>". (Chadzelek)
21588 When font shape changes, but not the size, doing ":set font=" does not
2159 redraw the screen with the new font. Also for Win32.
2160 When the size changes, on Solaris 2.5 there isn't a redraw for the
2161 remaining part of the window (Phillipps).
2162- Flashes really badly in certain cases when running remotely from a Sun.
21634 Re-write the code so that the highlighting isn't changed multiple times
2164 when doing a ":hi clear". The color changes happen three or more times
2165 currently. This is very obvious on a 66Mhz 486.
2166
2167
2168MSDOS/DJGPP:
21699 Pressing CTRL-C often crashes the console Vim runs in. (Ken Liao)
2170 When 'bioskey' isn't set it doesn't happen. Could be a problem with the
2171 BIOS emulation of the console. Version 5.6 already had this problem.
21728 DJGPP: "cd c:" can take us to a directory that no longer exists.
2173 change_drive() doesn't check this. How to check for this error?
21749 The 16 bit version runs out of memory very quickly. Should find unused
Bram Moolenaare2f98b92006-03-29 21:18:24 +00002175 code and reduce static data. Resetting 'writebackup' helps to be able to
2176 write a file.
Bram Moolenaar071d4272004-06-13 20:20:40 +000021779 Crash when running on Windows 98 in a console window and pressing CTRL-C.
2178 Happens now and then. When debugging Vim in gdb this also happens. Since
2179 the console crashes, might be a bug in the DOS console. Resetting
2180 'bioskey' avoids it, but then CTRL-C doesn't work.
21819 DOS: Make CTRL-Fx and ALT-Fx work.
2182 CTRL-F1 = CE-5E, CTRL-F2 = CE-5F, .., CTRL-F10 = CE-67
2183 ALT-F1 = CE-68, ALT-F2 = CE-69, .., ALT-F10 = CE-71
2184 Shifted cursor keys produce same codes as unshifted keys. Use bioskey(2)
2185 to get modifier mask for <S-C-M-Fx>.
2186 Use K_SPECIAL/KS_MODIFIER codes to insert modifier mask in input stream?
2187 Make this work like in Win32 console.
2188 Mapping things like <M-A> doesn't work, because it generates an extended
2189 key code. Use a translation table?
21909 Can't read an opened swap file when the "share" command has not been used.
2191 At least ignore the swap files that Vim has opened itself.
21928 Use DJGPP 2.03.
21938 The Dos32 version (DJGPP) can't use long file names on Windows NT.
2194 Check if new package can be used (v2misc/ntlfn08[bs].zip).
21958 setlocale() is bogus.
21968 Vim busy waits for new characters or mouse clicks. Should put in some
2197 sort of sleep, to avoid eating 50% of the CPU time. Test on an unpatched
2198 Windows 95 system!
21998 DJGPP: when shell is bash, make fails. (Donahoe)
Bram Moolenaar51ac12f2005-07-02 23:21:11 +000022007 Hitting CTRL-P twice quickly (e.g., in keyword completion) on a 8088
Bram Moolenaar071d4272004-06-13 20:20:40 +00002201 machine, starts printer echo! (John Mullin).
22027 MSDOS 16 bit version can't work with COMSPEC that has an argument, e.g.:
2203 COMSPEC=C:\WINDOWS\COMMAND.COM /E:4096 (Bradley)
2204 Caused by BCC system() function (Borland "make" has the same problem).
22058 Mouse: handle left&right button pressed as middle button pressed. Add
2206 modifier keys shift, ctrl and alt.
22077 When too many files are open (depends on FILES), strange things happen.
2208 The Dos16 version runs out of memory, in the Dos32 version "!ls" causes a
2209 crash. Another symptom: .swp files are not deleted, existing files are
2210 "[New file]".
22117 DJGPP version doesn't work with graphics display mode. Switch to a mode
2212 that is supported?
22138 DJGPP: ":mode" doesn't work for many modes. Disable them.
22148 DJGPP: When starting in Ex mode, shouldn't clear the screen. (Walter
2215 Briscoe)
2216
2217
2218MSDOS, OS/2 and Win32:
22198 OS/2: Add backtick expansion. Undefine NO_EXPANDPATH and use
2220 gen_expand_wildcards().
22218 OS/2: Add clipboard support? See example clipbrd.exe from Alexander
2222 Wagner.
22238 OS/2: Add Extended Attributes support and define HAVE_ACL.
22248 OS/2: When editing a file name "foo.txt" that is actually called FOO.txt,
2225 writing uses "foo.txt". Should obtain the real file name.
Bram Moolenaara5792f52005-11-23 21:25:05 +000022268 Should $USERPROFILE be preferred above $HOMEDRIVE/$HOMEPATH? No, but it's
2227 a good fallback, thus use:
2228 $HOME
2229 $HOMEDRIVE$HOMEPATH
2230 SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_APPDATA, FALSE);
2231 $USERPROFILE
2232 SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_COMMON_APPDATA, FALSE);
2233 $ALLUSERSPROFILE
2234 $SYSTEMDRIVE\
2235 C:\
Bram Moolenaar071d4272004-06-13 20:20:40 +000022368 Win32 console: <M-Up> and <M-Down> don't work. (Geddes) We don't have
2237 special keys for these. Should use modifier + key.
22388 Win32 console: caps-lock makes non-alpha keys work like with shift.
2239 Should work like in the GUI version.
22408 Environment variables in DOS are not case sensitive. Make a define for
2241 STRCMP_ENV(), and use it when comparing environment var names.
22428 Setting 'shellslash' has no immediate effect. Change all file names when
2243 it is set/reset? Or only use it when actually executing a shell command?
22448 When editing a file on a Samba server, case might matter. ":e file"
2245 followed by ":e FILE" will edit "file" again, even though "FILE" might be
2246 another one. Set last used name in buflist_new()? Fix do_ecmd(), etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +000022478 When a buffer is editing a file like "ftp://mach/file", which is not going
2248 to be used like a normal file name, don't change the slashes to
2249 backslashes. (Ronald Hoellwarth)
2250
2251
2252Windows 95:
Bram Moolenaar06b5d512010-05-22 15:37:44 +020022538 Editing a file by its short file name and writing it, makes the long file
Bram Moolenaar071d4272004-06-13 20:20:40 +00002254 name disappear. Setting 'backupcopy' helps.
2255 Use FindFirstFile()->cAlternateFileName in fname_case() (George Reilly).
22568 Doing wildcard expansion, will match the short filename, but result in the
2257 long filename (both DJGPP and Win32).
2258
2259
2260Win32 console:
22619 When editing a file by its short file name, it should be expanded into its
2262 long file name, to avoid problems like these: (Mccollister)
2263 1) Create a file called ".bashrc" using some other editor.
2264 2) Drag that file onto a shortcut or the actual executable.
2265 3) Note that the file name is something like BASHRC~1
2266 4) Go to File->Save As menu item and type ".bashrc" as the file name.
2267 5) Press "Yes" to indicate that I want to overwrite the file.
2268 6) Note that the message "File exists (add ! to override)" is displayed
2269 and the file is not saved.
2270 Use FindFirstFile() to expand a file name and directory in the path to its
2271 long name.
22728 Also implement 'conskey' option for the Win32 console version? Look at
2273 how Xvi does console I/O under Windows NT.
22747 Re-install the use of $TERM and support the use of different terminals,
2275 besides the console.
22768 Use of <altgr> modifier doesn't work? 5.3 was OK. (Garcia-Suarez/Guckes)
22779 Mapping <C-S-Tab> doesn't work correctly. How to see the difference with
2278 <C-S-i>?
22799 tmpnam() uses file in root of file system: "\asdf". That doesn't work on
2280 a Netware network drive. Use same function as for Win32 GUI?
22818 In os_win32.h, HAVE_STRICMP and HAVE_STRNICMP are defined only if __GNUC__
2282 is not defined. Shouldn't that be the other way around?
Bram Moolenaar071d4272004-06-13 20:20:40 +000022837 Use SetConsoleCP() and SetConsoleOutputCP() to implement 'termencoding'?
2284 Avoids that input and output work differently. Need to be restored when
2285 exiting.
2286
2287
2288Amiga:
22898 In mch_inchar() should use convert_input_safe() to handle incomplete byte
2290 sequences.
22919 In mch_expandpath() a "*" is to be expanded, but "\*" isn't. Remove
2292 backslashes in result.
22938 Executing a shell, only one option for 'shell' is separated. Should do
2294 all options, using white space separation.
2295
2296
2297Macintosh:
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002298- GUI: gui_mch_browsedir() is missing.
Bram Moolenaar071d4272004-06-13 20:20:40 +000022997 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
2300 Load the Perl library dynamically see Python sources file dynload_mac
2301 (Jack)
2302 dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000023038 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
2304 2006 Sept 28)
Bram Moolenaar071d4272004-06-13 20:20:40 +000023058 Define vim_mkdir() for Macintosh.
23068 Define mch_writable() for Macintosh.
23079 When DiskLock is running, using a swap file causes a crash. Appears to be
2308 a problem with writing a file that starts with a dot. (Giacalone)
Bram Moolenaar071d4272004-06-13 20:20:40 +000023099 In mac_expandpath() check that handling of backslashes is done properly.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002310
2311
2312"Small" problems:
Bram Moolenaar8c8de832008-06-24 22:58:06 +00002313- Can't disable terminal flow control, to enable the use of CTRL-S and
2314 CTRL-Q. Add an option for it?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002315- When using e_secure in do_one_cmd() mention the command being executed,
2316 otherwise it's not clear where it comes from.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002317- When the quickfix window is open and executing ":echo 'hello'" using the
2318 Command-line window, the text is immediately removed by the redrawing.
2319 (Michael Henry, 2008 Nov 1)
2320 Generic solution: When redrawing while there is a message on the
2321 cmdline, don't erase the display but draw over the existing text.
2322 Other solution, redraw after closing the cmdline window, before executing
2323 the command.
Bram Moolenaard68071d2006-05-02 22:08:30 +000023249 For Turkish vim_tolower() and vim_toupper() also need to use utf_
2325 functions for characters below 0x80. (Sertacyildiz)
Bram Moolenaarc93b83a2006-04-29 22:02:36 +000023269 When the last edited file is a help file, using '0 in a new Vim doesn't
Bram Moolenaarc236c162008-07-13 17:41:49 +00002327 edit the file as a help file. 'filetype' is OK, but 'iskeyword' isn't,
2328 file isn't readonly, etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023298 When an ":edit" is inside a try command and the ATTENTION prompt is used,
2330 the :catch commands are always executed, also when the file is edited
2331 normally. Should reset did_emsg and undo side effects. Also make sure
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00002332 the ATTENTION message shows up. Servatius Brandt works on this.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023337 Vimtutor leaves escape sequence in terminal. This is the xterm response to
2334 requesting the version number. (Yasuhiro Matsumoto)
23358 When redirecting and using ":silent" the current column for displaying and
2336 redirection can be different. Use a separate variable to hold the column
2337 for redirection.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023387 The messages for "vim --help" and "vim --version" don't use
2339 'termencoding'.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002340- Could the hit-enter prompt be avoided when a message only overlaps the
2341 'showcmd' area? Clear that area when the next cmd is typed.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023428 When 'scrollbind' is set, a window won't scroll horizontally if the cursor
2343 line is too short. Add a word in 'scrollopt' to allow moving the cursor
2344 to longer line that is visible. A similar thing is done for the GUI when
2345 using the horizontal scrollbar.
23467 VisVim can only open one file. Hard to solve: each opened file is passed
2347 with a separate invocation, would need to use timestamps to know the
2348 invocations belong together.
23498 When giving a ":bwipeout" command a file-changed dialog may popup for this
2350 buffer, which is pointless. (Mike Williams)
23518 On MS-Windows ":make" doesn't show output while it is working. Use the
2352 tee.exe from http://unxutils.sourceforge.net/ ? About 16 Kbyte in the
2353 UnxUtils.zip archive.
2354 Alternate one: http://www.pramodx.20m.com/tee_for_win32.htm, but Walter
2355 Briscoe says it's not as good.
Bram Moolenaar910f66f2006-04-05 20:41:53 +000023568 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
Bram Moolenaarf193fff2006-04-27 00:02:13 +000023578 When doing Insert mode completion a mapping cannot recursively call
2358 edit(), because the completion information is global. Put everything in
2359 an allocated structure?
Bram Moolenaar071d4272004-06-13 20:20:40 +000023608 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
2361 ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
Bram Moolenaar071d4272004-06-13 20:20:40 +000023627 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
2363 character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
2364 byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
2365 (like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
23668 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
2367 defined.
23687 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
2369 ":insert" command, causing the following "endfunction" not to be found.
2370 Add skipping this perl construction inside function definitions.
23717 When 'ttimeoutlen' is 10 and 'timeoutlen' is 1000, there is a keycode
2372 "<Esc>a" and a mapping <Esc>x", when typing "<Esc>a" with half a second
2373 delay should not be interpreted as a keycode. (Hans Ginzel)
23747 ":botright 1 new" twice causes all window heights to be changed. Make the
2375 bottom window only bigger as much as needed.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023767 The Cygwin and MingW makefiles define "PC", but it's not used anywhere.
2377 Remove? (Dan Sharp)
Bram Moolenaar071d4272004-06-13 20:20:40 +000023789 User commands use the context of the script they were defined in. This
2379 causes a "s:var" argument to unexpectedly use a variable in the defining
2380 script, not the calling script. Add an argument to ":command":
2381 "-keepcontext". Do replace <SID>, so that a function in the defining
2382 script can be called.
23838 The Japanese message translations for MS-Windows are called ja.sjis.po,
2384 but they use encoding cp932. Rename the file and check that it still
2385 works.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023868 A very long message in confirm() can't be quit. Make this possible with
2387 CTRL-C.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000023888 "gf" always excludes trailing punctuation characters. file_name_in_line()
Bram Moolenaar071d4272004-06-13 20:20:40 +00002389 is currently fixed to use ".,:;!". Add an option to make this
2390 configurable?
23918 'hkmap' should probably be global-local.
23929 When "$" is in 'cpoptions' and folding is active, a "C" command changes
2393 the folds and resets w_lines_valid. The display updating doesn't work
2394 then. (Pritesh Mistry)
Bram Moolenaar071d4272004-06-13 20:20:40 +000023958 Using ":s" in a function changes the previous replacement string. Save
2396 "old_sub" in save_search_patterns()?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000023978 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
2398 is a multi-byte character.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023998 When appending to a file and 'patchmode' isn't empty, a backup file is
2400 always written, even when the original file already exists.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024019 When getting focus while writing a large file, could warn for this file
2402 being changed outside of Vim. Avoid checking this while the file is being
2403 written.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024047 The message in bt_dontwrite_msg() could be clearer.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024058 The script ID that is stored with an option and displayed with ":verbose
2406 set" isn't reset when the option is set internally. For example when
2407 'foldlevel' is set from 'foldlevelstart'.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000024088 Also store the line number with the script ID and use it for ":verbose",
2409 so that "set nocompatible" is found when it changes other option values.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002410 When an option is set indirectly mention the command? E.g. when
2411 ":diffsplit" sets 'foldmethod'.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024128 In the fileformat dialog, "Cancel" isn't translated. Add a global
2413 variable for this. (Eduardo Fernandez)
24149 When editing a file with 'readonly' set, there is no check for an existing
2415 swap file. Then using ":write" (without making any changes) doesn't give
2416 a warning either. Should check for an existing swap file without creating
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002417 one. Unfinished patch by Ian Kelling, 2008 July 14.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024187 When 'showbreak' is set, the amount of space a Tab occupies changes.
2419 Should work like 'showbreak' is inserted without changing the Tabs.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024207 When 'mousefocus' is set and switching to another window with a typed
2421 command, the mouse pointer may be moved to a part of the window that's
2422 covered by another window and we lose focus. Only move in the y
2423 direction, not horizontally?
Bram Moolenaar071d4272004-06-13 20:20:40 +000024248 ":hardcopy":
Bram Moolenaar071d4272004-06-13 20:20:40 +00002425 - Using the cterm_color[] table is wrong when t_colors is > 16.
2426 - Need to handle unprintable characters.
2427 - Win32: On a B&W printer syntax highlighting isn't visible. Perform
2428 dithering to make grey text?
Bram Moolenaar071d4272004-06-13 20:20:40 +00002429 - Add a flag in 'printoptions' to add an empty page to make the total
2430 number even. "addempty"? (Mike Williams)
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002431 - Respect 'linebreak'. Perhaps also 'showbreak'?
Bram Moolenaar996343d2010-07-04 22:20:21 +02002432 - Should interpret CTRL-L as a page break.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002433 - Grey line numbers are not always readable. Add field in 'printoptions'.
2434 Default to black when no syntax highlighting.
2435 - Be able to print a window in diff mode.
2436 - Be able to specify a colorscheme to use for printing. And a separate
2437 one for B&W printing (if that can be detected).
24388 In Visual block mode with 'lbr' set, a change command doesn't insert the
2439 text in following lines where the linebreak changes.
24409 dosinst.c: The DJGPP version can't uninstall the Uninstall registry key on
2441 Windows NT. How to install a .inf file on Windows NT and how to detect
2442 that Windows NT is being used?
Bram Moolenaar071d4272004-06-13 20:20:40 +000024438 When 'virtualedit' is "block,insert" and encoding is "utf-8", selecting a
2444 block of one double-wide character, then "d" deletes only half of it.
24458 When 'virtualedit' is set, should "I" in blockwise visual mode also insert
2446 in lines that don't extend into the block?
24478 With 'virtualedit' set, in Insert mode just after the end of line, CTRL-O
2448 yh does not yank the last character of the line. (Pavel Papushev)
2449 Doing "hl" first appears to make it work.
24508 With 'virtualedit' set it's possible to move into the blank area from
2451 'linebreak'.
24528 With 'virtualedit' set and 'selection' "exclusive", a Visual selection
2453 that ends in or after a tab, "d" doesn't delete (part of) the tab.
2454 (Helmut Stiegler)
Bram Moolenaar071d4272004-06-13 20:20:40 +000024559 When jumping to a tag, the search pattern is put in the history. When
2456 'magic' is on, the pattern may not work. Translate the pattern depending
2457 on p_magic when putting it in the history? Alternative: Store value of
2458 'magic' in history. (Margo)
24599 optwin.vim: Restoring a mapping for <Space> or <CR> is not correct for
2460 ":noremap". Add "mapcmd({string}, {mode})? Use code from ":mkexrc".
24619 incsearch is incorrect for "/that/<Return>/this/;//" (last search pattern
2462 isn't updated).
24639 term_console is used before it is set (msdos, Amiga).
24649 Get out-of-memory for ":g/^/,$s//@/" on 1000 lines, this is not handled
2465 correctly. Get many error messages while redrawing the screen, which
2466 cause another redraw, etc.
24678 [<C-I> doesn't work when '*' is in 'iskeyword'. find_pattern_in_path()
2468 must escape special characters in the pattern.
24698 Vim can overwrite a read-only file with ":w!". ":w" can't overwrite an
2470 existing file, "w!" can, but perhaps not a read-only file? Then use
2471 ":w!!" for that.
2472 Or ask for permission to overwrite it (if file can be made writable) and
2473 restore file to readonly afterwards.
Bram Moolenaar04a09c12005-08-01 22:02:32 +00002474 Overwriting a file for which a swap file exists is similar issue.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024757 When compiled with "xterm_clipboard", startup can be slower and might get
2476 error message for invalid $DISPLAY. Try connecting to the X server in the
2477 background (forked), so that Vim starts up quicker? Connect as soon as
2478 the clipboard is to be used (Visual select mode starts, paste from
2479 clipboard)
24807 X11: Some people prefer to use CLIPBOARD instead of PRIMARY for the normal
2481 selection. Add an "xclipboard" argument to the 'clipboard' option? (Mark
2482 Waggoner)
24838 For xterm need to open a connection to the X server to get the window
2484 title, which can be slow. Can also get the title with "<Esc>[21t", no
2485 need to use X11 calls. This returns "<Esc>]l{title}<Esc>\".
Bram Moolenaar35a9aaa2004-10-24 19:23:07 +000024866 When the xterm reports the number of colors, a redraw occurs. This is
2487 annoying on a slow connection. Wait for the xterm to report the number of
2488 colors before drawing the screen. With a timeout.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024898 When the builtin xterm termcap contains codes that are not wanted, need a
2490 way to avoid using the builtin termcap.
24918 Xterm sends ^[[H for <Home> and ^[[F for <End> in some mode. Also
2492 recognize these keys? Mostly useful for xterm simulators, like gnometerm.
2493 See http://dickey.his.com/xterm/xterm.faq.html#xterm_pc_style.
Bram Moolenaar8424a622006-04-19 21:23:36 +000024948 For xterm also recognize keypad up/down/left/right and insert.
Bram Moolenaar071d4272004-06-13 20:20:40 +000024958 '[ and '] should be set to start/end of line when using a linewise operator
2496 (e.g., ":w").
24978 CTRL-A can't handle big "long" numbers, they become negative. Check for
2498 "-" character, if not present, use unsigned long.
24998 Make it possible to disable the special meaning of "#" in the first column
2500 for ">>".
25018 Add suspending with CTRL-Z at the "more" prompt, and when executing a long
2502 script in do_cmdline().
25038 When using 'hidden', many swap files will be open. When Vim runs into the
2504 maximum number of open files, error messages will appear. Detect that
2505 this problem is present, and close any hidden files that don't have
2506 changes.
25078 With 'viminfo' set such that the ".viminfo" file is written on a FAT
2508 filesystem, an illegal file name may be created: ".vim".
25098 For each buffer that is opened, the viminfo file is opened and read to
2510 check for file marks. This can be slow.
25117 In xterm, recognize both vt100 and vt220 cursor keys. Change
2512 add_termcode() to not remove an existing entry for a name, when it's
2513 needed.
2514 Need a generic solution to recognize different codes for the same key.
25158 Core dump within signal function: gdb doesn't show stack backtrace! Option
2516 to skip catch_signals()?
25179 Repeating a "cw" with "." doesn't work if the text was pasted from the
2518 clipboard. (Thomas Jones) It's because the menu/toolbar item exits Insert
2519 mode and uses "gP". How to fix this without breaking inserting a block of
2520 text?
25218 In Replace mode pasting from the clipboard (using menu or toolbar) inserts
2522 all the text. Add ":rmenu"?
25238 Pasting with the mouse in Replace mode inserts the text, instead of
2524 overwriting, when it is more than one line. Same for using <C-R>.
25259 CTRL-E and CTRL-Y don't work in small window when 'so' is 4 and lines are
2526 wrapping (Acevedo/in.226). E.g., when using CTRL-E, window height 7,
2527 window might actually scroll down when last line of buffer is displayed.
2528 --> Remember if the previous command was "cursor follows screen" or
2529 "screen follow cursor" and use this in cursupdate().
25307 tilde_replace() can only handle "~/", should also do "~user/".
2531 Get the list of home directories (from /etc/passwd? Use getpwent()) and
2532 use some clever algorithm to match a path with that. Find common strings
2533 in the list?
25348 When dragging status line with mouse, sometimes a jump when first clicking
2535 on the status line (caused by 'winheight'). Select window on button up,
2536 instead of on button down.
25378 Dragging the status line doesn't scroll but redraw.
25389 Evaluating 'statusline' in build_stl_str_hl() does not properly check for
2539 reaching the end of the available buffer.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002540 Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
2541 May 14)
Bram Moolenaar071d4272004-06-13 20:20:40 +000025428 When performing incremental search, should abort searching as soon as a
2543 character is typed.
25448 When the value of $MAKE contains a path, configure can't handle this.
2545 It's an autoconf bug. Remove the path from $MAKE to work around it.
25468 How to set VIMRC_FILE to \"something\" for configure? Why does this not
2547 work: CFLAGS='-DVIMRC_FILE=\"/mydir/myfile\"' ./configure
25488 The temporary file is sometimes not writable. Check for this, and use an
2549 alternate name when it isn't. Or add the 'temptemplate' option: template
2550 for the temp file name ":set temptemplate=/usr/tmp/?????.tmp".
2551 Also: Win32 version uses Windows temp directory, which might not work for
2552 cygwin bash.
25537 Get error "*, \+ or \( operand could be empty" for pattern "\(.\)\1\{3}".
2554 Remember flags for backreferences.
25557 When switching to Daylight Saving Time, Vim complains that a file has been
2556 changed since last read. Can we use a function that uses GMT?
25577 When completing an environment variable after a '$', check for file names
2558 that contain a '$' after all have been found.
25598 When "cm" termcap entry is missing, starting gvim shouldn't complain about
2560 it. (Lohner) Try out with "vt100" entry, cm replaced with cX.
25617 When an include file starts with "../", the check for already visiting
2562 this file doesn't work. Need to simplify the file name.
Bram Moolenaar071d4272004-06-13 20:20:40 +000025637 The names and comments for the arguments of do_browse() are confusing.
2564 "dflt" isn't the default file name when "initdir" is not NULL and
2565 "initdir" is the default path to be used.
25667 When 'scrolloff' is exactly half the window height, "j" causes a scroll of
2567 two lines at a time. "k" doesn't do this. (Cory T. Echols)
25688 When write_viminfo() is used while there are many orphaned viminfo
2569 tempfiles writing the viminfo file fails. Give a clear error message so
2570 that the user knows he has to delete the files.
25717 It's possible to redefine a script-local function with ":func
2572 <SNR>123_Test()". (Krishna) Disallow this.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002573
2574
2575I can't reproduce these (if you can, let me know how!):
25769 NT 4.0 on NTFS file system: Editing ".bashrc" (drag and drop), file
2577 disappears. Editing ".xyz" is OK. Also, drag&drop only works for three
2578 files. (McCollister)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002579
2580
2581Problems that will (probably) not be solved:
Bram Moolenaara93fa7e2006-04-17 22:14:47 +00002582- GTK: when using the popup menu with spelling suggestions and releasing the
2583 right mouse button before the menu appears selecting an item with the
2584 right mouse button has no effect. GTK does not produce an event for this.
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002585- GTK 2: Cannot use the file selector. When using it many things become
2586 slow. This is caused by some code in GTK that writes
2587 ~/.recently-used.xbel every time an event is handled. It assumes the main
2588 loop is never quit, which is a wrong assumption. Also, it overwrites the
2589 file with different file permissions, which is a privacy issue. This
2590 needs to be fixed in GTK. A solution in Vim would be really complicated.
Bram Moolenaar33aea182010-08-07 13:19:27 +02002591 (2008 Jul 31) This appears to be fixed in Vim 7.3.
Bram Moolenaar35a9aaa2004-10-24 19:23:07 +00002592- xterm title: The following scenario may occur (esp. when running the Vim
2593 test script): Vim 1 sets the title to "file1", then restores the title to
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00002594 "xterm" with an ESC sequence when exiting. Vim 2 obtains the old title
Bram Moolenaar35a9aaa2004-10-24 19:23:07 +00002595 with an X library call, this may result in "file1", because the window
2596 manager hasn't processed the "xterm" title yet. Can apparently only be
2597 worked around with a delay.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002598- In a terminal with 'mouse' set such that the mouse is active when entering
2599 a command line, after executing a shell command that scrolls up the
2600 display and then pressing ":": Selecting text with the mouse works like
2601 the display wasn't scrolled. Vim doesn't know how much the external
2602 command scrolled up the display. Use Shift to select text.
2603- X windows: When $DISPLAY points to a X server where there is no access
2604 permission, trying to connect to the X server causes an error message.
2605 XtOpenDisplay() prints this directly, there is no way to avoid it.
2606- X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim.
2607 This is caused by a fault in a X library function, can't be solved in Vim.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002608- Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002609- Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will
2610 be underlined, instead of in "Symbol". Motif doesn't let us specify which
2611 character gets the highlighting.
2612- Moving the cursor removes color in color-xterm. This is a color-xterm
2613 problem! color-xterm ver. 6.1 beta 3 and later work properly.
2614- In zsh, "gvim&" changes the terminal settings. This is a zsh problem.
2615 (Jennings)
2616- Problem with HPterm under X: old contents of window is lost (Cosentino).
2617- Amiga: When using quickfix with the Manx compiler we only get the first 25
2618 errors. How do we get the rest?
2619- Amiga: The ":cq" command does not always abort the Manx compiler. Why?
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00002620- Linux: A file with protection r--rw-rw- is seen readonly for others. The
Bram Moolenaar071d4272004-06-13 20:20:40 +00002621 access() function in GNU libc is probably wrong.
2622- MSDOS: When using smartdrive with write-back buffering, writing to a
2623 readonly floppy will cause problems. How to test for a writable floppy
2624 first?
2625- MSDOS: Both 16 and 32 bit versions: File name expansion doesn't work for
2626 names that start with a dot. These used to be illegal file names.
2627- When doing a CTRL-Z and typing a command for the shell, while Vim is busy
2628 (e.g. writing a file), the command for the shell is sometimes eaten by Vim,
2629 because the terminal mode is changed from RAW to CBREAK.
2630- An old version of GNU tgoto can't handle the terminfo code for "AF". The
2631 "%p1" is interpreted as "%p" and "1", causing color not to be working.
2632 Fix: Change the "%p1" in the "AF" and "AB" terminfo entries to "%p".
2633 (Benzinger).
2634- When running an external command from the GUI, typeahead is going to that
2635 program, not to Vim. It looks like the shell eats the characters, Vim
2636 can't get back what the external command didn't use.
2637- Win32 GUI: Error code from external command not returned in shell_error.
2638 It appears that cmd.exe and command.com don't return an error code.
2639- Win32 GUI: The Toolbar is a bit too high when the flat style is being
2640 used. We don't have control over the height of the Toolbar.
2641- Win32: All files created on the day of switching from winter to summer
2642 time cause "changed since editing started" messages. It goes away when
2643 the file is written again the next day, or the timezone is adjusted.
2644 DJGPP version is OK. (Zaimi) Looks like a problem with the Win32 library.
2645 Rebooting doesn't help. Time stamps look OK in directory. (Penn)
2646 Is this on FAT (stores wall clock time) or NTFS (stores UTS)?
2647- Win32, MS-Windows XP: $HOME uses the wrong drive when the user profiles
2648 are not on the boot disk. This is caused by a wrong value of $HOMEDRIVE.
2649 This is a bug in XP, see MSKB article 818134.
Bram Moolenaar662db672011-03-22 14:05:35 +01002650- Win32, MS-Windows: expanding plugin/**/*.vim also picks up
2651 dir/ctags.vim,v. This is because the short file name is something like
2652 "ctags~1.vim" and that matches the pattern.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002653- SunOS 5.5.1 with Motif: The file open dialog does not have a horizontal
2654 scroll bar for the "files" selection. This is a problem in the Motif
2655 libraries, get a patch from Sun.
2656- Solaris 2.6 with GTK and Perl: gvim crashes when started. Problem with X
2657 input method called from GDK code. Without Perl it doesn't crash.
2658- VMS: Vimdiff doesn't work with the VMS diff, because the output looks
2659 different. This makes test 47 fail. Install a Unix-compatible diff.
2660- VMS v7.1 and older: Tests 21 and 32 fail. From VMS v7.1-2 and newer Vim
2661 does not have this behavior. (Zoltan Arpadffy)
2662- Win32 GUI: mouse wheel always scrolls rightmost window. The events arrive
2663 in Vim as if the rightmost scrollbar was used.
2664- GTK with Gnome: Produces an error message when starting up:
2665 Gdk-WARNING **: locale not supported by C library
2666 This is caused by the gnome library gnome_init() setting $LC_CTYPE to
2667 "en_US". Not all systems support this locale name, thus causing the
2668 error. Hopefully a newer version of GTK/Gnome fixes this problem.
2669- GTK 2: With this mapping the hit-enter prompt is _sometimes_ below the
2670 screen, at other times there is a grey area below the command line:
2671 :nmap <F11> :if &guioptions=~'m' \| set guioptions-=m \| else \| set guioptions+=m \| endif<cr>
2672- GTK: When pasting a selection from Vim to xclipboard gvim crashes with a
2673 ABRT signal. Probably an error in the file gdkselection.c, the assert
2674 always fails when XmbTextListToTextProperty() fails. (Tom Allard)
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00002675- GTK 2: gives an assertion error for every non-builtin icon in the toolbar.
2676 This is a GTK 2.4.x bug, fixed in GTK 2.4.2. (Thomas de Grenier de Latour)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002677- When using an xterm that supports the termresponse feature, and the 't_Co'
2678 termcap option was wrong when Vim started, it will be corrected when the
2679 termresponse is received. Since the number of colors changes, the
2680 highlighting needs to be initialized again. This may cause colors defined
2681 in the vimrc file to be lost.
2682- On Windows NT 4.0 the number of files passed to Vim with drag&drop and
2683 "Edit with Vim" is limited. The maximum command line length is 255 chars.
2684
2685--------------------- extensions and improvements ----------------------
2686 *extensions-improvements*
2687
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002688Most interesting new features to be added when all bugs have been fixed:
2689- Using ":exe edit fname" has escaping problems. Use ":edit ++(fname)".
2690 Thus use "++=" to give arguments as expressions, comma separated as if
2691 calling a function.
2692 With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
2693 Alternative: Make a function for Ex commands: cmd_edit().
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002694- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
2695 can be selected with CTRL-V. Allow '$' (end of line) for col2.
2696- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye.
2697 Should work like an IDE. Try to keep it generic. Now found here:
2698 http://clewn.sf.net.
2699 And the idevim plugin/script.
2700 To be able to start the debugger from inside Vim: For GUI run a program
2701 with a netbeans connection; for console: start a program that splits the
2702 terminal, runs the debugger in one window and reconnect Vim I/O to the
2703 other window.
2704 Wishes for NetBeans commands:
2705 - make it possible to have 'defineAnnoType' also handle terminal colors.
2706 - send 'balloonText' events for the cursor position (using CursorHold ?)
2707 in terminal mode.
2708- ECLIPSE plugin. Problem is: the interface is very complicated. Need to
2709 implement part in Java and then connect to Vim. Some hints from Alexandru
2710 Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
2711 198 standard http://www.jcp.org/en/jsr/detail?id=198.
2712 Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
2713 Plugin that uses a terminal emulator: http://vimplugin.sf.net
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002714 And another one: http://www.satokar.com/viplugin/index.php
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002715- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
2716 Especially when using the scrollbar. Typing a cursor-movement command
2717 scrolls back to where the cursor is.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002718- Scroll commands by screen line. g CTRL-E and g CTRL-Y ? Requires the
2719 first line to be able to start halfway.
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002720- Running a shell command from the GUI still has limitations. Look into how
2721 the terminal emulator of the Vim shell project can help:
2722 http://vimshell.wana.at
Bram Moolenaar768b8c42006-03-04 21:58:33 +000027238 Add a command to jump to a certain kind of tag. Allow the user to specify
2724 values for the optional fields. E.g., ":tag size type=m".
2725 Also allow specifying the file and command, so that the result of
2726 taglist() can be used.
Bram Moolenaar27dc1952006-03-15 23:06:44 +00002727- X11: Make it possible to run Vim inside a window of another program.
2728 This can be done with XReparentWindow(). But how exactly?
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002729
2730
Bram Moolenaar071d4272004-06-13 20:20:40 +00002731Documentation:
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000027328 List of Vim runtime directories. dotvim.txt from Charles Campbell, 2007
2733 Feb 20.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000027348 The GUI help should explain the Find and Find/Replace dialogs. Add a link
2735 to it from ":promptrepl" and ":promptfind".
Bram Moolenaard4755bb2004-09-02 19:12:26 +000027368 List of options should mention whether environment variables are expanded
2737 or not.
Bram Moolenaar071d4272004-06-13 20:20:40 +000027388 Extend usr_27.txt a bit. (Adam Seyfarth)
Bram Moolenaar071d4272004-06-13 20:20:40 +000027397 Add a section on debugging scripts in the user manual.
27409 Make the Reference Manual more precise. For each command mention:
2741 - change to cursor position and curswant
2742 - if it can be undone (u/CTRL-R) and redone (.)
2743 - how it works for folded lines
2744 - how it works with multi-byte characters
27459 In change.txt, remark about Javadoc isn't right. Right alignment would
2746 work too.
27478 Spread the windows commands over the other files. For example, ":stag"
2748 should be with ":tag". Cross-link with tags to avoid too much double
2749 text.
27508 Add tags for all features, e.g. "gui_running".
27517 MS-Windows: When a wrong command is typed with an ALT key, give a hint to
2752 look at the help for 'winaltkeys'.
27537 Add a help.vim plugin that maps <Tab> to jump to the next tag in || and
2754 <C-Tab> (and <S-Tab>) to the previous tag.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00002755 Patch by Balazs Kezes, 2007 Dec 30. Remark from A. Politz.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002756- Check text editor compendium for vi and Vim remarks.
2757
2758
2759Help:
2760- First try using the ":help" argument literally, before using it as a
2761 pattern. And then match it as part of a tag.
2762- When a help item has multiple matches make it possible to use ":tn" to go
2763 to the other matches.
2764- Support a way to view (and edit) .info files.
2765- Default mapping for help files: <Tab> to position cursor on next |:tag|.
2766- Implement a "sticky" help window, some help text lines that are always
2767 displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file,
2768 user can edit it to insert his favorite commands, new account can contain a
2769 default contents.
2770- Make 'winminheight' a local option, so that the user can set a minimal
2771 height for the help window (and other windows).
2772- ":help :s^I" should expand to ":help :substitute".
2773- Make the help key (<F1>) context sensitive?
2774- Learn mode: show short help while typing commands.
2775
2776
2777User Friendlier:
27788 Windows install with install.exe: Use .exe instead of .bat files for
2779 links, so that command line arguments are passed on unmodified? (Walter
2780 Briscoe)
27818 Windows install: Be able to associate Vim with a selection of file types?
27828 Windows uninstall: Have uninstal.c delete the vimfiles directories that
2783 dosinst.c creates. List the contents of the directory (recursively) if
2784 the user asks for it. Requires an implementation of "rm -rf".
27858 Remember the name of the vimrc file that was used (~/.vimrc, $VIM/_vimrc,
2786 $HOME/_vimrc, etc.) and add "edit vimrc" to the File menu.
2787- Add a way to save local settings and mappings into a new plugin file.
2788 ":mkplugin <file>"?
27898 Add ":plugininstall" command. Can be used to install a plugin file that
2790 includes documentation. Let the user select a directory from
2791 'runtimepath'.
2792 " Vim plugin
2793 <main plugin code>
2794 " >>> plugin help start <<<
2795 <plugin docs>
2796- Add mappings local to a window: ":map <window> ..."?
27979 Add buffer-local menu. Should offer a choice between removing the menu or
2798 disabling it. Be careful that tear-offs don't disappear (keep one empty
2799 item?).
2800 Alternative: use BufEnter and BufLeave autocommands.
Bram Moolenaar071d4272004-06-13 20:20:40 +000028018 make a vimtutor script for Amiga and other systems.
28027 Add the arguments for configure to the ":version" output?
Bram Moolenaar51ac12f2005-07-02 23:21:11 +000028037 When Vim detects a file is being edited elsewhere and it's a gvim session
2804 of the same user it should offer a "Raise" button, so that the other gvim
2805 window can be displayed. (Eduard)
Bram Moolenaar33aec762006-01-22 23:30:12 +000028068 Support saving and restoring session for X windows? It should work to do
2807 ":mksession" and use "-S fname" for the restart command. The
2808 gui_x11_wm_protocol_handler() already takes care of the rest.
2809 global_event_filter() for GTK.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002810
2811
Bram Moolenaareddf53b2006-02-27 00:11:10 +00002812Tab pages:
28139 GUI implementation for the tab pages line for other systems.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000028147 GUI: Control over the appearance of the text in the labels (bold, color,
2815 font, etc.)
Bram Moolenaareddf53b2006-02-27 00:11:10 +000028168 Make GUI menu in tab pages line configurable. Like the popup menu.
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000028178 balloons for the tab page labels that are shortened to show the full path.
Bram Moolenaareddf53b2006-02-27 00:11:10 +000028187 :tabdup duplicate the tab with all its windows.
Bram Moolenaareddf53b2006-02-27 00:11:10 +000028197 Option to put tab line at the left or right? Need an option to specify
Bram Moolenaar49325942007-05-10 19:19:59 +00002820 its width. It's like a separate window with ":tabs" output.
Bram Moolenaareddf53b2006-02-27 00:11:10 +000028217 Add local variables for each tab page?
28228 Add local options for each tab page? E.g., 'diffopt' could differ between
2823 tab pages.
28247 Add local highlighting for each tab page?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000028257 Add local directory for tab pages? How would this interfere with
2826 window-local directories?
Bram Moolenaareddf53b2006-02-27 00:11:10 +00002827
2828
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +00002829Spell checking:
Bram Moolenaarc236c162008-07-13 17:41:49 +00002830- have some way not to give spelling errors for a range of characters.
2831 E.g. for Chinese and other languages with specific characters for which we
2832 don't have a spell file. Useful when there is also text in other
2833 languages in the file.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002834- Support more regions? Caolan McNamara argues it's needed for es_XX.
2835 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777
2836- Unicode defines another quote character: 0x2019. Use it as an equivalent
2837 of a single quote, thus use it as a word character like a quote and match
2838 with words, replacing the curly quote with a single quote.
2839- Could filter &eacute; things for HTML before doing spell checking.
2840 Similarly for TeX.
Bram Moolenaar8b2d9c42006-05-03 21:28:47 +00002841- The Hungarian spell file uses four extra characters in the FOL/UPP/LOW
2842 items than other spell files with the ISO-8859-2 encoding, that causes
2843 problem when changing 'spelllang'. There is no obvious way to fix this.
Bram Moolenaar18144c82006-04-12 21:52:12 +00002844- Considering Hunspell 1.1.4:
2845 What does MAXNGRAMSUGS do?
2846 Is COMPLEXPREFIXES necessary when we have flags for affixes?
Bram Moolenaar8c8de832008-06-24 22:58:06 +00002847- Support spelling words in CamelCase as if they were two separate words.
2848 Requires some option to enable it. (Timothy Knox)
Bram Moolenaar6dfc28b2010-02-11 14:19:15 +01002849- There is no Finnish spell checking file. For openoffice Voikko is now
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002850 used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
2851 (Teemu Likonen)
Bram Moolenaar18144c82006-04-12 21:52:12 +000028528 ":mkspell" still takes much too long in Hungarian dictionary from
2853 hunspell. Only solution appears to be to postpone secondary suffixes.
28548 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
2855 WFP_COMPPERMIT and WFP_COMPFORBID
28568 implement use of <compoptions> in .spl file:
2857 implement CHECKCOMPOUNDREP: when a compound word seems to be OK apply REP
Bram Moolenaarc236c162008-07-13 17:41:49 +00002858 items and check if the result is a valid word.
Bram Moolenaar18144c82006-04-12 21:52:12 +00002859 implement CHECKCOMPOUNDDUP
2860 implement CHECKCOMPOUNDTRIPLE
2861 Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
2862 How is it supposed to work?
Bram Moolenaar910f66f2006-04-05 20:41:53 +00002863- Add a command the repeats ]s and z=, showing the misspelled word in its
2864 context. Thus to spell-check a whole file.
Bram Moolenaar261bfea2006-03-01 22:12:31 +00002865- suggestion for "KG" to "kg" when it's keepcase.
Bram Moolenaar7b89edc2006-04-06 20:21:51 +00002866- For flags on affixes: Use a "AFFCOMPSET" flag; means the compound flags of
2867 the word are not used.
Bram Moolenaardb552d602006-03-23 22:59:57 +00002868- Support breakpoint character ? 0xb7 and ignore it? Makes it possible to
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002869 use same wordlist for hyphenation.
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002870- Compound word is accepted if nr of words is <= COMPOUNDWORDMAX OR nr of
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002871 syllables <= COMPOUNDSYLMAX. Specify using AND in the affix file?
Bram Moolenaar4770d092006-01-12 23:22:24 +00002872- NEEDCOMPOUND also used for affix? Or is this called ONLYINCOMPOUND now?
2873 Or is ONLYINCOMPOUND only for inside a compound, not at start or end?
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002874- Do we need a flag for the rule that when compounding is done the following
2875 word doesn't have a capital after a word character, even for Onecap words?
2876- New hunspell home page: http://hunspell.sourceforge.net/
Bram Moolenaar69e0ff92005-09-30 21:23:56 +00002877 - Version 1.1.0 is out now, look into that.
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002878 - Lots of code depends on LANG, that isn't right. Enable each mechanism
2879 in the affix file separately.
2880 - Example with compounding dash is bad, gets in the way of setting
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002881 COMPOUNDMIN and COMPOUNDWORDMAX to a reasonable value.
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002882 - PSEUDOROOT == NEEDAFFIX
2883 - COMPOUNDROOT -> COMPOUNDED? For a word that already is a compound word
2884 Or use COMPOUNDED2, COMPOUNDED3, etc.
2885- CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, then
2886 the word must also have a suffix marked with the CIRCUMFIX flag. It's a
2887 bit primitive, since only one flag is used, which doesn't allow matching
2888 specific prefixes with suffixes.
2889 Alternative:
2890 PSFX {flag} {pchop} {padd} {pcond} {schop} {sadd}[/flags] {scond}
2891 We might not need this at all, you can use the NEEDAFFIX flag and the
2892 affix which is required.
2893- When a suffix has more than one syllable, it may count as a word for
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002894 COMPOUNDWORDMAX.
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002895- Add flags to count extra syllables in a word. SYLLABLEADD1 SYLLABLEADD2,
2896 etc.? Or make it possible to specify the syllable count of a word
2897 directly, e.g., after another slash: /abc/3
Bram Moolenaar4770d092006-01-12 23:22:24 +00002898- MORPHO item in affix file: ignore TAB and morphological field after
2899 word/flags and affix.
Bram Moolenaarda2303d2005-08-30 21:55:26 +00002900- Implement multiple flags for compound words and CMP item?
2901 Await comments from other spell checking authors.
2902- Also see tklspell: http://tkltrans.sourceforge.net/
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +000029038 Charles Campbell asks for method to add "contained" groups to existing
2904 syntax items (to add @Spell).
2905 Add ":syntax contains {pattern} add=@Spell" command? A bit like ":syn
2906 cluster" but change the contains list directly for matching syntax items.
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +00002907- References: MySpell library (in OpenOffice.org).
2908 http://spellchecker.mozdev.org/source.html
2909 http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
2910 author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
Bram Moolenaar8c8de832008-06-24 22:58:06 +000029118 It is currently not possible to mark "can not" as rare, because "can" and
2912 "not" are good words. Find a way to let "rare" overrule "good"?
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +000029138 Make "en-rare" spell file? Ask Charles Campbell.
29148 The English dictionaries for different regions are not consistent in their
2915 use of words with a dash.
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +000029167 Insert mode completion mechanism that uses the spell word lists.
29178 Add hl groups to 'spelllang'?
2918 :set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
2919 More complicated: Regions with different languages? E.g., comments
2920 in English, strings in German (po file).
Bram Moolenaar7d1f5db2005-07-03 21:39:27 +00002921
2922
Bram Moolenaar071d4272004-06-13 20:20:40 +00002923Diff mode:
Bram Moolenaar8c8de832008-06-24 22:58:06 +000029249 Instead invoking an external diff program, use builtin code. One can be
2925 found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
Bram Moolenaarc400cb92010-07-19 19:52:13 +02002926 It's quite big and badly documented though.
Bram Moolenaar071d4272004-06-13 20:20:40 +000029278 Use diff mode to show the changes made in a buffer (compared to the file).
2928 Use an unnamed buffer, like doing:
2929 new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Bram Moolenaara5792f52005-11-23 21:25:05 +00002930 Also show difference with the file when editing started? Should show what
2931 can be undone. (Tom Popovich)
Bram Moolenaar071d4272004-06-13 20:20:40 +000029327 Add cursor-binding: when moving the cursor in one diff'ed buffer, also
2933 move it in other diff'ed buffers, so that CTRL-W commands go to the same
2934 location.
2935
2936
2937Folding:
Bram Moolenaarbba577a2005-11-28 23:05:55 +00002938 (commands still available: zI zJ zK zp zP zq zQ zV zy zY;
2939 secondary: zB zS zT zZ, z=)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000029408 Vertical folds: looks like vertically split windows, but the cursor moves
2941 through the vertical separator, separator moves when scrolling.
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +000029428 Add "z/" and "z?" for searching in not folded text only.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000029439 Add search pattern item to only match in closed or open fold and/or fold
2944 with certain level. Allows doing ":g/pat/cmd" to work on closed folds.
Bram Moolenaar071d4272004-06-13 20:20:40 +000029458 When a closed fold is displayed open because of 'foldminlines', the
2946 behavior of commands is still like the fold is closed. How to make the
2947 user aware of this?
29488 Add an option 'foldskip' with values like 'foldopen' that specifies which
2949 commands skip over a closed fold.
29508 "H" and "L" count buffer lines instead of window lines. (Servatius Brandt)
29518 Add a way to add fold-plugins. Johannes Zellner has one for VB.
Bram Moolenaar071d4272004-06-13 20:20:40 +000029527 When using manual folding, the undo command should also restore folds.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00002953- Allow completely hiding a closed fold. E.g., by setting 'foldtext' to an
2954 empty string. Require showing a character in 'foldcolumn' to avoid the
2955 missing line goes unnoticed.
2956 How to implement this?
Bram Moolenaar071d4272004-06-13 20:20:40 +00002957- When pressing the down arrow of a scrollbar, a closed fold doesn't scroll
2958 until after a long time. How to make scrolling with closed folds
2959 smoother?
2960- When creating a session, also store folds for buffers in the buffer list,
2961 using the wininfo in wi_folds.
Bram Moolenaar8b2d9c42006-05-03 21:28:47 +00002962- When currently editing the first file in the argument list the session
2963 file can contain:
2964 args version.c main.c
2965 edit version.c
2966 Can editing version.c twice be avoided?
Bram Moolenaar071d4272004-06-13 20:20:40 +00002967- 'foldmethod' "textobject": fold on sections and paragraph text objects.
Bram Moolenaar4770d092006-01-12 23:22:24 +00002968- "zuf": undo change in manual fold. "zUf" redo change in manual fold. How
2969 to implement this?
Bram Moolenaar071d4272004-06-13 20:20:40 +00002970- "zJ" command: add the line or fold below the fold in the fold under the
2971 cursor.
Bram Moolenaar3517bb12006-03-03 22:58:45 +00002972- 'foldmethod' "syntax": "fold=3" argument: set fold level for a region or
2973 match.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002974- Apply a new foldlevel to a range of lines. (Steve Litt)
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000029758 Have some way to restrict commands to not folded text. Also commands like
Bram Moolenaar071d4272004-06-13 20:20:40 +00002976 searches.
2977
2978
2979Multi-byte characters:
Bram Moolenaar768b8c42006-03-04 21:58:33 +00002980- When editing a file with both utf-8 and latin1 text Vim always falls back
2981 to latin1. Add a command to convert the latin1 characters to utf-8?
2982 :unmix utf-8,latin1 filename
2983 Would only work when 'encoding' is utf-8.
Bram Moolenaar071d4272004-06-13 20:20:40 +000029849 When the tail byte of a double-byte character is illegal (e.g., a CR), the
2985 display is messed up (Yasuhiro Matsumoto). Should check for illegal
2986 double-byte characters and display them differently (display each single
2987 byte).
Bram Moolenaare6dc5732010-07-24 23:52:26 +020029889 'fenc' in modeline problem: add option to reload the file when 'fenc' is
2989 set to a different value in a modeline? Option can be default on. Could
2990 it be done with an autocommand?
Bram Moolenaar071d4272004-06-13 20:20:40 +000029918 Add an item in 'fileencodings' to check the first lines of a file for
2992 the encoding. See Python PEP: http://www.python.org/peps/pep-0263.html.
2993 To avoid getting a wrong encoding only accept something Emacs-like:
2994 "-*- coding: enc-na_me.foo -*-" and "-*- coding= enc-na_me.foo -*-"
2995 Match with "-\*-\s*coding[:=]\s*\([::word::-_.]\+\)\s*-\*-" and use first
2996 item.
29978 Add an item in 'fileencodings' to check the first line of an XML file for
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00002998 the encoding. <?xml version="1.0" encoding="UTF-8"?> Or "charset=UTF-8"?
2999 For HTML look for "charset=utf-8".
Bram Moolenaar071d4272004-06-13 20:20:40 +000030008 The quickfix file is read without conversion, thus in 'encoding'. Add an
3001 option to specify the encoding of the errorfile and convert it. Also for
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00003002 ":grep" and ":helpgrep".
Bram Moolenaar46c9c732004-12-12 11:37:09 +00003003 More generic solution: support a filter (e.g., by calling a function).
Bram Moolenaar071d4272004-06-13 20:20:40 +000030048 When a file was converted from 'fileencoding' to 'encoding', a tag search
3005 should also do this on the search pattern. (Andrzej M. Ostruszka)
Bram Moolenaar8c8de832008-06-24 22:58:06 +000030068 When filtering changes the encoding 'fileencoding' may not work. E.g.,
3007 when using xxd and 'fileencoding' is "utf-16". Add an option to set a
3008 different fileencoding for filter output?
Bram Moolenaar071d4272004-06-13 20:20:40 +000030097 When converting a file fails, mention which byte could not be converted,
3010 so that the user can fix the problem.
30118 Add configure option to be able to disable using the iconv library. (Udo
3012 Schweigert)
Bram Moolenaar071d4272004-06-13 20:20:40 +000030139 'aleph' should be set to 1488 for Unicode. (Zvi Har'El)
30148 Should add test for using various commands with multi-byte characters.
Bram Moolenaar071d4272004-06-13 20:20:40 +000030158 'infercase' doesn't work with multi-byte characters.
30168 toupper() function doesn't handle byte count changes.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000030177 Searching and composing characters:
3018 When searching, should order of composing characters be ignored?
3019 Add special item to match with a composing character, zero-width, so that
3020 one can replace a base character and keep the composing characters.
3021 Add a special item to match with a composing character, so that composing
3022 characters can be manipulated.
3023 Add a modifier to ignore composing characters, only compare base
3024 characters. Useful for Hebrew (Ron Aaron)
Bram Moolenaar071d4272004-06-13 20:20:40 +000030258 Should implement 'delcombine' for command line editing.
30268 Detect overlong UTF-8 sequences and handle them like illegal bytes.
30278 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
3028 characters.
30298 UTF-8: "r" in Visual mode doesn't take composing characters.
30308 UTF-8: When there is a precomposed character in the font, use it instead
3031 of a character and a composing character. See xterm for an example.
30327 When a character can't be displayed, display its digraph instead.
3033 'display' option to specify this.
30347 Use ideas for nl_langinfo() from Markus Kuhn in enc_default():
3035 (www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c)
3036- GTK and Win32: Allow selecting fonts for 'guifontset' with the
3037 fontselector somehow.
3038- GTK and Win32: make it possible to set the font for the menu to make it
3039 possible to have 'encoding' different from the current locale.
3040- dbcs_class() only works for Japanese and Korean. Implement this for
3041 other encodings. The "euc-jp" and "euc-kr" choices might be wrong.
3042- Find some way to automatically select the right GUI font or fontset,
3043 depending on the default value of 'encoding'.
3044 Irrelevant in the GTK+ 2 GUI so long as UTF-8 is used.
3045 For Windows, the charset_pairs[] table could be used. But how do we know
3046 if a font exists?
3047- Do keyboard conversion from 'termencoding' to 'encoding' with
Bram Moolenaar446beb42011-05-10 17:18:44 +02003048 convert_input() for Mac GUI.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003049- Add mnemonics from RFC1345 longer than two characters.
3050 Support CTRL-K _{mnemonic}_
30517 In "-- INSERT (lang) --" show the name of the keymap used instead of
3052 "lang". (Ilya Dogolazky)
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003053- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
3054 table anymore (breakat_flags[]).
3055 Simplistic solution: when 'formatoptions' contains "m" also break a line
3056 at a multi-byte character >= 0x100.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003057- Add the possibility to enter mappings which are used whenever normal text
3058 could be entered. E.g., for "f" command. But not in Normal mode. Sort
3059 of opposite of 'langmap'. Use ":tmap" command?
3060- When breaking a line, take properties of multi-byte characters into
3061 account. The "linebreak" program from Bruno Haible can do it:
3062 ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
3063 But it's very complicated...
3064
3065
3066Printing:
Bram Moolenaarc0761132005-03-18 20:30:32 +000030677 Implement "undercurl" for printing.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003068- Add "page width" to wrap long lines.
3069- Win32: use a font dialog for setting 'printfont'. Can reuse the code for
3070 the 'guifont' dialog, put the common code in a separate function.
Bram Moolenaar567e4de2004-12-31 21:01:02 +00003071- Add the file timestamp to the page header (with an option). (George
3072 Reilly)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003073- Win32: when 'printfont' is empty use 'guifont'.
3074- Unix: Use some dialog box to do the obvious settings (paper size, printer
3075 name, portrait/landscape, etc).
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003076- PostScript: Only works for text that can be converted to an 8-bit
3077 character set. How to support Unicode fully?
Bram Moolenaar071d4272004-06-13 20:20:40 +00003078- Allow specifying the paper size, instead of using a standard size. Same
3079 units as for the margins.
3080- Support right-to-left text?
30818 Make the foreground color darkening function preserve the hue of the
3082 color.
3083
3084
3085Syntax highlighting:
Bram Moolenaar071d4272004-06-13 20:20:40 +000030868 Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
3087 Should do the same for ":syn on" and ":syn manual".
30888 Support "containedin" argument for ":syn include", so that the defined
3089 cluster can be added to existing syntax items.
30908 C syntax: Don't highlight {} as errors inside () when used like this:
3091 "({ something })", often used in GCC code.
Bram Moolenaar910f66f2006-04-05 20:41:53 +000030927 Add a "startgroup" to a region. Used like "nextgroup" inside the region,
3093 preferred item at the start of the region. (Charles Campbell)
Bram Moolenaar071d4272004-06-13 20:20:40 +000030948 When editing a new file without a name and giving it a name (by writing
3095 it) and 'filetype' is not set, detect the filetype. Avoid doing it for
3096 ":wq file".
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000030977 For "nextgroup" we have skipwhite, skipnl and skipempty. It would be
3098 really nice to be able to skip with a pattern. Or skip with a syntax
3099 group. (Nikolai Weibull, 2007 Feb 27)
Bram Moolenaar071d4272004-06-13 20:20:40 +000031008 Make conversion to HTML faster (Write it in C or pre-compile the script).
31019 There is still a redraw bug somewhere. Probably because a cached state is
3102 used in a wrong way. I can't reproduce it...
Bram Moolenaar071d4272004-06-13 20:20:40 +000031037 Be able to change only the background highlighting. Useful for Diff* and
3104 Search highlighting.
Bram Moolenaar17be7e62006-03-12 22:13:45 +000031057 When 'number' is set highlight the number of the current line.
3106 Must be enabled with an option, because it slows down display updating.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031078 Allow the user to add items to the Syntax menu sorted, without having to
3108 change this for each release.
31098 Add a "matchcontains" for regions: items contained in the start or end
3110 pattern, but not in the body.
31118 Add a "keepend-contained" argument: Don't change the end of an item this
3112 one is contained in. Like "keepend" but specified on the contained item,
3113 instead of the containing item.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031148 cpp.vim: In C++ it's allowed to use {} inside ().
31158 Some syntax files set 'iskeyword'. When switching to another filetype
3116 this isn't reset. Add a special keyword definition for the syntax rules?
3117 When this is done, use vim.vim syntax highlighting for help file examples,
3118 but without ":" in 'iskeyword' for syntax.
Bram Moolenaar30b65812012-07-12 22:01:11 +02003119 Also need a separate 'iskeyword' for the command line, e.g., in a help
3120 window ":e /asdf/asdf/" CTRL-W works different.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031218 Add specific syntax item to match with parens/braces that don't have a
3122 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained]
31238 Highlight the text between two matching parens (e.g., with a grey
3124 background) when on one of the parens or in between them.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +00003125 Option for the matchparen plugin?
Bram Moolenaar071d4272004-06-13 20:20:40 +000031268 When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
3127 sequences. Add remark in docs that :if 'term' == "term-name" should be
3128 used.
31298 Add @spell cluster to String and Comment groups for many languages. Will
3130 allow spell checking. (Fleiner)
31318 When listing syntax items, try to sort the keywords alphabetically. And
3132 re-insert the [] if possible.
31338 Make it possible to use color of text for Visual highlight group (like for
3134 the Cursor).
Bram Moolenaara5792f52005-11-23 21:25:05 +000031358 It would be useful to make the highlight group name an expression. Then
3136 when there is a match, the expression would be evaluated to find out what
3137 highlight group to use. Could be used to check if the shell used in a
3138 password file appears in /etc/shells. (Nikolai Weibull)
3139 syn match =s:checkShell(v:match) contained 'pattern'
Bram Moolenaar071d4272004-06-13 20:20:40 +000031408 Make it possible to only highlight a sub-expression of a match. Like
3141 using "\1" in a ":s" command.
31428 Support for deleting syntax items:
3143 :syn keyword cTodo remove this
3144 :syn match cTodo remove "pattern"
3145 :syn region cString remove start="this" end="that"
31468 Add possibility to sync on something else, when the syncing in one way
3147 doesn't find match. For HTML: When no {script} is found, try looking for
3148 a '<'. (Fleiner)
31497 Replace the synchronizing method with a state machine specification?
3150 Should be able to start at any line in the file, search forwards or
3151 backwards, and use the result of matching a pattern.
31527 Use parsing like awk, so that e.g., a ( without a matching ) can be
3153 detected.
31548 Make it possible to use "inverted" highlighting, invert the original
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00003155 character. For Visual mode. (xterm-selection already does this).
Bram Moolenaar071d4272004-06-13 20:20:40 +000031568 Highlight non-printable characters with "SpecialChar", linked to
3157 "Special". Display them with the digraph characters, if possible.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031588 Highlight the clipboard-selection with a highlight group.
31598 Be able to reset highlighting to its original (default) values.
31607 Be able to write current highlighting to a file as commands, similar to
3161 ":mkvimrc".
31628 Improve c.vim:
3163 - Add check for unterminated strings, with a variable to switch it on:
3164 "c_strict_ansi".
3165 - Detect unbalanced "#endif". Requires looking back a long way...
31668 Add an option to restrict the updating of syntax highlighting to the
3167 current line while in Insert mode.
31688 When guessing value of 'background', the syntax file has already been
3169 loaded (from the .gvimrc). After changing 'background', load it again?
31708 Add ":syn resync" command, to re-parse the whole file until the current
3171 display position.
31728 Should support "me" offset for a region start pattern. To be used to
3173 allow searching for the end pattern inside the match of the end pattern.
3174 Example: syn region pikeXX start="([^{]" end=")" should work on "()".
31758 When using a regexp for "contains=", should delay matching with it until
3176 redrawing happens. Set a flag when a group is added, check this flag when
3177 highlighting starts.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000031788 Some terminals can display colors like the GUI. Add some setting to use
3179 GUI colors for the terminal? With something to define the escape
3180 sequence.
Bram Moolenaarf193fff2006-04-27 00:02:13 +000031817 It's possible for an item to be transparent, so that the colors of an item
3182 lower on the stack is used. Also do this with highlighting, so that the
3183 user can set transparent highlighting? E.g. a number in a C comment would
3184 get the color of a comment, a number in an assignment Normal. (Nikolai
3185 Weibull)
Bram Moolenaar071d4272004-06-13 20:20:40 +000031867 Add "semitrans": Add highlighting. E.g., make the text bold, but keep the
3187 colors. And add colors, so that Green+Red becomes Yellow.
3188 E.g. for this html:
3189 <B> bold text <I> italic+bold text </B> italic text </I>
Bram Moolenaar071d4272004-06-13 20:20:40 +000031907 CTRL-] checks the highlight group for finding out what the tag is.
31917 Add an explanation how a list of words can be used to highlight misspelled
3192 words.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031938 Add more command line completion for :syntax.
31948 Add more command line completion for :highlight.
Bram Moolenaar071d4272004-06-13 20:20:40 +000031957 Should find a better way to parse the :syntax and :highlight commands.
3196 Use tables or lists that can be shared by parsing for execution and
3197 completion?
31988 Add ColorSchemePost autocommand event, so that scripts can set up their
3199 highlighting. (Salman Halim)
32007 Add a few sets of colors (e.g. Borland Turbo C one). With a menu to
3201 select one of the sets.
32028 Add offsets to sub-matches: "\(a*\) *"he=e1-1
3203 'e' is end of match 'e1' is end of sub-match 1, 's2' is start of submatch
3204 2, etc.
32058 In Insert mode, when there are typeahead characters, postpone the
3206 highlighting (for "." command).
32078 Syncing on comments isn't 100% correct when / / lines mix with / * and * /.
3208 For example: What about a line that starts with / / and contains * /?
32098 Ignore / * and * / inside strings, when syncing.
32107 Build a few more syntax files from the file "/usr/share/misc/vgrindefs":
3211 ISP, LDL, Icon, ratfor. And check "nedit/source/highlight.c".
32126 Add possibility to have background color continue until the right edge of
3213 the window. Useful for comment blocks and function headings. (Rogall)
3214- Make it possible to add "contains" items for all items in a group. Useful
3215 when extending an already existing syntax file.
3216- Add line-continuation pattern for non-syncing items too?
Bram Moolenaar071d4272004-06-13 20:20:40 +00003217- Add possibility to highlight the whole line, including the right margin
3218 (for comment blocks).
3219- Add 'hlmatch' option: List of flags:
3220 'c': highlight match for character under the cursor.
3221 'b': highlight the previous (, and its match.
3222 'a': highlight all text from the previous ( until its match.
3223 Also for {}, <>, etc.?
3224 'e': highlight all braces without a match (slow?)
3225 OR: add an argument "cursor" to the syntax command, which means that the
3226 region/match/keyword is only highlighted when the cursor is on it.
3227 (Campbell)
3228 Or do it like Elvis: define text objects and how to highlight them around
3229 the cursor. (Iain Truskett)
32307 Make it possible to use all words in the tags files as Keyword.
3231 Can also be done with a script (but it's slow).
32327 Make it possible to call a ":" command when a match is found. Should
3233 allow for adding keywords from the text (e.g. variables that are set).
3234 And allows for sections with different highlighting.
32357 Add highlight group for commandline: "Commandline". Make sure it
3236 highlights the command line while typing a command, and any output from
3237 messages. And external commands?
32388 Make a version that works like less, but with highlighting: read stdin for
3239 text, exit at end of file, don't allow editing, etc. moreim? lessim?
32407 SpecialKey highlighting overrules syntax highlighting. Can't give an
3241 unprintable char another color. Would be useful for ^M at end of line.
3242
3243
3244Built-in script language:
Bram Moolenaar8c8de832008-06-24 22:58:06 +000032458 Make the filename and line number available to script functions, so that
3246 they can give useful debugging info. The whole call stack would be ideal.
Bram Moolenaar768b8c42006-03-04 21:58:33 +000032477 Execute a function with standard option values. No need to save and
3248 restore option values. Especially useful for new options. Problem: how
3249 to avoid a performance penalty (esp. for string options)?
Bram Moolenaar071d4272004-06-13 20:20:40 +000032508 Add referring to key options with "&t_xx". Both for "echo &t_xx" and
3251 ":let &t_xx =". Useful for making portable mappings.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003252- Add ":let var ?= value", conditional assignment. Patch by Dave Eggum,
3253 2006 Dec 11.
3254- range for ":exec", pass it on to the executed command. (Webb)
Bram Moolenaarc5604bc2010-07-17 15:20:30 +020032558 ":{range}source": source the lines from the current file.
3256 You can already yank lines and use :@" to execute them.
3257 Most of do_source() would not be used, need a new function.
3258 It's easy when not doing breakpoints or profiling.
3259 Requires copying the lines into a list and then creating a function to
3260 execute lines from the list. Similar to getnextac().
Bram Moolenaar1056d982006-03-09 22:37:52 +000032617 ":include" command: just like ":source" but doesn't start a new scriptID?
3262 Will be tricky for the list of script names.
Bram Moolenaar071d4272004-06-13 20:20:40 +000032638 Have a look at VSEL. Would it be useful to include? (Bigham)
32648 Add ":fungroup" command, to group function definitions together. When
3265 encountered, all functions in the group are removed. Suggest using an
3266 obscure name to avoid name clashes. Require a ":fungroup END" in the same
3267 sourced file? Assume the group ends at the end of the file. Handle
3268 nested packages?
3269 Alternative: Support packages. {package-name}:{function-name}().
3270 Packages are loaded automatically when first used, from
3271 $VIMRUNTIME/packages (or use a search path).
Bram Moolenaar071d4272004-06-13 20:20:40 +000032727 Pre-parse or compile Vim scripts into a bytecode.
3273 1. Put the bytecode with the original script, with an ":if
3274 has('bytecode')" around it, so that it's only used with a Vim that
3275 supports it. Update the code with a command, can be used in an
3276 autocommand.
3277 2. Use a ".vic" file (like Python use .pyc). Create it when writing a
3278 .vim file. Problem: distribution.
3279 3. Use a cache directory for each user. How to recognize which cached
3280 file belongs to a sourced script?
Bram Moolenaar071d4272004-06-13 20:20:40 +000032817 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
3282 signs and/or 'number'.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000032836 Add ++ and -- operators? They only work on variables (lvals), how to
3284 implement this?
Bram Moolenaar071d4272004-06-13 20:20:40 +000032858 Add functions:
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003286 has(":command") Check if ":command" works. compare function
3287 with "ex_ni". E.g. for ":simalt".
3288 system() With a List argument. Bypasses the shell, use
3289 exec() directly. (Bob Hiestand)
3290 escape() Add argument to specify what to escape with.
3291 modestack() Instead of just the current mode return the
3292 stack of Insert / CTRL-O / :normal things.
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00003293 realname() Get user name (first, last, full)
3294 user_fullname() patch by Nikolai Weibull, Nov
3295 3 2002
3296 Only add this when also implemented for
3297 non-Unix systems, otherwise a shell cmd could
3298 be used.
3299 get_user_name() gets login name.
Bram Moolenaarab79bcb2004-07-18 21:34:53 +00003300 menuprop({name}, {idx}, {what})
3301 Get menu property of menu {name} item {idx}.
3302 menuprop("", 1, "name") returns "File".
3303 menuprop("File", 1, "n") returns "nmenu
3304 File.Open..." argument.
3305 Patch by Ilya Sher, 2004 Apr 22
3306 Return a list of menus and/or a dictionary
3307 with properties instead.
3308 mapname({idx}, mode) return the name of the idx'th mapping.
3309 Patch by Ilya Sher, 2004 Mar 4.
3310 Return a list instead.
Bram Moolenaar05159a02005-02-26 23:04:13 +00003311 char2hex() convert char string to hex string.
Bram Moolenaar446beb42011-05-10 17:18:44 +02003312 crypt() encrypt string
3313 decrypt() decrypt string
3314 base64enc() base 64 encoding
3315 base64dec() base 64 decoding
Bram Moolenaar071d4272004-06-13 20:20:40 +00003316 attributes() return file protection flags "drwxrwxrwx"
Bram Moolenaar05159a02005-02-26 23:04:13 +00003317 filecopy(from, to) Copy a file
Bram Moolenaar071d4272004-06-13 20:20:40 +00003318 shorten(fname) shorten a file name, like home_replace()
Bram Moolenaar05159a02005-02-26 23:04:13 +00003319 perl(cmd) call Perl and return string
Bram Moolenaar071d4272004-06-13 20:20:40 +00003320 inputrl() like input() but right-to-left
Bram Moolenaar8c8de832008-06-24 22:58:06 +00003321 typed() return the characters typed and consumed (to
3322 find out what happened)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003323 virtualmode() add argument to obtain whether "$" was used in
3324 Visual block mode.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003325 getacp() Win32: get codepage (Glenn Maynard)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003326 deletebufline() delete line in any buffer
3327 appendbufline() append line in any buffer
Bram Moolenaar071d4272004-06-13 20:20:40 +00003328 libcall() Allow more than one argument.
3329 libcallext() Like libcall(), but using a callback function
3330 to allow the library to execute a command or
3331 evaluate an expression.
Bram Moolenaar071d4272004-06-13 20:20:40 +000033327 Make bufname("'0") return the buffer name from mark '0. How to get the
3333 column and line number? col("'0") currently returns zero.
33348 argc() returns 0 when using "vim -t tag". How to detect that no file was
3335 specified in any way? To be able to jump to the last edited file.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000033368 Pass the command line arguments to Vim scripts in some way. As v:args
3337 List? Or extra parameter to argv()?
Bram Moolenaar071d4272004-06-13 20:20:40 +000033388 Add command arguments with three dashes, passed on to Vim scripts.
Bram Moolenaar071d4272004-06-13 20:20:40 +000033397 Add optional arguments to user functions:
3340 :func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
33416 User functions: Functions local to buffer "b:func()"?
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +000033428 For Strings add ":let var[{expr}] = {expr}". When past the end of "var"
3343 just ignore.
Bram Moolenaar071d4272004-06-13 20:20:40 +000033448 The "= register should be writable, if followed by the name of a variable,
3345 option or environment variable.
33468 ":let &option" should list the value of the option.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000033478 ":let Func().foo = value" should work, also when "foo" doesn't exist.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003348 Also: ":let Func()[foo] = value" should work. Same for a List.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +000033497 Add synIDlist(), making the whole list of syntax items on the syntax stack
3350 available as a List.
Bram Moolenaar071d4272004-06-13 20:20:40 +000033518 Add autocommand-event for when a variable is changed:
3352 :au VarChanged {varname} {commands}
33538 Add "has("gui_capable")", to check if the GUI can be started.
33548 Add possibility to use variables like registers: characterwise (default),
3355 linewise (when ending in '\n'), blockwise (when ending in '\001'). reg0,
3356 rega, reg%, etc. Add functions linewise({expr}), blockwise({expr}) and
3357 charwise({expr}).
33587 Make it possible to do any command on a string variable (make a buffer
3359 with one line, containing the string). Maybe add an (invisible) scratch
3360 buffer for this?
3361 result = scratch(string, command)
3362 result = apply(string, command)
3363 result = execute(string, command)
3364 "command" would use <> notation.
3365 Does scratch buffer have a number? Or re-use same number?
33667 Add function to generate unique number (date in milliseconds).
Bram Moolenaar071d4272004-06-13 20:20:40 +00003367
3368
3369Robustness:
Bram Moolenaar843ee412004-06-30 16:16:41 +000033706 Add file locking. Lock a file when starting to edit it with flock() or
3371 fcntl(). This patch has advisory file locking while reading/writing
3372 the file for Vim 5.4: ~/vim/patches/kahn_file_locking .
3373 The patch is incomplete (needs support for more systems, autoconf).
3374 Andy doesn't have time to work on it.
3375 Disadvantage: Need to find ways to gracefully handle failure to obtain a
3376 lock. When to release a lock: When buffer is unloaded?
Bram Moolenaar071d4272004-06-13 20:20:40 +00003377
3378
3379Performance:
Bram Moolenaarc236c162008-07-13 17:41:49 +000033807 For string variables up to 3 bytes don't allocate memory, use v_list
3381 itself as a character array. Use VAR_SSTRING (short string).
Bram Moolenaare6dc5732010-07-24 23:52:26 +020033827 Add 'lazysize' option: Above this size Vim doesn't load everything before
3383 starting to edit a file. Things like 'fileencodings' only work up to this
3384 size, modelines only work at the top. Useful for large log files where
3385 you only want to look at the first few pages. Use zero to disable it.
Bram Moolenaarc236c162008-07-13 17:41:49 +000033868 move_lines() copies every line into allocated memory, making reloading a
3387 buffer a lot slower than re-editing the file. Can the memline be locked
3388 so that we don't need to make a copy? Or avoid invoking ml_updatechunk(),
3389 that is taking a lot of time. (Ralf Wildenhues, 2008 Jul 7)
Bram Moolenaard04b7502010-07-08 22:27:55 +02003390 With a patch, but does it work?
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000033918 Instead of loading rgb.txt every time a color wasn't recognized load it
3392 once and keep it in memory. Move the code to a common place to avoid
3393 repeating it in various system files.
Bram Moolenaar071d4272004-06-13 20:20:40 +000033948 Turn b_syn_ic and b_syn_containedin into b_syn_flags.
33959 Loading menu.vim still takes quite a bit of time. How to make it faster?
33968 in_id_list() takes much time for syntax highlighting. Cache the result?
33977 setpcmark() shifts the jumplist, this takes quite a bit of time when
3398 jumping around. Instead use an index for the start?
33998 When displaying a space with only foreground highlighting, it's the same
3400 as a space without attributes. Avoid displaying spaces for the "~" lines
3401 when starting up in a color terminal.
34028 Avoid alloc() for scratch buffer use, esp. in syntax.c. It's very slow on
3403 Win16.
Bram Moolenaar071d4272004-06-13 20:20:40 +000034048 Profiling shows that in_id_list() is used very often for C code. Can this
3405 function be improved?
34068 For an existing file, the page size of the swap file is always the
3407 default, instead of using the block size of the device, because the swap
3408 file is created only after setting the block size in mf_open(). How can
3409 this be improved?
34108 Set default for 'ttyscroll' to half a screen height? Should speed up
3411 MS-DOS version. (Negri)
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000034127 C syntax highlighting gets a lot slower after ":set foldmethod=syntax".
3413 (Charles Campbell) Inserting a "{" is very slow. (dman)
Bram Moolenaar071d4272004-06-13 20:20:40 +000034147 HTML syntax highlighting is slow for long lines. Try displaying
3415 http://www.theregister.co.uk/content/4/22908.html. (Andre Pang)
34167 Check how performance of loading the wordlist can be improved (adding a
3417 lot of abbreviations).
Bram Moolenaar00659062010-09-21 22:34:02 +020034187 MS-DOS console: Add t_DL support, to make scrolling faster.
Bram Moolenaar071d4272004-06-13 20:20:40 +000034197 Compile Ex commands to byte codes. Store byte codes in a vim script file
3420 at the end, after "compiled:. Make it look like a single comment line
3421 for old Vim versions. Insert first line "Vim script compiled <timestamp>.
3422 Only used compiled code when timestamp matches the file stat.
3423 Add command to compile a vim script and add it to the file in-place.
3424 Split Ex command executing into a parsing and executing phase.
3425 Use compiled code for functions, while loops, etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +000034268 When defining autocommands (e.g., from $VIMRUNTIME/filetype.vim), need to
3427 compare each pattern with all existing patterns. Use a hash code to avoid
3428 using strcmp() too often?
34297 Include turbo_loader patches, speeding up reading a file?
3430 Speed up reading a file by reading it into a fixed-size buffer, creating
3431 the list of indexes in another buffer, and then copying the result into a
3432 memfile block with two copies. Then read the next block into another
3433 fixed-size buffer, create the second list of indexes and copy text from
3434 the two blocks to the memfile block.
34357 do_cmdline(): Avoid that the command line is copied to allocated memory
3436 and freed again later all the time. For while loops, and for when called
3437 with an argument that can be messed with.
3438 Generic solution: Make a struct that contains a pointer and a flag that
3439 indicates if the pointer should be freed when replaced.
34407 Check that the file size is not more than "sizeof(long)".
3441- Further improve finding mappings in maphash[] in vgetorpeek()
34428 Syntax highlighting is slow when deleting lines. Try in
3443 $VIMRUNTIME/filetype.vim.
3444- "out of memory" after deleting (1,$d) and changing (:%s/^/> /) a lot of
3445 lines (27000) a few times. Memory fragmentation?
3446- Have a look at how pdksh does memory allocation (alloc.c). (Dalecki)
3447- Do profiling on:
3448 - :g/pat/normal cmd
3449 - 1000ii<Esc>
3450 - deleting 10Mbyte worth of lines (netscape binary)
3451 - "[i" and "[d" (Yegappan Lakshmanan)
3452 - ":g/^/m0" on a 450Kbyte file. And the "u".
3453 - highlighting "~/vim/test/longline.tex", "~/vim/test/scwoop.tcl" and
3454 "~/vim/test/lockup.pl".
3455 - loading a syntax file to highlight all words not from a dictionary.
Bram Moolenaarcc016f52005-12-10 20:23:46 +00003456 - editing a Vim script with syntax highlighting on (loading vim.vim).
Bram Moolenaar071d4272004-06-13 20:20:40 +000034577 Screen updating can be further improved by only redrawing lines that were
3458 changed (and lines after them, when syntax highlighting was used, and it
3459 changed).
3460 - On each change, remember start and end of the change.
3461 - When inserting/deleting lines, remember begin, end, and line count.
3462- Use macros/duarte/capicua for profiling. Nvi 1.71 is the fastest!
3463- When using a file with one long line (1Mbyte), then do "$hhhh", is still
3464 very slow. Avoid calling getvcol() for each "h"?
3465- Executing a register, e.g. "10000@@" is slow, because ins_typebuf has to
3466 move the previous commands forward each time. Pass count from
3467 normal_cmd() down to do_execreg().
3468- Repeating insert "1000i-<Esc>" displays --INSERT-- all the time, because of
3469 the <Esc> at the end. Make this work faster (disable redrawing).
3470- Avoid calls to plines() for cursor line, use w_cline_height.
3471- After ":set nowrap" remove superfluous redraw with wrong hor. offset if
3472 cursor is right of the screen.
34738 Make CTRL-C on Unix generate a signal, avoid using select() to check for a
3474 CTRL-C (it's slow).
3475
3476
3477Code size:
34788 GUI: When NO_CONSOLE is defined, more code can be excluded.
3479- Put getline() and cookie in a struct, so only one argument has to be
3480 passed to do_cmdline() and other functions.
34818 Make a GUI-only version for Unix?
34828 In buf_write _() isn't needed when setting errmsg, do it once when using
3483 it.
34847 When compiling with a GUI-only version, the code for cterm colors can be
3485 left out.
34868 When compiled with a GUI-only version, the termcap entries for terminals
3487 can be removed.
34888 Can the check for libelf in configure.in be removed?
3489
3490
3491Messages:
34928 When using ":q" in a changed file, the error says to "add !". Add the
3493 command so that beginners understand it: "use :q!".
34948 For 'verbose' level 12 prints commands from source'ed files. How to skip
3495 lines that aren't executed? Perhaps move the echoing to do_cmdline()?
34968 Use 'report' for ":bdel"? (Krishna) To avoid these messages when using a
3497 script.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003498- Delete message after new command has been entered and have waited for key.
3499 Perhaps after ten seconds?
3500- Make message history available in "msg" variables: msg1, msg2, .. msg9.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000035018 When reading from stdin allow suppressing the "reading from stdin"
3502 message.
Bram Moolenaar071d4272004-06-13 20:20:40 +000035039 Check handling of overwriting of messages and delays:
3504 Very wrong: errors while redrawing cause endless loop.
3505 When switching to another file and screen scrolls because of the long
3506 message and return must be typed, don't scroll the screen back before
3507 redrawing.
Bram Moolenaar071d4272004-06-13 20:20:40 +000035088 When address range is wrong you only get "Invalid range". Be a bit more
3509 specific: Negative, beyond last line, reverse range? Include the text.
35108 Make it possible to ignore errors for a moment ('errorignore'?). Another
3511 option to switch off giving error messages ('errorquiet'?). Also an option
3512 not to give any messages ('quiet')? Or ":quiet on", ":quiet off".
3513 Careful: For a severe error (out of memory), and when the user starts
3514 typing, error messages must be switched back on.
3515 Also a flag to ignore error messages for shell commands (for mappings).
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00003516- Option to set time for emsg() sleep. Interrupt sleep when key is typed?
Bram Moolenaarcc016f52005-12-10 20:23:46 +00003517 Sleep before second message?
Bram Moolenaar071d4272004-06-13 20:20:40 +000035188 In Ex silent mode or when reading commands from a file, what exactly is
3519 not printed and what is? Check ":print", ":set all", ":args", ":vers",
3520 etc. At least there should be no prompt. (Smulders) And don't clear the
3521 screen when reading commands from stdin. (Kendall)
3522 --> Make a difference between informative messages, prompts, etc. and
3523 error messages, printing text, etc.
35248 Window should be redrawn when resizing at the hit-enter prompt.
3525 Also at the ":tselect" prompt. Find a generic solution for redrawing when
3526 a prompt is present (with a callback function?).
3527
3528
3529Screen updating:
35307 Add a string to the 'display' option to make CTRL-E and CTRL-Y scroll one
3531 screen line, also if this means the first line doesn't start with the
3532 first character (like what happens with a single line that doesn't fit).
3533- screen_line():
3534 - insert/delete character stuff.
3535 - improve delete rest of line (spaces at end of line).
3536- When moving or resizing window, try to avoid a complete redraw (esp. when
3537 dragging the status line with the mouse).
3538- When 'lazyredraw' set, don't echo :ex commands? Need a flag to redraw when
3539 waiting for a character.
35408 Add a ":refresh [winnr]" command, to force updating a window. Useful from
3541 an event handler where ":normal" can't be used. Also useful when
3542 'lazyredraw' is set in a mapping.
35437 Make 'list' and 'linebreak' work together.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003544
3545
3546Scrolling:
Bram Moolenaar00659062010-09-21 22:34:02 +020035478 Add "zy" command: scroll horizontally to put the cursor in the middle.
Bram Moolenaar071d4272004-06-13 20:20:40 +000035486 Add option to set the overlap for CTRL-F and CTRL-B. (Garhi)
3549- extend 'scrollbind' option: 'scrollopt' words "search", "relative", etc..
3550 Also 'e'xecute some commands (search, vertical movements) in all bound
3551 windows.
35527 Add 'scrollbind' feature to make the offset of one window with the next
3553 one equal to the window height. When editing one file in both windows it
3554 looks like each window displays a page of the buffer.
3555- Allow scrolling by dragging with the mouse (grab a character and move it
3556 up/down). Like the "hand" in Acrobat reader. Use Alt-LeftMouse for this?
3557 (Goldfarb)
3558- Add command to execute some commands (search, vertical movements) in all
3559 bound windows.
3560- Add 'search' option to 'scrollopt' to allow 'scrollbind' windows to
3561 be bound by regexp searches
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00003562- Add "z>" and "z<": scroll sideways one screenful. (Campbell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003563- Add option to set the number of lines when not to scroll, instead of the
3564 fixed number used now (for terminals that scroll slow with a large number
3565 of lines but not with a single line).
3566
3567
3568Autoconf:
35698 Should use acconfig.h to define prototypes that are used by autoheader.
35708 Some compilers don't give an error for "-OPT:Olimit" but a warning. (Webb)
3571 Add a check for the warning, so that "Olimit" can be added automatically?
3572- Autoconf: Use @datadir@ for the system independent files. Make sure the
3573 system dependent and system independent files are separated. (Leitner).
3574- Add autoconf check for waitpid()/wait4().
3575- Remove fcntl() from autoconf, all systems have it?
3576- Set default for 'dictionary', add search for dictionary to autoconf.
3577
3578
3579Perl interface:
35808 Rename typemap file to something else?
Bram Moolenaar071d4272004-06-13 20:20:40 +000035817 Make buffers accessed as Perl arrays. (Clark)
35827 Make it possible to compile with non-ANSI C?
35836 Tcl/Tk has the "load" command: load a shared library (.so or .dll).
3584
3585
3586Shared libraries:
35876 Add support for loading shared libraries, and calling functions in it.
3588 :libload internal-name libname
3589 :libunload internal-name
3590 :liblist
3591 :libcall internal-name function(arg1, arg2, ...)
3592 :libcall function(arg1, arg2, ...)
3593 libcall() can have only one integer or String argument at the moment.
35946 Have a look on how Perl handles loading dynamic libraries.
3595
3596
3597Tags:
Bram Moolenaarc6fe9192006-04-09 21:54:49 +000035989 With ":set tags=./tags,../tags" and a tag appears in both tags files it is
3599 added twice. Requires figuring out the actual file name for each found
3600 match. Remove tag_fname from the match and combine it with the fname in
3601 the match (without expanding or other things that take time). When
3602 'tagrelative' is off tag_fname isn't needed at all.
Bram Moolenaarc236c162008-07-13 17:41:49 +000036038 For 'tags' wildcard in the file name is not supported, only in the path.
3604 This is due to it using |file-searching|. Suboptimal solution would be to
3605 make the filename or the whole option use |wildcards| globing, better
Bram Moolenaarf91787c2010-07-17 12:47:16 +02003606 would be to merge the 2 kinds of globing. originally (Erik Falor, 2008
Bram Moolenaarc236c162008-07-13 17:41:49 +00003607 April 18), updated (Ian Kelling, 2008 July 4)
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +000036087 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
3609 number of possible matches? Check tags file for an item that has members.
3610 (Flemming Madsen)
Bram Moolenaar071d4272004-06-13 20:20:40 +000036118 Scope arguments for ":tag", e.g.: ":tag class:cPage open", like Elvis.
36128 When output of ":tselect" is long, getting the more-prompt, should be able
3613 to type the tag number directly.
Bram Moolenaar071d4272004-06-13 20:20:40 +000036147 Add the possibility to use the "-t {tag}" argument multiple times. Open a
3615 window for each tag.
36167 Make output of ":tselect" a bit nicer. Use highlighting?
36177 Highlight the "tag 1 of >2" message. New highlight group, or same as "hit
3618 bottom" search message.
36197 When using ":tag" at the top of the tag stack, should add another entry,
3620 so CTRL-T can bring you back to where you are now AND to where you were
3621 before the previous ":tag" command. (Webb)
Bram Moolenaar485db9b2005-01-31 19:23:41 +00003622- When doing "[^I" or "[^D" add position to tag stack.
3623- Add command to put current position to tag stack: ":tpush".
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003624- Add functions to save and restore the tag stack? Or a command to switch
3625 to another tag stack? So that you can do something else and come back to
3626 what you were working on.
Bram Moolenaar071d4272004-06-13 20:20:40 +000036277 When using CTRL-] on someClass::someMethod, separate class from method and
3628 use ":ta class:someClass someMethod".
3629 Include C++ tags changes (Bertin). Change "class::func" tag into "func"
3630 with "class=class"? Docs in oldmail/bertin/in.xxx.
36317 Add ":tagargs", to set values for fields:
3632 :tagargs class:someclass file:version.c
3633 :tagargs clear
3634 These are then the default values (changes the order of priority in tag
3635 matching).
36367 Support for "gtags" and "global"? With ":rtag" command?
3637 There is an example for how to do this in Nvi.
3638 Or do it like Elvis: 'tagprg' and 'tagprgonce' options. (Yamaguchi)
3639 The Elvis method is far more flexible, do it that way.
36407 Support "col:99" extra field, to position the cursor in that column. With
3641 a flag in 'cpoptions' to switch it off again.
36427 Better support for jumping to where a function or variable is used. Use
3643 the id-utils, with a connection to "gid" (Emacs can do it too). Add
3644 ":idselect", which uses an "ID" database (made by "mkid") like "tselect".
Bram Moolenaar071d4272004-06-13 20:20:40 +00003645
3646
Bram Moolenaar071d4272004-06-13 20:20:40 +00003647Win32 GUI:
36488 Make debug mode work while starting up (vim -D). Open console window for
3649 the message and input?
Bram Moolenaar071d4272004-06-13 20:20:40 +000036507 GvimExt: when there are several existing Vims, move the list to a submenu.
3651 (Mike McCollister)
36528 When using "Edit with Vim" for one file it changes directory, when several
3653 files are selected and using "Edit with single Vim" the directory isn't
3654 changed. At least change directory when the path is the same for all
3655 files. Perhaps just use the path of the first file or use the longest
3656 common part of the path.
36578 Add font argument to set the lfCharSet. (Bobcik)
36588 Somehow automatically detect the system language and set $LANG, so that
3659 gettext and menus work.
36608 Could keep console open to run multiple commands, to avoid the need to hit
3661 return in every console.
Bram Moolenaar06b5d512010-05-22 15:37:44 +02003662 Also: Look at how Emacs does run external commands:
Bram Moolenaar071d4272004-06-13 20:20:40 +00003663 http://www.cs.washington.edu/homes/voelker/ntemacs.html.
36648 Need a separate PopUp menu for modeless selection. Need two new commands:
3665 Copy selection to clipboard, Paste selection (as typed text).
36668 Support copy/paste for other file formats. At least HTML, perhaps RTF.
3667 Add "copy special" and "paste special" commands?
36687 Use different default colors, to match the current Windows color scheme.
3669 Sys_WindowText, Sys_Window, etc. (Lionel Schaffhauser)
36707 Use <C-Tab> to cycle through open windows (e.g., the find dialog).
36717 <Esc> should close a dialog.
36727 Keep the console for external commands open. Don't wait for a key to be
3673 hit. Re-open it when the user has closed it anyway. Or use a prepended
3674 command: ":nowait {cmd}", or ":quiet", which executes {cmd} without any
3675 prompts.
36767 Should be able to set an option so that when you double click a file that
3677 is associated with Vim, you can either get a new instance of Vim, or have
3678 the file added into an already running Vim.
36797 The "-P" argument only works for the current codepage. Use wide
3680 functions to find the window title.
3681
3682
3683GUI:
Bram Moolenaar446beb42011-05-10 17:18:44 +020036848 Make inputdialog() work for Photon, Amiga.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003685- <C--> cannot be mapped. Should be possible to recognize this as a
3686 normal "-" with the Ctrl modifier.
36877 Implement ":popup" for other systems than Windows.
36888 Implement ":tearoff" for other systems than Win32 GUI.
36896 Implement ":untearoff": hide a torn-off menu.
36908 When using the scrollbar to scroll, don't move the cursor position. When
3691 moving the cursor: scroll to the cursor position.
36929 Make <S-Insert> paste from the clipboard by default. (Kunze)
36937 Menu local to a buffer, like mappings. Or local to a filetype?
36948 In Buffers menu, add a choice whether selecting a buffer opens it in the
3695 current window, splits the window or uses ":hide".
36968 Dragging the mouse pointer outside of a Vim Window should make the text
3697 scroll. Return a value from gui_send_mouse_event() to the machine
3698 specific code to indicate the time in which the event should be repeated.
36998 Make it possible to ignore a mouse click when it's used to give Vim (gvim)
3700 window focus. Also when a mouse click is used to bring a window to front.
37018 Make the split into system independent code and system specific code more
3702 explicit. There are too many #ifdefs in gui.c.
3703 If possible, separate the Vim code completely from the GUI code, to allow
3704 running them in separate processes.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037057 X11: Support cursorColor resource and "-cr" argument.
37068 X11 (and others): CTRL-; is not different from ';'. Set the modifier mask
3707 to include CTRL for keys where CTRL produces the same ASCII code.
Bram Moolenaaraba2f482005-08-10 07:57:38 +000037087 Add some code to handle proportional fonts on more systems? Need to draw
3709 each character separately (like xterm). Also for when a double-width font
3710 is not exactly double-width. (Maeda)
Bram Moolenaar071d4272004-06-13 20:20:40 +000037118 Should take font from xterm where gvim was started (if no other default).
37128 Selecting font names in X11 is difficult, make a script or something to
Bram Moolenaar0a56cb82005-01-04 21:45:14 +00003713 select one.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037148 Visual highlighting should keep the same font (bold, italic, etc.).
37158 Add flag to 'guioptions' to not put anything in the clipboard at all?
37168 Should support a way to use keys that we don't recognize yet. Add a
3717 command that adds entries to special_keys somehow. How do we make this
3718 portable (X11, Win32, ..)?
37197 Add a flag to 'guioptions' that tells not to remove inactive menu items.
3720 For systems where greying-out or removing menu items is very slow. The
3721 menu items would remain visibly normally, but not do anything.
37227 Add ":minimize" and ":maximize", which iconize the window and back.
3723 Useful when using gvim to run a script (e.g. 2html.vim).
37247 X11: Is it possible to free allocated colors, so that other programs can
3725 use them again? Otherwise, allow disabling allocating the default colors.
3726 Or allocate an own colormap (check UAE). With an option to use it. For
3727 the commandline, "-install" is mostly used for X11 programs.
37287 Add command line argument for "gvim" not to start the GUI. Sort of the
3729 inverse of "vim -g". (Vikas)
37307 Should support multi-column menus.
3731- Should add option for where to put the "Help" menu: like Motif at the far
3732 right, or with the other menus (but still at the right).
3733- Add menu item to "Keep Insert mode".
37348 ":mkgvimrc" command, that includes menus.
37356 Big change: Move GUI to separate program "vimgui", to make startup of vim a
3736 lot faster, but still be able to do "vim -g" or ":gui".
37377 More explicit mouse button binding instead of 'mousemodel'?
37387 Add option to set the position of the window on the screen. 'windowpos',
3739 which has a value of "123,456": <x>,<y>.
3740 Or add a command, like ":winsize"?
37417 Add toolbar for more GUIs.
37428 Make it possible to use "amenu icon=BuiltIn##", so that the toolbar item
3743 name can be chosen free.
37447 Make it possible to put the toolbar on top, left, right and/or bottom of
3745 the window? Allows for softkey-like use.
37466 Separate the part of Vim that does the editing from the part that runs the
3747 GUI. Communicate through a pseudo-tty. Vim starts up, creates a
3748 pty that is connected to the terminal. When the GUI starts, the pty is
3749 reconnected to the GUI process. When the GUI stops, it is connected to
3750 the terminal again. Also use the pty for external processes, it looks
3751 like a vt100 terminal to them. Vim uses extra commands to communicate GUI
3752 things.
37537 Motif: For a confirm() dialog <Enter> should be ignored when no default
3754 button selected, <Esc> should close the dialog.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037557 When using a pseudo-tty Vim should behave like some terminal (vt52 looks
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00003756 simple enough). Terminal codes to/from shell should be translated.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003757- Would it be useful to be able to quit the GUI and go back to the terminal
3758 where it was started from?
37597 Support "-visual <type>" command line argument.
3760
3761
Bram Moolenaar071d4272004-06-13 20:20:40 +00003762Autocommands:
Bram Moolenaar251e1912011-06-19 05:09:16 +020037639 Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use
3764 'filetype'. Only for when the current buffer is known.
Bram Moolenaar768b8c42006-03-04 21:58:33 +00003765- Put autocommand event names in a hashtable for faster lookup?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010037668 When the SwapExists event is triggered, provide information about the
3767 swap file, e.g., whether the process is running, file was modified, etc.
3768 Must be possible to check the situation that it's probably OK to delete
3769 the swap file. (Marc Merlin)
37708 When all the patterns for an event are "*" there is no need to expand
3771 buffer names to a full path. This can be slow for NFS.
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +000037727 For autocommand events that trigger multiple times per buffer (e.g.,
3773 CursorHold), go through the list once and cache the result for a specific
3774 buffer. Invalidate the cache when adding/deleting autocommands or
3775 changing the buffer name.
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +000037767 Add TagJump event: do something after jumping to a tag.
Bram Moolenaar3d0a6032006-02-09 23:54:54 +000037778 Add "TagJumpFile" autocommand: When jumping to another file for a tag.
3778 Can be used to open "main.c.gz" when "main.c" isn't found.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037798 Use another option than 'updatetime' for the CursorHold event. The two
3780 things are unrelated for the user (but the implementation is more
3781 difficult).
Bram Moolenaar3d0a6032006-02-09 23:54:54 +000037827 Add autocommand event for when a buffer cannot be abandoned. So that the
3783 user can define the action taking (autowrite, dialog, fail) based on the
3784 kind of file. (Yakov Lerner) Or is BufLeave sufficient?
Bram Moolenaar071d4272004-06-13 20:20:40 +000037858 Autocommand for when modified files have been found, when getting input
3786 focus again (e.g., FileChangedFocus).
3787 Check when: getting focus, jumping to another buffer, ...
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000037887 Autocommand for when an option is changed. Match buffer name or option
3789 name?
Bram Moolenaar3d0a6032006-02-09 23:54:54 +000037908 Autocommands should not change registers. And marks? And the jumplist?
3791 And anything else? Add a command to save and restore these things.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037928 Add autocommands, user functions and user commands to ":mkvimrc".
Bram Moolenaar071d4272004-06-13 20:20:40 +000037936 Add KeymapChanged event, so that the effects of a different keymap can be
3794 handled (e.g., other font) (Ron Aaron)
Bram Moolenaar3d0a6032006-02-09 23:54:54 +000037957 When trying to open a directory, trigger an OpenDirectory event.
Bram Moolenaar071d4272004-06-13 20:20:40 +000037967 Add file type in front of file pattern: <d> for directory, <l> for link,
Bram Moolenaar446beb42011-05-10 17:18:44 +02003797 <x> for executable, etc. With commas to separate alternatives. The
3798 autocommand is only executed when both the file type AND the file pattern
3799 match. (Leonard)
Bram Moolenaar071d4272004-06-13 20:20:40 +000038005 Add option that specifies extensions which are to be discarded from the
3801 file name. E.g. 'ausuffix', with ".gz,.orig". Such that file.c.gz will
3802 trigger the "*.c" autocommands. (Belabas)
38037 Add something to break the autocommands for the current event, and for
3804 what follows. Useful for a "BufWritePre" that wants to avoid writing the
3805 file.
38068 When editing "tt.gz", which is in DOS format, 'fileformat' stays at
3807 "unix", thus writing the file changes it. Somehow detect that the read
3808 command used dos fileformat. Same for 'fileencoding'.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003809- Add events to autocommands:
3810 Error - When an error happens
3811 NormalEnter - Entering Normal mode
Bram Moolenaar071d4272004-06-13 20:20:40 +00003812 ReplaceEnter - Entering Replace mode
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00003813 CmdEnter - Entering Cmdline mode (with type of cmdline to allow
3814 different mapping)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003815 VisualEnter - Entering Visual mode
Bram Moolenaar843ee412004-06-30 16:16:41 +00003816 *Leave - Leaving a mode (in pair with the above *Enter)
Bram Moolenaar21cf8232004-07-16 20:18:37 +00003817 VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
3818 when exiting isn't a good idea.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003819 CursorHoldC - CursorHold while command-line editing
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003820 WinMoved - when windows have been moved around, e.g, ":wincmd J"
Bram Moolenaar071d4272004-06-13 20:20:40 +00003821 CmdUndefined - Like FuncUndefined but for user commands.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003822 SearchPost - After doing a search command (e.g. to do "M")
3823 PreDirChanged/PostDirChanged
3824 - Before/after ":cd" has been used (for changing the
3825 window title)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003826 ShutDown - when the system is about to shut down
Bram Moolenaar071d4272004-06-13 20:20:40 +00003827 InsertCharPost - user typed a character in Insert mode, after inserting
3828 the char.
3829 BufModified - When a buffer becomes modified, or unmodified (for
3830 putting a [+] in the window title or checking out the
3831 file from CVS).
3832 BufFirstChange - When making a change, when 'modified' is set. Can be
3833 used to do a :preserve for remote files.
3834 BufChange - after a change was made. Set some variables to indicate
3835 the position and number of inserted/deleted lines, so
3836 that marks can be updated. HierAssist has patch to add
3837 BufChangePre, BufChangePost and RevertBuf. (Shah)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003838 ViewChanged - triggered when the text scrolls and when the window size
3839 changes.
3840 WinResized - After a window has been resized
3841 WinClose - Just before closing a window
Bram Moolenaarebefac62005-12-28 22:39:57 +00003842- Write the file now and then ('autosave'):
Bram Moolenaar071d4272004-06-13 20:20:40 +00003843 *'autosave'* *'as'* *'noautosave'* *'noas'*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003844 'autosave' 'as' number (default 0)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003845 Automatically write the current buffer to file N seconds after the
3846 last change has been made and when |'modified'| is still set.
3847 Default: 0 = do not autosave the buffer.
3848 Alternative: have 'autosave' use 'updatetime' and 'updatecount' but make
3849 them save the file itself besides the swapfile.
3850
3851
Bram Moolenaarade00832006-03-10 21:46:58 +00003852Omni completion:
Bram Moolenaarc236c162008-07-13 17:41:49 +00003853- Add a flag to 'complete' to be able to do omni completion with CTRL-N (and
3854 mix it with other kinds of completion).
Bram Moolenaarade00832006-03-10 21:46:58 +00003855- Ideas from the Vim 7 BOF at SANE:
3856 - For interpreted languages, use the interpreter to obtain information.
3857 Should work for Java (Eclipse does this), Python, Tcl, etc.
3858 Richard Emberson mentioned working on an interface to Java.
3859 - Check Readline for its completion interface.
Bram Moolenaarade00832006-03-10 21:46:58 +00003860- Ideas from others:
3861 http://www.wholetomato.com/
3862 http://www.vim.org/scripts/script.php?script_id=747
3863 http://sourceforge.net/projects/insenvim
3864 or http://insenvim.sourceforge.net
3865 Java, XML, HTML, C++, JSP, SQL, C#
3866 MS-Windows only, lots of dependencies (e.g. Perl, Internet
3867 explorer), uses .dll shared libraries.
3868 For C++ uses $INCLUDE environment var.
3869 Uses Perl for C++.
3870 Uses ctags to find the info:
3871 ctags -f $allTagsFile --fields=+aiKmnsSz --language-force=C++ --C++-kinds=+cefgmnpsut-dlux -u $files
3872 www.vim.org script 1213 (Java Development Environment) (Fuchuan Wang)
3873 IComplete: http://www.vim.org/scripts/script.php?script_id=1265
3874 and http://stud4.tuwien.ac.at/~e0125672/icomplete/
3875 http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
3876 Ivan Villanueva has something for Java.
Bram Moolenaarff312a42010-05-16 15:14:25 +02003877 Emacs: http://www.xref-tech.com/xrefactory/more_c_completion.html
Bram Moolenaarade00832006-03-10 21:46:58 +00003878 Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
3879- Pre-expand abbreviations, show which abbrevs would match?
3880
3881
Bram Moolenaar071d4272004-06-13 20:20:40 +00003882Insert mode completion/expansion:
Bram Moolenaar768b8c42006-03-04 21:58:33 +00003883- GUI implementation of the popup menu.
Bram Moolenaar8b2d9c42006-05-03 21:28:47 +000038847 When searching in other files the name flash by, too fast to read. Only
3885 display a name every second or so, like with ":vimgrep".
Bram Moolenaarc236c162008-07-13 17:41:49 +000038867 When expanding file names with an environment variable, add the match with
3887 the unexpanded var. So $HOME/tm expands to "/home/guy/tmp" and
3888 "$HOME/tmp"
Bram Moolenaar071d4272004-06-13 20:20:40 +000038898 When there is no word before the cursor but something like "sys." complete
3890 with "sys.". Works well for C and similar languages.
38919 ^X^L completion doesn't repeat correctly. It uses the first match with
3892 the last added line, instead of continuing where the last match ended.
3893 (Webb)
Bram Moolenaar071d4272004-06-13 20:20:40 +000038948 Add option to set different behavior for Insert mode completion:
3895 - ignore/match case
3896 - different characters than 'iskeyword'
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000038978 Add option 'isexpand', containing characters when doing expansion (so that
3898 "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
3899 Also: 'istagword': characters used for CTRL-].
3900 When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
3901 Alternative: Use a pattern so that start and end of a keyword can be
3902 defined, only allow dash in the middle, etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +000039038 Add a command to undo the completion, go back to the original text.
Bram Moolenaaraba2f482005-08-10 07:57:38 +000039047 Completion of an abbreviation: Can leave letters out, like what Instant
3905 text does: www.textware.com
Bram Moolenaar071d4272004-06-13 20:20:40 +000039068 Use the class information in the tags file to do context-sensitive
3907 completion. After "foo." complete all member functions/variables of
3908 "foo". Need to search backwards for the class definition of foo.
3909 Should work for C++ and Java.
3910 Even more context would be nice: "import java.^N" -> "io", "lang", etc.
39117 When expanding $HOME/dir with ^X^F keep the $HOME (with an option?).
39127 Add CTRL-X command in Insert mode like CTRL-X CTRL-N, that completes WORDS
3913 instead of words.
39148 Add CTRL-X CTRL-R: complete words from register contents.
39158 Add completion of previously inserted texts (like what CTRL-A does).
3916 Requires remembering a number of insertions.
39178 Add 'f' flag to 'complete': Expand file names.
3918 Also apply 'complete' to whole line completion.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00003919- Add a flag to 'complete' to only scan local header files, not system
3920 header files. (Andri Moell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003921- Make it possible to search include files in several places. Use the
3922 'path' option? Can this be done with the dictionary completion (use
3923 wildcards in the file name)?
3924- Make CTRL-X CTRL-K do a binary search in the dictionary (if it's sorted).
3925- Speed up CTRL-X CTRL-K dictionary searching (don't use a regexp?).
3926- Set a mark at the position where the match was found (file mark, could
3927 be in another file).
3928- Add CTRL-A command in CTRL-X mode: show all matches.
3929- Make CTRL-X CTRL-L use the 'complete' option?
3930- Add command in CTRL-X mode to add following words to the completed string
3931 (e.g. to complete "Pointer->element" with CTRL-X CTRL-P CTRL-W CTRL-W)
3932- CTRL-X CTRL-F: Use 'path' to find completions.
3933- CTRL-X CTRL-F: Option to use forward slashes on MS-Windows?
3934- CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003935- Allow listing all matches in some way (and picking one from the list).
3936
3937
3938Command line editing:
39397 Add commands (keys) to delete from the cursor to the end of the command
3940 line.
39418 Custom completion of user commands can't use the standard completion
3942 functions. Add a hook to invoke a user function that returns the type of
3943 completion to be done: "file", "tag", "custom", etc.
3944- Add flags to 'whichwrap' for command line editing (cursor right at end of
3945 lines wraps to start of line).
3946- Make editing the command line work like Insert mode in a single-line view
3947 on a buffer that contains the command line history. But this has many
3948 disadvantages, only implement it when these can be solved. Elvis has run
3949 into these, see remarks from Steve (~/Mail/oldmail/kirkendall/in.00012).
3950 - Going back in history and editing a line there would change the history.
3951 Would still need to keep a copy of the history elsewhere. Like the
3952 cmdwin does now already.
3953 - Use CTRL-O to execute one Normal mode command. How to switch to normal
3954 mode for more commands? <Esc> should cancel the command line. CTRL-T?
3955 - To allow "/" and "= need to recursively call getcmdline(), overwrite the
3956 cmdline. But then we are editing a command-line again. How to avoid
3957 that the user gets confused by the stack of command lines?
3958 - Use edit() for normal cmdline editing? Would have to integrate
3959 getcmdline() into edit(). Need to solve conflicts between Insert mode
3960 and Command-line mode commands. Make it work like Korn shell and tcsh.
3961 Problems:
3962 - Insert: completion with 'wildchar'
3963 - Insert: use cmdline abbreviations
3964 - Insert: CTRL-D deletes indent instead of listing matches
3965 - Normal: no CTRL-W commands
3966 - Normal: no ":" commands?
3967 - Normal: allow Visual mode only within one line.
3968 - where to show insert/normal mode message? Change highlighting of
3969 character in first column?
3970 - Implementation ideas:
3971 - Set "curwin" and "curbuf" to the command line window and buffer.
3972 - curwin->w_topline is always equal to curwin->w_cursor.lnum.
3973 - never set 'number', no folding, etc. No status line.
3974 - sync undo after entering a command line?
3975 - use NV_NOCL flag for commands that are not allowed in Command-line
3976 Mode.
3977
3978
3979Command line completion:
Bram Moolenaar8c8de832008-06-24 22:58:06 +000039808 Completing ":r ~br" should find matching user names.
Bram Moolenaar071d4272004-06-13 20:20:40 +000039818 Change expand_interactively into a flag that is passed as an argument.
39828 With command line completion after '%' and '#', expand current/alternate
3983 file name, so it can be edited. Also with modifiers, such as "%:h".
39848 When completing command names, either sort them on the long name, or list
3985 them with the optional part inside [].
Bram Moolenaar8c8de832008-06-24 22:58:06 +000039868 Add an option to ignore case when doing interactive completion. So that
3987 ":e file<Tab>" also lists "Filelist" (sorted after matching case matches).
Bram Moolenaar071d4272004-06-13 20:20:40 +000039887 Completion of ":map x ": fill in the current mapping, so that it can be
3989 edited. (Sven Guckes)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003990- For 'wildmenu': Simplify "../bar" when possible.
3991- When using <Up> in wildmenu mode for a submenu, should go back to the
3992 current menu, not the first one. E.g., ":emenu File.Save<Up>".
Bram Moolenaar071d4272004-06-13 20:20:40 +000039938 When using backtick expansion, the external command may write a greeting
3994 message. Add an option or commands to remove lines that match a regexp?
39957 When listing matches of files, display the common path separately from the
3996 file names, if this makes the listing shorter. (Webb)
3997- Add command line completion for ":ilist" and friends, show matching
3998 identifiers (Webb).
39998 Add command line completion for "old value" of a command. ":args <key>"
4000 would result in the current list of arguments, which you can then edit.
40017 Add command line completion with CTRL-X, just like Insert mode completion.
4002 Useful for ":s/word/xx/".
4003- Add command to go back to the text as it was before completion started.
4004 Also to be used for <Up> in the command line.
4005- Add 'wildlongest' option: Key to use to find longest common match for
4006 command line completion (default CTRL-L), like 'wildchar'. (Cregut)
4007 Also: when there are several matches, show them line a CTRL-D.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004008
4009
4010Command line history:
4011- Add "KeyWasTyped" flag: It's reset before each command and set when a
4012 character from the keyboard is consumed. Value is used to decide to put a
4013 command line in history or not. Put line in history if it didn't
4014 completely resulted from one mapping.
4015- When using ":browse", also put the resulting edit command in the history,
4016 so that it can be repeated. (Demirel)
4017
4018
4019Insert mode:
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000040209 When 'autoindent' is set, hitting <CR> twice, while there is text after
4021 the cursor, doesn't delete the autoindent in the resulting blank line.
4022 (Rich Wales) This is Vi compatible, but it looks like a bug.
Bram Moolenaar071d4272004-06-13 20:20:40 +000040238 When using CTRL-O in Insert mode, then executing an insert command
4024 "a" or "i", should we return to Insert mode after <Esc>? (Eggink)
4025 Perhaps it can be allowed a single time, to be able to do
4026 "<C-O>10axyz<Esc>". Nesting this further is confusing.
4027 ":map <F2> 5aabc<Esc>" works only once from Insert mode.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000040288 When using CTRL-G CTRL-O do like CTRL-\ CTRL-O, but when returning with
4029 the cursor in the same position and the text didn't change continue the
4030 same change, so that "." repeats the whole insert.
Bram Moolenaar071d4272004-06-13 20:20:40 +000040317 Use CTRL-G <count> to repeat what follows. Useful for inserting a
4032 character multiple times or repeating CTRL-Y.
Bram Moolenaarc236c162008-07-13 17:41:49 +00004033- Make 'revins' work in Replace mode.
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020040349 Can't use multi-byte characters for 'matchpairs'.
Bram Moolenaar071d4272004-06-13 20:20:40 +000040357 Use 'matchpairs' for 'showmatch': When inserting a character check if it
4036 appears in the rhs of 'matchpairs'.
4037- In Insert mode (and command line editing?): Allow undo of the last typed
4038 character. This is useful for CTRL-U, CTRL-W, delete and backspace, and
4039 also for characters that wrap to the next line.
4040 Also: be able to undo CTRL-R (insert register).
4041 Possibly use 'backspace'="whole" for a mode where at least a <CR> that
4042 inserts autoindent is undone by a single <BS>.
4043- Use CTRL-G in Insert mode for an extra range of commands, like "g" in
4044 Normal mode.
4045- Make 'paste' work without resetting other options, but override their
4046 value. Avoids problems when changing files and modelines or autocommands
4047 are used.
4048- When typing CTRL-V and a digit higher than 2, only expect two digits.
4049- Insert binary numbers with CTRL-V b.
4050- Make it possible to undo <BS>, <C-W> and <C-U>. Bash uses CTRL-Y.
4051
4052
4053'cindent', 'smartindent':
Bram Moolenaar662db672011-03-22 14:05:35 +010040549 Wrapping a variable initialization should have extra indent:
4055 char * veryLongName =
4056 "very long string"
4057 Also check if "cino=+10" is used correctly.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000040588 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
Bram Moolenaar8c8de832008-06-24 22:58:06 +000040598 Why are continuation lines outside of a {} block not indented? E.g.:
4060 long_type foo =
4061 value;
Bram Moolenaar071d4272004-06-13 20:20:40 +000040628 Java: Inside an anonymous class, after an "else" or "try" the indent is
4063 too small. (Vincent Bergbauer)
Bram Moolenaar8cacf352006-04-15 20:27:24 +00004064 Problem of using {} inside (), 'cindent' doesn't work then.
Bram Moolenaar071d4272004-06-13 20:20:40 +000040658 In C++ it's possible to have {} inside (): (Kirshna)
4066 func(
4067 new String[] {
4068 "asdf",
4069 "asdf"
4070 }
4071 );
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010040728 In C++ a function isn't recognized inside a namespace:
4073 (Chow Loong Jin)
4074 namespace {
4075 int
4076 func(int arg) {
4077 }
4078 }
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000040796 Add 'cino' flag for this function argument layout: (Spencer Collyer)
4080 func( arg1
4081 , arg2
4082 , arg3
4083 );
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +000040847 Add separate "(0" option into inside/outside a function (Zellner):
Bram Moolenaar071d4272004-06-13 20:20:40 +00004085 func(
4086 int x) // indent like "(4"
4087 {
4088 if (a
4089 && b) // indent like "(0"
Bram Moolenaar071d4272004-06-13 20:20:40 +000040909 Using "{" in a comment: (Helmut Stiegler)
4091 if (a)
4092 {
4093 if (b)
4094 {
4095 // {
4096 }
4097 } <-- this is indented incorrect
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00004098 Problem is that find_start_brace() checks for the matching brace to be in
4099 a comment, but not braces in between. Requires adding a comment check to
4100 findmatchlimit().
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004101- Make smartindenting configurable. Add 'sioptions', e.g. '#' setting the
Bram Moolenaar071d4272004-06-13 20:20:40 +00004102 indent to 0 should be switched on/off.
41037 Support ANSI style function header, with each argument on its own line.
4104- "[p" and "]p" should use 'cindent' code if it's on (only for the first
4105 line).
4106- Add option to 'cindent' to set indent for comments outside of {}?
4107- Make a command to line up a comment after a code line with a previous
4108 comment after a code line. Can 'cindent' do this automatically?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004109- When 'cindent'ing a '}', showmatch is done before fixing the indent. It
4110 looks better when the indent is fixed before the showmatch. (Webb)
4111- Add option to make indenting work in comments too (for commented-out
4112 code), unless the line starts with "*".
4113- Don't use 'cindent' when doing formatting with "gq"?
4114- When formatting a comment after some text, insert the '*' for the new line
4115 (indent is correct if 'cindent' is set, but '*' doesn't get inserted).
41168 When 'comments' has both "s1:/*,mb:*,ex:*/" and "s1:(*,mb:*,ex:*)", the
4117 'x' flag always uses the first match. Need to continue looking for more
4118 matches of "*" and remember all characters that could end the comment.
4119- For smartindent: When typing 'else' line it up with matching 'if'.
4120- 'smartindent': allow patterns in 'cinwords', for e.g. TeX files, where
4121 lines start with "\item".
4122- Support this style of comments (with an option): (Brown)
4123 /* here is a comment that
4124 is just autoindented, and
4125 nothing else */
4126- Add words to 'cinwords' to reduce the indent, e.g., "end" or "fi".
41277 Use Tabs for the indent of starting lines, pad with spaces for
4128 continuation lines. Allows changing 'tabstop' without messing up the
4129 indents.
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00004130 'keeptabs': when set don't change the tabs and spaces used for indent,
4131 when the indent remains the same or increases.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004132
4133
4134Java:
41358 Can have {} constructs inside parens. Include changes from Steve
4136 Odendahl?
41378 Recognize "import java.util.Vector" and use $CLASSPATH to find files for
4138 "[i" commands and friends.
4139- For files found with 'include': handle "*" in included name, for Java.
4140 (Jason)
4141- How to make a "package java.util" cause all classes in the package to be
4142 searched? Also for "import java.util.*". (Mark Brophy)
4143
4144
4145'comments':
41468 When formatting C comments that are after code, the "*" isn't repeated
4147 like it's done when there is no code. And there is no automatic wrapping.
4148 Recognize comments that come after code. Should insert the comment leader
4149 when it's "#" or "//".
Bram Moolenaarce5e58e2005-01-19 22:24:34 +00004150 Other way around: when a C command starts with "* 4" the "*" is repeated
4151 while it should not. Use syntax HL comment recognition?
Bram Moolenaar071d4272004-06-13 20:20:40 +000041527 When using "comments=fg:--", Vim inserts three spaces for a new line.
4153 When hitting a TAB, these spaces could be removed.
41547 The 'n'esting flag doesn't do the indenting of the last (rightmost) item.
41556 Make strings in 'comments' option a RE, to be able to match more
4156 complicated things. (Phillipps) Use a special flag to indicate that a
4157 regexp is used.
41588 Make the 'comments' option with "/* * */" lines only repeat the "*" line
4159 when there is a "/*" before it? Or include this in 'cindent'?
4160
4161
4162Virtual edit:
41638 Make the horizontal scrollbar work to move the text further left.
Bram Moolenaar071d4272004-06-13 20:20:40 +000041647 Allow specifying it separately for Tabs and beyond end-of-line?
4165
4166
4167Text objects:
Bram Moolenaar8c8de832008-06-24 22:58:06 +000041688 Add text object for fold, so that it can be yanked when it's open.
Bram Moolenaar071d4272004-06-13 20:20:40 +000041698 Add test script for text object commands "aw", "iW", etc.
Bram Moolenaar994cd122007-05-12 15:19:41 +000041708 Add text object for part of a CamelHumpedWord and under_scored_word.
Bram Moolenaar4399ef42005-02-12 14:29:27 +00004171 (Scott Graham) "ac" and "au"?
Bram Moolenaar5313dcb2005-02-22 08:56:13 +000041728 Add a text object for any kind of quoting, also with multi-byte
4173 characters. Option to specify what quotes are recognized (default: all)
Bram Moolenaar05159a02005-02-26 23:04:13 +00004174 use "aq" and "iq". Use 'quotepairs' to define pairs of quotes, like
4175 'matchpairs'?
Bram Moolenaar5313dcb2005-02-22 08:56:13 +000041768 Add text object for any kind of parens, also multi-byte ones.
Bram Moolenaar071d4272004-06-13 20:20:40 +000041777 Add text object for current search pattern: "a/" and "i/". Makes it
4178 possible to turn text highlighted for 'hlsearch' into a Visual area.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000041798 Add a way to make an ":omap" for a user-defined text object. Requires
4180 changing the starting position in oap->start.
Bram Moolenaar071d4272004-06-13 20:20:40 +000041818 Add "gp" and "gP" commands: insert text and make sure there is a single
4182 space before it, unless at the start of the line, and after it, unless at
4183 the end of the line or before a ".".
41847 Add objects with backwards extension? Use "I" and "A". Thus "2dAs"
4185 deletes the current and previous sentence. (Jens Paulus)
41867 Add "g{" and "g}" to move to the first/last character of a paragraph
4187 (instead of the line just before/after a paragraph as with "{" and "}").
Bram Moolenaar071d4272004-06-13 20:20:40 +000041886 Ignore comment leaders for objects. Make "das" work in reply-email.
41895 Make it possible to use syntax group matches as a text object. For
4190 example, define a "ccItem" group, then do "da<ccItem>" to delete one.
4191 Or, maybe just define "dai", delete-an-item, to delete the syntax item the
4192 cursor is on.
4193
4194
4195Select mode:
41968 In blockwise mode, typed characters are inserted in front of the block,
4197 backspace deletes a column before the block. (Steve Hall)
41987 Alt-leftmouse starts block mode selection in MS Word.
Bram Moolenaar531da592013-05-06 05:58:55 +02004199 See http://vim.wikia.com/wiki/Use_Alt-Mouse_to_select_blockwise.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042007 Add Cmdline-select mode. Like Select mode, but used on the command line.
4201 - Change gui_send_mouse_event() to pass on mouse events when 'mouse'
4202 contains 'C' or 'A'.
4203 - Catch mouse events in ex_getln.c. Also shift-cursor, etc., like in
4204 normal_cmd().
4205 - remember start and end of selection in cmdline_info.
4206 - Typing text replaces the selection.
4207
4208
4209Visual mode:
4210- When dragging the Visual selection with the mouse and 'scrolloff' is zero,
4211 behave like 'scrolloff' is one, so that the text scrolls when the pointer
4212 is in the top line.
Bram Moolenaar768b8c42006-03-04 21:58:33 +00004213- Displaying size of Visual area: use 24-33 column display.
4214 When selecting multiple lines, up to about a screenful, also count the
4215 characters.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042168 When using "I" or "A" in Visual block mode, short lines do not get the new
Bram Moolenaarcc016f52005-12-10 20:23:46 +00004217 text. Make it possible to add the text to short lines too, with padding
Bram Moolenaar071d4272004-06-13 20:20:40 +00004218 where needed.
42197 With a Visual block selected, "2x" deletes a block of double the width,
4220 "3y" yanks a block of triple width, etc.
42217 When selecting linewise, using "itext" should insert "text" at the start
4222 of each selected line.
42238 What is "R" supposed to do in Visual mode?
42248 Make Visual mode local to the buffer. Allow changing to another buffer.
4225 When starting a new Visual selection, remove the Visual selection in any
4226 other buffer. (Ron Aaron)
42278 Support dragging the Visual area to drop it somewhere else. (Ron Aaron,
4228 Ben Godfrey)
42297 Support dragging the Visual area to drop it in another program, and
4230 receive dropped text from another program. (Ben Godfrey)
42317 With blockwise Visual mode and "c", "C", "I", "A", etc., allow the use of
4232 a <CR>. The entered lines are repeated over the Visual area.
42337 CTRL-V :s should substitute only in the block, not to whole lines. (David
4234 Young is working on this)
42357 Filtering a block should only apply to the block, not to the whole lines.
Bram Moolenaared203462004-06-16 11:19:22 +00004236 When the number of lines is increased, add lines. When decreased, pad with
Bram Moolenaar071d4272004-06-13 20:20:40 +00004237 spaces or delete? Use ":`<,`>" on the command line.
42388 After filtering the Visual area, make "gv" select the filtered text?
4239 Currently "gv" only selects a single line, not useful.
42407 Don't move the cursor when scrolling? Needed when the selection should
4241 stay the same. Scroll to the cursor at any movement command. With an
4242 option!
42437 In Visual block mode, need to be able to define a corner on a position
4244 that doesn't have text? Also: when using the mouse, be able to select
4245 part of a TAB. Even more: Add a mode where the cursor can be on a screen
4246 position where there is no text. When typing, add spaces to fill the gap.
4247 Other solution: Always use curswant, so that you can move the cursor to
4248 the right column, and then use up/down movements to select the line,
4249 without changing the column.
42506 ":left" and ":right" should work in Visual block mode.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042517 CTRL-I and CTRL-O should work in Visual mode, but only jump to marks in the
4252 current buffer.
42537 CTRL-A and CTRL-X should increase/decrease all numbers in the Visual area.
42546 In non-Block mode, "I" should insert the same text in front of each line,
4255 before the first non-blank, "gI" in column 1.
42566 In non-Block mode, "A" should append the same text after each line.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042576 When in blockwise visual selection (CTRL-V), allow cursor to be placed
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004258 right of the line. Could also allow cursor to be placed anywhere on a TAB
Bram Moolenaar071d4272004-06-13 20:20:40 +00004259 or other special character.
42606 Add commands to move selected text, without deselecting.
4261
4262
4263More advanced repeating commands:
4264- Add "." command for visual mode: redo last visual command (e.g. ":fmt").
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000042657 Repeating "d:{cmd}" with "." doesn't work. (Benji Fisher) Somehow remember
Bram Moolenaar071d4272004-06-13 20:20:40 +00004266 the command line so that it can be repeated?
Bram Moolenaar203d04d2013-06-06 21:36:40 +02004267- Add command to repeat last movement. Including count.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004268- Add "." command after operator: repeat last command of same operator. E.g.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004269 "c." will repeat last change, also when "x" used since then (Webb).
4270 "y." will repeat last yank.
4271 "c2." will repeat the last but one change?
4272 Also: keep history of Normal mode commands, add command to list the history
4273 and/or pick an older command.
4274- History stack for . command? Use "g." command.
4275
4276
4277Mappings and Abbreviations:
Bram Moolenaar071d4272004-06-13 20:20:40 +000042788 When "0" is mapped (it is a movement command) this mapping should not be
4279 used after typing another number, e.g. "20l". (Charles Campbell)
4280 Is this possible without disabling the mapping of the following command?
42818 Should mapping <C-A> and <C-S-A> both work?
42827 ":abbr b byte", append "b " to an existing word still expands to "byte".
4283 This is Vi compatible, but can we avoid it anyway?
Bram Moolenaar071d4272004-06-13 20:20:40 +000042848 To make a mapping work with a prepended "x to select a register, store the
4285 last _typed_ register name and access it with "&.
42868 Add ":amap", like ":amenu".
Bram Moolenaarade00832006-03-10 21:46:58 +000042877 Add a mapping that works always, for remapping the keyboard.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042888 Add ":cab!", abbreviations that only apply to Command-line mode and not to
4289 entering search strings.
42908 Add a flag to ":abbrev" to eat the character that triggers the
4291 abbreviation. Thus "abb ab xxx" and typing "ab<Space>" inserts "xxx" and
4292 not the <Space>.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042938 Give a warning when using CTRL-C in the lhs of a mapping. It will never
4294 (?) work.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042958 Add a way to save a current mapping and restore it later. Use a function
4296 that returns the mapping command to restore it: mapcmd()? mapcheck() is
4297 not fool proof. How to handle ambiguous mappings?
42987 Add <0x8f> (hex), <033> (octal) and <123> (decimal) to <> notation?
Bram Moolenaar071d4272004-06-13 20:20:40 +000042997 When someone tries to unmap with a trailing space, and it fails, try
4300 unmapping without the trailing space. Helps for ":unmap xx | unmap yy".
Bram Moolenaar071d4272004-06-13 20:20:40 +000043016 Context-sensitive abbreviations: Specify syntax group(s) in which the
4302 abbreviations are to be used.
4303- Add mappings that take arguments. Could work like the ":s" command. For
4304 example, for a mouse escape sequence:
4305 :mapexp <Esc>{\([0-9]*\),\([0-9]*\); H\1j\2l
Bram Moolenaarade00832006-03-10 21:46:58 +00004306- Add optional <Number> argument for mappings:
4307 :map <Number>q ^W^W<Number>G
4308 :map <Number>q<Number>t ^W^W<Number1-1>G<Number2>l
4309 :map q<Char> :s/<Char>/\u\0/g
4310 Or implicit:
4311 :map q <Register>d<Number>$
Bram Moolenaar071d4272004-06-13 20:20:40 +00004312- Add command to repeat a whole mapping ("." only repeats the last change in
4313 a mapping). Also: Repeat a whole insert command, including any mappings
4314 that it included. Sort-of automatic recording?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004315- Include an option (or flag to 'cpoptions') that makes errors in mappings
4316 not flush the rest of the mapping (like nvi does).
4317- Use context sensitiveness of completion to switch abbreviations and
4318 mappings off for :unab and :unmap.
43196 When using mappings in Insert mode, insert characters for incomplete
4320 mappings first, then remove them again when a mapping matches. Avoids
4321 that characters that are the start of some mapping are not shown until you
4322 hit another character.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004323- Add mappings for replace mode: ":rmap". How do we then enter mappings for
4324 non-replace Insert mode?
4325- Add separate mappings for Visual-character/block/line mode?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004326- Add 'mapstop' command, to stop recursive mappings.
4327- List mappings that have a raw escape sequence both with the name of the key
4328 for that escape sequence (if there is one) and the sequence itself.
4329- List mappings: Once with special keys listed as <>, once with meta chars as
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004330 <M-a>, once with the byte values (octal?). Sort of "spell mapping" command?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004331- When entering mappings: Add the possibility to enter meta keys like they
4332 are displayed, within <>: <M-a>, <~@> or <|a>.
4333- Allow multiple arguments to :unmap.
4334- Command to show keys that are not used and available for mapping
4335 ":freekeys".
4336- Allow any character except white space in abbreviations lhs (Riehm).
4337
4338
4339Incsearch:
4340- Add a limit to the number of lines that are searched for 'incsearch'?
4341- When no match is found and the user types more, the screen is redrawn
4342 anyway. Could skip that. Esp. if the line wraps and the text is scrolled
4343 up every time.
4344- Temporarily open folds to show where the search ends up. Restore the
4345 folds when going to another line.
4346- When incsearch used and hitting return, no need to search again in many
4347 cases, saves a lot of time in big files. (Slootman wants to work on this?)
4348 When not using special characters, can continue search from the last match
4349 (or not at all, when there was no match). See oldmail/webb/in.872.
4350- With incsearch, use CTRL-N/CTRL-P to go to next/previous match, some other
4351 key to copy matched word to search pattern (Alexander Schmid).
4352
4353
4354Searching:
Bram Moolenaara3e6bc92013-01-30 14:18:00 +010043559 Should have an option for :vimgrep to find lines without a match.
Bram Moolenaar4770d092006-01-12 23:22:24 +000043568 Add "g/" and "gb" to search for a pattern in the Visually selected text?
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +00004357 "g?" is already used for rot13.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00004358 The vis.vim script has a ":S" command that does something like this.
Bram Moolenaar4770d092006-01-12 23:22:24 +00004359 Can use "g/" in Normal mode, uses the '< to '> area.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00004360 Use "&/" for searching the text in the Visual area?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010043619 Add "v" offset: "/pat/v": search for pattern and start Visual mode on the
4362 matching text.
Bram Moolenaar662db672011-03-22 14:05:35 +010043638 Add a modifier to interpret a space like "\_s\+" to make it much easier to
4364 search for a phrase.
Bram Moolenaar2641f772005-03-25 21:58:17 +000043658 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands
4366 for "go recursive here" and \@( \) marks the recursive part.
4367 Perl does it this way:
4368 $paren = qr/ \(( [^()] | (??{ $paren }) )* \) /x;
4369 Here $paren is evaluated when it's encountered. This is like a regexp
4370 inside a regexp. In the above terms it would be:
4371 \@((\([^()]\|\@g\)*)\)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000043728 Show the progress every second. Could use the code that checks for CTRL-C
4373 to find out how much time has passed. Or use SIGALRM. Where to show the
4374 number?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010043758 When using an expression for ":s", set the match position in a v:
4376 variable. So that you can do ":%s/^/\=v:lnum/" to put a line number
4377 before each line.
Bram Moolenaarc998e3c2005-06-14 22:13:23 +000043787 Support for approximate-regexps to find similar words (agrep
4379 http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
Bram Moolenaarc0761132005-03-18 20:30:32 +000043808 Add an item for a big character range, so that one can search for a
4381 chinese character: \z[234-1234] or \z[XX-YY] or \z[0x23-0x234].
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000043827 Add an item stack to allow matching (). One side is "push X on
Bram Moolenaar071d4272004-06-13 20:20:40 +00004383 the stack if previous atom matched". Other side is "match with top of
4384 stack, pop it when it matches". Use "\@pX" and "\@m"?
4385 Example: \((\@p).\{-}\@m\)*
43867 Add an option to accept a match at the cursor position. Also for
4387 search(). (Brett)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000043887 Add a flag to "/pat/" to discard an error. Useful to continue a mapping
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01004389 when a search fails. Could be "/pat/E" (e is already used for end offset).
Bram Moolenaar071d4272004-06-13 20:20:40 +000043907 Add pattern item to use properties of Unicode characters. In Perl it's
4391 "\p{L}" for a letter. See Regular Expression Pocket Reference.
Bram Moolenaar071d4272004-06-13 20:20:40 +000043928 Would it be possible to allow ":23,45/pat/flags" to search for "pat" in
4393 lines 23 to 45? Or does this conflict with Ex range syntax?
43948 Allow identical pairs in 'matchpairs'. Restrict the search to the current
4395 line.
43967 Allow longer pairs in 'matchpairs'. Use ~/vim/macros/matchit.vim as an
4397 example.
43988 Make it possible to define the character that "%" checks for in
4399 #if/#endif. For nmake it's !if/!endif.
4400- For "%" command: set hierarchy for which things include other things that
4401 should be ignored (like "*/" or "#endif" inside /* */).
4402 Also: use "%" to jump from start to end of syntax region and back.
4403 Alternative: use matchit.vim
44048 "/:/e+1" gets stuck on a match at the end of the line. Do we care?
44058 A pattern like "\([^a]\+\)\+" takes an awful long time. Recognize that
4406 the recursive "\+" is meaningless and optimize for it.
4407 This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".
44087 Recognize "[a-z]", "[0-9]", etc. and replace them with the faster "\l" and
4409 "\d".
Bram Moolenaarc0197e22004-09-13 20:26:32 +000044107 Add a way to specify characters in <C-M> or <Key> form. Could be
4411 \%<C-M>.
Bram Moolenaar071d4272004-06-13 20:20:40 +000044128 Add an argument after ":s/pat/str/" for a range of matches. For example,
4413 ":s/pat/str/#3-4" to replace only the third and fourth "pat" in a line.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000044148 When 'iskeyword' is changed the matches from 'hlsearch' may change. (Benji
4415 Fisher) redraw if some options are set while 'hlsearch' is set?
Bram Moolenaar071d4272004-06-13 20:20:40 +000044168 Add an option not to use 'hlsearch' highlighting for ":s" and ":g"
4417 commands. (Kahn) It would work like ":noh" is used after that command.
4418 Also: An extra flag to do this once, and a flag to keep the existing
4419 search pattern.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00004420- Make 'hlsearch' a local/global option, so that it can be disabled in some
4421 of the windows.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004422- Add \%h{group-name}; to search for a specific highlight group.
4423 Add \%s{syntax-group}; to search for a specific syntax group.
4424- Support Perl regexp. Use PCRE (Perl Compatible RE) package. (Shade)
4425 Or translate the pattern to a Vim one.
4426 Don't switch on with an option for typed commands/mappings/functions, it's
4427 too confusing. Use "\@@" in the pattern, to avoid incompatibilities.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000044288 Add a way to access the last substitute text, what is used for ":s//~/".
4429 Can't use the ~ register, it's already used for drag & drop.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004430- Remember flags for backreferenced items, so that "*" can be used after it.
4431 Check with "\(\S\)\1\{3}". (Hemmerling)
Bram Moolenaar8c8de832008-06-24 22:58:06 +000044328 Flags that apply to the whole pattern.
4433 This works for all places where a regexp is used.
4434 Add "\q" to not store this pattern as the last search pattern?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004435- Add flags to search command (also for ":s"?):
4436 i ignore case
4437 I use case
4438 p use Perl regexp syntax (or POSIX?)
4439 v use Vi regexp syntax
4440 f forget pattern, don't keep it for "n" command
4441 F remember pattern, keep it for "n" command
4442 Perl uses these too:
4443 e evaluate the right side as an expression (Perl only)
4444 m multiple line expression (we don't need it)
4445 o compile only once (Perl only)
4446 s single line expression (we don't need it)
4447 x extended regexp (we don't need it)
4448 When used after ":g" command, backslash needed to avoid confusion with the
4449 following command.
4450 Add 'searchflags' for default flags (replaces 'gdefault').
4451- Add command to display the last used substitute pattern and last used
4452 pattern. (Margo) Maybe make it accessible through a register (like "/
4453 for search string)?
44547 Use T-search algorithm, to speed up searching for strings without special
4455 characters. See C't article, August 1997.
4456- Add 'fuzzycase' option, so that case doesn't matter, and '-' and '_' are
4457 equivalent (for Unix filenames).
4458- Add 'v' flag to search command: enter Visual mode, with the matching text
4459 as Visual area. (variation on idea from Bertin)
4460- Searching: "/this//that/" should find "that" after "this".
4461- Add global search commands: Instead of wrapping at the end of the buffer,
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004462 they continue in another buffer. Use flag after search pattern:
Bram Moolenaar071d4272004-06-13 20:20:40 +00004463 a for the next file in the argument list
4464 f for file in the buffer list
4465 w for file edited in a window.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004466 e.g. "/pat/f". Then "n" and "N" work through files too. "f" flag also for
4467 ":s/pat/foo/f"??? Then when 'autowrite' and 'hidden' are both not set, ask
Bram Moolenaar071d4272004-06-13 20:20:40 +00004468 before saving files: "Save modified buffer "/path/file"? (Yes/Hide/No
4469 Save-all/hide-All/Quit) ".
4470- ":s/pat/foo/3": find 3rd match of "pat", like sed. (Thomas Koehler)
Bram Moolenaar071d4272004-06-13 20:20:40 +000044717 When searching with 'n' give message when getting back where the search
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004472 first started. Remember start of search in '/ mark.
Bram Moolenaar071d4272004-06-13 20:20:40 +000044737 Add option that scrolls screen to put cursor in middle of screen after
4474 search always/when off-screen/never. And after a ":tag" command. Maybe
4475 specify how many lines below the screen causes a redraw with the cursor in
4476 the middle (default would be half a screen, zero means always).
44776 Support multiple search buffers, so macros can be made without side
4478 effects.
44797 From xvim: Allow a newline in search patterns (also for :s, can delete
4480 newline). Add BOW, EOW, NEWL, NLORANY, NLBUTANY, magic 'n' and 'r', etc.
4481 [not in xvim:] Add option to switch on matches crossing ONE line boundary.
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +000044827 Add ":iselect", a combination of ":ilist" and ":tselect". (Aaron) (Zellner)
Bram Moolenaar071d4272004-06-13 20:20:40 +00004483 Also ":dselect".
4484
4485
4486Undo:
Bram Moolenaara3e6bc92013-01-30 14:18:00 +010044879 ":gundo" command: global undo. Undoes changes spread over multiple files
4488 in the order they were made. Also ":gredo". Both with a count. Useful
4489 when tests fail after making changes and you forgot in which files.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000044909 After undo/redo, in the message show whether the buffer is modified or
4491 not.
Bram Moolenaard43848c2010-07-14 14:28:26 +020044928 Use timestamps for undo, so that a version a certain time ago can be found
4493 and info before some time/date can be flushed. 'undopersist' gives maximum
4494 time to keep undo: "3h", "1d", "2w", "1y", etc.
44958 Search for pattern in undo tree, showing when it happened and the text
4496 state, so that you can jump to it.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000044978 Undo tree: visually show the tree somehow (Damian Conway)
4498 Show only the leaves, indicating how many changed from the branch and the
4499 timestamp?
4500 Put branch with most recent change on the left, older changes get more
4501 indent?
Bram Moolenaar8c8de832008-06-24 22:58:06 +000045028 See ":e" as a change operation, find the changes and add them to the
4503 undo info. Also be able to undo the "Reload file" choice for when a file
4504 was changed outside of Vim.
4505 Would require doing a diff between the buffer text and the file and
4506 storing the differences.
Bram Moolenaar23c347c2010-07-14 20:57:00 +02004507 Alternative: before reloading a buffer, store it somewhere. Keep a list
4508 of about 10 last reloaded buffers.
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00004509- Make it possible to undo all the commands from a mapping, including a
4510 trailing unfinished command, e.g. for ":map K iX^[r".
Bram Moolenaar071d4272004-06-13 20:20:40 +00004511- When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
4512 possible, even when typing <Esc> immediately. (Grahn) Also for "i", "a",
4513 etc. Postpone saving for undo until something is really inserted?
45148 When Inserting a lot of text, it can only be undone as a whole. Make undo
4515 sync points at every line or word. Could recognize the start of a new
4516 word (white space and then non-white space) and backspacing.
4517 Can already use CTRL-G u, but that requires remapping a lot of things.
45188 Make undo more memory-efficient: Compare text before and after change,
4519 only remember the lines that really changed.
45207 Add undo for a range of lines. Can change these back to a previous
4521 version without changing the rest of the file. Stop doing this when a
4522 change includes only some of these lines and changes the line count. Need
4523 to store these undo actions as a separate change that can be undone.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004524- For u_save() include the column number. This can be used to set '[ and '].
4525 And in the future the undo can be made more efficient (Webb).
4526- In out-of-memory situations: Free allocated space in undo, and reduce the
4527 number of undo levels (with confirmation).
4528- Instead of [+], give the number of changes since the last write: [+123].
4529 When undoing to before the last write, change this to a negative number:
4530 [-99].
4531- With undo with simple line delete/insert: optimize screen updating.
4532- When executing macro's: Save each line for undo only once.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004533- When doing a global substitute, causing almost all lines to be changed,
4534 undo info becomes very big. Put undo info in swap file??
4535
4536
4537Buffer list:
Bram Moolenaar071d4272004-06-13 20:20:40 +000045387 Command to execute a command in another buffer: ":inbuf {bufname} {cmd}".
4539 Also for other windows: ":inwin {winnr} {cmd}". How to make sure that
4540 this works properly for all commands, and still be able to return to the
4541 current buffer/window? E.g.: ":inbuf xxx only".
45428 Add File.{recent_files} menu entries: Recently edited files.
4543 Ron Aaron has a plugin for this: mru.vim.
45448 Unix: Check all uses of fnamecmp() and fnamencmp() if they should check
4545 inode too.
45467 Add another number for a buffer, which is visible for the user. When
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004547 creating a new buffer, use the lowest number not in use (or the highest
4548 number in use plus one?).
Bram Moolenaar071d4272004-06-13 20:20:40 +000045497 Offer some buffer selection from the command line? Like using ":ls" and
4550 asking for a buffer number. (Zachmann)
4551- When starting to edit a file that is already in the buffer list, use the
4552 file name argument for the new short file name. (Webb)
4553- Add an option to make ":bnext" and ":bprev" wrap around the end of the
4554 buffer list. Also for ":next" and ":prev"?
45557 Add argument to ":ls" which is a pattern for buffers to list.
4556 E.g. ":ls *.c". (Thompson)
45577 Add expansion of buffer names, so that "*.c" is expanded to all buffer
4558 names. Needed for ":bdel *.c", ":bunload *.c", etc.
45598 Support for <afile> where a buffer name is expected.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000045608 Some commands don't use line numbers, but buffer numbers. '$'
Bram Moolenaar071d4272004-06-13 20:20:40 +00004561 should then mean the number of the last buffer. E.g.: "4,$bdel".
45627 Add an option to mostly use slashes in file names. Separately for
4563 internal use and for when executing an external program?
Bram Moolenaar81af9252010-12-10 20:35:50 +010045648 Some file systems are case-sensitive, some are not. Besides
4565 'wildignorecase' there might be more parts inside
4566 CASE_INSENSITIVE_FILENAME that are useful on Unix.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004567
4568
4569Swap (.swp) files:
45708 If writing to the swap file fails, should try to open one in another
4571 directory from 'dir'. Useful in case the file system is full and when
4572 there are short file name problems.
45738 Also use the code to try using a short file name for the backup and swap
4574 file for the Win32 and Dos 32 bit versions.
45758 When a file is edited by root, add $LOGNAME to know who did su.
45768 When the edited file is a symlink, try to put the swap file in the same
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004577 dir as the actual file. Adjust FullName(). Avoids editing the same file
Bram Moolenaar071d4272004-06-13 20:20:40 +00004578 twice (e.g. when using quickfix). Also try to make the name of the backup
4579 file the same as the actual file?
4580 Use the code for resolve()?
Bram Moolenaar071d4272004-06-13 20:20:40 +000045817 When using 64 bit inode numbers, also store the top 32 bits. Add another
4582 field for this, using part of bo_fname[], to keep it compatible.
45837 When editing a file on removable media, should put swap file somewhere
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004584 else. Use something like 'r' flag in 'viminfo'. 'diravoid'?
Bram Moolenaar071d4272004-06-13 20:20:40 +00004585 Also: Be able to specify minimum disk space, skip directory when not
4586 enough room.
45877 Add a configure check for which directory should be used: /tmp, /var/tmp
4588 or /var/preserve.
4589- Add an option to create a swap file only when making the first change to
4590 the buffer. (Liang) Or only when the buffer is not read-only.
4591- Add option to set "umask" for backup files and swap files (Antwerpen).
4592 'backupumask' and 'swapumask'? Or 'umaskback' and 'umaskswap'?
4593- When editing a readonly file, don't use a swap file but read parts from the
4594 original file. Also do this when the file is huge (>'maxmem'). We do
4595 need to load the file once to count the number of lines? Perhaps keep a
4596 cached list of which line is where.
4597
4598
4599Viminfo:
46007 Can probably remove the code that checks for a writable viminfo file,
4601 because we now do the chown() for root, and others can't overwrite someone
4602 else's viminfo file.
Bram Moolenaar994cd122007-05-12 15:19:41 +000046038 When there is no .viminfo file and someone does "su", runs Vim, a
4604 root-owned .viminfo file is created. Is there a good way to avoid this?
4605 Perhaps check the owner of the directory. Only when root?
Bram Moolenaar071d4272004-06-13 20:20:40 +000046068 Add argument to keep the list of buffers when Vim is started with a file
4607 name. (Schild)
46088 Keep the last used directory of the file browser (File/Open menu).
46098 Remember the last used register for "@@".
Bram Moolenaar8c8de832008-06-24 22:58:06 +000046108 Remember the redo buffer, so that "." works after restarting.
Bram Moolenaar071d4272004-06-13 20:20:40 +000046118 Remember a list of last accessed files. To be used in the
4612 "File.Open Recent" menu. Default is to remember 10 files or so.
4613 Also remember which files have been read and written. How to display
4614 this?
46157 Also store the ". register (last inserted text).
46167 Make it possible to store buffer names in viminfo file relative to some
4617 directory, to make them portable over a network. (Aaron)
46186 Store a snapshot of the currently opened windows. So that when quitting
4619 Vim, and then starting again (without a file name argument), you see the
4620 same files in the windows. Use ":mksession" code?
4621- Make marks present in .viminfo usable as file marks: Display a list of
4622 "last visited files" and select one to jump to.
4623
4624
4625Modelines:
46268 Before trying to execute a modeline, check that it looks like one (valid
4627 option names). If it's very wrong, silently ignore it.
4628 Ignore a line that starts with "Subject: ".
Bram Moolenaar8c8de832008-06-24 22:58:06 +00004629- Add an option to whitelist options that are allowed in a modeline. This
4630 would allow careful users to use modelines, e.g., only allowing
4631 'shiftwidth'.
4632- Add an option to let modelines only set local options, not global ones
4633 such as 'encoding'.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004634- When an option value is coming from a modeline, do not carry it over to
4635 another edited file? Would need to remember the value from before the
4636 modeline setting.
4637- Allow setting a variable from a modeline? Only allow using fixed strings,
4638 no function calls, to avoid a security problem.
4639- Allow ":doauto BufRead x.cpp" in modelines, to execute autocommands for
4640 .cpp files.
4641- Support the "abbreviate" command in modelines (Kearns). Careful for
4642 characters after <Esc>, that is a security leak.
4643- Add option setting to ask user if he wants to have the modelines executed
4644 or not. Same for .exrc in local dir.
4645
4646
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00004647Sessions:
46488 DOS/Windows: ":mksession" generates a "cd" command where "aa\#bb" means
4649 directory "#bb" in "aa", but it's used as "aa#bb". (Ronald Hoellwarth)
46507 When there is a "help.txt" window in a session file, restoring that
4651 session will not get the "LOCAL ADDITIONS" back.
Bram Moolenaar071d4272004-06-13 20:20:40 +000046528 With ":mksession" always store the 'sessionoptions' option, even when
4653 "options" isn't in it. (St-Amant)
Bram Moolenaar071d4272004-06-13 20:20:40 +000046548 When using ":mksession", also store a command to reset all options to
4655 their default value, before setting the options that are not at their
4656 default value.
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +000046577 With ":mksession" also store the tag stack and jump history. (Michal
4658 Malecki)
Bram Moolenaard5bc83f2005-12-07 21:07:59 +000046597 Persistent variables: "p:var"; stored in viminfo file and sessions files.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00004660
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00004661
4662Options:
46637 ":with option=value | command": temporarily set an option value and
4664 restore it after the command has executed.
Bram Moolenaar071d4272004-06-13 20:20:40 +000046658 Make "old" number options that really give a number of effects into string
4666 options that are a comma separated list. The old number values should
4667 also be supported.
46688 Add commands to save and restore an option, which also preserves the flag
4669 that marks if the option was set. Useful to keep the effect of setting
4670 'compatible' after ":syntax on" has been used.
46717 There is 'titleold', why is there no 'iconold'? (Chazelas)
46727 Make 'scrolloff' a global-local option, so that it can be different in the
4673 quickfix window, for example. (Gary Holloway)
Bram Moolenaara3e6bc92013-01-30 14:18:00 +01004674 Also do 'sidescrolloff'.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004675
4676
4677External commands:
46788 When filtering text, redirect stderr so that it can't mess up the screen
4679 and Vim doesn't need to redraw it. Also for ":r !cmd".
46804 Set separate shell for ":sh", piping "range!filter", reading text "r !ls"
4681 and writing text "w !wc". (Deutsche) Allow arguments for fast start (e.g.
4682 -f).
46834 Allow direct execution, without using a shell.
46844 Run an external command in the background. But how about I/O in the GUI?
4685 Careful: don't turn Vim into a shell!
46864 Add feature to disable using a shell or external commands.
4687
4688
4689Multiple Windows:
46907 "vim -oO file ..." use both horizontal and vertical splits.
46918 Add CTRL-W T: go to the top window in the column of the current window.
4692 And CTRL-W B: go to bottom window.
46937 Use CTRL-W <Tab>, like alt-tab, to switch between buffers. Repeat <Tab>
4694 to select another buffer (only loaded ones?), <BS> to go back, <Enter> to
4695 select buffer, <Esc> to go back to original buffer.
Bram Moolenaarc236c162008-07-13 17:41:49 +000046967 Make it possible to edit a new buffer in the preview window. A script can
4697 then fill it with something. ":popen"?
Bram Moolenaar97b2ad32006-03-18 21:40:56 +000046987 Add a 'tool' window: behaves like a preview window but there can be
4699 several. Don't count it in only_one_window(). (Alexei Alexandrov)
Bram Moolenaar071d4272004-06-13 20:20:40 +000047006 Add an option to resize the shell when splitting and/or closing a window.
4701 ":vsp" would make the shell wider by as many columns as needed for the new
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004702 window. Specify a maximum size (or use the screen size). ":close" would
Bram Moolenaar071d4272004-06-13 20:20:40 +00004703 shrink the shell by as many columns as come available. (Demirel)
47047 When starting Vim several times, instantiate a Vim server, that allows
4705 communication between the different Vims. Feels like one Vim running with
4706 multiple top-level windows. Esp. useful when Vim is started from an IDE
4707 too. Requires some form of inter process communication.
4708- Support a connection to an external viewer. Could call the viewer
4709 automatically after some seconds of non-activity, or with a command.
4710 Allow some way of reporting scrolling and cursor positioning in the viewer
4711 to Vim, so that the link between the viewed and edited text can be made.
4712
4713
4714Marks:
Bram Moolenaar8c8de832008-06-24 22:58:06 +000047158 Add ten marks for last changed files: ':0, ':1, etc. One mark per file.
Bram Moolenaar071d4272004-06-13 20:20:40 +000047168 When cursor is first moved because of scrolling, set a mark at this
4717 position. (Rimon Barr) Use '-.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000047188 Add a command to jump to a mark and make the motion inclusive. g'm and g`m?
Bram Moolenaar071d4272004-06-13 20:20:40 +000047198 The '" mark is set to the first line, even when doing ":next" a few times.
4720 Only set the '" mark when the cursor was really moved in a file.
47218 Make `` and '', which would position the new cursor position in the middle
4722 of the window, restore the old topline (or relative position) from when
4723 the mark was set.
47247 Make a list of file marks in a separate window. For listing all buffers,
4725 matching tags, errors, etc. Normal commands to move around. Add commands
4726 to jump to the mark (in current window or new window). Start it with
4727 ":browse marks"?
47286 Add a menu that lists the Marks like ":marks". (Amerige)
Bram Moolenaar071d4272004-06-13 20:20:40 +000047297 For ":jumps", ":tags" and ":marks", for not loaded buffers, remember the
4730 text at the mark. Highlight the column with the mark.
47317 Highlight each mark in some way (With "Mark" highlight group).
4732 Or display marks in a separate column, like 'number' does.
47337 Use d"m to delete rectangular area from cursor to mark m (like Vile's \m
4734 command).
47357 Try to keep marks in the same position when:
4736 - replacing with a line break, like in ":s/pat/^M/", move marks after the
4737 line break column to the next line. (Acevedo)
4738 - inserting/deleting characters in a line.
47395 Include marks for start/end of the current word and section. Useful in
4740 mappings.
47416 Add "unnamed mark" feature: Like marks for the ":g" command, but place and
4742 unplace them with commands before doing something with the lines.
4743 Highlight the marked lines somehow.
4744
4745
4746Digraphs:
Bram Moolenaar5302d9e2011-09-14 17:55:08 +020047477 Make "ga" show the keymap for a character, if it exists.
Bram Moolenaard58e9292011-02-09 17:07:58 +01004748 Also show the code of the character after conversion to 'filenecoding'.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004749- Use digraph table to tell Vim about the collating sequence of special
4750 characters?
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +000047518 Add command to remove one or more (all) digraphs. (Brown)
Bram Moolenaar071d4272004-06-13 20:20:40 +000047527 Support different sets of digraphs (depending on the character set?). At
4753 least Latin1/Unicode, Latin-2, MS-DOS (esp. for Win32).
4754
4755
4756Writing files:
4757- In vim_rename(), should lock "from" file when deleting "to" file for
4758 systems other than Amiga. Avoids problems with unexpected longname to
4759 shortname conversion.
47608 write mch_isdevice() for Amiga, Mac, VMS, etc.
47618 When appending to a file, Vim should also make a backup and a 'patchmode'
4762 file.
47638 'backupskip' doesn't write a backup file at all, a bit dangerous for some
4764 applications. Add 'backupelsewhere' to write a backup file in another
4765 directory? Or add a flag to 'backupdir'?
Bram Moolenaar071d4272004-06-13 20:20:40 +000047666 Add an option to write a new, numbered, backup file each time. Like
4767 'patchmode', e.g., 'backupmode'.
47686 Make it possible to write 'patchmode' files to a different directory.
4769 E.g., ":set patchmode=~/backups/*.orig". (Thomas)
47706 Add an option to prepend something to the backup file name. E.g., "#".
4771 Or maybe allow a function to modify the backup file name?
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000047728 Only make a backup when overwriting a file for the first time. Avoids
Bram Moolenaar071d4272004-06-13 20:20:40 +00004773 losing the original when writing twice. (Slootman)
47747 On non-Unix machines, also overwrite the original file in some situations
4775 (file system full, it's a link on an NFS partition).
47767 When editing a file, check that it has been change outside of Vim more
4777 often, not only when writing over it. E.g., at the time the swap file is
4778 flushed. Or every ten seconds or so (use the time of day, check it before
4779 waiting for a character to be typed).
47808 When a file was changed since editing started, show this in the status
4781 line of the window, like "[time]".
4782 Make it easier to reload all outdated files that don't have changes.
4783 Automatic and/or with a command.
4784
4785
4786Substitute:
Bram Moolenaar3f770472005-06-19 22:56:27 +000047878 Substitute with hex/unicode number "\%xff" and "\%uabcd". Just like
4788 "\%uabcd" in search pattern.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000047898 Make it easier to replace in all files in the argument list. E.g.:
Bram Moolenaar071d4272004-06-13 20:20:40 +00004790 ":argsub/oldword/newword/". Works like ":argdo %s/oldword/newword/g|w".
4791- :s///p prints the line after a substitution.
4792- With :s///c replace \&, ~, etc. when showing the replacement pattern.
47938 With :s///c allow scrolling horizontally when 'nowrap' is effective.
4794 Also allow a count before the scrolling keys.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004795- Add number option to ":s//2": replace second occurrence of string? Or:
Bram Moolenaar071d4272004-06-13 20:20:40 +00004796 :s///N substitutes N times.
4797- Add answers to ":substitute" with 'c' flag, used in a ":global", e.g.:
4798 ":g/pat1/s/pat2/pat3/cg": 'A' do all remaining replacements, 'Q' don't do
4799 any replacements, 'u' undo last substitution.
48007 Substitute in a block of text. Use {line}.{column} notation in an Ex
4801 range, e.g.: ":1.3,$.5s" means to substitute from line 1 column 3 to the
4802 last line column 5.
48035 Add commands to bookmark lines, display bookmarks, remove bookmarks,
4804 operate on lines with bookmarks, etc. Like ":global" but with the
4805 possibility to keep the bookmarks and use them with several commands.
4806 (Stanislav Sitar)
4807
4808
4809Mouse support:
Bram Moolenaar071d4272004-06-13 20:20:40 +000048108 Add 'o' flag to 'mouse'?
48117 Be able to set a 'mouseshape' for the popup menu.
48128 Add 'mouse' flag, which sets a behavior like Visual mode, but automatic
4813 yanking at the button-up event. Or like Select mode, but typing gets you
4814 out of Select mode, instead of replacing the text. (Bhaskar)
Bram Moolenaar071d4272004-06-13 20:20:40 +00004815- Implement mouse support for the Amiga console.
4816- Using right mouse button to extend a blockwise selection should attach to
4817 the nearest corner of the rectangle (four possible corners).
4818- Precede mouse click by a number to simulate double clicks?!?
4819- When mouse click after 'r' command, get character that was pointed to.
4820
4821
Bram Moolenaar071d4272004-06-13 20:20:40 +00004822Argument list:
48236 Add command to put all filenames from the tag files in the argument list.
4824 When given an argument, only use the files where that argument matches
4825 (like `grep -l ident`) and jump to the first match.
48266 Add command to form an args list from all the buffers?
4827
4828
4829Registers:
48308 Don't display empty registers with ":display". (Etienne)
48318 Make the # register writable, so that it can be restored after jumping
4832 around in windows.
48338 Add put command that overwrites existing text. Should also work for
4834 blocks. Useful to move text around in a table. Works like using "R ^R r"
4835 for every line.
48366 When yanking into the unnamed registers several times, somehow make the
4837 previous contents also available (like it's done for deleting). What
4838 register names to use? g"1, g"2, etc.?
4839- When appending to a register, also report the total resulting number of
4840 lines. Or just say "99 more lines yanked", add the "more".
4841- When inserting a register in Insert mode with CTRL-R, don't insert comment
4842 leader when line wraps?
4843- The ":@r" commands should take a range and execute the register for each
4844 line in the range.
4845- Add "P" command to insert contents of unnamed register, move selected text
4846 to position of previous deleted (to swap foo and bar in " + foo")
48478 Should be able to yank and delete into the "/ register.
4848 How to take care of the flags (offset, magic)?
Bram Moolenaared203462004-06-16 11:19:22 +00004849
Bram Moolenaar071d4272004-06-13 20:20:40 +00004850
4851Debug mode:
48527 Add something to enable debugging when a remote message is received.
48538 Add breakpoints for setting an option
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000048548 Add breakpoints for assigning to a variable.
Bram Moolenaar071d4272004-06-13 20:20:40 +000048557 Add a watchpoint in the debug mode: An expression that breaks execution
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00004856 when evaluating to non-zero. Add the "watchadd expr" command, stop when
4857 the value of the expression changes. ":watchdel" deletes an item,
4858 ":watchlist" lists the items. (Charles Campbell)
Bram Moolenaar071d4272004-06-13 20:20:40 +000048597 Store the history from debug mode in viminfo.
48607 Make the debug mode history available with histget() et al.
4861
4862
4863Various improvements:
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +000048647 Add plugins for formatting? Should be able to make a choice depending on
4865 the language of a file (English/Korean/Japanese/etc.).
4866 Setting the 'langformat' option to "chinese" would load the
4867 "format/chinese.vim" plugin.
4868 The plugin would set 'formatexpr' and define the function being called.
4869 Edward L. Fox explains how it should be done for most Asian languages.
4870 (2005 Nov 24)
Bram Moolenaar8c8de832008-06-24 22:58:06 +00004871 Alternative: patch for utf-8 line breaking. (Yongwei Wu, 2008 Feb 23)
Bram Moolenaar87b774d2005-07-20 22:04:36 +000048727 [t to move to previous xml/html tag (like "vatov"), ]t to move to next
4873 ("vatv").
Bram Moolenaar342337a2005-07-21 21:11:17 +000048747 [< to move to previous xml/html tag, e.g., previous <li>. ]< to move to
4875 next <li>, ]< to next </li>, [< to previous </li>.
Bram Moolenaar071d4272004-06-13 20:20:40 +000048768 Add ":rename" command: rename the file of the current buffer and rename
4877 the buffer. Buffer may be modified.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000048787 Instead of filtering errors with a shell script it should be possible to
4879 do this with Vim script. A function that filters the raw text that comes
4880 from the 'makeprg'?
Bram Moolenaar1ef15e32006-02-01 21:56:25 +00004881- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
Bram Moolenaar86b68352004-12-27 21:59:20 +00004882 Govindachar)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000048837 Add a command that goes back to the position from before jumping to the
4884 first quickfix location. ":cbefore"?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010048857 Allow a window not to have a statusline. Makes it possible to use a
4886 window as a buffer-tab selection.
48878 Allow non-active windows to have a different statusline. (Yakov Lerner)
Bram Moolenaar071d4272004-06-13 20:20:40 +000048887 Support using ":vert" with User commands. Add expandable items <vert>.
4889 Do the same for ":browse" and ":confirm"?
4890 For ":silent" and ":debug" apply to the whole user command.
Bram Moolenaar8c8de832008-06-24 22:58:06 +00004891 More general: need a way to access command modifiers in a user command.
4892 Assign them to a v: variable?
Bram Moolenaar071d4272004-06-13 20:20:40 +000048937 Add an invisible buffer which can be edited. For use in scripts that want
4894 to manipulate text without changing the window layout.
48958 Add a command to revert to the saved version of file; undo or redo until
4896 all changes are gone.
Bram Moolenaar071d4272004-06-13 20:20:40 +000048976 "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri)
Bram Moolenaar071d4272004-06-13 20:20:40 +000048988 Add "--remote-fail": When contacting the server fails, exit Vim.
4899 Add "--remote-self": When contacting the server fails, do it in this Vim.
4900 Overrules the default of "--remote-send" to fail and "--remote" to do it
4901 in this Vim.
49028 When Vim was started without a server, make it possible to start one, as
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00004903 if the "--servername" argument was given. ":startserver <name>"?
Bram Moolenaar071d4272004-06-13 20:20:40 +000049048 No address range can be used before the command modifiers. This makes
4905 them difficult to use in a menu for Visual mode. Accept the range and
4906 have it apply to the following command.
49078 Add the possibility to set 'fileformats' to force a format and strip other
4908 CR characters. For example, for "dos" files remove CR characters at the
4909 end of the line, so that a file with mixed line endings is cleaned up.
4910 To just not display the CR characters: Add a flag to 'display'?
Bram Moolenaar071d4272004-06-13 20:20:40 +000049117 Some compilers give error messages in which the file name does not have a
4912 path. Be able to specify that 'path' is used for these files.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049137 Xterm sends <Esc>O3F for <M-End>. Similarly for other <M-Home>, <M-Left>,
4914 etc. Combinations of Alt, Ctrl and Shift are also possible. Recognize
4915 these to avoid inserting the raw byte sequence, handle like the key
4916 without modifier (unless mapped).
Bram Moolenaar071d4272004-06-13 20:20:40 +000049176 Add "gG": like what "gj" is to "j": go to the N'th window line.
49188 Add command like ":normal" that accepts <Key> notation like ":map".
49199 Support ACLs on more systems.
49207 Add ModeMsgVisual, ModeMsgInsert, etc. so that each mode message can be
4921 highlighted differently.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049227 Add a message area for the user. Set some option to reserve space (above
4923 the command line?). Use an ":echouser" command to display the message
4924 (truncated to fit in the space).
49257 Add %s to 'keywordprg': replace with word under the cursor. (Zellner)
49268 Support printing on Unix. Can use "lpansi.c" as an example. (Bookout)
49278 Add put command that replaces the text under it. Esp. for blockwise
4928 Visual mode.
Bram Moolenaared203462004-06-16 11:19:22 +000049297 Enhance termresponse stuff: Add t_CV(?): pattern of term response, use
Bram Moolenaar071d4272004-06-13 20:20:40 +00004930 regexp: "\e\[[>?][0-9;]*c", but only check just after sending t_RV.
49317 Add "g|" command: move to N'th column from the left margin (after wrapping
4932 and applying 'leftcol'). Works as "|" like what "g0" is to "0".
Bram Moolenaar071d4272004-06-13 20:20:40 +000049337 Support setting 'equalprg' to a user function name.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049347 Highlight the characters after the end-of-line differently.
49357 When 'whichwrap' contains "l", "$dl" should join lines?
Bram Moolenaar071d4272004-06-13 20:20:40 +000049368 Add an argument to configure to use $CFLAGS and not modify it? (Mooney)
49378 Enabling features is a mix of configure arguments and defines in
4938 feature.h. How to make this consistent? Feature.h is required for
4939 non-unix systems. Perhaps let configure define CONF_XXX, and use #ifdef
4940 CONF_XXX in feature.h? Then what should min-features and max-features do?
49418 Add "g^E" and "g^Y", to scroll a screen-full line up and down.
49426 Add ":timer" command, to set a command to be executed at a certain
4943 interval, or once after some time has elapsed. (Aaron)
Bram Moolenaarebefac62005-12-28 22:39:57 +00004944 Perhaps an autocommand event like CursorHold is better?
Bram Moolenaar071d4272004-06-13 20:20:40 +000049458 Add ":confirm" handling in open_exfile(), for when file already exists.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049468 When quitting with changed files, make the dialog list the changed file
4947 and allow "write all", "discard all", "write some". The last one would
4948 then ask "write" or "discard" for each changed file. Patch in HierAssist
4949 does something like this. (Shah)
49507 Use growarray for replace stack.
49517 Have a look at viH (Hellenic or Greek version of Vim). But a solution
4952 outside of Vim might be satisfactory (Haritsis).
49533 Make "2d%" work like "d%d%" instead of "d2%"?
Bram Moolenaar071d4272004-06-13 20:20:40 +000049547 "g CTRL-O" jumps back to last used buffer. Skip CTRL-O jumps in the same
4955 buffer. Make jumplist remember the last ten accessed buffers?
Bram Moolenaar81af9252010-12-10 20:35:50 +010049567 Make it possible to set the size of the jumplist (also to a smaller number
4957 than the default). (Nikolai Weibull)
Bram Moolenaar071d4272004-06-13 20:20:40 +00004958- Add code to disable the CAPS key when going from Insert to Normal mode.
4959- Set date/protection/etc. of the patchfile the same as the original file.
4960- Use growarray for termcodes[] in term.c
4961- Add <window-99>, like <cword> but use filename of 99'th window.
49627 Add a way to change an operator to always work characterwise-inclusive
4963 (like "v" makes the operator characterwise-exclusive). "x" could be used.
4964- Make a set of operations on list of names: expand wildcards, replace home
4965 dir, append a string, delete a string, etc.
Bram Moolenaar00659062010-09-21 22:34:02 +02004966- Remove using mktemp() and use tmpname() only? Ctags does this.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004967- When replacing environment variables, and there is one that is not set,
4968 turn it into an empty string? Only when expanding options? (Hiebert)
4969- Option to set command to be executed instead of producing a beep (e.g. to
4970 call "play newbeep.au").
4971- Add option to show the current function name in the status line. More or
4972 less what you find with "[[k", like how 'cindent' recognizes a function.
4973 (Bhatt).
4974- "[r" and "]r": like "p" and "P", but replace instead of insert (esp. for
4975 blockwise registers).
4976- Add 'timecheck' option, on by default. Makes it possible to switch off the
4977 timestamp warning and question. (Dodt).
4978- Add an option to set the time after which Vim should check the timestamps
4979 of the files. Only check when an event occurs (e.g., character typed,
4980 mouse moved). Useful for non-GUI versions where keyboard focus isn't
4981 noticeable.
Bram Moolenaar071d4272004-06-13 20:20:40 +00004982- Make 'smartcase' work even though 'ic' isn't set (Webb).
Bram Moolenaar071d4272004-06-13 20:20:40 +000049837 When formatting text, allow to break the line at a number of characters.
4984 Use an option for this: 'breakchars'? Useful for formatting Fortran code.
4985- Add flag to 'formatoptions' to be able to format book-style paragraphs
4986 (first line of paragraph has larger indent, no empty lines between
4987 paragraphs). Complements the '2' flag. Use '>' flag when larger indent
4988 starts a new paragraph, use '<' flag when smaller indent starts a new
4989 paragraph. Both start a new paragraph on any indent change.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000049908 The 'a' flag in 'formatoptions' is too dangerous. In some way only do
4991 auto-formatting in specific regions, e.g. defined by syntax highlighting.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049928 Allow using a trailing space to signal a paragraph that continues on the
4993 next line (MIME text/plain; format=flowed, RFC 2646). Can be used for
4994 continuous formatting. Could use 'autoformat' option, which specifies a
4995 regexp which triggers auto-formatting (for one line).
4996 ":set autoformat=\\s$".
4997- Be able to redefine where a sentence stops. Use a regexp pattern?
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00004998- Support multi-byte characters for sentences. Example from Ben Peterson.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049997 Add command "g)" to go to the end of a sentence, "g(" to go back to the
5000 end of a sentence. (Servatius Brandt)
5001- Be able to redefine where a paragraph starts. For "[[" where the '{' is
5002 not in column 1.
50036 Add ":cdprev": go back to the previous directory. Need to remember a
5004 stack of previous directories. We also need ":cdnext".
50057 Should ":cd" for MS-DOS go to $HOME, when it's defined?
5006- Make "gq<CR>" work on the last line in the file. Maybe for every operator?
Bram Moolenaar071d4272004-06-13 20:20:40 +00005007- Add more redirecting of Ex commands:
Bram Moolenaarce5e58e2005-01-19 22:24:34 +00005008 :redir #> bufname
5009 :redir #>> bufname (append)
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00005010- Give error message when starting :redir: twice or using END when no
5011 redirection was active.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005012- Setting of options, specifically for a buffer or window, with
5013 ":set window.option" or ":set buffer.option=val". Or use ":buffer.set".
5014 Also: "buffer.map <F1> quit".
50156 Would it be possible to change the color of the cursor in the Win32
5016 console? (Klaus Hast)
5017- Add :delcr command:
5018 *:delcr*
5019 :[range]delcr[!] Check [range] lines (default: whole buffer) for lines
5020 ending in <CR>. If all lines end in <CR>, or [!] is
5021 used, remove the <CR> at the end of lines in [range].
5022 A CTRL-Z at the end of the file is removed. If
5023 [range] is omitted, or it is the whole file, and all
5024 lines end in <CR> 'textmode' is set. {not in Vi}
5025- Should integrate addstar() and file_pat_to_reg_pat().
5026- When working over a serial line with 7 bit characters, remove meta
5027 characters from 'isprint'.
5028- Use fchdir() in init_homedir(), like in FullName().
5029- In win_update(), when the GUI is active, always use the scrolling area.
5030 Avoid that the last status line is deleted and needs to be redrawn.
5031- That "cTx" fails when the cursor is just after 'x' is Vi compatible, but
5032 may not be what you expect. Add a flag in 'cpoptions' for this? More
5033 general: Add an option to allow "c" to work with a null motion.
5034- Give better error messages by using errno (strerror()).
5035- Give "Usage:" error message when command used with wrong arguments (like
5036 Nvi).
5037- Make 'restorescreen' option also work for xterm (and others), replaces the
5038 SAVE_XTERM_SCREEN define.
50397 Support for ":winpos" In xterm: report the current window position.
5040- Give warning message when using ":set t_xx=asdf" for a termcap code that
5041 Vim doesn't know about. Add flag in 'shortmess'?
50426 Add ":che <file>", list all the include paths which lead to this file.
5043- For a commandline that has several commands (:s, :d, etc.) summarize the
5044 changes all together instead of for each command (e.g. for the rot13
5045 macro).
5046- Add command like "[I" that also shows the tree of included files.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005047- ":set sm^L" results in ":set s", because short names of options are also
5048 expanded. Is there a better way to do this?
5049- Add ":@!" command, to ":@" like what ":source!" is to ":source".
50508 Add ":@:!": repeat last command with forceit set.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005051- Add 't_normal': Used whenever t_me, t_se, t_ue or t_Zr is empty.
5052- ":cab map test ^V| je", ":cunab map" doesn't work. This is vi compatible!
5053- CTRL-W CTRL-E and CTRL-W CTRL-Y should move the current window up or down
5054 if it is not the first or last window.
5055- Include-file-search commands should look in the loaded buffer of a file (if
5056 there is one) instead of the file itself.
50577 Change 'nrformats' to include the leader for each format. Example:
5058 nrformats=hex:$,binary:b,octal:0
5059 Add setting of 'nrformats' to syntax files.
5060- 'path' can become very long, don't use NameBuff for expansion.
5061- When unhiding a hidden buffer, put the same line at top of the window as
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005062 the one before hiding it. Or: keep the same relative cursor position (so
Bram Moolenaar071d4272004-06-13 20:20:40 +00005063 many percent down the windows).
5064- Make it possible for the 'showbreak' to be displayed at the end of the
5065 line. Use a comma to separate the part at the end and the start of the
5066 line? Highlight the linebreak characters, add flag in 'highlight'.
Bram Moolenaar30b65812012-07-12 22:01:11 +02005067 Make 'showbreak' local to a window.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005068- Some string options should be expanded if they have wildcards, e.g.
5069 'dictionary' when it is "*.h".
5070- Use a specific type for number and boolean options, making it possible to
5071 change it for specific machines (e.g. when a long is 64 bit).
5072- Add option for <Insert> in replace mode going to normal mode. (Nugent)
5073- Add a next/previous possibility to "[^I" and friends.
5074- Add possibility to change the HOME directory. Use the directory from the
5075 passwd file? (Antwerpen)
Bram Moolenaar071d4272004-06-13 20:20:40 +000050768 Add commands to push and pop all or individual options. ":setpush tw",
5077 ":setpop tw", ":setpush all". Maybe pushing/popping all options is
5078 sufficient. ":setflush" resets the option stack?
5079 How to handle an aborted mapping? Remember position in tag stack when
5080 mapping starts, restore it when an error aborts the mapping?
Bram Moolenaar071d4272004-06-13 20:20:40 +00005081- Change ":fixdel" into option 'fixdel', t_del will be adjusted each time
5082 t_bs is set? (Webb)
5083- "gc": goto character, move absolute character positions forward, also
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005084 counting newlines. "gC" goes backwards (Weigert).
5085- When doing CTRL-^, redraw buffer with the same topline. (Demirel) Store
Bram Moolenaar071d4272004-06-13 20:20:40 +00005086 cursor row and window height to redraw cursor at same percentage of window
5087 (Webb).
5088- Besides remembering the last used line number of a file, also remember the
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005089 column. Use it with CTRL-^ et. al.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005090- Check for non-digits when setting a number option (careful when entering
5091 hex codes like 0xff).
5092- Add option to make "." redo the "@r" command, instead of the last command
5093 executed by it. Also to make "." redo the whole mapping. Basically: redo
5094 the last TYPED command.
5095- Support URL links for ^X^F in Insert mode, like for "gf".
5096- Support %name% expansion for "gf" on Windows.
5097- Make "gf" work on "file://c:/path/name". "file:/c:/" and "file:///c:/"
5098 should also work?
5099- Add 'urlpath', used like 'path' for when "gf" used on an URL?
51008 When using "gf" on an absolute file name, while editing a remote file
5101 (starts with scp:// or http://) should prepend the method and machine
5102 name.
5103- When finding an URL or file name, and it doesn't exist, try removing a
5104 trailing '.'.
5105- Add ":path" command modifier. Should work for every command that takes a
5106 file name argument, to search for the file name in 'path'. Use
5107 find_file_in_path().
5108- Highlight control characters on the screen: Shows the difference between
5109 CTRL-X and "^" followed by "X" (Colon).
5110- Integrate parsing of cmdline command and parsing for expansion.
5111- Create a program that can translate a .swp file from any machine into a
5112 form usable by Vim on the current machine.
5113- Add ":noro" command: Reset 'ro' flag for all buffers, except ones that have
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005114 a readonly file. ":noro!" will reset all 'ro' flags.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005115- Add a variant of CTRL-V that stops interpretation of more than one
5116 character. For entering mappings on the command line where a key contains
5117 several special characters, e.g. a trailing newline.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005118- Make '2' option in 'formatoptions' also work inside comments.
5119- Add 's' flag to 'formatoptions': Do not break when inside a string. (Dodt)
5120- When window size changed (with the mouse) and made too small, set it back
5121 to the minimal size.
5122- Add "]>" and "[<", shift comment at end of line (command; /* comment */).
5123- Should not call cursorcmd() for each vgetc() in getcmdline().
5124- ":split file1 file2" adds two more windows (Webb).
5125- Don't give message "Incomplete last line" when editing binary file.
5126- Add ":a", ":i" for preloading of named buffers.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005127- When entering text, keep other windows on same buffer updated (when a line
5128 entered)?
5129- Check out how screen does output optimizing. Apparently this is possible
5130 as an output filter.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005131- In dosub() regexec is called twice for the same line. Try to avoid this.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005132- Window updating from memline.c: insert/delete/replace line.
5133- Optimize ml_append() for speed, esp. for reading a file.
5134- V..c should keep indent when 'ai' is set, just like [count]cc.
5135- Updatescript() can be done faster with a string instead of a char.
5136- Screen updating is inefficient with CTRL-F and CTRL-B when there are long
5137 lines.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01005138- Uppercase characters in Ex commands can be made lowercase?
Bram Moolenaar071d4272004-06-13 20:20:40 +000051398 Add option to show characters in text not as "|A" but as decimal ("^129"),
5140 hex ("\x81") or octal ("\201") or meta (M-x). Nvi has the 'octal' option
5141 to switch from hex to octal. Vile can show unprintable characters in hex
5142 or in octal.
51437 Tighter integration with xxd to edit binary files. Make it more
5144 easy/obvious to use. Command line argument?
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005145- How does vi detect whether a filter has messed up the screen? Check source.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005146 After ":w !command" a wait_return?
5147- Improve screen updating code for doput() (use s_ins()).
5148- With 'p' command on last line: scroll screen up (also for terminals without
5149 insert line command).
5150- Use insert/delete char when terminal supports it.
5151- Optimize screen redraw for slow terminals.
5152- Optimize "dw" for long row of spaces (say, 30000).
5153- Add "-d null" for editing from a script file without displaying.
5154- In Insert mode: Remember the characters that were removed with backspace
5155 and re-insert them one at a time with <key1>, all together with <key2>.
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005156- Amiga: Add possibility to set a keymap. The code in amiga.c does not work
Bram Moolenaar071d4272004-06-13 20:20:40 +00005157 yet.
5158- Implement 'redraw' option.
5159- Add special code to 'sections' option to define something else but '{' or
5160 '}' as the start of a section (e.g. one shiftwidth to the right).
Bram Moolenaar071d4272004-06-13 20:20:40 +000051617 Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy". Only needs
5162 implementing ":w" to stdout in the buffer that was read from stdin.
Bram Moolenaar2641f772005-03-25 21:58:17 +00005163 Perhaps writing to stdout will work, since stderr is used for the terminal
5164 I/O.
Bram Moolenaar071d4272004-06-13 20:20:40 +000051658 Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd". Vile can
5166 do it.
5167- Add commands like ]] and [[ that do not include the line jumped to.
5168- When :unab without matching "from" part and several matching "to" parts,
5169 delete the entry that was used last, instead of the first in the list.
5170- Add text justification option.
5171- Set boolean options on/off with ":set paste=off", ":set paste=on".
5172- After "inv"ing an option show the value: ":set invpaste" gives "paste is
5173 off".
5174- Check handling of CTRL-V and '\' for ":" commands that do not have TRLBAR.
5175- When a file cannot be opened but does exist, give error message.
5176- Amiga: When 'r' protection bit is not set, file can still be opened but
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005177 gives read errors. Check protection before opening.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005178- When writing check for file exists but no permission, "Permission denied".
Bram Moolenaar06b5d512010-05-22 15:37:44 +02005179- If file does not exist, check if directory exists.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005180- MSDOS: although t_cv and t_ci are not set, do invert char under cursor.
5181- Settings edit mode: make file with ":set opt=xx", edit it, parse it as ex
5182 commands.
5183- ":set -w all": list one option per line.
5184- Amiga: test for 'w' flag when reading a file.
5185- :table command (Webb)
5186- Add new operator: clear, make area white (replace with spaces): "g ".
Bram Moolenaar071d4272004-06-13 20:20:40 +00005187- Add command to ":read" a file at a certain column (blockwise read?).
5188- Add sort of replace mode where case is taken from the old text (Goldfarb).
5189- Allow multiple arguments for ":read", read all the files.
5190- Support for tabs in specific columns: ":set tabcol=8,20,34,56" (Demirel).
5191- Add 'searchdir' option: Directories to search for file name being edited
5192 (Demirel).
5193- Modifier for the put command: Change to linewise, charwise, blockwise, etc.
5194- Add commands for saving and restoring options ":set save" "set restore",
5195 for use in macro's and the like.
5196- Keep output from listings in a window, so you can have a look at it while
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005197 working in another window. Put cmdline in a separate window?
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01005198- Add possibility to put output of Ex commands in a buffer or file, e.g. for
Bram Moolenaar071d4272004-06-13 20:20:40 +00005199 ":set all". ":r :set all"?
Bram Moolenaar071d4272004-06-13 20:20:40 +00005200- When the 'equalalways' option is set, creating a new window should not
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005201 result in windows to become bigger. Deleting a window should not result in
Bram Moolenaar071d4272004-06-13 20:20:40 +00005202 a window to become smaller (Webb).
5203- When resizing the whole Vim window, the windows inside should be resized
5204 proportionally (Webb).
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005205- Include options directly in option table, no indirect pointers. Use
Bram Moolenaar071d4272004-06-13 20:20:40 +00005206 mkopttab to make option table?
5207- When doing ":w dir", where "dir" is a directory name, write the current
5208 file into that directory, with the current file name (without the path)?
5209- Support for 'dictionary's that are sorted, makes access a lot faster
5210 (Haritsis).
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005211- Add "^Vrx" on the command line, replace with contents of register x. Used
Bram Moolenaar071d4272004-06-13 20:20:40 +00005212 instead of CTRL-R to make repeating possible. (Marinichev)
5213- Add "^Vb" on the command line, replace with word before or under the
5214 cursor?
5215- Option to make a .swp file only when a change is made (Templeton).
5216- Support mapping for replace mode and "r" command (Vi doesn't do this)?
52175 Add 'ignorefilecase' option: Ignore case when expanding file names.
5218 ":e ma<Tab>" would also find "Makefile" on Unix.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000052198 Sorting of filenames for completion is wrong on systems that ignore
5220 case of filenames. Add 'ignorefncase' option. When set, case in
5221 filenames is ignored for sorting them. Patch by Mike Williams:
5222 ~/vim/patches/ignorefncase. Also change what matches? Or use another
5223 option name.
Bram Moolenaar071d4272004-06-13 20:20:40 +000052248 Should be able to compile Vim in another directory, with $(srcdir) set to
5225 where the sources are. Add $(srcdir) in the Makefile in a lot of places.
5226 (Netherton)
52276 Make it configurable when "J" inserts a space or not. Should not add a
5228 space after "(", for example.
52295 When inserting spaces after the end-of-line for 'virtualedit', use tabs
5230 when the user wants this (e.g., add a "tab" field to 'virtualedit').
5231 (Servatius Brandt)
5232
5233
5234From Elvis:
5235- Use "instman.sh" to install manpages?
5236- Add ":alias" command.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005237- Search patterns:
5238 \@ match word under cursor.
5239 but do:
5240 \@w match the word under the cursor?
5241 \@W match the WORD under the cursor?
52428 ":window" command:
5243 :win + next window (up)
5244 :win ++ idem, wrapping
5245 :win - previous window (down)
5246 :win -- idem, wrapping
5247 :win nr to window number "nr"
5248 :win name to window editing buffer "name"
52497 ":cc" compiles a single file (default: current one). 'ccprg' option is
5250 program to use with ":cc". Use ":compile" instead of ":cc"?
5251
5252
Bram Moolenaar071d4272004-06-13 20:20:40 +00005253From xvi:
5254- CTRL-_ : swap 8th bit of character.
5255- Add egrep-like regex type, like xvi (Ned Konz) or Perl (Emmanuel Mogenet)
5256
5257
5258From vile:
5259- When horizontal scrolling, use '>' for lines continuing right of a window.
5260- Support putting .swp files in /tmp: Command in rc.local to move .swp files
5261 from /tmp to some directory before deleting files.
5262
5263
5264Far future and "big" extensions:
Bram Moolenaar07d4d732005-10-03 22:04:08 +00005265- Instead of using a Makefile and autoconf, use a simple shell script to
5266 find the C compiler and do everything with C code. Translate something
5267 like an Aap recipe and configure.in to C. Avoids depending on Python,
5268 thus will work everywhere. With batch file to find the C compiler it
5269 would also work on MS-Windows.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005270- Make it easy to setup Vim for groups of users: novice vi users, novice
5271 Vim users, C programmers, xterm users, GUI users,...
5272- Change layout of blocks in swap file: Text at the start, with '\n' in
5273 between lines (just load the file without changes, except for Mac).
5274 Indexes for lines are from the end of the block backwards. It's the
5275 current layout mirrored.
5276- Make it possible to edit a register, in a window, like a buffer.
5277- Add stuff to syntax highlighting to change the text (upper-case keywords,
5278 set indent, define other highlighting, etc.).
5279- Mode to keep C-code formatted all the time (sort of on-line indent).
5280- Several top-level windows in one Vim session. Be able to use a different
5281 font in each top-level window.
5282- Allow editing above start and below end of buffer (flag in 'virtualedit').
5283- Smart cut/paste: recognize words and adjust spaces before/after them.
5284- Add open mode, use it when terminal has no cursor positioning.
5285- Special "drawing mode": a line is drawn where the cursor is moved to.
5286 Backspace deletes along the line (from jvim).
5287- Implement ":Bset", set option in all buffers. Also ":Wset", set in all
5288 windows, ":Aset, set in all arguments and ":Tset", set in all files
5289 mentioned in the tags file.
5290 Add buffer/arg range, like in ":2,5B%s/..." (do we really need this???)
5291 Add search string: "B/*.c/%s/.."? Or ":F/*.c/%s/.."?
5292- Support for underlining (underscore-BS-char), bold (char-BS-char) and other
5293 standout modes switched on/off with , 'overstrike' option (Reiter).
5294- Add vertical mode (Paul Jury, Demirel): "5vdw" deletes a word in five
5295 lines, "3vitextESC" will insert "text" in three lines, etc..
52964 Recognize l, #, p as 'flags' to EX commands:
5297 :g/RE/#l shall print lines with line numbers and in list format.
5298 :g/RE/dp shall print lines that are deleted.
5299 POSIX: Commands where flags shall apply to all lines written: list,
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00005300 number, open, print, substitute, visual, &, z. For other commands, flags
Bram Moolenaar071d4272004-06-13 20:20:40 +00005301 shall apply to the current line after the command completes. Examples:
5302 :7,10j #l Join the lines 7-10 and print the result in list
5303- Allow two or more users to edit the same file at the same time. Changes
5304 are reflected in each Vim immediately. Could work with local files but
5305 also over the internet. See http://www.codingmonkeys.de/subethaedit/.
5306
Bram Moolenaar280f1262006-01-30 00:14:18 +00005307When using "do" or ":diffget" in a buffer with changes in every line an extra
5308empty line would appear.
Bram Moolenaar071d4272004-06-13 20:20:40 +00005309
5310vim:tw=78:sw=4:sts=4:ts=8:ft=help:norl:
5311vim: set fo+=n :