1702
|
1 *todo.txt* For Vim version 7.2. Last change: 2008 Aug 09
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 TODO list for Vim *todo*
|
|
8
|
|
9 This is a veeeery long list of known bugs, current work and desired
|
|
10 improvements. To make it a little bit accessible, the items are grouped by
|
|
11 subject. In the first column of the line a classification is used to be able
|
|
12 to look for "the next thing to do":
|
|
13
|
|
14 Priority classification:
|
|
15 9 next point release
|
|
16 8 next release
|
|
17 7 as soon as possible
|
|
18 6 soon
|
|
19 5 should be included
|
|
20 4 nice to have
|
|
21 3 consider including
|
|
22 2 maybe not
|
|
23 1 probably not
|
|
24 - unclassified
|
|
25
|
|
26 *votes-for-changes*
|
|
27 See |develop.txt| for development plans. You can vote for which items should
|
|
28 be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|
29
|
|
30 *known-bugs*
|
|
31 -------------------- Known bugs and current work -----------------------
|
|
32
|
1668
|
33 ":pedit %" with a BufReadPre autocommand causes the cursor to move to the
|
1698
|
34 first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
|
1668
|
35
|
1624
|
36 Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
|
|
37
|
1698
|
38 netrw: dragging status line causes selection of entry. Should check row
|
|
39 number to be below last visible line.
|
|
40
|
1668
|
41 Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
|
|
42
|
|
43 Patch to add extra argument to glob() and globpath() to ignore 'wildignore'.
|
|
44 (Ingo Karkat, 2008 Jun 25)
|
|
45
|
|
46 Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
|
|
47 11) I can't reproduce it. It's probably caused by a handle_drop() call
|
|
48 in combination with autocommands that invoke a ":redraw" command.
|
|
49 Another valgrind output Jun 30.
|
1624
|
50
|
|
51 When reallocating cmdline xp_pattern becomes invalid. Move expand_T xpc into
|
|
52 ccline? (Dominique Pelle)
|
|
53
|
|
54 Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
|
|
55 laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
|
|
56 Works OK with Vim in an xterm.
|
|
57
|
1698
|
58 When using ":e ++enc=foo file" and the file is already loaded with
|
|
59 'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
|
|
60 fileencoding differs. Reload the buffer in this situation? Need to check for
|
|
61 the buffer to be unmodified.
|
|
62 Unfinished patch by Ian Kelling, 2008 Jul 11. Followup Jul 14, need to have
|
|
63 another look at it.
|
|
64
|
1624
|
65 Fix for matchparen HL doesn't work. beep.
|
|
66
|
|
67 Win32: associating a type with Vim doesn't take care of space after a
|
|
68 backslash? (Robert Vibrant, 2008 Jun 5)
|
|
69
|
|
70 After using <Tab> for command line completion after ":ta blah" and getting E33
|
|
71 (no tags file), further editing the command to e.g., ":echo 'blah'", the
|
1698
|
72 command is not executed. Fix by Ian Kelling?
|
1624
|
73
|
1698
|
74 ":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
|
|
75 Chase) Fix by Ian Kelling, 2008 Jul 14.
|
|
76
|
1624
|
77 Despite adding save_subexpr() this still doesn't work properly:
|
|
78 Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
|
|
79 Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
|
|
80 Backreference not cleared when retrying after \@<= fails?
|
|
81 (Brett Stahlman, 2008 March 8)
|
|
82
|
1698
|
83 Patch for 2html.vim to avoid "&nbsp;". (Markus Heidelberg, 2008 Jul 19)
|
|
84
|
1624
|
85 Win32: remote editing fails when the current directory name contains "[".
|
|
86 (Ivan Tishchenko, Liu Yubao) Suggested patch by Chris Lubinski: Avoid
|
|
87 escaping characters where the backslash is not removed later. Asked Chris for
|
|
88 an alternate solution, also for src/ex_getln.c.
|
1668
|
89 This also fails when the file or directory name contains "%". (Thoml, 2008
|
|
90 July 7)
|
1624
|
91
|
|
92 The str2special() function doesn't handle multi-byte characters properly.
|
|
93 Patch from Vladimir Vichniakov, 2007 Apr 24.
|
|
94 Should clean up the whole function. Also allow modifiers like <S-Char-32>?
|
|
95 find_special_key() also has this problem.
|
|
96
|
|
97 Problem with 'langmap' parsing. (James Vega, 2008 Jan 27)
|
|
98 Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
|
|
99 2008 May 14)
|
|
100
|
|
101 Problem with CTRL-F. (Charles Campbell, 2008 March 21)
|
|
102 Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
|
|
103 'lines' is 54. (2008 March 27)
|
|
104
|
|
105 Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
|
|
106 Works OK when 'cmdheight' is 2.
|
|
107
|
|
108 The utf class table is missing some entries:
|
|
109 0x2212, minus sign
|
|
110 0x2217, star
|
|
111 0x2500, bar
|
|
112 0x26ab, circle
|
|
113
|
|
114 Visual line mode doesn't highlight properly when 'showbreak' is used and the
|
|
115 line doesn't fit. (Dasn, 2008 May 1)
|
|
116
|
|
117 GUI: In Normal mode can't yank the modeless selection. Make "gy" do this?
|
|
118 Works like CTRL-Y in Command line mode.
|
|
119
|
1125
|
120 Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
|
|
121 changed or the window is resized.
|
|
122
|
1624
|
123 Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
|
|
124 Mar 5) Alternative: Kazuki Sakamoto, Mar 7.
|
|
125
|
1698
|
126 Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
|
|
127 1) Reply by Ben Schmidt.
|
|
128
|
1624
|
129 ":emenu" works with the translated menu name. Should also work with the
|
|
130 untranslated name. Would need to store both the English and the translated
|
|
131 name. Patch by Bjorn Winckler, 2008 Mar 30.
|
|
132
|
|
133 C't: On utf-8 system, editing file with umlaut through Gnome results in URL
|
|
134 with %nn%nn, which is taken as two characters instead of one.
|
|
135 Try to reproduce at work.
|
|
136
|
|
137 Patch for redo register. (Ben Schmidt, 2007 Oct 19)
|
|
138 Await response to question to make the register writable.
|
|
139
|
|
140 Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
|
|
141 1)
|
|
142
|
|
143 Including NFA regexp code:
|
|
144 Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new.
|
|
145 Useful in tests.
|
|
146 Performance tests:
|
|
147 - ~/vim/test/veryslow.js (file from Daniel Fetchinson)
|
|
148 - ~/vim/test/slowsearch
|
|
149 - ~/vim/test/rgb.vim
|
|
150 - search for a.*e*exn in the vim executable. Go to last line to use
|
|
151 'hlsearch'.
|
1125
|
152
|
|
153 Using Aap to build Vim: add remarks about how to set personal preferences.
|
|
154 Example on http://www.calmar.ws/tmp/aap.html
|
|
155
|
1624
|
156 Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
|
|
157 Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
|
|
158 Jul 31)
|
1125
|
159
|
|
160 C syntax: {} inside () causes following {} to be highlighted as error.
|
|
161 (Michalis Giannakidis, 2006 Jun 1)
|
|
162
|
1624
|
163 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
|
|
164 and mess up syncing. (Austin Jennings, 2008 Jan 31)
|
|
165
|
1125
|
166 Gnome improvements: Edward Catmur, 2007 Jan 7
|
|
167 Also use Save/Discard for other GUIs
|
|
168
|
|
169 New PHP syntax file, use it? (Peter Hodge)
|
|
170
|
|
171 'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
|
|
172 Likonen, March 19)
|
|
173
|
1698
|
174 The documentation mentions the priority for ":2match" and ":3match", but it
|
|
175 appears the last one wins. (John Beckett, 2008 Jul 22) Caused by adding
|
|
176 matchadd()? Suggested patch by John, 2008 Jul 24.
|
|
177
|
1624
|
178 Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520
|
|
179 by Vissale Neang. (Martin Stubenschrott)
|
|
180 Asked Vissale to make the scripts more friendly for the Vim distribution.
|
|
181 New version received 2008 Jan 6.
|
|
182
|
|
183 Cheng Fang made javacomplete. (2007 Aug 11)
|
|
184 Asked about latest version: 0.77.1 is on www.vim.org.
|
1125
|
185
|
|
186 More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
|
|
187
|
1698
|
188 Insert mode completion: When editing the text and pressing CTRL-N again goes
|
|
189 back to originally completed text, edited text is gone. (Peng Yu, 2008 Jul 24)
|
|
190 Suggestion by Ben Schmidt, 2008 Aug 6.
|
1624
|
191
|
|
192 Problem with compound words? (Bert, 2008 May 6)
|
|
193 No warning for when flags are defined after they are used in an affix.
|
|
194
|
|
195 With Visual selection, "r" and then CTRL-C Visual mode is stopped but the
|
|
196 highlighting is not removed.
|
|
197
|
|
198 Screen redrawing when continuously updating the buffer and resizing the
|
|
199 terminal. (Yakov Lerner, 2006 Sept 7)
|
1125
|
200
|
|
201 Add option settings to help ftplugin. (David Eggum, 2006 Dec 18)
|
|
202
|
1624
|
203 Autoconf problem: when checking for iconv library we may add -L/usr/local/lib,
|
|
204 but when compiling further tests -liconv is added without the -L argument,
|
|
205 that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21)
|
1125
|
206
|
|
207 When opening quickfix window, disable spell checking?
|
|
208
|
1624
|
209 Popup menu redraw: Instead of first redrawing the text and then drawing the
|
|
210 popup menu over it, first draw the new popup menu, remember its position and
|
|
211 size and then redraw the text, skipping the characters under the popup menu.
|
|
212 This should avoid flicker. Other solution by A.Politz, 2007 Aug 22.
|
|
213
|
1698
|
214 When the popup menu is close to the edge of the window it is truncated. Patch
|
|
215 to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
|
|
216
|
1624
|
217 Spell checking: Add a way to specify punctuation characters. Add the
|
|
218 superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
|
|
219
|
1226
|
220 Windows 98: pasting from the clipboard with text from another application has
|
|
221 a trailing NUL. (Joachim Hofmann) Perhaps the length specified for CF_TEXT
|
|
222 isn't right?
|
|
223
|
1698
|
224 Command line completion: Scanning for tags doesn't check for typed key now and
|
|
225 then? Hangs for about 5 seconds. Appears to be caused by finding include
|
|
226 files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
|
1668
|
227 Additional info: When using the |wildcards| ** globing, vim hangs
|
|
228 indefinitely on lots of directories. The |file-searching| globing, like in
|
|
229 ":set path=/**" does not hang as often as with globing with |wildcards|, like
|
|
230 in ":1find /**/file". This is for a files that unix "find" can find very
|
|
231 quick. Merging the 2 kinds of globing might make this an easier fix. (Ian
|
|
232 Kelling, 2008 July 4)
|
1125
|
233
|
1624
|
234 When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
|
|
235 parenthesis escaped but not the space. That's inconsistent. Either escape
|
|
236 neither or both. No escaping might be best, because it doesn't depend on
|
|
237 particularities of the shell. (Zvi Har'El, 2007 Nov 10) (Teemu Likonen, 2008
|
|
238 Jun 3)
|
|
239 However, for backwards compatibility escaping might be necessary. Check if
|
|
240 the user put quotes around the expanded item?
|
1125
|
241
|
|
242 Color for cUserLabel should differ from case label, so that a mistake in a
|
|
243 switch list is noticed:
|
|
244 switch (i)
|
|
245 {
|
|
246 case 1:
|
|
247 foobar:
|
|
248 }
|
|
249
|
|
250 Look at http://www.gtk-server.org/ . It has a Vim script implementation.
|
|
251
|
1624
|
252 Netbeans problem. Use "nc -l 127.0.0.1 55555" for the server, then run gvim
|
|
253 with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
|
|
254 go to Insert mode and add a few lines. Then backspacing every other time
|
|
255 moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
|
|
256
|
|
257 Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
|
1702
|
258 Sep 18) Patch by Ian Kelling, 2008 Aug 8.
|
1624
|
259
|
1125
|
260 Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
|
|
261 2007 Feb 8)
|
|
262
|
|
263 Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
|
|
264 Sutcliffe says it works well.
|
1624
|
265 Update 2007 May 22 for Vim 7.1
|
1125
|
266
|
|
267 Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
|
|
268
|
1624
|
269 Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
|
|
270
|
1698
|
271 ":cscope find f filename" doesn't work because of the extra space. (Ethan
|
|
272 Mallove)
|
|
273
|
1125
|
274 Win32: XPM support only works with path without spaces. Patch by Mathias
|
|
275 Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31.
|
|
276 New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
|
|
277 patches by Mathias, see mail Feb 22)
|
|
278
|
|
279 Win32: compiling with normal features and OLE fails. Patch by Mathias
|
|
280 Michaelis, 2006 Jun 4.
|
|
281
|
|
282 Win32: echo doesn't work for gvim.exe.mnf. Use inline file. Patch by Mathias
|
|
283 Michaelis. http://groups.yahoo.com/group/vimdev/message/43765
|
|
284 Patch that includes this and does more by George Reilly, 2007 Feb 12
|
|
285
|
|
286 Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22)
|
|
287
|
|
288 Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
|
|
289 2007 Feb 18)
|
1624
|
290 Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems.
|
1125
|
291
|
|
292 Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
|
1702
|
293 label. (Tsakiridis, 2007 Feb 18) Patch from Ian Kelling, 2008 Aug 6.
|
|
294
|
|
295 When 'bomb' is changed the window title is updated to show/hide a "+", but the
|
|
296 tab page label isn't. (Patrick Texier, 2008 Jun 24)
|
1125
|
297
|
1624
|
298 Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen
|
|
299 with the more prompt. Caused by setting the guitablabel? (Thomas Michael
|
|
300 Engelke, 2007 Dec 20 - 2008 Jan 17)
|
1125
|
301
|
|
302 Win64: diff.exe crashes on Win64. (Julianne Bailey, 2006 Dec 12)
|
|
303 Build another diff.exe somehow?
|
|
304
|
|
305 Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing
|
|
306 pointer in long and seek offset in 64 bit var.
|
|
307
|
1624
|
308 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
|
|
309
|
1698
|
310 When file b is a link to file a and editing b twice you get the correct
|
|
311 warning for existing swap file, but when trying to recover it doesn't find the
|
|
312 swapfile. (Matt Wozniski, 2008 Aug 5)
|
|
313
|
1624
|
314 Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
|
|
315 Ebersbach, 2008 Feb 1)
|
|
316
|
|
317 Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
|
|
318 Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
|
|
319 Does the conversion in the other direction work when 'filenecodings' is set
|
|
320 properly?
|
|
321
|
|
322 Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
|
|
323 2007 Jun 21)
|
|
324
|
|
325 When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
|
|
326 Jun 18)
|
|
327
|
|
328 If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
|
|
329
|
|
330 F1 - F4 in an xterm produce a different escape sequence when used with a
|
|
331 modifier key. Need to catch three different sequences. Use K_ZF1, like
|
|
332 K_ZHOME? (Dickey, 2007 Dec 2)
|
1125
|
333
|
|
334 Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
|
|
335
|
|
336 UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
|
|
337 to work. (Tony Mechelynck, 2007 March 2)
|
|
338
|
|
339 In debug mode, using CTRL-R = to evaluate a function causes stepping through
|
|
340 the function. (Hari Krishna Dara, 2006 Jun 28)
|
|
341
|
|
342 C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
|
|
343
|
|
344 ":lockvar" should use copyID to avoid endless loop.
|
|
345
|
1624
|
346 When using --remote-silent and the file name matches 'wildignore' get an E479
|
1668
|
347 error. without --remote-silent it works fine. (Ben Fritz, 2008 Jun 20)
|
1226
|
348
|
1125
|
349 Gvim: dialog for closing Vim should check if Vim is busy writing a file. Then
|
|
350 use a different dialog: "busy saving, really quit? yes / no".
|
|
351
|
|
352 Check other interfaces for changing curbuf in a wrong way. Patch like for
|
|
353 if_ruby.c.
|
|
354
|
1698
|
355 Problem with cursorcolumn highlighting and folds. (John Mullin, 2008 Jul 18)
|
|
356
|
1125
|
357 Spell checking in popup menu: If the only problem is the case of the first
|
|
358 character, don't offer "ignore" and "add to word list".
|
|
359
|
|
360 ":helpgrep" should use the directory from 'helpfile'.
|
|
361
|
|
362 The need_fileinfo flag is messy. Instead make the message right away and put
|
|
363 it in keep_msg?
|
|
364
|
|
365 Editing a file remotely that matches 'wildignore' results in a "no match"
|
|
366 error. Should only happen when there are wildards, not when giving the file
|
|
367 name literally, and esp. if there is only one name.
|
|
368
|
874
|
369 Test 61 fails sometimes. This is a timing problem: "sleep 2" sometimes takes
|
|
370 longer than 2 seconds.
|
857
|
371
|
1668
|
372 Changing 'guifont' in the console causes an unnecessary redraw.
|
1624
|
373
|
|
374 "vim -C" often has 'nocompatible', because it's set in some startup script.
|
|
375 Set 'compatible' after startup is done? Patch by James Vega, 2008 Feb 7.
|
|
376
|
1125
|
377 VMS: while editing a file found in complex, Vim will save file into the first
|
|
378 directory of the path and not to the original location of the file.
|
|
379 (Zoltan Arpadffy)
|
|
380
|
1624
|
381 VMS: VFC files are in some cases truncated during reading (Zoltan Arpadffy)
|
|
382
|
1125
|
383 input() completion should not insert a backslash to escape a space in a file
|
|
384 name?
|
|
385
|
|
386 getpos()/setpos() don't include curswant. getpos() could return a fifth
|
|
387 element. setpos() could accept an optional fifth element.
|
|
388
|
|
389 Ruby completion is insecure. Can this be fixed?
|
|
390
|
|
391 When 'backupskip' is set from $TEMP special characters need to be escaped.
|
|
392 (patch by Grembowietz, 2007 Feb 26, not quite right)
|
|
393 Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\("
|
|
394 will be seen as a path separator plus "\(".
|
|
395
|
|
396 ":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
|
|
397 Check directory and call shorten_fnames()?
|
|
398
|
|
399 aucmd_prepbuf() should also use a window in another tab page.
|
|
400
|
|
401 Substituting an area with a line break with almost the same area does change
|
|
402 the Visual area. Can this be fixed? (James Vega, 2006 Sept 15)
|
|
403
|
|
404 Windows installer could add a "open in new tab of existing Vim" menu entry.
|
1624
|
405 Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
|
|
406 Just have two choices, always using one Vim and selecting between using an
|
|
407 argument list or opening each file in a separate tab.
|
1668
|
408 (Erik Falor, 2008 May 21, 2008 Jun 26)
|
1125
|
409
|
|
410 GUI: When combining fg en bg make sure they are not equal.
|
|
411
|
|
412 Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
|
|
413 Jun 5)
|
|
414
|
|
415 Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
|
|
416
|
1698
|
417 When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a. Compare with
|
|
418 using "ga" on a NUL when 'ff' is "unix". (Andy Wokula, 2008 Jul 16)
|
|
419
|
1125
|
420 Add an option to specify the character to use when a double-width character is
|
|
421 moved to the next line. Default '>', set to a space to blank it out. Check
|
|
422 that char is single width when it's set (compare with 'listchars').
|
|
423
|
|
424 The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
|
|
425
|
1698
|
426 In a C file with spell checking, in "% integer" "nteger" is seen as an error,
|
|
427 but "]s" doesn't find it. "nteger" by itself is found. (Ralf Wildenhues, 2008
|
|
428 Jul 22)
|
|
429
|
1125
|
430 Session file creation: 'autochdir' causes trouble. Keep it off until after
|
|
431 loading all files.
|
|
432
|
1624
|
433 When showing a diff between a non-existant file and an existing one, with the
|
|
434 cursor in the empty buffer, the other buffer only shows the last line. Change
|
|
435 the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27)
|
|
436
|
|
437 Add autocommand for when a tabpage is being closed. Also for when a tab page
|
|
438 has been created.
|
|
439
|
|
440 Using ":make" blocks Vim. Allow running one make in the background (if the
|
|
441 shell supports it), catch errors in a file and update the error list on the
|
|
442 fly. A bit like "!make > file&" and repeating ":cf file". ":bgmake",
|
|
443 background make. ":bgcancel" interrupts it.
|
|
444 A.Politz may work on this.
|
1125
|
445
|
|
446 The spellfile plugin checks for a writable "spell" directory. A user may have
|
|
447 a writable runtime directory without a "spell" directory, it could be created
|
|
448 then.
|
|
449
|
|
450 These two abbreviations don't give the same result:
|
|
451 let asdfasdf = "xyz\<Left>"
|
|
452 cabbr XXX <C-R>=asdfasdf<CR>
|
|
453 cabbr YYY xyz<Left>
|
|
454
|
|
455 Michael Dietrich: maximized gvim sometimes displays output of external command
|
|
456 partly. (2006 Dec 7)
|
|
457
|
|
458 In FileChangedShell command it's no longer allowed to switch to another
|
|
459 buffer. But the changed buffer may differ from the current buffer, how to
|
|
460 reload it then?
|
|
461
|
|
462 New syntax files for fstab and resolv from Radu Dineiu, David Necas did
|
|
463 previous version.
|
|
464
|
|
465 For Aap: include a config.arg.example file with hints how to use config.arg.
|
|
466
|
1624
|
467 Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
|
|
468 only one buffer line displayed, causes display errors.
|
|
469
|
|
470 Completing with 'wildmenu' and using <Up> and <Down> to move through directory
|
|
471 tree stops unexpectedly when using ":cd " and entering a directory that
|
|
472 doesn't contain other directories.
|
|
473
|
1125
|
474 Linux distributions:
|
|
475 - Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
|
|
476 known to Vim. 88 colors instead of 16 works better. See ":help
|
|
477 xfree-xterm".
|
|
478 - Suggest including bare "vi" and "vim" with X11, syntax, etc.
|
|
479
|
|
480 Completion menu: For a wrapping line, completing a long file name, only the
|
|
481 start of the path is shown in the menu. Should move the menu to the right to
|
|
482 show more text of the completions. Shorten the items that don't fit in the
|
|
483 middle?
|
|
484
|
|
485 When running inside screen it's possible to kill the X server and restart it
|
1698
|
486 (using pty's the program can keep on running). Vim dies because it loses the
|
1125
|
487 connection to the X server. Can Vim simply quit using the X server instead of
|
|
488 dying? Also relevant when running in a console.
|
|
489
|
|
490 Accessing file#var in a function should not need the g: prepended.
|
|
491
|
|
492 When ":cn" moves to an error in the same line the message isn't shortened.
|
|
493 Only skip shortening for ":cc"?
|
|
494
|
|
495 Write "making vim work better" for the docs (mostly pointers): *nice*
|
|
496 - sourcing $VIMRUNTIME/vimrc_example.vim
|
|
497 - setting 'mouse' to "a"
|
|
498 - getting colors in xterm
|
|
499 - compiling Vim with X11, GUI, etc.
|
|
500
|
|
501 Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
|
|
502 Campbell 2006 Jul 06.
|
|
503
|
|
504 Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
|
|
505
|
1624
|
506 A custom completion function in a ":command" cannot be a Funcref. (Andy
|
|
507 Wokula, 2007 Aug 25)
|
|
508
|
|
509 Problem with using :redir in user command completion function? (Hari Krishna
|
|
510 Dara, 2006 June 21)
|
|
511
|
1125
|
512 GTK: When maximizing Vim the result is slightly smaller, the filler border is
|
|
513 not there, and the "maximize" button is still there. Clicking it again does
|
|
514 give a maximized window. (Darren Hiebert)
|
|
515 Problem is that gui_mch_set_text_area_pos() is invoked to change the text area
|
|
516 size, which causes the toplevel window to resize. When doing this while the
|
|
517 size is already right the filler remains there.
|
|
518 Detect using the maximize button (GdkWindowState bit
|
|
519 GDK_WINDOW_STATE_MAXIMIZED) and set it again?
|
|
520
|
|
521 Another resizing problem when setting 'columns' and 'lines' to a very large
|
|
522 number. (Tony Mechelynck, 2007 Feb 6)
|
|
523
|
1624
|
524 GTK: when using the -geom argument with an offset from the right edge and the
|
|
525 size is smaller than the default, the Vim window is not positioned properly.
|
|
526
|
1125
|
527 After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
|
|
528 the cursor line. It works OK after some other commands.
|
|
529
|
|
530 Win32: Is it possible to have both postscript and Win32 printing?
|
|
531 Does multi-byte printing with ":hardcopy" work? Add remark in documentation
|
|
532 about this.
|
|
533
|
|
534 There should be something about spell checking in the user manual.
|
|
535
|
|
536 Check: Running Vim in a console and still having connect to the X server for
|
|
537 copy/paste: is stopping the X server handled gracefully? Should catch the X
|
|
538 error and stop using the connection to the server.
|
|
539
|
|
540 Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
|
|
541 Jul 26, Gary Johnson)
|
|
542
|
|
543 In the Netbeans interface add a "vimeval" function, so that the other side can
|
|
544 check the result of has("patch13").
|
|
545
|
|
546 Add command modifier that skips wildcard expansion, so that you don't need to
|
|
547 put backslashes before special chars, only for white space.
|
|
548
|
|
549 Win32: When the GUI tab pages line is displayed Vim jumps from the secondary
|
|
550 to the primary monitor. (Afton Lewis, 2007 Mar 9) Old resizing problem?
|
|
551
|
1624
|
552 GTK: when the Tab pages bar appears or disappears while the window is
|
|
553 maximized the window is no longer maximized. Patch that has some idea but
|
|
554 doesn't work from Geoffrey Antos, 2008 May 5.
|
1125
|
555
|
|
556 The magic clipboard format "VimClipboard2" appears in several places. Should
|
|
557 be only one.
|
|
558
|
1624
|
559 "vim -C" often has 'nocompatible', because it's set somewhere in a startup
|
|
560 script. Do "set compatible" after startup?
|
|
561
|
1125
|
562 It's difficult to debug numbered functions (function in a Dictionary). Print
|
|
563 the function name before resolving it to a number?
|
|
564 let d = {}
|
|
565 fun! d.foo()
|
|
566 echo "here"
|
|
567 endfun
|
|
568 call d.foo(9)
|
|
569
|
|
570 Add a mark for the other end of the Visual area (VIsual pos). '< and '> are
|
|
571 only set after Visual moded is ended.
|
1624
|
572 Also add a variable for the Visual mode. So that this mode and '< '> can be
|
|
573 used to set what "gv" selects. (Ben Schmidt)
|
|
574
|
|
575 Win32: When running ":make" and 'encoding' differs from the system locale, the
|
|
576 output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu)
|
|
577 Should we use 'termencoding' for this?
|
|
578
|
|
579 Win32, NTFS: When editing an specific infostream directly and 'backupcopy' is
|
|
580 "auto" should detect this situation and work like 'backupcopy' is "yes". File
|
|
581 name is something like "c:\path\foo.txt:bar", includes a colon. (Alex
|
|
582 Jakushev, 2008 Feb 1)
|
1125
|
583
|
|
584 Small problem displaying diff filler line when opening windows with a script.
|
|
585 (David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )
|
|
586
|
|
587 Is it allowed that 'backupext' is empty? Problems when backup is in same dir
|
|
588 as original file? If it's OK don't compare with 'patchmode'. (Thierry Closen)
|
|
589
|
|
590 Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
|
|
591 Jan 1)
|
|
592
|
1624
|
593 Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
|
|
594 23)
|
|
595
|
|
596 ":mkview" isn't called with the right buffer argument. Happens when using
|
|
597 tabs and the autocommand "autocmd BufWinLeave * mkview". (James Vega, 2007
|
|
598 Jun 18)
|
1125
|
599
|
|
600 xterm should be able to pass focus changes to Vim, so that Vim can check for
|
|
601 buffers that changed. Perhaps in misc.c, function selectwindow().
|
|
602 Xterm 224 supports it!
|
|
603
|
|
604 When completing from another file that uses a different encoding completion
|
|
605 text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
|
|
606 latin1. Example from Gombault Damien, 2007 Mar 24.
|
|
607
|
1624
|
608 Is it possible to use "foo#var" instead of "g:foo#var" inside a function?
|
|
609
|
|
610 Syntax HL: When using "nextgroup" and the group has an empty match, there is
|
|
611 no search at that position for another match. (Lukas Mai, 2008 April 11)
|
|
612
|
|
613 Spell menu: When using the Popup menu to select a replacement word,
|
|
614 ":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use "z="
|
|
615 somehow? Or use a new function.
|
|
616
|
|
617 In gvim the backspace key produces a backspace character, but on Linux the
|
|
618 VERASE key is Delete. Set VERASE to Backspace? (patch by Stephane Chazelas,
|
|
619 2007 Oct 16)
|
|
620
|
1668
|
621 When entering a C /* comment, after typing <Enter> for 70 times the indent
|
|
622 disappears. (Vincent Beffara, 2008 Jul 3)
|
|
623
|
1624
|
624 TermResponse autocommand isn't always triggered when using vimdiff. (Aron
|
|
625 Griffis, 2007 Sep 19)
|
|
626
|
|
627 Patch for supporting #rrggbb in color terminals. (Matt Wozniski)
|
|
628
|
|
629 Create a gvimtutor.1 file and change Makefiles to install it.
|
|
630
|
|
631
|
|
632 Vim 7.3:
|
1668
|
633 - Add patch for 'relativenumber' option? Markus Heidelberg, 2008 Jun 27.
|
1125
|
634 - Add blowfish encryption. Openssl has an implementation. Also by Paul
|
|
635 Kocher (LGPL), close to original. Mohsin also has some ideas.
|
|
636 Take four bytes and turn them into unsigned to avoid byte-order problems.
|
|
637 Need to buffer up to 7 bytes to align on 8 byte boundaries.
|
|
638 - ":{range}source": source the lines from the file.
|
|
639 You can already yank lines and use :@" to execute them.
|
|
640 Most of do_source() would not be used, need a new function.
|
|
641 It's easy when not doing breakpoints or profiling.
|
|
642
|
|
643
|
1624
|
644 More patches:
|
1125
|
645 - Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
|
|
646 - Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct
|
|
647 21)
|
|
648 - Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
|
|
649 patch May 10)
|
|
650 - Extra argument to strtrans() to translate special keys to their name (Eric
|
|
651 Arnold, 2006 May 22)
|
|
652 - 'threglookexp' option: only match with first word in thesaurus file.
|
|
653 (Jakson A. Aquino, 2006 Jun 14)
|
|
654 - Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
|
|
655 - Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
|
|
656 - ml_append_string(): efficiently append to an existing line. (Brad
|
|
657 Beveridge, 2006 Aug 26) Use in some situations, e.g., when pasting a
|
|
658 character at a time?
|
1624
|
659 - gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2007 Sep 13,
|
|
660 2008 Jun 12)
|
1125
|
661 - recognize hex numbers better. (Mark Manning, 2006 Sep 13)
|
1698
|
662 - Add <AbbrExpand> key, to expand an abbreviation in a mapping. (Kana
|
|
663 Natsuno, 2008 Jul 17)
|
|
664 - Add 'wspara' option, also accept blank lines like empty lines for "{" and
|
|
665 "}". (Mark Lundquist, 2008 Jul 18)
|
|
666 - Patch to add CTRL-T to delete part of a path on cmdline. (Adek, 2008 Jul
|
|
667 21)
|
|
668 - Instead of creating a copy of the tutor in all the shell scripts, do it in
|
|
669 vimtutor.vim. (Jan Minar, 2008 Jul 20)
|
|
670 - When fsync() fails there is no hint about what went wrong. Patch by Ben
|
|
671 Schmidt, 2008 Jul 22.
|
1125
|
672
|
857
|
673
|
40
|
674 Awaiting updated patches:
|
842
|
675 9 Mac unicode patch (Da Woon Jung, Eckehard Berns):
|
|
676 8 Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
|
|
677 New patch 2004 Jun 16
|
|
678 - selecting proportional font breaks display
|
|
679 - UTF-8 text causes display problems. Font replacement causes this.
|
|
680 - Command-key mappings do not work. (Alan Schmitt)
|
|
681 - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
|
|
682 (Alan Schmitt)
|
|
683 - remove 'macatsui' option when this has been fixed.
|
1125
|
684 - when 'macatsui' is off should we always convert to "macroman" and ignore
|
|
685 'termencoding'?
|
800
|
686 9 HTML indenting can be slow. Caused by using searchpair(). Can search()
|
1624
|
687 be used instead? A.Politz is looking into a solution.
|
844
|
688 8 Win32: Add minidump generation. (George Reilly, 2006 Apr 24)
|
713
|
689 8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
|
856
|
690 Aric Blumer has a patch for this. He will update the patch for 6.3.
|
713
|
691 7 Completion of network shares, patch by Yasuhiro Matsumoto.
|
|
692 Update 2004 Sep 6.
|
|
693 How does this work? Missing comments.
|
|
694 - Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
|
1624
|
695 Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30)
|
713
|
696 8 Add a few more command names to the menus. Patch from Jiri Brezina
|
832
|
697 (28 feb 2002). Will mess the translations...
|
713
|
698 7 ATTENTION dialog choices are more logical when "Delete it' appears
|
|
699 before "Quit". Patch by Robert Webb, 2004 May 3.
|
|
700 - Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
|
|
701 for multi-byte characters.
|
|
702 - Win32: add options to print dialog. Patch from Vipin Aravind.
|
|
703 - Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
|
|
704 use the patch that keeps using HLF_8 if HLF_WS has not
|
|
705 been given values.
|
|
706 Add section in help files for these highlight groups?
|
|
707 8 "fg" and "bg" don't work in an xterm. Get default colors from xterm
|
827
|
708 with an ESC sequence.
|
|
709 xterm can send colors for many things. E.g. for the cursor:
|
|
710 <Esc>]12;?<Bel>
|
|
711 Can use this to get the background color and restore the colors on exit.
|
713
|
712 7 Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Marcin
|
|
713 Dalecki has a patch for Motif and Carbon)
|
|
714 - Add possibility to highlight specific columns (for Fortran). Or put a
|
|
715 line in between columns (e.g., for 'textwidth').
|
|
716 Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
|
|
717 8 Add functions:
|
|
718 gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
|
40
|
719 Update 2004 Sep 10
|
557
|
720 Another patch from Edward L. Fox (2005 Nov 24)
|
|
721 Search in 'runtimepath'?
|
832
|
722 More docs needed about how to use this.
|
40
|
723 How to get the messages into the .po files?
|
1668
|
724 charlen() Like strlen() but counting characters instead of
|
|
725 bytes.
|
713
|
726 confirm() add "flags" argument, with 'v' for vertical
|
|
727 layout and 'c' for console dialog. (Haegg)
|
|
728 Flemming Madsen has a patch for the 'c' flag
|
|
729 (2003 May 13)
|
|
730 raisewin() raise gvim window (see HierAssist patch for
|
|
731 Tcl implementation ~/vim/HierAssist/ )
|
1125
|
732 taglist() add argument to specify maximum number of matches.
|
|
733 useful for interactive things or completion.
|
1624
|
734 col('^') column of first non-white character.
|
|
735 Can use "len(substitute(getline('.'), '\S.*', '', ''))
|
|
736 + 1", but that's ugly.
|
713
|
737 7 Add patch from Benoit Cerrina to integrate Vim and Perl functions
|
|
738 better. Now also works for Ruby (2001 Nov 10)
|
|
739 - Patch from Herculano de Lima Einloft Neto for better formatting of the
|
|
740 quickfix window (2004 dec 2)
|
|
741 7 When 'rightleft' is set, the search pattern should be displayed right
|
|
742 to left as well? See patch of Dec 26. (Nadim Shaikli)
|
832
|
743 8 Option to lock all used memory so that it doesn't get swapped to disk
|
|
744 (uncrypted). Patch by Jason Holt, 2003 May 23. Uses mlock.
|
713
|
745 7 Support a stronger encryption. Jason Holt implemented AES (May 6 2003).
|
|
746 7 Add ! register, for shell commands. (patch from Grenie)
|
|
747 8 In the gzip plugin, also recognize *.gz.orig, *.gz.bak, etc. Like it's
|
|
748 done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1.
|
|
749 7 Add a "-@ filelist" argument: read file names from a file. (David
|
|
750 Kotchan has a patch for it)
|
|
751 8 Include a connection to an external program through a pipe? See
|
|
752 patches from Felbinger for a mathematica interface.
|
|
753 Or use emacs server kind of thing?
|
|
754 7 Add ":justify" command. Patch from Vit Stradal 2002 Nov 25.
|
|
755 - findmatch() should be adjusted for Lisp. See remark at
|
|
756 get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram,
|
|
757 incomplete patch Mar 18)
|
|
758 - For GUI Find/Replace dialog support using a regexp. Patch for Motif
|
|
759 and GTK by degreneir (nov 10 and nov 18).
|
|
760 - Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
|
70
|
761
|
|
762
|
7
|
763 Vi incompatibility:
|
713
|
764 - Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
|
|
765 Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
|
7
|
766 8 With undo/redo only marks in the changed lines should be changed. Other
|
|
767 marks should be kept. Vi keeps each mark at the same text, even when it
|
|
768 is deleted or restored. (Webb)
|
|
769 Also: A mark is lost after: make change, undo, redo and undo.
|
|
770 Example: "{d''" then "u" then "d''": deletes an extra line, because the ''
|
|
771 position is one line down. (Veselinovic)
|
|
772 8 When stdin is not a tty, and Vim reads commands from it, an error should
|
|
773 make Vim exit.
|
|
774 7 Unix Vim (not gvim): Typing CTRL-C in Ex mode should finish the line
|
|
775 (currently you can continue typing, but it's truncated later anyway).
|
|
776 Requires a way to make CTRL-C interrupt select() when in cooked input.
|
|
777 8 When loading a file in the .exrc, Vi loads the argument anyway. Vim skips
|
|
778 loading the argument if there is a file already. When no file argument
|
|
779 given, Vi starts with an empty buffer, Vim keeps the loaded file. (Bearded)
|
|
780 6 In Insert mode, when using <BS> or <Del>, don't wipe out the text, but
|
|
781 only move back the cursor. Behaves like '$' in 'cpoptions'. Use a flag
|
|
782 in 'cpoptions' to switch this on/off.
|
|
783 8 When editing a file which is a symbolic link, and then opening another
|
|
784 symbolic link on the same file, Vim uses the name of the first one.
|
|
785 Adjust the file name in the buffer to the last one used? Use several file
|
|
786 names in one buffer???
|
|
787 Also: When first editing file "test", which is symlink to "test2", and
|
|
788 then editing "test2", you end up editing buffer "test" again. It's not
|
|
789 logical that the name that was first used sticks with the buffer.
|
|
790 7 The ":undo" command works differently in Ex mode. Edit a file, make some
|
|
791 changes, "Q", "undo" and _all_ changes are undone, like the ":visual"
|
|
792 command was one command.
|
321
|
793 On the other hand, an ":undo" command in an Ex script only undoes the last
|
|
794 change (e.g., use two :append commands, then :undo).
|
7
|
795 7 The ":map" command output overwrites the command. Perhaps it should keep
|
|
796 the ":map" when it's used without arguments?
|
|
797 7 CTRL-L is not the end of a section? It is for Posix! Make it an option.
|
|
798 7 Implement 'prompt' option. Init to off when stdin is not a tty.
|
|
799 7 CTRL-T in Insert mode inserts 'shiftwidth' of spaces at the cursor. Add a
|
|
800 flag in 'cpoptions' for this.
|
|
801 7 Add a way to send an email for a crashed edit session. Create a file when
|
|
802 making changes (containing name of the swap file), delete it when writing
|
|
803 the file. Supply a program that can check for crashed sessions (either
|
|
804 all, for a system startup, or for one user, for in a .login file).
|
|
805 7 Vi doesn't do autoindenting when input is not from a tty (in Ex mode).
|
|
806 7 "z3<CR>" should still use the whole window, but only redisplay 3 lines.
|
|
807 7 ":tag xx" should move the cursor to the first non-blank. Or should it go
|
|
808 to the match with the tag? Option?
|
|
809 7 Implement 'autoprint'/'ap' option.
|
|
810 7 Add flag in 'cpoptions' that makes <BS> after a count work like <Del>
|
|
811 (Sayre).
|
|
812 7 Add flag in 'cpoptions' that makes operator (yank, filter) not move the
|
|
813 cursor, at least when cancelled. (default Vi compatible).
|
|
814 7 This Vi-trick doesn't work: "Q" to go to Ex mode, then "g/pattern/visual".
|
|
815 In Vi you can edit in visual mode, and when doing "Q" you jump to the next
|
|
816 match. Nvi can do it too.
|
|
817 7 Support '\' for line continuation in Ex mode for these commands: (Luebking)
|
|
818 g/./a\ g/pattern1/ s/pattern2/rep1\\
|
|
819 line 1\ line 2\\
|
|
820 line 2\ line 3\\
|
|
821 . line4/
|
|
822 6 ":e /tmp/$tty" doesn't work. ":e $uid" does. Is $tty not set because of
|
|
823 the way the shell is started?
|
|
824 6 Vi compatibility (optional): make "ia<CR><ESC>10." do the same strange
|
|
825 thing. (only repeat insert for the first line).
|
|
826
|
|
827
|
|
828 GTK+ 1 (OK in GTK 2):
|
|
829 8 When using "gvim -geom 40x30" or setting 'columns' in .gvimrc or with a
|
|
830 GUIEnter autocommand, the width is still set to fit the toolbar. Also
|
|
831 happens when changing the font. How to avoid that the toolbar specifies
|
|
832 the minimal window width?
|
|
833 8 When using a theme with different scrollbars (gtkstep), the scrollbars can
|
|
834 be too narrow. (Drazen Kacar)
|
|
835 8 Font "7x14" has a bold version "7x14bold". Try to find the bold font by
|
|
836 appending "bold" when there are not 14 dashes.
|
|
837
|
|
838 GTK+ GUI known bugs:
|
713
|
839 9 Crash with X command server over ssh. (Ciaran McCreesh, 2006 Feb 6)
|
7
|
840 8 GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
|
|
841 Machowski) They are displayed as separate characters. Problem in
|
|
842 creating a label?
|
497
|
843 8 GTK 2: Combining UTF-8 characters are sometimes not drawn properly.
|
|
844 Depends on the font size, "monospace 13" has the problem. Vim seems to do
|
|
845 everything right, must be a GTK bug. Is there a way to work around it?
|
7
|
846 9 Can't paste a Visual selection from GTK-gvim to vim in xterm or Motif gvim
|
|
847 when it is longer than 4000 characters. Works OK from gvim to gvim and
|
|
848 vim to vim. Pasting through xterm (using the shift key) also works.
|
|
849 It starts working after GTK gvim loses the selection and gains it again.
|
795
|
850 - Gnome2: When moving the toolbar out of the dock, so that it becomes
|
|
851 floating, it can no longer be moved. Therefore making it float has been
|
|
852 blocked for now.
|
|
853
|
7
|
854
|
|
855 Win32 GUI known bugs:
|
713
|
856 - Win32: tearoff menu window should have a scrollbar when it's taller than
|
|
857 the screen.
|
1125
|
858 8 non-ASCII font names don't work. Need to convert from 'encoding' and use
|
|
859 the wide functions.
|
7
|
860 8 On Windows 98 the unicows library is needed to support functions with UCS2
|
|
861 file names. Can we load unicows.dll dynamically?
|
874
|
862 8 When the primary monitor is below or right of the secondary monitor and
|
|
863 Vim is on the secondary monitor it will often move to the primary monitor.
|
|
864 Window position coordinates can be negative. (James Harvey)
|
7
|
865 8 The -P argument doesn't work very well with many MDI applications.
|
|
866 The last argument of CreateWindowEx() should be used, see MSDN docs.
|
|
867 Tutorial: http://win32assembly.online.fr/tut32.html
|
|
868 8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
|
|
869 WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
|
|
870 7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
|
871 pixels remains when typing spaces in front of a "D" ('guifont' set to
|
|
872 "lucida_console:h8").
|
|
873 6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
|
|
874 of ":only" is highlighted like the cursor. (Lipelis)
|
22
|
875 8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
|
|
876 characters to make Asian languages work. Win32 fonts contain both
|
|
877 type of characters.
|
7
|
878 7 When font smoothing is enabled, redrawing can become very slow. The reason
|
|
879 appears to be drawing with a transparent background. Would it be possible
|
|
880 to use an opaque background in most places?
|
|
881 8 Use another default for 'termencoding': the active codepage. Means that
|
|
882 when 'encoding' is changed typing characters still works properly.
|
|
883 Alternative: use the Unicode functions to obtain typed characters.
|
|
884 8 Win32: Multi-byte characters are not displayed, even though the same font
|
|
885 in Notepad can display them. (Srinath Avadhanula) Try with the
|
|
886 UTF-8-demo.txt page with Andale Mono.
|
|
887 7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
|
|
888 2004 May 9)
|
|
889 8 Win32: When clicking on the gvim title bar, which gives it focus, produces
|
|
890 a file-changed dialog, after clicking on a button in that dialog the gvim
|
|
891 window follows the mouse. The button-up event is lost. Only with
|
|
892 MS-Windows 98?
|
|
893 Try this: ":set sw ts", get enter-prompt, then change the file in a
|
|
894 console, go back to Vim and click "reload" in the dialog for the changed
|
|
895 file: Window moves with the cursor!
|
|
896 Put focus event in input buffer and let generic Vim code handle it?
|
|
897 8 Win32: When mouse is hidden and in the toolbar, moving it won't make it
|
|
898 appear. (Sami Salonen)
|
|
899 8 Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
|
|
900 comes available. (Poucet) It works OK on Win 98 but doesn't work on Win
|
|
901 NT 4.0. Leaves a grey area where the scrollbar was. ":set go+=r" also
|
|
902 doesn't work properly.
|
|
903 8 When Vim is minimized and when maximizing it a file-changed dialog pops
|
|
904 up, Vim isn't maximized. It should be done before the dialog, so that it
|
|
905 appears in the right position. (Webb)
|
|
906 9 When selecting at the more-prompt or hit-enter-prompt, the right mouse
|
|
907 button doesn't give popup menu.
|
|
908 At the hit-enter prompt CTRL-Y doesn't work to copy the modeless
|
|
909 selection.
|
|
910 On the command line, don't get a popup menu for the right mouse button.
|
|
911 Let the middle button paste selected text (not the clipboard but the
|
|
912 non-Visual selection)? Otherwise CTRL-Y has to be used to copy the text.
|
|
913 8 When 'grepprg' doesn't execute, the error only flashes by, the
|
|
914 user can hardly see what is wrong. (Moore)
|
|
915 Could use vimrun with an "-nowait" argument to only wait when an error
|
|
916 occurs, but "command.com" doesn't return an error code.
|
|
917 8 When the 'shell' cannot be executed, should give an appropriate error msg.
|
|
918 Esp. for a filter command, currently it only complains the file could not
|
|
919 be read.
|
|
920 7 Add an option to add one pixel column to the character width? Lucida
|
|
921 Console italic is wider than the normal font ("d" overlaps with next char).
|
|
922 Opposite of 'linespace': 'columnspace'.
|
|
923 7 At the hit-enter prompt scrolling now no longer works. Need to use the
|
|
924 keyboard to get around this. Pretend <CR> was hit when the user tries to
|
533
|
925 scroll?
|
7
|
926 7 Scrollbar width doesn't change when selecting other windows appearance.
|
|
927 Also background color of Toolbar and rectangle below vert. scrollbar.
|
|
928 7 "!start /min cmd" should run in a minimized window, instead of using
|
|
929 "/min" as the command name. (Rogall)
|
|
930 6 Drawing text transparently doesn't seem to work (when drawing part cursor).
|
|
931 8 CTRL key doesn't always work in combination with ALT key. It does work
|
|
932 for function keys, not for alphabetic characters. Perhaps this is because
|
|
933 CTRL-ALT is used by Windows as AltGr?
|
|
934 8 CTRL-- doesn't work for AZERTY, because it's CTRL-[ for QWERTY. How do we
|
|
935 know which keyboard is being used?
|
|
936 7 When scrolling, and a background color is dithered, the dither pattern
|
|
937 doesn't always join correctly between the scrolled area and the new drawn
|
|
938 area (Koloseike).
|
|
939 8 When gui_init_font() is called with "*", p_guifont is freed while it might
|
|
940 still be used somewhere. This is too tricky, do the font selection first,
|
|
941 then set the new font by name (requires putting all logfont parameters in
|
|
942 the font name).
|
|
943
|
|
944
|
|
945 Athena and Motif:
|
169
|
946 6 New Motif toolbar button from Marcin Dalecki:
|
|
947 - When the mouse pointer is over an Agide button the red becomes black.
|
|
948 Something with the way colors are specified in the .xpm file.
|
|
949 - The pixmap is two pixels smaller than it should be. The gap is filled
|
|
950 with grey instead of the current toolbar background color.
|
7
|
951 9 Can configure be changed to disable netbeans if the Xpm library is
|
|
952 required and it's missing?
|
|
953 8 When using the resource "Vim*borderwidth 2" the widgets are positioned
|
|
954 wrong.
|
|
955 9 XIM is disabled by default for SGI/IRIX. Fix XIM so that 'imdisable' can
|
|
956 be off by default.
|
237
|
957 9 XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto) For now,
|
7
|
958 keep XIM active at all times when the input method has the preediting
|
|
959 flag.
|
|
960 8 X11: A menu that contains an umlaut is truncated at that character.
|
|
961 Happens when the locale is "C", which uses ASCII instead of IS0-8859-1.
|
|
962 Is there a way to use latin1 by default? Gnome_init() seems to do this.
|
|
963 8 Perhaps use fontsets for everything?
|
|
964 6 When starting in English and switching the language to Japanese, setting
|
|
965 the locale with ":lang", 'guifontset' and "hi menu font=", deleting all
|
|
966 menus and setting them again, the menus don't use the new font. Most of
|
|
967 the tooltips work though...
|
|
968 7 Motif: when using a file selection dialog, the specified file name is not
|
|
969 always used (when specifying a filter or another directory).
|
|
970 8 When 'encoding' is different from the current locale (e.g., utf-8) the
|
|
971 menu strings don't work. Requires conversion from 'encoding' to the
|
|
972 current locale. Workaround: set 'langmenu'.
|
|
973
|
|
974
|
|
975 Athena GUI:
|
|
976 9 When dragging the scrollbar thumb very fast, focus is only obtained in
|
|
977 the scrollbar itself. And the thumb is no longer updated when moving
|
|
978 through files.
|
|
979 7 The file selector is not resizable. With a big font it is difficult to
|
|
980 read long file names. (Schroeder)
|
|
981 4 Re-write the widget attachments and code so that we will not have to go
|
|
982 through and calculate the absolute position of every widget every time the
|
|
983 window is refreshed/changes size. This will help the "flashing-widgets"
|
|
984 problem during a refresh.
|
|
985 5 When starting gvim with all the default colors and then typing
|
|
986 ":hi Menu guibg=cyan", the menus change color but the background of the
|
|
987 pullright pixmap doesn't change colors.
|
|
988 If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
|
|
989 colors as it should.
|
|
990 Allocating a new pixmap and setting the resource doesn't change the
|
|
991 pullright pixmap's colors. Why? Possible Athena bug?
|
|
992
|
|
993
|
|
994 Motif GUI:
|
713
|
995 - gui_mch_browsedir() is missing.
|
7
|
996 7 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
|
|
997 David Harrison says it's OK (it exists in Motif 1.2).
|
|
998 8 Lesstif: When deleting a menu that's torn off, the torn off menu becomes
|
|
999 very small instead of disappearing. When closing it, Vim crashes.
|
|
1000 (Phillipps)
|
|
1001
|
|
1002
|
|
1003 GUI:
|
|
1004 9 On Solaris, creating the popup menu causes the right mouse button no
|
|
1005 longer to work for extending the selection. (Halevy)
|
|
1006 9 When running an external program, it can't always be killed with CTRL-C.
|
387
|
1007 e.g., on Solaris 5.5, when using "K" (Keech). Other 'guipty' problems on
|
7
|
1008 Solaris 2.6. (Marley)
|
|
1009 9 On Solaris: Using a "-geometry" argument, bigger than the window where Vim
|
|
1010 is started from, causes empty lines below the cmdline. (raf)
|
|
1011 8 X11 GUI: When menu is disabled by excluding 'm' from 'guioptions', ALT key
|
|
1012 should not be used to trigger a menu (like the Win32 version).
|
|
1013 8 When setting 'langmenu', it should be effective immediately. Store both
|
|
1014 the English and the translated text in the menu structure. Re-generate
|
|
1015 the translation when 'langmenu' has changed.
|
|
1016 8 Basic flaw in the GUI code: NextScreen is updated before calling
|
|
1017 gui_write(), but the GUI code relies on NextScreen to represent the state
|
|
1018 of where it is processing the output.
|
|
1019 Need better separation of Vim core and GUI code.
|
|
1020 8 When fontset support is enabled, setting 'guifont' to a single font
|
|
1021 doesn't work.
|
|
1022 8 Menu priority for sub-menus for: Amiga, BeOS.
|
720
|
1023 8 When translating menus ignore the part after the Tab, the shortcut. So
|
|
1024 that the same menu item with a different shortcut (e.g., for the Mac) are
|
|
1025 still translated.
|
7
|
1026 8 Add menu separators for Amiga, RISCOS.
|
|
1027 8 Add way to specify the file filter for the browse dialog. At least for
|
|
1028 browse().
|
|
1029 8 Add dialog for search/replace to other GUIs? Tk has something for this,
|
|
1030 use that code? Or use console dialog.
|
|
1031 8 When selecting a font with the font dialog and the font is invalid, the
|
|
1032 error message disappears too quick.
|
169
|
1033 7 More features in the find/replace dialog:
|
|
1034 - regexp on/off
|
|
1035 - search in selection/buffer/all buffers/directory
|
|
1036 when all buffers/directory is used:
|
|
1037 - filter for file name
|
|
1038 when directory is used:
|
|
1039 - subdirectory on/off
|
|
1040 - top directory browser
|
7
|
1041 8 gui_check_colors() is not called at the right moment. Do it much later,
|
|
1042 to avoid problems.
|
|
1043 8 gui_update_cursor() is called for a cursor shape change, even when there
|
|
1044 are mappings to be processed. Only do something when going to wait for
|
|
1045 input. Or maybe every 100 ms?
|
|
1046 8 X11: When the window size is reduced to fit on screen, there are blank
|
|
1047 lines below the text and bottom scrollbar. "gvim -geometry 80x78+0+0".
|
|
1048 When the "+0+0" is omitted it works.
|
|
1049 8 When starting an external command, and 'guipty' set, BS and DEL are mixed
|
|
1050 up. Set erase character somehow?
|
|
1051 8 A dead circumflex followed by a space should give the '^' character
|
|
1052 (Rommel). Look how xterm does this.
|
|
1053 Also: Bednar has some code for dead key handling.
|
|
1054 Also: Nedit 5.0.2 with USE_XMIM does it right. (Gaya)
|
|
1055 8 The compose key doesn't work properly (Cepas). Both for Win32 and X11.
|
|
1056 7 The cursor in an inactive window should be hollow. Currently it's not
|
|
1057 visible.
|
|
1058 7 GUI on Solaris 2.5.1, using /usr/dt/..: When gvim starts, cursor is
|
|
1059 hollow, after window lowered/raised it's OK. (Godfrey)
|
|
1060 7 When starting GUI with ":gui", and window is made smaller because it
|
|
1061 doesn't fit on the screen, there is an extra redraw.
|
|
1062 8 When setting font with .Xdefaults, there is an extra empty line at the
|
|
1063 bottom, which disappears when using ":set guifont=<Tab>". (Chadzelek)
|
|
1064 8 When font shape changes, but not the size, doing ":set font=" does not
|
|
1065 redraw the screen with the new font. Also for Win32.
|
|
1066 When the size changes, on Solaris 2.5 there isn't a redraw for the
|
|
1067 remaining part of the window (Phillipps).
|
|
1068 - Flashes really badly in certain cases when running remotely from a Sun.
|
|
1069 4 Re-write the code so that the highlighting isn't changed multiple times
|
|
1070 when doing a ":hi clear". The color changes happen three or more times
|
|
1071 currently. This is very obvious on a 66Mhz 486.
|
|
1072
|
|
1073
|
|
1074 MSDOS/DJGPP:
|
|
1075 9 Pressing CTRL-C often crashes the console Vim runs in. (Ken Liao)
|
|
1076 When 'bioskey' isn't set it doesn't happen. Could be a problem with the
|
|
1077 BIOS emulation of the console. Version 5.6 already had this problem.
|
|
1078 8 DJGPP: "cd c:" can take us to a directory that no longer exists.
|
|
1079 change_drive() doesn't check this. How to check for this error?
|
|
1080 9 The 16 bit version runs out of memory very quickly. Should find unused
|
818
|
1081 code and reduce static data. Resetting 'writebackup' helps to be able to
|
|
1082 write a file.
|
7
|
1083 9 Crash when running on Windows 98 in a console window and pressing CTRL-C.
|
|
1084 Happens now and then. When debugging Vim in gdb this also happens. Since
|
|
1085 the console crashes, might be a bug in the DOS console. Resetting
|
|
1086 'bioskey' avoids it, but then CTRL-C doesn't work.
|
|
1087 9 DOS: Make CTRL-Fx and ALT-Fx work.
|
|
1088 CTRL-F1 = CE-5E, CTRL-F2 = CE-5F, .., CTRL-F10 = CE-67
|
|
1089 ALT-F1 = CE-68, ALT-F2 = CE-69, .., ALT-F10 = CE-71
|
|
1090 Shifted cursor keys produce same codes as unshifted keys. Use bioskey(2)
|
|
1091 to get modifier mask for <S-C-M-Fx>.
|
|
1092 Use K_SPECIAL/KS_MODIFIER codes to insert modifier mask in input stream?
|
|
1093 Make this work like in Win32 console.
|
|
1094 Mapping things like <M-A> doesn't work, because it generates an extended
|
|
1095 key code. Use a translation table?
|
|
1096 9 Can't read an opened swap file when the "share" command has not been used.
|
|
1097 At least ignore the swap files that Vim has opened itself.
|
|
1098 8 Use DJGPP 2.03.
|
|
1099 8 The Dos32 version (DJGPP) can't use long file names on Windows NT.
|
|
1100 Check if new package can be used (v2misc/ntlfn08[bs].zip).
|
|
1101 8 setlocale() is bogus.
|
|
1102 8 Vim busy waits for new characters or mouse clicks. Should put in some
|
|
1103 sort of sleep, to avoid eating 50% of the CPU time. Test on an unpatched
|
|
1104 Windows 95 system!
|
|
1105 8 DJGPP: when shell is bash, make fails. (Donahoe)
|
387
|
1106 7 Hitting CTRL-P twice quickly (e.g., in keyword completion) on a 8088
|
7
|
1107 machine, starts printer echo! (John Mullin).
|
|
1108 7 MSDOS 16 bit version can't work with COMSPEC that has an argument, e.g.:
|
|
1109 COMSPEC=C:\WINDOWS\COMMAND.COM /E:4096 (Bradley)
|
|
1110 Caused by BCC system() function (Borland "make" has the same problem).
|
|
1111 8 Mouse: handle left&right button pressed as middle button pressed. Add
|
|
1112 modifier keys shift, ctrl and alt.
|
|
1113 7 When too many files are open (depends on FILES), strange things happen.
|
|
1114 The Dos16 version runs out of memory, in the Dos32 version "!ls" causes a
|
|
1115 crash. Another symptom: .swp files are not deleted, existing files are
|
|
1116 "[New file]".
|
|
1117 7 DJGPP version doesn't work with graphics display mode. Switch to a mode
|
|
1118 that is supported?
|
|
1119 8 DJGPP: ":mode" doesn't work for many modes. Disable them.
|
|
1120 8 DJGPP: When starting in Ex mode, shouldn't clear the screen. (Walter
|
|
1121 Briscoe)
|
|
1122
|
|
1123
|
|
1124 MSDOS, OS/2 and Win32:
|
|
1125 8 OS/2: Add backtick expansion. Undefine NO_EXPANDPATH and use
|
|
1126 gen_expand_wildcards().
|
|
1127 8 OS/2: Add clipboard support? See example clipbrd.exe from Alexander
|
|
1128 Wagner.
|
|
1129 8 OS/2: Add Extended Attributes support and define HAVE_ACL.
|
|
1130 8 OS/2: When editing a file name "foo.txt" that is actually called FOO.txt,
|
|
1131 writing uses "foo.txt". Should obtain the real file name.
|
557
|
1132 8 Should $USERPROFILE be preferred above $HOMEDRIVE/$HOMEPATH? No, but it's
|
|
1133 a good fallback, thus use:
|
|
1134 $HOME
|
|
1135 $HOMEDRIVE$HOMEPATH
|
|
1136 SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_APPDATA, FALSE);
|
|
1137 $USERPROFILE
|
|
1138 SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_COMMON_APPDATA, FALSE);
|
|
1139 $ALLUSERSPROFILE
|
|
1140 $SYSTEMDRIVE\
|
|
1141 C:\
|
7
|
1142 8 Win32 console: <M-Up> and <M-Down> don't work. (Geddes) We don't have
|
|
1143 special keys for these. Should use modifier + key.
|
|
1144 8 Win32 console: caps-lock makes non-alpha keys work like with shift.
|
|
1145 Should work like in the GUI version.
|
|
1146 8 Environment variables in DOS are not case sensitive. Make a define for
|
|
1147 STRCMP_ENV(), and use it when comparing environment var names.
|
|
1148 8 Setting 'shellslash' has no immediate effect. Change all file names when
|
|
1149 it is set/reset? Or only use it when actually executing a shell command?
|
|
1150 8 When editing a file on a Samba server, case might matter. ":e file"
|
|
1151 followed by ":e FILE" will edit "file" again, even though "FILE" might be
|
|
1152 another one. Set last used name in buflist_new()? Fix do_ecmd(), etc.
|
|
1153 8 When a buffer is editing a file like "ftp://mach/file", which is not going
|
|
1154 to be used like a normal file name, don't change the slashes to
|
|
1155 backslashes. (Ronald Hoellwarth)
|
|
1156
|
|
1157
|
|
1158 Windows 95:
|
|
1159 8 Editing a file by it's short file name and writing it, makes the long file
|
|
1160 name disappear. Setting 'backupcopy' helps.
|
|
1161 Use FindFirstFile()->cAlternateFileName in fname_case() (George Reilly).
|
|
1162 8 Doing wildcard expansion, will match the short filename, but result in the
|
|
1163 long filename (both DJGPP and Win32).
|
|
1164
|
|
1165
|
|
1166 Win32 console:
|
|
1167 9 When editing a file by its short file name, it should be expanded into its
|
|
1168 long file name, to avoid problems like these: (Mccollister)
|
|
1169 1) Create a file called ".bashrc" using some other editor.
|
|
1170 2) Drag that file onto a shortcut or the actual executable.
|
|
1171 3) Note that the file name is something like BASHRC~1
|
|
1172 4) Go to File->Save As menu item and type ".bashrc" as the file name.
|
|
1173 5) Press "Yes" to indicate that I want to overwrite the file.
|
|
1174 6) Note that the message "File exists (add ! to override)" is displayed
|
|
1175 and the file is not saved.
|
|
1176 Use FindFirstFile() to expand a file name and directory in the path to its
|
|
1177 long name.
|
|
1178 8 Also implement 'conskey' option for the Win32 console version? Look at
|
|
1179 how Xvi does console I/O under Windows NT.
|
|
1180 7 Re-install the use of $TERM and support the use of different terminals,
|
|
1181 besides the console.
|
|
1182 8 Use of <altgr> modifier doesn't work? 5.3 was OK. (Garcia-Suarez/Guckes)
|
|
1183 9 Mapping <C-S-Tab> doesn't work correctly. How to see the difference with
|
|
1184 <C-S-i>?
|
|
1185 9 tmpnam() uses file in root of file system: "\asdf". That doesn't work on
|
|
1186 a Netware network drive. Use same function as for Win32 GUI?
|
|
1187 8 In os_win32.h, HAVE_STRICMP and HAVE_STRNICMP are defined only if __GNUC__
|
|
1188 is not defined. Shouldn't that be the other way around?
|
|
1189 7 Use SetConsoleCP() and SetConsoleOutputCP() to implement 'termencoding'?
|
|
1190 Avoids that input and output work differently. Need to be restored when
|
|
1191 exiting.
|
|
1192
|
|
1193
|
|
1194 Amiga:
|
|
1195 8 In mch_inchar() should use convert_input_safe() to handle incomplete byte
|
|
1196 sequences.
|
|
1197 9 In mch_expandpath() a "*" is to be expanded, but "\*" isn't. Remove
|
|
1198 backslashes in result.
|
|
1199 8 Executing a shell, only one option for 'shell' is separated. Should do
|
|
1200 all options, using white space separation.
|
|
1201
|
|
1202
|
|
1203 Macintosh:
|
713
|
1204 - GUI: gui_mch_browsedir() is missing.
|
9
|
1205 7 Patch to add 'transparency' option. Disadvantage: it's slow. (Eckehard
|
|
1206 Berns, 2004 May 9) http://ecki.to/vim/TransBack-2004-05-09.diff
|
|
1207 Needs more work. Add when someone really wants it.
|
7
|
1208 7 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
|
|
1209 Load the Perl library dynamically see Python sources file dynload_mac
|
|
1210 (Jack)
|
|
1211 dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
|
|
1212 8 Inputting Unicode characters does not work in the terminal. They appear
|
|
1213 to arrive as upper and lower bytes. (David Brown, 2004 April 17)
|
|
1214 8 Typing Unicode characters doesn't work at all in the GUI.
|
1125
|
1215 8 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
|
|
1216 2006 Sept 28)
|
7
|
1217 9 Problems in Carbon version for OS X: (Benji Fisher)
|
|
1218 - keyboard shortcuts in the menus get lost.
|
|
1219 8 The Vim/About menu doesn't work.
|
|
1220 8 ":gui" doesn't fork. Enabling the code in gui.c to fork causes a SEGV.
|
|
1221 8 Define vim_mkdir() for Macintosh.
|
|
1222 8 Define mch_writable() for Macintosh.
|
1125
|
1223 8 Some file systems are case-sensitive, some are not. Turn
|
|
1224 CASE_INSENSITIVE_FILENAME into an option, at least for completion.
|
7
|
1225 9 When DiskLock is running, using a swap file causes a crash. Appears to be
|
|
1226 a problem with writing a file that starts with a dot. (Giacalone)
|
|
1227 9 On G3 Mac, OS version 8, control strip causes characters messed up when
|
|
1228 scrolling (CTRL-L cleans it up). (Benji Fisher)
|
|
1229 9 On G3 Mac, OS version 8, variable-speed scrolling doesn't work, after two
|
|
1230 seconds of scrolling the screen freezes. (Benji Fisher)
|
|
1231 9 In mac_expandpath() check that handling of backslashes is done properly.
|
|
1232 8 Standard Mac shortcuts are missing. (Amerige)
|
|
1233 8 Handling of non-fixed width fonts is wrong. (Amerige)
|
|
1234
|
|
1235
|
|
1236 "Small" problems:
|
1624
|
1237 - Can't disable terminal flow control, to enable the use of CTRL-S and
|
|
1238 CTRL-Q. Add an option for it?
|
1125
|
1239 - When using e_secure in do_one_cmd() mention the command being executed,
|
|
1240 otherwise it's not clear where it comes from.
|
857
|
1241 9 For Turkish vim_tolower() and vim_toupper() also need to use utf_
|
|
1242 functions for characters below 0x80. (Sertacyildiz)
|
854
|
1243 9 When the last edited file is a help file, using '0 in a new Vim doesn't
|
1668
|
1244 edit the file as a help file. 'filetype' is OK, but 'iskeyword' isn't,
|
|
1245 file isn't readonly, etc.
|
7
|
1246 8 When an ":edit" is inside a try command and the ATTENTION prompt is used,
|
|
1247 the :catch commands are always executed, also when the file is edited
|
|
1248 normally. Should reset did_emsg and undo side effects. Also make sure
|
16
|
1249 the ATTENTION message shows up. Servatius Brandt works on this.
|
7
|
1250 8 ":g//" gives "Pattern not found error" with E486. Should not use the
|
|
1251 error number, it's not a regular error message.
|
|
1252 7 Vimtutor leaves escape sequence in terminal. This is the xterm response to
|
|
1253 requesting the version number. (Yasuhiro Matsumoto)
|
|
1254 8 When redirecting and using ":silent" the current column for displaying and
|
|
1255 redirection can be different. Use a separate variable to hold the column
|
|
1256 for redirection.
|
|
1257 7 The messages for "vim --help" and "vim --version" don't use
|
|
1258 'termencoding'.
|
1125
|
1259 - Could the hit-enter prompt be avoided when a message only overlaps the
|
|
1260 'showcmd' area? Clear that area when the next cmd is typed.
|
7
|
1261 8 When 'scrollbind' is set, a window won't scroll horizontally if the cursor
|
|
1262 line is too short. Add a word in 'scrollopt' to allow moving the cursor
|
|
1263 to longer line that is visible. A similar thing is done for the GUI when
|
|
1264 using the horizontal scrollbar.
|
|
1265 7 VisVim can only open one file. Hard to solve: each opened file is passed
|
|
1266 with a separate invocation, would need to use timestamps to know the
|
|
1267 invocations belong together.
|
|
1268 8 When giving a ":bwipeout" command a file-changed dialog may popup for this
|
|
1269 buffer, which is pointless. (Mike Williams)
|
|
1270 8 On MS-Windows ":make" doesn't show output while it is working. Use the
|
|
1271 tee.exe from http://unxutils.sourceforge.net/ ? About 16 Kbyte in the
|
|
1272 UnxUtils.zip archive.
|
|
1273 Alternate one: http://www.pramodx.20m.com/tee_for_win32.htm, but Walter
|
|
1274 Briscoe says it's not as good.
|
819
|
1275 8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
|
844
|
1276 8 When doing Insert mode completion a mapping cannot recursively call
|
|
1277 edit(), because the completion information is global. Put everything in
|
|
1278 an allocated structure?
|
1125
|
1279 6 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
7
|
1280 8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
|
|
1281 ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
|
|
1282 7 Output for ":scriptnames" and ":breaklist" should shorten the file names:
|
|
1283 use "~/" when possible.
|
|
1284 7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
|
|
1285 character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
|
|
1286 byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
|
|
1287 (like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
|
|
1288 8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
|
1289 defined.
|
|
1290 7 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
|
|
1291 ":insert" command, causing the following "endfunction" not to be found.
|
|
1292 Add skipping this perl construction inside function definitions.
|
|
1293 7 When 'ttimeoutlen' is 10 and 'timeoutlen' is 1000, there is a keycode
|
|
1294 "<Esc>a" and a mapping <Esc>x", when typing "<Esc>a" with half a second
|
|
1295 delay should not be interpreted as a keycode. (Hans Ginzel)
|
|
1296 7 ":botright 1 new" twice causes all window heights to be changed. Make the
|
|
1297 bottom window only bigger as much as needed.
|
|
1298 7 The Cygwin and MingW makefiles define "PC", but it's not used anywhere.
|
|
1299 Remove? (Dan Sharp)
|
|
1300 9 User commands use the context of the script they were defined in. This
|
|
1301 causes a "s:var" argument to unexpectedly use a variable in the defining
|
|
1302 script, not the calling script. Add an argument to ":command":
|
|
1303 "-keepcontext". Do replace <SID>, so that a function in the defining
|
|
1304 script can be called.
|
|
1305 8 The Japanese message translations for MS-Windows are called ja.sjis.po,
|
|
1306 but they use encoding cp932. Rename the file and check that it still
|
|
1307 works.
|
|
1308 8 A very long message in confirm() can't be quit. Make this possible with
|
|
1309 CTRL-C.
|
|
1310 7 clip_x11_own_selection() uses CurrentTime, that is not allowed. VNC X
|
|
1311 server has a problem with this. (Mark Waggoner) Remembering the timestamp
|
|
1312 of events isn't always possible. We don't get them in an xterm. GTK
|
|
1313 doesn't obtain the selection again when the timestamp differs, thus it
|
|
1314 won't work for GTK anyway.
|
|
1315 8 When the clipboard isn't supported: ":yank*" gives a confusing error
|
|
1316 message. Specifically mention that the register name is invalid.
|
237
|
1317 8 "gf" always excludes trailing punctuation characters. file_name_in_line()
|
7
|
1318 is currently fixed to use ".,:;!". Add an option to make this
|
|
1319 configurable?
|
|
1320 8 'hkmap' should probably be global-local.
|
|
1321 9 When "$" is in 'cpoptions' and folding is active, a "C" command changes
|
|
1322 the folds and resets w_lines_valid. The display updating doesn't work
|
|
1323 then. (Pritesh Mistry)
|
|
1324 8 Using ":s" in a function changes the previous replacement string. Save
|
|
1325 "old_sub" in save_search_patterns()?
|
1125
|
1326 8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
|
|
1327 is a multi-byte character.
|
7
|
1328 8 When appending to a file and 'patchmode' isn't empty, a backup file is
|
|
1329 always written, even when the original file already exists.
|
|
1330 7 When using "daw" on the last word in a file and this is a single letter,
|
|
1331 nothing is deleted. Should delete the letter and preceding white space.
|
|
1332 9 When getting focus while writing a large file, could warn for this file
|
|
1333 being changed outside of Vim. Avoid checking this while the file is being
|
|
1334 written.
|
|
1335 7 The message in bt_dontwrite_msg() could be clearer.
|
|
1336 8 The script ID that is stored with an option and displayed with ":verbose
|
|
1337 set" isn't reset when the option is set internally. For example when
|
|
1338 'foldlevel' is set from 'foldlevelstart'.
|
856
|
1339 8 Also store the line number with the script ID and use it for ":verbose",
|
|
1340 so that "set nocompatible" is found when it changes other option values.
|
1125
|
1341 When an option is set indirectly mention the command? E.g. when
|
|
1342 ":diffsplit" sets 'foldmethod'.
|
7
|
1343 8 In the fileformat dialog, "Cancel" isn't translated. Add a global
|
|
1344 variable for this. (Eduardo Fernandez)
|
|
1345 9 When editing a file with 'readonly' set, there is no check for an existing
|
|
1346 swap file. Then using ":write" (without making any changes) doesn't give
|
|
1347 a warning either. Should check for an existing swap file without creating
|
1698
|
1348 one. Unfinished patch by Ian Kelling, 2008 July 14.
|
7
|
1349 7 When 'showbreak' is set, the amount of space a Tab occupies changes.
|
|
1350 Should work like 'showbreak' is inserted without changing the Tabs.
|
|
1351 7 When 'mousefocus' is set and switching to another window with a typed
|
|
1352 command, the mouse pointer may be moved to a part of the window that's
|
|
1353 covered by another window and we lose focus. Only move in the y
|
|
1354 direction, not horizontally?
|
|
1355 8 ":hardcopy":
|
|
1356 - Using the cterm_color[] table is wrong when t_colors is > 16.
|
|
1357 - Need to handle unprintable characters.
|
|
1358 - Win32: On a B&W printer syntax highlighting isn't visible. Perform
|
|
1359 dithering to make grey text?
|
|
1360 - Add a flag in 'printoptions' to add an empty page to make the total
|
|
1361 number even. "addempty"? (Mike Williams)
|
24
|
1362 - Respect 'linebreak'. Perhaps also 'showbreak'?
|
7
|
1363 - Should interpreted CTRL-L as a page break.
|
|
1364 - Grey line numbers are not always readable. Add field in 'printoptions'.
|
|
1365 Default to black when no syntax highlighting.
|
|
1366 - Be able to print a window in diff mode.
|
|
1367 - Be able to specify a colorscheme to use for printing. And a separate
|
|
1368 one for B&W printing (if that can be detected).
|
|
1369 8 In Visual block mode with 'lbr' set, a change command doesn't insert the
|
|
1370 text in following lines where the linebreak changes.
|
|
1371 9 dosinst.c: The DJGPP version can't uninstall the Uninstall registry key on
|
|
1372 Windows NT. How to install a .inf file on Windows NT and how to detect
|
|
1373 that Windows NT is being used?
|
|
1374 8 When 'virtualedit' is "block,insert" and encoding is "utf-8", selecting a
|
|
1375 block of one double-wide character, then "d" deletes only half of it.
|
|
1376 8 When 'virtualedit' is set, should "I" in blockwise visual mode also insert
|
|
1377 in lines that don't extend into the block?
|
|
1378 8 With 'virtualedit' set, in Insert mode just after the end of line, CTRL-O
|
|
1379 yh does not yank the last character of the line. (Pavel Papushev)
|
|
1380 Doing "hl" first appears to make it work.
|
|
1381 8 With 'virtualedit' set it's possible to move into the blank area from
|
|
1382 'linebreak'.
|
|
1383 8 With 'virtualedit' set and 'selection' "exclusive", a Visual selection
|
|
1384 that ends in or after a tab, "d" doesn't delete (part of) the tab.
|
|
1385 (Helmut Stiegler)
|
|
1386 8 With 'virtualedit' set, a blockwise Visual selection that starts and ends
|
|
1387 in a tab, "<" shifts too much. (Helmut Stiegler)
|
|
1388 9 When jumping to a tag, the search pattern is put in the history. When
|
|
1389 'magic' is on, the pattern may not work. Translate the pattern depending
|
|
1390 on p_magic when putting it in the history? Alternative: Store value of
|
|
1391 'magic' in history. (Margo)
|
|
1392 9 optwin.vim: Restoring a mapping for <Space> or <CR> is not correct for
|
|
1393 ":noremap". Add "mapcmd({string}, {mode})? Use code from ":mkexrc".
|
|
1394 9 incsearch is incorrect for "/that/<Return>/this/;//" (last search pattern
|
|
1395 isn't updated).
|
|
1396 9 term_console is used before it is set (msdos, Amiga).
|
|
1397 9 Get out-of-memory for ":g/^/,$s//@/" on 1000 lines, this is not handled
|
|
1398 correctly. Get many error messages while redrawing the screen, which
|
|
1399 cause another redraw, etc.
|
|
1400 8 [<C-I> doesn't work when '*' is in 'iskeyword'. find_pattern_in_path()
|
|
1401 must escape special characters in the pattern.
|
|
1402 8 Vim can overwrite a read-only file with ":w!". ":w" can't overwrite an
|
|
1403 existing file, "w!" can, but perhaps not a read-only file? Then use
|
|
1404 ":w!!" for that.
|
|
1405 Or ask for permission to overwrite it (if file can be made writable) and
|
|
1406 restore file to readonly afterwards.
|
460
|
1407 Overwriting a file for which a swap file exists is similar issue.
|
7
|
1408 7 When compiled with "xterm_clipboard", startup can be slower and might get
|
|
1409 error message for invalid $DISPLAY. Try connecting to the X server in the
|
|
1410 background (forked), so that Vim starts up quicker? Connect as soon as
|
|
1411 the clipboard is to be used (Visual select mode starts, paste from
|
|
1412 clipboard)
|
|
1413 7 X11: Some people prefer to use CLIPBOARD instead of PRIMARY for the normal
|
|
1414 selection. Add an "xclipboard" argument to the 'clipboard' option? (Mark
|
|
1415 Waggoner)
|
|
1416 8 For xterm need to open a connection to the X server to get the window
|
|
1417 title, which can be slow. Can also get the title with "<Esc>[21t", no
|
|
1418 need to use X11 calls. This returns "<Esc>]l{title}<Esc>\".
|
34
|
1419 6 When the xterm reports the number of colors, a redraw occurs. This is
|
|
1420 annoying on a slow connection. Wait for the xterm to report the number of
|
|
1421 colors before drawing the screen. With a timeout.
|
7
|
1422 8 When the builtin xterm termcap contains codes that are not wanted, need a
|
|
1423 way to avoid using the builtin termcap.
|
|
1424 8 Xterm sends ^[[H for <Home> and ^[[F for <End> in some mode. Also
|
|
1425 recognize these keys? Mostly useful for xterm simulators, like gnometerm.
|
|
1426 See http://dickey.his.com/xterm/xterm.faq.html#xterm_pc_style.
|
837
|
1427 8 For xterm also recognize keypad up/down/left/right and insert.
|
7
|
1428 8 '[ and '] should be set to start/end of line when using a linewise operator
|
|
1429 (e.g., ":w").
|
|
1430 8 CTRL-A can't handle big "long" numbers, they become negative. Check for
|
|
1431 "-" character, if not present, use unsigned long.
|
|
1432 8 Make it possible to disable the special meaning of "#" in the first column
|
|
1433 for ">>".
|
|
1434 8 Add suspending with CTRL-Z at the "more" prompt, and when executing a long
|
|
1435 script in do_cmdline().
|
|
1436 8 When using 'hidden', many swap files will be open. When Vim runs into the
|
|
1437 maximum number of open files, error messages will appear. Detect that
|
|
1438 this problem is present, and close any hidden files that don't have
|
|
1439 changes.
|
|
1440 8 With 'viminfo' set such that the ".viminfo" file is written on a FAT
|
|
1441 filesystem, an illegal file name may be created: ".vim".
|
|
1442 8 For each buffer that is opened, the viminfo file is opened and read to
|
|
1443 check for file marks. This can be slow.
|
|
1444 7 In xterm, recognize both vt100 and vt220 cursor keys. Change
|
|
1445 add_termcode() to not remove an existing entry for a name, when it's
|
|
1446 needed.
|
|
1447 Need a generic solution to recognize different codes for the same key.
|
|
1448 8 Core dump within signal function: gdb doesn't show stack backtrace! Option
|
|
1449 to skip catch_signals()?
|
|
1450 9 Repeating a "cw" with "." doesn't work if the text was pasted from the
|
|
1451 clipboard. (Thomas Jones) It's because the menu/toolbar item exits Insert
|
|
1452 mode and uses "gP". How to fix this without breaking inserting a block of
|
|
1453 text?
|
|
1454 8 In Replace mode pasting from the clipboard (using menu or toolbar) inserts
|
|
1455 all the text. Add ":rmenu"?
|
|
1456 8 Pasting with the mouse in Replace mode inserts the text, instead of
|
|
1457 overwriting, when it is more than one line. Same for using <C-R>.
|
|
1458 9 CTRL-E and CTRL-Y don't work in small window when 'so' is 4 and lines are
|
|
1459 wrapping (Acevedo/in.226). E.g., when using CTRL-E, window height 7,
|
|
1460 window might actually scroll down when last line of buffer is displayed.
|
|
1461 --> Remember if the previous command was "cursor follows screen" or
|
|
1462 "screen follow cursor" and use this in cursupdate().
|
|
1463 7 tilde_replace() can only handle "~/", should also do "~user/".
|
|
1464 Get the list of home directories (from /etc/passwd? Use getpwent()) and
|
|
1465 use some clever algorithm to match a path with that. Find common strings
|
|
1466 in the list?
|
|
1467 8 When dragging status line with mouse, sometimes a jump when first clicking
|
|
1468 on the status line (caused by 'winheight'). Select window on button up,
|
|
1469 instead of on button down.
|
|
1470 8 Dragging the status line doesn't scroll but redraw.
|
|
1471 9 Evaluating 'statusline' in build_stl_str_hl() does not properly check for
|
|
1472 reaching the end of the available buffer.
|
1125
|
1473 Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
|
|
1474 May 14)
|
7
|
1475 8 When performing incremental search, should abort searching as soon as a
|
|
1476 character is typed.
|
|
1477 8 When the value of $MAKE contains a path, configure can't handle this.
|
|
1478 It's an autoconf bug. Remove the path from $MAKE to work around it.
|
|
1479 8 How to set VIMRC_FILE to \"something\" for configure? Why does this not
|
|
1480 work: CFLAGS='-DVIMRC_FILE=\"/mydir/myfile\"' ./configure
|
|
1481 8 The temporary file is sometimes not writable. Check for this, and use an
|
|
1482 alternate name when it isn't. Or add the 'temptemplate' option: template
|
|
1483 for the temp file name ":set temptemplate=/usr/tmp/?????.tmp".
|
|
1484 Also: Win32 version uses Windows temp directory, which might not work for
|
|
1485 cygwin bash.
|
|
1486 7 Get error "*, \+ or \( operand could be empty" for pattern "\(.\)\1\{3}".
|
|
1487 Remember flags for backreferences.
|
|
1488 7 When switching to Daylight Saving Time, Vim complains that a file has been
|
|
1489 changed since last read. Can we use a function that uses GMT?
|
|
1490 7 When completing an environment variable after a '$', check for file names
|
|
1491 that contain a '$' after all have been found.
|
|
1492 8 When "cm" termcap entry is missing, starting gvim shouldn't complain about
|
|
1493 it. (Lohner) Try out with "vt100" entry, cm replaced with cX.
|
|
1494 7 When an include file starts with "../", the check for already visiting
|
|
1495 this file doesn't work. Need to simplify the file name.
|
|
1496 7 The names and comments for the arguments of do_browse() are confusing.
|
|
1497 "dflt" isn't the default file name when "initdir" is not NULL and
|
|
1498 "initdir" is the default path to be used.
|
|
1499 7 When 'scrolloff' is exactly half the window height, "j" causes a scroll of
|
|
1500 two lines at a time. "k" doesn't do this. (Cory T. Echols)
|
|
1501 8 When write_viminfo() is used while there are many orphaned viminfo
|
|
1502 tempfiles writing the viminfo file fails. Give a clear error message so
|
|
1503 that the user knows he has to delete the files.
|
|
1504 7 It's possible to redefine a script-local function with ":func
|
|
1505 <SNR>123_Test()". (Krishna) Disallow this.
|
|
1506
|
|
1507
|
|
1508 I can't reproduce these (if you can, let me know how!):
|
|
1509 9 NT 4.0 on NTFS file system: Editing ".bashrc" (drag and drop), file
|
|
1510 disappears. Editing ".xyz" is OK. Also, drag&drop only works for three
|
|
1511 files. (McCollister)
|
|
1512
|
|
1513
|
|
1514 Problems that will (probably) not be solved:
|
835
|
1515 - GTK: when using the popup menu with spelling suggestions and releasing the
|
|
1516 right mouse button before the menu appears selecting an item with the
|
|
1517 right mouse button has no effect. GTK does not produce an event for this.
|
1698
|
1518 - GTK 2: Cannot use the file selector. When using it many things become
|
|
1519 slow. This is caused by some code in GTK that writes
|
|
1520 ~/.recently-used.xbel every time an event is handled. It assumes the main
|
|
1521 loop is never quit, which is a wrong assumption. Also, it overwrites the
|
|
1522 file with different file permissions, which is a privacy issue. This
|
|
1523 needs to be fixed in GTK. A solution in Vim would be really complicated.
|
|
1524 (2008 Jul 31)
|
34
|
1525 - xterm title: The following scenario may occur (esp. when running the Vim
|
|
1526 test script): Vim 1 sets the title to "file1", then restores the title to
|
162
|
1527 "xterm" with an ESC sequence when exiting. Vim 2 obtains the old title
|
34
|
1528 with an X library call, this may result in "file1", because the window
|
|
1529 manager hasn't processed the "xterm" title yet. Can apparently only be
|
|
1530 worked around with a delay.
|
7
|
1531 - In a terminal with 'mouse' set such that the mouse is active when entering
|
|
1532 a command line, after executing a shell command that scrolls up the
|
|
1533 display and then pressing ":": Selecting text with the mouse works like
|
|
1534 the display wasn't scrolled. Vim doesn't know how much the external
|
|
1535 command scrolled up the display. Use Shift to select text.
|
|
1536 - X windows: When $DISPLAY points to a X server where there is no access
|
|
1537 permission, trying to connect to the X server causes an error message.
|
|
1538 XtOpenDisplay() prints this directly, there is no way to avoid it.
|
|
1539 - X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim.
|
|
1540 This is caused by a fault in a X library function, can't be solved in Vim.
|
1125
|
1541 - Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin.
|
7
|
1542 - Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will
|
|
1543 be underlined, instead of in "Symbol". Motif doesn't let us specify which
|
|
1544 character gets the highlighting.
|
|
1545 - Moving the cursor removes color in color-xterm. This is a color-xterm
|
|
1546 problem! color-xterm ver. 6.1 beta 3 and later work properly.
|
|
1547 - In zsh, "gvim&" changes the terminal settings. This is a zsh problem.
|
|
1548 (Jennings)
|
|
1549 - Problem with HPterm under X: old contents of window is lost (Cosentino).
|
|
1550 - Amiga: When using quickfix with the Manx compiler we only get the first 25
|
|
1551 errors. How do we get the rest?
|
|
1552 - Amiga: The ":cq" command does not always abort the Manx compiler. Why?
|
237
|
1553 - Linux: A file with protection r--rw-rw- is seen readonly for others. The
|
7
|
1554 access() function in GNU libc is probably wrong.
|
|
1555 - MSDOS: When using smartdrive with write-back buffering, writing to a
|
|
1556 readonly floppy will cause problems. How to test for a writable floppy
|
|
1557 first?
|
|
1558 - MSDOS: Both 16 and 32 bit versions: File name expansion doesn't work for
|
|
1559 names that start with a dot. These used to be illegal file names.
|
|
1560 - When doing a CTRL-Z and typing a command for the shell, while Vim is busy
|
|
1561 (e.g. writing a file), the command for the shell is sometimes eaten by Vim,
|
|
1562 because the terminal mode is changed from RAW to CBREAK.
|
|
1563 - An old version of GNU tgoto can't handle the terminfo code for "AF". The
|
|
1564 "%p1" is interpreted as "%p" and "1", causing color not to be working.
|
|
1565 Fix: Change the "%p1" in the "AF" and "AB" terminfo entries to "%p".
|
|
1566 (Benzinger).
|
|
1567 - When running an external command from the GUI, typeahead is going to that
|
|
1568 program, not to Vim. It looks like the shell eats the characters, Vim
|
|
1569 can't get back what the external command didn't use.
|
|
1570 - Win32 GUI: Error code from external command not returned in shell_error.
|
|
1571 It appears that cmd.exe and command.com don't return an error code.
|
|
1572 - Win32 GUI: The Toolbar is a bit too high when the flat style is being
|
|
1573 used. We don't have control over the height of the Toolbar.
|
|
1574 - Win32: All files created on the day of switching from winter to summer
|
|
1575 time cause "changed since editing started" messages. It goes away when
|
|
1576 the file is written again the next day, or the timezone is adjusted.
|
|
1577 DJGPP version is OK. (Zaimi) Looks like a problem with the Win32 library.
|
|
1578 Rebooting doesn't help. Time stamps look OK in directory. (Penn)
|
|
1579 Is this on FAT (stores wall clock time) or NTFS (stores UTS)?
|
|
1580 - Win32, MS-Windows XP: $HOME uses the wrong drive when the user profiles
|
|
1581 are not on the boot disk. This is caused by a wrong value of $HOMEDRIVE.
|
|
1582 This is a bug in XP, see MSKB article 818134.
|
|
1583 - SunOS 5.5.1 with Motif: The file open dialog does not have a horizontal
|
|
1584 scroll bar for the "files" selection. This is a problem in the Motif
|
|
1585 libraries, get a patch from Sun.
|
|
1586 - Solaris 2.6 with GTK and Perl: gvim crashes when started. Problem with X
|
|
1587 input method called from GDK code. Without Perl it doesn't crash.
|
|
1588 - VMS: Vimdiff doesn't work with the VMS diff, because the output looks
|
|
1589 different. This makes test 47 fail. Install a Unix-compatible diff.
|
|
1590 - VMS v7.1 and older: Tests 21 and 32 fail. From VMS v7.1-2 and newer Vim
|
|
1591 does not have this behavior. (Zoltan Arpadffy)
|
|
1592 - Win32 GUI: mouse wheel always scrolls rightmost window. The events arrive
|
|
1593 in Vim as if the rightmost scrollbar was used.
|
|
1594 - GTK with Gnome: Produces an error message when starting up:
|
|
1595 Gdk-WARNING **: locale not supported by C library
|
|
1596 This is caused by the gnome library gnome_init() setting $LC_CTYPE to
|
|
1597 "en_US". Not all systems support this locale name, thus causing the
|
|
1598 error. Hopefully a newer version of GTK/Gnome fixes this problem.
|
|
1599 - GTK 2: With this mapping the hit-enter prompt is _sometimes_ below the
|
|
1600 screen, at other times there is a grey area below the command line:
|
|
1601 :nmap <F11> :if &guioptions=~'m' \| set guioptions-=m \| else \| set guioptions+=m \| endif<cr>
|
|
1602 - GTK: When pasting a selection from Vim to xclipboard gvim crashes with a
|
|
1603 ABRT signal. Probably an error in the file gdkselection.c, the assert
|
|
1604 always fails when XmbTextListToTextProperty() fails. (Tom Allard)
|
10
|
1605 - GTK 2: gives an assertion error for every non-builtin icon in the toolbar.
|
|
1606 This is a GTK 2.4.x bug, fixed in GTK 2.4.2. (Thomas de Grenier de Latour)
|
7
|
1607 - When using an xterm that supports the termresponse feature, and the 't_Co'
|
|
1608 termcap option was wrong when Vim started, it will be corrected when the
|
|
1609 termresponse is received. Since the number of colors changes, the
|
|
1610 highlighting needs to be initialized again. This may cause colors defined
|
|
1611 in the vimrc file to be lost.
|
|
1612 - On Windows NT 4.0 the number of files passed to Vim with drag&drop and
|
|
1613 "Edit with Vim" is limited. The maximum command line length is 255 chars.
|
|
1614
|
|
1615 --------------------- extensions and improvements ----------------------
|
|
1616 *extensions-improvements*
|
|
1617
|
713
|
1618 Didn't make it into Vim 7.0:
|
|
1619 - Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
|
|
1620 can be selected with CTRL-V. Allow '$' (end of line) for col2.
|
|
1621 - Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye.
|
|
1622 Should work like an IDE. Try to keep it generic. Now found here:
|
|
1623 http://clewn.sf.net.
|
|
1624 And the idevim plugin/script.
|
|
1625 To be able to start the debugger from inside Vim: For GUI run a program
|
|
1626 with a netbeans connection; for console: start a program that splits the
|
|
1627 terminal, runs the debugger in one window and reconnect Vim I/O to the
|
|
1628 other window.
|
|
1629 Wishes for NetBeans commands:
|
|
1630 - make it possible to have 'defineAnnoType' also handle terminal colors.
|
|
1631 - send 'balloonText' events for the cursor position (using CursorHold ?)
|
|
1632 in terminal mode.
|
|
1633 - ECLIPSE plugin. Problem is: the interface is very complicated. Need to
|
|
1634 implement part in Java and then connect to Vim. Some hints from Alexandru
|
|
1635 Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
|
|
1636 198 standard http://www.jcp.org/en/jsr/detail?id=198.
|
|
1637 Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
|
|
1638 Plugin that uses a terminal emulator: http://vimplugin.sf.net
|
1125
|
1639 And another one: http://www.satokar.com/viplugin/index.php
|
713
|
1640 - STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
|
|
1641 Especially when using the scrollbar. Typing a cursor-movement command
|
|
1642 scrolls back to where the cursor is.
|
|
1643 - Running a shell command from the GUI still has limitations. Look into how
|
|
1644 the terminal emulator of the Vim shell project can help:
|
|
1645 http://vimshell.wana.at
|
|
1646 - Add Lua interface? (Wolfgang Oertl)
|
|
1647 8 Add a command to jump to a certain kind of tag. Allow the user to specify
|
|
1648 values for the optional fields. E.g., ":tag size type=m".
|
|
1649 Also allow specifying the file and command, so that the result of
|
|
1650 taglist() can be used.
|
769
|
1651 - X11: Make it possible to run Vim inside a window of another program.
|
|
1652 This can be done with XReparentWindow(). But how exactly?
|
713
|
1653
|
|
1654
|
7
|
1655 Documentation:
|
1125
|
1656 8 List of Vim runtime directories. dotvim.txt from Charles Campbell, 2007
|
|
1657 Feb 20.
|
36
|
1658 8 The GUI help should explain the Find and Find/Replace dialogs. Add a link
|
|
1659 to it from ":promptrepl" and ":promptfind".
|
22
|
1660 8 List of options should mention whether environment variables are expanded
|
|
1661 or not.
|
7
|
1662 8 Extend usr_27.txt a bit. (Adam Seyfarth)
|
|
1663 7 Add a section on debugging scripts in the user manual.
|
|
1664 9 Make the Reference Manual more precise. For each command mention:
|
|
1665 - change to cursor position and curswant
|
|
1666 - if it can be undone (u/CTRL-R) and redone (.)
|
|
1667 - how it works for folded lines
|
|
1668 - how it works with multi-byte characters
|
|
1669 9 In change.txt, remark about Javadoc isn't right. Right alignment would
|
|
1670 work too.
|
|
1671 8 Spread the windows commands over the other files. For example, ":stag"
|
|
1672 should be with ":tag". Cross-link with tags to avoid too much double
|
|
1673 text.
|
|
1674 8 Add tags for all features, e.g. "gui_running".
|
|
1675 7 MS-Windows: When a wrong command is typed with an ALT key, give a hint to
|
|
1676 look at the help for 'winaltkeys'.
|
|
1677 7 Add a help.vim plugin that maps <Tab> to jump to the next tag in || and
|
|
1678 <C-Tab> (and <S-Tab>) to the previous tag.
|
1624
|
1679 Patch by Balazs Kezes, 2007 Dec 30. Remark from A. Politz.
|
7
|
1680 - Check text editor compendium for vi and Vim remarks.
|
|
1681
|
|
1682
|
|
1683 Help:
|
|
1684 - First try using the ":help" argument literally, before using it as a
|
|
1685 pattern. And then match it as part of a tag.
|
|
1686 - When a help item has multiple matches make it possible to use ":tn" to go
|
|
1687 to the other matches.
|
|
1688 - Support a way to view (and edit) .info files.
|
|
1689 - Default mapping for help files: <Tab> to position cursor on next |:tag|.
|
|
1690 - Implement a "sticky" help window, some help text lines that are always
|
|
1691 displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file,
|
|
1692 user can edit it to insert his favorite commands, new account can contain a
|
|
1693 default contents.
|
|
1694 - Make 'winminheight' a local option, so that the user can set a minimal
|
|
1695 height for the help window (and other windows).
|
|
1696 - ":help :s^I" should expand to ":help :substitute".
|
|
1697 - Make the help key (<F1>) context sensitive?
|
|
1698 - Learn mode: show short help while typing commands.
|
|
1699
|
|
1700
|
|
1701 User Friendlier:
|
419
|
1702 8 Windows install with NSIS: make it possible to do a silent install, see
|
|
1703 http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
|
7
|
1704 8 Windows install with install.exe: Use .exe instead of .bat files for
|
|
1705 links, so that command line arguments are passed on unmodified? (Walter
|
|
1706 Briscoe)
|
|
1707 8 Windows install: Be able to associate Vim with a selection of file types?
|
|
1708 8 Windows uninstall: Have uninstal.c delete the vimfiles directories that
|
|
1709 dosinst.c creates. List the contents of the directory (recursively) if
|
|
1710 the user asks for it. Requires an implementation of "rm -rf".
|
|
1711 8 Remember the name of the vimrc file that was used (~/.vimrc, $VIM/_vimrc,
|
|
1712 $HOME/_vimrc, etc.) and add "edit vimrc" to the File menu.
|
|
1713 - Add a way to save local settings and mappings into a new plugin file.
|
|
1714 ":mkplugin <file>"?
|
|
1715 8 Add ":plugininstall" command. Can be used to install a plugin file that
|
|
1716 includes documentation. Let the user select a directory from
|
|
1717 'runtimepath'.
|
|
1718 " Vim plugin
|
|
1719 <main plugin code>
|
|
1720 " >>> plugin help start <<<
|
|
1721 <plugin docs>
|
|
1722 - Add mappings local to a window: ":map <window> ..."?
|
|
1723 9 Add buffer-local menu. Should offer a choice between removing the menu or
|
|
1724 disabling it. Be careful that tear-offs don't disappear (keep one empty
|
|
1725 item?).
|
|
1726 Alternative: use BufEnter and BufLeave autocommands.
|
|
1727 8 make a vimtutor script for Amiga and other systems.
|
|
1728 7 Add the arguments for configure to the ":version" output?
|
387
|
1729 7 When Vim detects a file is being edited elsewhere and it's a gvim session
|
|
1730 of the same user it should offer a "Raise" button, so that the other gvim
|
|
1731 window can be displayed. (Eduard)
|
640
|
1732 8 Support saving and restoring session for X windows? It should work to do
|
|
1733 ":mksession" and use "-S fname" for the restart command. The
|
|
1734 gui_x11_wm_protocol_handler() already takes care of the rest.
|
|
1735 global_event_filter() for GTK.
|
7
|
1736
|
|
1737
|
693
|
1738 Tab pages:
|
|
1739 9 GUI implementation for the tab pages line for other systems.
|
1125
|
1740 7 GUI: Control over the appearance of the text in the labels (bold, color,
|
|
1741 font, etc.)
|
|
1742 9 Make it possible to drag a tab page label to another position with the
|
|
1743 mouse.
|
693
|
1744 8 Make GUI menu in tab pages line configurable. Like the popup menu.
|
838
|
1745 8 balloons for the tab page labels that are shortened to show the full path.
|
693
|
1746 8 :tabmove +N move tab page N pages forward
|
|
1747 8 :tabmove -N move tab page N pages backward
|
|
1748 7 :tabdup duplicate the tab with all its windows.
|
|
1749 7 Option to put tab line at the left or right? Need an option to specify
|
1226
|
1750 its width. It's like a separate window with ":tabs" output.
|
693
|
1751 7 Add local variables for each tab page?
|
|
1752 8 Add local options for each tab page? E.g., 'diffopt' could differ between
|
|
1753 tab pages.
|
|
1754 7 Add local highlighting for each tab page?
|
1125
|
1755 7 Add local directory for tab pages? How would this interfere with
|
|
1756 window-local directories?
|
693
|
1757
|
|
1758
|
388
|
1759 Spell checking:
|
1668
|
1760 - have some way not to give spelling errors for a range of characters.
|
|
1761 E.g. for Chinese and other languages with specific characters for which we
|
|
1762 don't have a spell file. Useful when there is also text in other
|
|
1763 languages in the file.
|
1125
|
1764 - Support more regions? Caolan McNamara argues it's needed for es_XX.
|
|
1765 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777
|
|
1766 - Unicode defines another quote character: 0x2019. Use it as an equivalent
|
|
1767 of a single quote, thus use it as a word character like a quote and match
|
|
1768 with words, replacing the curly quote with a single quote.
|
|
1769 - Could filter é things for HTML before doing spell checking.
|
|
1770 Similarly for TeX.
|
860
|
1771 - The Hungarian spell file uses four extra characters in the FOL/UPP/LOW
|
|
1772 items than other spell files with the ISO-8859-2 encoding, that causes
|
|
1773 problem when changing 'spelllang'. There is no obvious way to fix this.
|
827
|
1774 - Considering Hunspell 1.1.4:
|
|
1775 What does MAXNGRAMSUGS do?
|
|
1776 Is COMPLEXPREFIXES necessary when we have flags for affixes?
|
1624
|
1777 - Support spelling words in CamelCase as if they were two separate words.
|
|
1778 Requires some option to enable it. (Timothy Knox)
|
1125
|
1779 - There is no Finnish spell checking file. For openoffic Voikko is now
|
|
1780 used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
|
|
1781 (Teemu Likonen)
|
827
|
1782 8 ":mkspell" still takes much too long in Hungarian dictionary from
|
|
1783 hunspell. Only solution appears to be to postpone secondary suffixes.
|
|
1784 8 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
|
|
1785 WFP_COMPPERMIT and WFP_COMPFORBID
|
|
1786 8 implement use of <compoptions> in .spl file:
|
|
1787 implement CHECKCOMPOUNDREP: when a compound word seems to be OK apply REP
|
1668
|
1788 items and check if the result is a valid word.
|
827
|
1789 implement CHECKCOMPOUNDDUP
|
|
1790 implement CHECKCOMPOUNDTRIPLE
|
|
1791 Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
|
|
1792 How is it supposed to work?
|
|
1793 8 implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
|
819
|
1794 - Add a command the repeats ]s and z=, showing the misspelled word in its
|
|
1795 context. Thus to spell-check a whole file.
|
700
|
1796 - suggestion for "KG" to "kg" when it's keepcase.
|
821
|
1797 - For flags on affixes: Use a "AFFCOMPSET" flag; means the compound flags of
|
|
1798 the word are not used.
|
798
|
1799 - Support breakpoint character ? 0xb7 and ignore it? Makes it possible to
|
713
|
1800 use same wordlist for hyphenation.
|
809
|
1801 - Compound word is accepted if nr of words is <= COMPOUNDWORDMAX OR nr of
|
501
|
1802 syllables <= COMPOUNDSYLMAX. Specify using AND in the affix file?
|
625
|
1803 - NEEDCOMPOUND also used for affix? Or is this called ONLYINCOMPOUND now?
|
|
1804 Or is ONLYINCOMPOUND only for inside a compound, not at start or end?
|
501
|
1805 - Do we need a flag for the rule that when compounding is done the following
|
|
1806 word doesn't have a capital after a word character, even for Onecap words?
|
|
1807 - New hunspell home page: http://hunspell.sourceforge.net/
|
538
|
1808 - Version 1.1.0 is out now, look into that.
|
501
|
1809 - Lots of code depends on LANG, that isn't right. Enable each mechanism
|
|
1810 in the affix file separately.
|
|
1811 - Example with compounding dash is bad, gets in the way of setting
|
809
|
1812 COMPOUNDMIN and COMPOUNDWORDMAX to a reasonable value.
|
501
|
1813 - PSEUDOROOT == NEEDAFFIX
|
|
1814 - COMPOUNDROOT -> COMPOUNDED? For a word that already is a compound word
|
|
1815 Or use COMPOUNDED2, COMPOUNDED3, etc.
|
700
|
1816 8 Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
|
|
1817 obtain). But new Myspell wordlist will come (Hagen)
|
501
|
1818 - CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, then
|
|
1819 the word must also have a suffix marked with the CIRCUMFIX flag. It's a
|
|
1820 bit primitive, since only one flag is used, which doesn't allow matching
|
|
1821 specific prefixes with suffixes.
|
|
1822 Alternative:
|
|
1823 PSFX {flag} {pchop} {padd} {pcond} {schop} {sadd}[/flags] {scond}
|
|
1824 We might not need this at all, you can use the NEEDAFFIX flag and the
|
|
1825 affix which is required.
|
|
1826 - When a suffix has more than one syllable, it may count as a word for
|
809
|
1827 COMPOUNDWORDMAX.
|
501
|
1828 - Add flags to count extra syllables in a word. SYLLABLEADD1 SYLLABLEADD2,
|
|
1829 etc.? Or make it possible to specify the syllable count of a word
|
|
1830 directly, e.g., after another slash: /abc/3
|
625
|
1831 - MORPHO item in affix file: ignore TAB and morphological field after
|
|
1832 word/flags and affix.
|
501
|
1833 - Implement multiple flags for compound words and CMP item?
|
|
1834 Await comments from other spell checking authors.
|
|
1835 - Also see tklspell: http://tkltrans.sourceforge.net/
|
388
|
1836 8 Charles Campbell asks for method to add "contained" groups to existing
|
|
1837 syntax items (to add @Spell).
|
|
1838 Add ":syntax contains {pattern} add=@Spell" command? A bit like ":syn
|
|
1839 cluster" but change the contains list directly for matching syntax items.
|
|
1840 - References: MySpell library (in OpenOffice.org).
|
|
1841 http://spellchecker.mozdev.org/source.html
|
|
1842 http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
|
|
1843 author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
|
1624
|
1844 8 It is currently not possible to mark "can not" as rare, because "can" and
|
|
1845 "not" are good words. Find a way to let "rare" overrule "good"?
|
388
|
1846 8 Make "en-rare" spell file? Ask Charles Campbell.
|
|
1847 8 The English dictionaries for different regions are not consistent in their
|
|
1848 use of words with a dash.
|
|
1849 7 Insert mode completion mechanism that uses the spell word lists.
|
|
1850 8 Add hl groups to 'spelllang'?
|
|
1851 :set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
|
|
1852 More complicated: Regions with different languages? E.g., comments
|
|
1853 in English, strings in German (po file).
|
|
1854
|
|
1855
|
7
|
1856 Diff mode:
|
1624
|
1857 9 Instead invoking an external diff program, use builtin code. One can be
|
|
1858 found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
|
7
|
1859 8 Use diff mode to show the changes made in a buffer (compared to the file).
|
|
1860 Use an unnamed buffer, like doing:
|
|
1861 new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
|
557
|
1862 Also show difference with the file when editing started? Should show what
|
|
1863 can be undone. (Tom Popovich)
|
7
|
1864 7 Add cursor-binding: when moving the cursor in one diff'ed buffer, also
|
|
1865 move it in other diff'ed buffers, so that CTRL-W commands go to the same
|
|
1866 location.
|
|
1867
|
|
1868
|
|
1869 Folding:
|
569
|
1870 (commands still available: zI zJ zK zp zP zq zQ zV zy zY;
|
|
1871 secondary: zB zS zT zZ, z=)
|
1125
|
1872 8 Vertical folds: looks like vertically split windows, but the cursor moves
|
|
1873 through the vertical separator, separator moves when scrolling.
|
40
|
1874 8 Add "z/" and "z?" for searching in not folded text only.
|
1125
|
1875 9 Add search pattern item to only match in closed or open fold and/or fold
|
|
1876 with certain level. Allows doing ":g/pat/cmd" to work on closed folds.
|
7
|
1877 8 Add different highlighting for a fold line depending on the fold level.
|
|
1878 (Noel Henson)
|
237
|
1879 7 Use "++--", "+++--" for different levels instead of "+---" "+----".
|
7
|
1880 8 When a closed fold is displayed open because of 'foldminlines', the
|
|
1881 behavior of commands is still like the fold is closed. How to make the
|
|
1882 user aware of this?
|
|
1883 8 Add an option 'foldskip' with values like 'foldopen' that specifies which
|
|
1884 commands skip over a closed fold.
|
|
1885 8 "H" and "L" count buffer lines instead of window lines. (Servatius Brandt)
|
|
1886 8 Add a way to add fold-plugins. Johannes Zellner has one for VB.
|
|
1887 7 When using manual folding, the undo command should also restore folds.
|
36
|
1888 - Allow completely hiding a closed fold. E.g., by setting 'foldtext' to an
|
|
1889 empty string. Require showing a character in 'foldcolumn' to avoid the
|
|
1890 missing line goes unnoticed.
|
|
1891 How to implement this?
|
7
|
1892 - When pressing the down arrow of a scrollbar, a closed fold doesn't scroll
|
|
1893 until after a long time. How to make scrolling with closed folds
|
|
1894 smoother?
|
|
1895 - When creating a session, also store folds for buffers in the buffer list,
|
|
1896 using the wininfo in wi_folds.
|
860
|
1897 - When currently editing the first file in the argument list the session
|
|
1898 file can contain:
|
|
1899 args version.c main.c
|
|
1900 edit version.c
|
|
1901 Can editing version.c twice be avoided?
|
7
|
1902 - 'foldmethod' "textobject": fold on sections and paragraph text objects.
|
|
1903 - Add 'hidecomment' option: don't display comments in /* */ and after //.
|
36
|
1904 Or is the conceal patch from Vince Negri a more generic solution?
|
625
|
1905 - "zuf": undo change in manual fold. "zUf" redo change in manual fold. How
|
|
1906 to implement this?
|
7
|
1907 - "zJ" command: add the line or fold below the fold in the fold under the
|
|
1908 cursor.
|
708
|
1909 - 'foldmethod' "syntax": "fold=3" argument: set fold level for a region or
|
|
1910 match.
|
7
|
1911 - Apply a new foldlevel to a range of lines. (Steve Litt)
|
36
|
1912 8 Have some way to restrict commands to not folded text. Also commands like
|
7
|
1913 searches.
|
|
1914
|
|
1915
|
|
1916 Multi-byte characters:
|
713
|
1917 - When editing a file with both utf-8 and latin1 text Vim always falls back
|
|
1918 to latin1. Add a command to convert the latin1 characters to utf-8?
|
|
1919 :unmix utf-8,latin1 filename
|
|
1920 Would only work when 'encoding' is utf-8.
|
7
|
1921 9 When the tail byte of a double-byte character is illegal (e.g., a CR), the
|
|
1922 display is messed up (Yasuhiro Matsumoto). Should check for illegal
|
|
1923 double-byte characters and display them differently (display each single
|
|
1924 byte).
|
|
1925 8 Add an item in 'fileencodings' to check the first lines of a file for
|
|
1926 the encoding. See Python PEP: http://www.python.org/peps/pep-0263.html.
|
|
1927 To avoid getting a wrong encoding only accept something Emacs-like:
|
|
1928 "-*- coding: enc-na_me.foo -*-" and "-*- coding= enc-na_me.foo -*-"
|
|
1929 Match with "-\*-\s*coding[:=]\s*\([::word::-_.]\+\)\s*-\*-" and use first
|
|
1930 item.
|
|
1931 8 Add an item in 'fileencodings' to check the first line of an XML file for
|
237
|
1932 the encoding. <?xml version="1.0" encoding="UTF-8"?> Or "charset=UTF-8"?
|
|
1933 For HTML look for "charset=utf-8".
|
7
|
1934 8 The quickfix file is read without conversion, thus in 'encoding'. Add an
|
|
1935 option to specify the encoding of the errorfile and convert it. Also for
|
36
|
1936 ":grep" and ":helpgrep".
|
38
|
1937 More generic solution: support a filter (e.g., by calling a function).
|
7
|
1938 8 When a file was converted from 'fileencoding' to 'encoding', a tag search
|
|
1939 should also do this on the search pattern. (Andrzej M. Ostruszka)
|
1624
|
1940 8 When filtering changes the encoding 'fileencoding' may not work. E.g.,
|
|
1941 when using xxd and 'fileencoding' is "utf-16". Add an option to set a
|
|
1942 different fileencoding for filter output?
|
7
|
1943 7 When converting a file fails, mention which byte could not be converted,
|
|
1944 so that the user can fix the problem.
|
|
1945 8 Add configure option to be able to disable using the iconv library. (Udo
|
|
1946 Schweigert)
|
|
1947 9 'aleph' should be set to 1488 for Unicode. (Zvi Har'El)
|
|
1948 8 Should add test for using various commands with multi-byte characters.
|
|
1949 8 'infercase' doesn't work with multi-byte characters.
|
|
1950 8 toupper() function doesn't handle byte count changes.
|
1624
|
1951 7 Searching and composing characters:
|
|
1952 When searching, should order of composing characters be ignored?
|
|
1953 Add special item to match with a composing character, zero-width, so that
|
|
1954 one can replace a base character and keep the composing characters.
|
|
1955 Add a special item to match with a composing character, so that composing
|
|
1956 characters can be manipulated.
|
|
1957 Add a modifier to ignore composing characters, only compare base
|
|
1958 characters. Useful for Hebrew (Ron Aaron)
|
7
|
1959 8 Should implement 'delcombine' for command line editing.
|
|
1960 8 Detect overlong UTF-8 sequences and handle them like illegal bytes.
|
|
1961 8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
|
|
1962 characters.
|
|
1963 8 UTF-8: "r" in Visual mode doesn't take composing characters.
|
|
1964 8 UTF-8: When there is a precomposed character in the font, use it instead
|
|
1965 of a character and a composing character. See xterm for an example.
|
|
1966 7 When a character can't be displayed, display its digraph instead.
|
|
1967 'display' option to specify this.
|
|
1968 7 Use ideas for nl_langinfo() from Markus Kuhn in enc_default():
|
|
1969 (www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c)
|
|
1970 - GTK and Win32: Allow selecting fonts for 'guifontset' with the
|
|
1971 fontselector somehow.
|
|
1972 - GTK and Win32: make it possible to set the font for the menu to make it
|
|
1973 possible to have 'encoding' different from the current locale.
|
|
1974 - dbcs_class() only works for Japanese and Korean. Implement this for
|
|
1975 other encodings. The "euc-jp" and "euc-kr" choices might be wrong.
|
|
1976 - Find some way to automatically select the right GUI font or fontset,
|
|
1977 depending on the default value of 'encoding'.
|
|
1978 Irrelevant in the GTK+ 2 GUI so long as UTF-8 is used.
|
|
1979 For Windows, the charset_pairs[] table could be used. But how do we know
|
|
1980 if a font exists?
|
|
1981 - Do keyboard conversion from 'termencoding' to 'encoding' with
|
88
|
1982 convert_input() for Mac GUI and RiscOS GUI.
|
7
|
1983 - Add mnemonics from RFC1345 longer than two characters.
|
|
1984 Support CTRL-K _{mnemonic}_
|
|
1985 7 In "-- INSERT (lang) --" show the name of the keymap used instead of
|
|
1986 "lang". (Ilya Dogolazky)
|
|
1987 - Make 'langmap' accept multi-byte characters.
|
1125
|
1988 Patch from Konstantin Korikov, 2006 Oct 15.
|
500
|
1989 - Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
|
|
1990 table anymore (breakat_flags[]).
|
|
1991 Simplistic solution: when 'formatoptions' contains "m" also break a line
|
|
1992 at a multi-byte character >= 0x100.
|
7
|
1993 - Do we need the reverse of 'keymap', like 'langmap' but with files and
|
|
1994 multi-byte characters? E.g., when using a Russian keyboard.
|
|
1995 - Add the possibility to enter mappings which are used whenever normal text
|
|
1996 could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
|
1997 of opposite of 'langmap'. Use ":tmap" command?
|
|
1998 - When breaking a line, take properties of multi-byte characters into
|
|
1999 account. The "linebreak" program from Bruno Haible can do it:
|
|
2000 ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
|
2001 But it's very complicated...
|
|
2002
|
|
2003
|
|
2004 Printing:
|
218
|
2005 7 Implement "undercurl" for printing.
|
7
|
2006 - Add "page width" to wrap long lines.
|
|
2007 - Win32: use a font dialog for setting 'printfont'. Can reuse the code for
|
|
2008 the 'guifont' dialog, put the common code in a separate function.
|
46
|
2009 - Add the file timestamp to the page header (with an option). (George
|
|
2010 Reilly)
|
7
|
2011 - Win32: when 'printfont' is empty use 'guifont'.
|
|
2012 - Unix: Use some dialog box to do the obvious settings (paper size, printer
|
|
2013 name, portrait/landscape, etc).
|
1125
|
2014 - PostScript: Only works for text that can be converted to an 8-bit
|
|
2015 character set. How to support Unicode fully?
|
7
|
2016 - Allow specifying the paper size, instead of using a standard size. Same
|
|
2017 units as for the margins.
|
|
2018 - Support right-to-left text?
|
|
2019 8 Make the foreground color darkening function preserve the hue of the
|
|
2020 color.
|
|
2021
|
|
2022
|
|
2023 Syntax highlighting:
|
|
2024 8 Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
|
|
2025 Should do the same for ":syn on" and ":syn manual".
|
|
2026 8 Support "containedin" argument for ":syn include", so that the defined
|
|
2027 cluster can be added to existing syntax items.
|
|
2028 8 C syntax: Don't highlight {} as errors inside () when used like this:
|
|
2029 "({ something })", often used in GCC code.
|
819
|
2030 7 Add a "startgroup" to a region. Used like "nextgroup" inside the region,
|
|
2031 preferred item at the start of the region. (Charles Campbell)
|
7
|
2032 8 When editing a new file without a name and giving it a name (by writing
|
|
2033 it) and 'filetype' is not set, detect the filetype. Avoid doing it for
|
|
2034 ":wq file".
|
1125
|
2035 7 For "nextgroup" we have skipwhite, skipnl and skipempty. It would be
|
|
2036 really nice to be able to skip with a pattern. Or skip with a syntax
|
|
2037 group. (Nikolai Weibull, 2007 Feb 27)
|
7
|
2038 8 Make conversion to HTML faster (Write it in C or pre-compile the script).
|
|
2039 9 There is still a redraw bug somewhere. Probably because a cached state is
|
|
2040 used in a wrong way. I can't reproduce it...
|
|
2041 7 Be able to change only the background highlighting. Useful for Diff* and
|
|
2042 Search highlighting.
|
747
|
2043 7 When 'number' is set highlight the number of the current line.
|
|
2044 Must be enabled with an option, because it slows down display updating.
|
7
|
2045 8 Allow the user to add items to the Syntax menu sorted, without having to
|
|
2046 change this for each release.
|
|
2047 8 Add a "matchcontains" for regions: items contained in the start or end
|
|
2048 pattern, but not in the body.
|
|
2049 8 Add a "keepend-contained" argument: Don't change the end of an item this
|
|
2050 one is contained in. Like "keepend" but specified on the contained item,
|
|
2051 instead of the containing item.
|
|
2052 8 cpp.vim: In C++ it's allowed to use {} inside ().
|
|
2053 8 Some syntax files set 'iskeyword'. When switching to another filetype
|
|
2054 this isn't reset. Add a special keyword definition for the syntax rules?
|
|
2055 When this is done, use vim.vim syntax highlighting for help file examples,
|
|
2056 but without ":" in 'iskeyword' for syntax.
|
|
2057 8 Add specific syntax item to match with parens/braces that don't have a
|
|
2058 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained]
|
|
2059 8 Highlight the text between two matching parens (e.g., with a grey
|
|
2060 background) when on one of the parens or in between them.
|
694
|
2061 Option for the matchparen plugin?
|
7
|
2062 8 Add a command to jump to the next character highlighted with "Error".
|
|
2063 8 When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
|
|
2064 sequences. Add remark in docs that :if 'term' == "term-name" should be
|
|
2065 used.
|
|
2066 8 Add @spell cluster to String and Comment groups for many languages. Will
|
|
2067 allow spell checking. (Fleiner)
|
|
2068 8 When listing syntax items, try to sort the keywords alphabetically. And
|
|
2069 re-insert the [] if possible.
|
|
2070 8 Make it possible to use color of text for Visual highlight group (like for
|
|
2071 the Cursor).
|
557
|
2072 8 It would be useful to make the highlight group name an expression. Then
|
|
2073 when there is a match, the expression would be evaluated to find out what
|
|
2074 highlight group to use. Could be used to check if the shell used in a
|
|
2075 password file appears in /etc/shells. (Nikolai Weibull)
|
|
2076 syn match =s:checkShell(v:match) contained 'pattern'
|
7
|
2077 8 Make it possible to only highlight a sub-expression of a match. Like
|
|
2078 using "\1" in a ":s" command.
|
|
2079 8 Support for deleting syntax items:
|
|
2080 :syn keyword cTodo remove this
|
|
2081 :syn match cTodo remove "pattern"
|
|
2082 :syn region cString remove start="this" end="that"
|
|
2083 8 Add possibility to sync on something else, when the syncing in one way
|
|
2084 doesn't find match. For HTML: When no {script} is found, try looking for
|
|
2085 a '<'. (Fleiner)
|
|
2086 7 Replace the synchronizing method with a state machine specification?
|
|
2087 Should be able to start at any line in the file, search forwards or
|
|
2088 backwards, and use the result of matching a pattern.
|
|
2089 7 Use parsing like awk, so that e.g., a ( without a matching ) can be
|
|
2090 detected.
|
|
2091 8 Make it possible to use "inverted" highlighting, invert the original
|
237
|
2092 character. For Visual mode. (xterm-selection already does this).
|
7
|
2093 8 Highlight non-printable characters with "SpecialChar", linked to
|
|
2094 "Special". Display them with the digraph characters, if possible.
|
|
2095 8 Highlight the clipboard-selection with a highlight group.
|
|
2096 8 Be able to reset highlighting to its original (default) values.
|
|
2097 7 Be able to write current highlighting to a file as commands, similar to
|
|
2098 ":mkvimrc".
|
|
2099 8 Improve c.vim:
|
|
2100 - Add check for unterminated strings, with a variable to switch it on:
|
|
2101 "c_strict_ansi".
|
|
2102 - Detect unbalanced "#endif". Requires looking back a long way...
|
|
2103 8 Add an option to restrict the updating of syntax highlighting to the
|
|
2104 current line while in Insert mode.
|
|
2105 8 When guessing value of 'background', the syntax file has already been
|
|
2106 loaded (from the .gvimrc). After changing 'background', load it again?
|
|
2107 8 Add ":syn resync" command, to re-parse the whole file until the current
|
|
2108 display position.
|
|
2109 8 Should support "me" offset for a region start pattern. To be used to
|
|
2110 allow searching for the end pattern inside the match of the end pattern.
|
|
2111 Example: syn region pikeXX start="([^{]" end=")" should work on "()".
|
|
2112 8 When using a regexp for "contains=", should delay matching with it until
|
|
2113 redrawing happens. Set a flag when a group is added, check this flag when
|
|
2114 highlighting starts.
|
1125
|
2115 8 Some terminals can display colors like the GUI. Add some setting to use
|
|
2116 GUI colors for the terminal? With something to define the escape
|
|
2117 sequence.
|
844
|
2118 7 It's possible for an item to be transparent, so that the colors of an item
|
|
2119 lower on the stack is used. Also do this with highlighting, so that the
|
|
2120 user can set transparent highlighting? E.g. a number in a C comment would
|
|
2121 get the color of a comment, a number in an assignment Normal. (Nikolai
|
|
2122 Weibull)
|
7
|
2123 7 Add "semitrans": Add highlighting. E.g., make the text bold, but keep the
|
|
2124 colors. And add colors, so that Green+Red becomes Yellow.
|
|
2125 E.g. for this html:
|
|
2126 <B> bold text <I> italic+bold text </B> italic text </I>
|
|
2127 7 Wild idea: Not only set highlighting, but also change what is displayed
|
|
2128 (e.g., remove characters, so that "<B>bold</B>" can be shown as "bold"):
|
|
2129 :syn region boldstuff start="<B>" display="" end="</B>" display=""
|
|
2130 7 CTRL-] checks the highlight group for finding out what the tag is.
|
|
2131 7 Add an explanation how a list of words can be used to highlight misspelled
|
|
2132 words.
|
|
2133 8 Add more command line completion for :syntax.
|
|
2134 8 Add more command line completion for :highlight.
|
|
2135 8 Add more command line completion for :sign.
|
|
2136 7 Should find a better way to parse the :syntax and :highlight commands.
|
|
2137 Use tables or lists that can be shared by parsing for execution and
|
|
2138 completion?
|
|
2139 8 Add ColorSchemePost autocommand event, so that scripts can set up their
|
|
2140 highlighting. (Salman Halim)
|
|
2141 7 Add a few sets of colors (e.g. Borland Turbo C one). With a menu to
|
|
2142 select one of the sets.
|
|
2143 8 Add offsets to sub-matches: "\(a*\) *"he=e1-1
|
|
2144 'e' is end of match 'e1' is end of sub-match 1, 's2' is start of submatch
|
|
2145 2, etc.
|
|
2146 8 In Insert mode, when there are typeahead characters, postpone the
|
|
2147 highlighting (for "." command).
|
|
2148 8 Syncing on comments isn't 100% correct when / / lines mix with / * and * /.
|
|
2149 For example: What about a line that starts with / / and contains * /?
|
|
2150 8 Ignore / * and * / inside strings, when syncing.
|
|
2151 7 Build a few more syntax files from the file "/usr/share/misc/vgrindefs":
|
|
2152 ISP, LDL, Icon, ratfor. And check "nedit/source/highlight.c".
|
|
2153 6 Add possibility to have background color continue until the right edge of
|
|
2154 the window. Useful for comment blocks and function headings. (Rogall)
|
|
2155 - Make it possible to add "contains" items for all items in a group. Useful
|
|
2156 when extending an already existing syntax file.
|
|
2157 - Add line-continuation pattern for non-syncing items too?
|
|
2158 - Add possibility to highlight the whole line, including the right margin
|
|
2159 (for comment blocks).
|
|
2160 - Add 'hlmatch' option: List of flags:
|
|
2161 'c': highlight match for character under the cursor.
|
|
2162 'b': highlight the previous (, and its match.
|
|
2163 'a': highlight all text from the previous ( until its match.
|
|
2164 Also for {}, <>, etc.?
|
|
2165 'e': highlight all braces without a match (slow?)
|
|
2166 OR: add an argument "cursor" to the syntax command, which means that the
|
|
2167 region/match/keyword is only highlighted when the cursor is on it.
|
|
2168 (Campbell)
|
|
2169 Or do it like Elvis: define text objects and how to highlight them around
|
|
2170 the cursor. (Iain Truskett)
|
|
2171 7 Make it possible to use all words in the tags files as Keyword.
|
|
2172 Can also be done with a script (but it's slow).
|
|
2173 7 Make it possible to call a ":" command when a match is found. Should
|
|
2174 allow for adding keywords from the text (e.g. variables that are set).
|
|
2175 And allows for sections with different highlighting.
|
|
2176 7 Add highlight group for commandline: "Commandline". Make sure it
|
|
2177 highlights the command line while typing a command, and any output from
|
|
2178 messages. And external commands?
|
|
2179 8 Make a version that works like less, but with highlighting: read stdin for
|
|
2180 text, exit at end of file, don't allow editing, etc. moreim? lessim?
|
|
2181 7 SpecialKey highlighting overrules syntax highlighting. Can't give an
|
|
2182 unprintable char another color. Would be useful for ^M at end of line.
|
|
2183
|
|
2184
|
|
2185 Built-in script language:
|
1624
|
2186 8 Make the filename and line number available to script functions, so that
|
|
2187 they can give useful debugging info. The whole call stack would be ideal.
|
713
|
2188 7 Execute a function with standard option values. No need to save and
|
|
2189 restore option values. Especially useful for new options. Problem: how
|
|
2190 to avoid a performance penalty (esp. for string options)?
|
7
|
2191 8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and
|
|
2192 ":let &t_xx =". Useful for making portable mappings.
|
1125
|
2193 - Add ":let var ?= value", conditional assignment. Patch by Dave Eggum,
|
|
2194 2006 Dec 11.
|
|
2195 - range for ":exec", pass it on to the executed command. (Webb)
|
720
|
2196 7 ":include" command: just like ":source" but doesn't start a new scriptID?
|
|
2197 Will be tricky for the list of script names.
|
7
|
2198 8 Have a look at VSEL. Would it be useful to include? (Bigham)
|
|
2199 8 Add ":fungroup" command, to group function definitions together. When
|
|
2200 encountered, all functions in the group are removed. Suggest using an
|
|
2201 obscure name to avoid name clashes. Require a ":fungroup END" in the same
|
|
2202 sourced file? Assume the group ends at the end of the file. Handle
|
|
2203 nested packages?
|
|
2204 Alternative: Support packages. {package-name}:{function-name}().
|
|
2205 Packages are loaded automatically when first used, from
|
|
2206 $VIMRUNTIME/packages (or use a search path).
|
|
2207 7 Pre-parse or compile Vim scripts into a bytecode.
|
|
2208 1. Put the bytecode with the original script, with an ":if
|
|
2209 has('bytecode')" around it, so that it's only used with a Vim that
|
|
2210 supports it. Update the code with a command, can be used in an
|
|
2211 autocommand.
|
|
2212 2. Use a ".vic" file (like Python use .pyc). Create it when writing a
|
|
2213 .vim file. Problem: distribution.
|
|
2214 3. Use a cache directory for each user. How to recognize which cached
|
|
2215 file belongs to a sourced script?
|
|
2216 7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
|
|
2217 signs and/or 'number'.
|
1125
|
2218 6 Add ++ and -- operators? They only work on variables (lvals), how to
|
|
2219 implement this?
|
7
|
2220 8 Add functions:
|
1125
|
2221 has(":command") Check if ":command" works. compare function
|
|
2222 with "ex_ni". E.g. for ":simalt".
|
|
2223 system() With a List argument. Bypasses the shell, use
|
|
2224 exec() directly. (Bob Hiestand)
|
|
2225 escape() Add argument to specify what to escape with.
|
|
2226 modestack() Instead of just the current mode return the
|
|
2227 stack of Insert / CTRL-O / :normal things.
|
20
|
2228 realname() Get user name (first, last, full)
|
|
2229 user_fullname() patch by Nikolai Weibull, Nov
|
|
2230 3 2002
|
|
2231 Only add this when also implemented for
|
|
2232 non-Unix systems, otherwise a shell cmd could
|
|
2233 be used.
|
|
2234 get_user_name() gets login name.
|
18
|
2235 menuprop({name}, {idx}, {what})
|
|
2236 Get menu property of menu {name} item {idx}.
|
|
2237 menuprop("", 1, "name") returns "File".
|
|
2238 menuprop("File", 1, "n") returns "nmenu
|
|
2239 File.Open..." argument.
|
|
2240 Patch by Ilya Sher, 2004 Apr 22
|
|
2241 Return a list of menus and/or a dictionary
|
|
2242 with properties instead.
|
|
2243 mapname({idx}, mode) return the name of the idx'th mapping.
|
|
2244 Patch by Ilya Sher, 2004 Mar 4.
|
|
2245 Return a list instead.
|
170
|
2246 char2hex() convert char string to hex string.
|
7
|
2247 attributes() return file protection flags "drwxrwxrwx"
|
170
|
2248 filecopy(from, to) Copy a file
|
|
2249 shorten(fname) shorten a file name, like home_replace()
|
7
|
2250 perl(cmd) call Perl and return string
|
|
2251 inputrl() like input() but right-to-left
|
1624
|
2252 typed() return the characters typed and consumed (to
|
|
2253 find out what happened)
|
7
|
2254 virtualmode() add argument to obtain whether "$" was used in
|
|
2255 Visual block mode.
|
|
2256 getacp() Win32: get codepage (Glenn Maynard)
|
|
2257 deletebufline() delete line in any buffer
|
|
2258 appendbufline() append line in any buffer
|
|
2259 libcall() Allow more than one argument.
|
|
2260 libcallext() Like libcall(), but using a callback function
|
|
2261 to allow the library to execute a command or
|
|
2262 evaluate an expression.
|
|
2263 7 Make bufname("'0") return the buffer name from mark '0. How to get the
|
|
2264 column and line number? col("'0") currently returns zero.
|
|
2265 8 argc() returns 0 when using "vim -t tag". How to detect that no file was
|
|
2266 specified in any way? To be able to jump to the last edited file.
|
1125
|
2267 8 Pass the command line arguments to Vim scripts in some way. As v:args
|
|
2268 List? Or extra parameter to argv()?
|
7
|
2269 8 Add command arguments with three dashes, passed on to Vim scripts.
|
|
2270 7 Add optional arguments to user functions:
|
|
2271 :func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
|
|
2272 6 User functions: Functions local to buffer "b:func()"?
|
694
|
2273 8 For Strings add ":let var[{expr}] = {expr}". When past the end of "var"
|
|
2274 just ignore.
|
7
|
2275 8 The "= register should be writable, if followed by the name of a variable,
|
|
2276 option or environment variable.
|
|
2277 8 ":let &option" should list the value of the option.
|
1125
|
2278 8 ":let Func().foo = value" should work, also when "foo" doesn't exist.
|
694
|
2279 7 Add synIDlist(), making the whole list of syntax items on the syntax stack
|
|
2280 available as a List.
|
7
|
2281 8 Add autocommand-event for when a variable is changed:
|
|
2282 :au VarChanged {varname} {commands}
|
|
2283 8 Add "has("gui_capable")", to check if the GUI can be started.
|
|
2284 8 Add possibility to use variables like registers: characterwise (default),
|
|
2285 linewise (when ending in '\n'), blockwise (when ending in '\001'). reg0,
|
|
2286 rega, reg%, etc. Add functions linewise({expr}), blockwise({expr}) and
|
|
2287 charwise({expr}).
|
|
2288 7 Make it possible to do any command on a string variable (make a buffer
|
|
2289 with one line, containing the string). Maybe add an (invisible) scratch
|
|
2290 buffer for this?
|
|
2291 result = scratch(string, command)
|
|
2292 result = apply(string, command)
|
|
2293 result = execute(string, command)
|
|
2294 "command" would use <> notation.
|
|
2295 Does scratch buffer have a number? Or re-use same number?
|
|
2296 7 Add function to generate unique number (date in milliseconds).
|
|
2297 7 Automatically load a function from a file when it is called. Need an
|
|
2298 option for the search path. (Sekera)
|
|
2299
|
|
2300
|
|
2301 Robustness:
|
11
|
2302 6 Add file locking. Lock a file when starting to edit it with flock() or
|
|
2303 fcntl(). This patch has advisory file locking while reading/writing
|
|
2304 the file for Vim 5.4: ~/vim/patches/kahn_file_locking .
|
|
2305 The patch is incomplete (needs support for more systems, autoconf).
|
|
2306 Andy doesn't have time to work on it.
|
|
2307 Disadvantage: Need to find ways to gracefully handle failure to obtain a
|
|
2308 lock. When to release a lock: When buffer is unloaded?
|
7
|
2309
|
|
2310
|
|
2311 Performance:
|
1668
|
2312 7 For string variables up to 3 bytes don't allocate memory, use v_list
|
|
2313 itself as a character array. Use VAR_SSTRING (short string).
|
|
2314 8 move_lines() copies every line into allocated memory, making reloading a
|
|
2315 buffer a lot slower than re-editing the file. Can the memline be locked
|
|
2316 so that we don't need to make a copy? Or avoid invoking ml_updatechunk(),
|
|
2317 that is taking a lot of time. (Ralf Wildenhues, 2008 Jul 7)
|
1125
|
2318 8 Instead of loading rgb.txt every time a color wasn't recognized load it
|
|
2319 once and keep it in memory. Move the code to a common place to avoid
|
|
2320 repeating it in various system files.
|
7
|
2321 8 Turn b_syn_ic and b_syn_containedin into b_syn_flags.
|
|
2322 9 Loading menu.vim still takes quite a bit of time. How to make it faster?
|
|
2323 8 in_id_list() takes much time for syntax highlighting. Cache the result?
|
|
2324 7 setpcmark() shifts the jumplist, this takes quite a bit of time when
|
|
2325 jumping around. Instead use an index for the start?
|
|
2326 8 When displaying a space with only foreground highlighting, it's the same
|
|
2327 as a space without attributes. Avoid displaying spaces for the "~" lines
|
|
2328 when starting up in a color terminal.
|
|
2329 8 Avoid alloc() for scratch buffer use, esp. in syntax.c. It's very slow on
|
|
2330 Win16.
|
|
2331 9 Setting GUI options in the console (e.g., 'guifont') should not cause a
|
|
2332 redraw.
|
|
2333 8 Profiling shows that in_id_list() is used very often for C code. Can this
|
|
2334 function be improved?
|
|
2335 8 For an existing file, the page size of the swap file is always the
|
|
2336 default, instead of using the block size of the device, because the swap
|
|
2337 file is created only after setting the block size in mf_open(). How can
|
|
2338 this be improved?
|
|
2339 8 Set default for 'ttyscroll' to half a screen height? Should speed up
|
|
2340 MS-DOS version. (Negri)
|
36
|
2341 7 C syntax highlighting gets a lot slower after ":set foldmethod=syntax".
|
|
2342 (Charles Campbell) Inserting a "{" is very slow. (dman)
|
7
|
2343 7 HTML syntax highlighting is slow for long lines. Try displaying
|
|
2344 http://www.theregister.co.uk/content/4/22908.html. (Andre Pang)
|
|
2345 7 Check how performance of loading the wordlist can be improved (adding a
|
|
2346 lot of abbreviations).
|
|
2347 7 DOS console: Add t_DL support, to make scrolling faster.
|
|
2348 7 Compile Ex commands to byte codes. Store byte codes in a vim script file
|
|
2349 at the end, after "compiled:. Make it look like a single comment line
|
|
2350 for old Vim versions. Insert first line "Vim script compiled <timestamp>.
|
|
2351 Only used compiled code when timestamp matches the file stat.
|
|
2352 Add command to compile a vim script and add it to the file in-place.
|
|
2353 Split Ex command executing into a parsing and executing phase.
|
|
2354 Use compiled code for functions, while loops, etc.
|
|
2355 8 When editing a file with extremely long lines (e.g., an executable), the
|
|
2356 "linerest" in readfile() is allocated twice to be able to copy what was
|
|
2357 read so far. Use realloc() instead? Or split the line when allocating
|
|
2358 memory fails and "linerest" is big (> 100000)?
|
|
2359 8 When defining autocommands (e.g., from $VIMRUNTIME/filetype.vim), need to
|
|
2360 compare each pattern with all existing patterns. Use a hash code to avoid
|
|
2361 using strcmp() too often?
|
|
2362 7 Include turbo_loader patches, speeding up reading a file?
|
|
2363 Speed up reading a file by reading it into a fixed-size buffer, creating
|
|
2364 the list of indexes in another buffer, and then copying the result into a
|
|
2365 memfile block with two copies. Then read the next block into another
|
|
2366 fixed-size buffer, create the second list of indexes and copy text from
|
|
2367 the two blocks to the memfile block.
|
|
2368 7 do_cmdline(): Avoid that the command line is copied to allocated memory
|
|
2369 and freed again later all the time. For while loops, and for when called
|
|
2370 with an argument that can be messed with.
|
|
2371 Generic solution: Make a struct that contains a pointer and a flag that
|
|
2372 indicates if the pointer should be freed when replaced.
|
|
2373 7 Check that the file size is not more than "sizeof(long)".
|
|
2374 - Further improve finding mappings in maphash[] in vgetorpeek()
|
|
2375 8 Syntax highlighting is slow when deleting lines. Try in
|
|
2376 $VIMRUNTIME/filetype.vim.
|
|
2377 - "out of memory" after deleting (1,$d) and changing (:%s/^/> /) a lot of
|
|
2378 lines (27000) a few times. Memory fragmentation?
|
|
2379 - Have a look at how pdksh does memory allocation (alloc.c). (Dalecki)
|
|
2380 - Do profiling on:
|
|
2381 - :g/pat/normal cmd
|
|
2382 - 1000ii<Esc>
|
|
2383 - deleting 10Mbyte worth of lines (netscape binary)
|
|
2384 - "[i" and "[d" (Yegappan Lakshmanan)
|
|
2385 - ":g/^/m0" on a 450Kbyte file. And the "u".
|
|
2386 - highlighting "~/vim/test/longline.tex", "~/vim/test/scwoop.tcl" and
|
|
2387 "~/vim/test/lockup.pl".
|
|
2388 - loading a syntax file to highlight all words not from a dictionary.
|
587
|
2389 - editing a Vim script with syntax highlighting on (loading vim.vim).
|
7
|
2390 7 Screen updating can be further improved by only redrawing lines that were
|
|
2391 changed (and lines after them, when syntax highlighting was used, and it
|
|
2392 changed).
|
|
2393 - On each change, remember start and end of the change.
|
|
2394 - When inserting/deleting lines, remember begin, end, and line count.
|
|
2395 - Use macros/duarte/capicua for profiling. Nvi 1.71 is the fastest!
|
|
2396 - When using a file with one long line (1Mbyte), then do "$hhhh", is still
|
|
2397 very slow. Avoid calling getvcol() for each "h"?
|
|
2398 - Executing a register, e.g. "10000@@" is slow, because ins_typebuf has to
|
|
2399 move the previous commands forward each time. Pass count from
|
|
2400 normal_cmd() down to do_execreg().
|
|
2401 - Repeating insert "1000i-<Esc>" displays --INSERT-- all the time, because of
|
|
2402 the <Esc> at the end. Make this work faster (disable redrawing).
|
|
2403 - Avoid calls to plines() for cursor line, use w_cline_height.
|
|
2404 - After ":set nowrap" remove superfluous redraw with wrong hor. offset if
|
|
2405 cursor is right of the screen.
|
|
2406 8 Make CTRL-C on Unix generate a signal, avoid using select() to check for a
|
|
2407 CTRL-C (it's slow).
|
|
2408
|
|
2409
|
|
2410 Code size:
|
|
2411 8 GUI: When NO_CONSOLE is defined, more code can be excluded.
|
|
2412 - Put getline() and cookie in a struct, so only one argument has to be
|
|
2413 passed to do_cmdline() and other functions.
|
|
2414 8 Make a GUI-only version for Unix?
|
|
2415 8 In buf_write _() isn't needed when setting errmsg, do it once when using
|
|
2416 it.
|
|
2417 7 When compiling with a GUI-only version, the code for cterm colors can be
|
|
2418 left out.
|
|
2419 8 When compiled with a GUI-only version, the termcap entries for terminals
|
|
2420 can be removed.
|
|
2421 8 Can the check for libelf in configure.in be removed?
|
|
2422
|
|
2423
|
|
2424 Messages:
|
|
2425 8 When using ":q" in a changed file, the error says to "add !". Add the
|
|
2426 command so that beginners understand it: "use :q!".
|
|
2427 8 For 'verbose' level 12 prints commands from source'ed files. How to skip
|
|
2428 lines that aren't executed? Perhaps move the echoing to do_cmdline()?
|
|
2429 8 Use 'report' for ":bdel"? (Krishna) To avoid these messages when using a
|
|
2430 script.
|
|
2431 - Delete message after new command has been entered and have waited for key.
|
|
2432 Perhaps after ten seconds?
|
|
2433 - Make message history available in "msg" variables: msg1, msg2, .. msg9.
|
1125
|
2434 8 When reading from stdin allow suppressing the "reading from stdin"
|
|
2435 message.
|
7
|
2436 9 Check handling of overwriting of messages and delays:
|
|
2437 Very wrong: errors while redrawing cause endless loop.
|
|
2438 When switching to another file and screen scrolls because of the long
|
|
2439 message and return must be typed, don't scroll the screen back before
|
|
2440 redrawing.
|
|
2441 8 When address range is wrong you only get "Invalid range". Be a bit more
|
|
2442 specific: Negative, beyond last line, reverse range? Include the text.
|
|
2443 8 Make it possible to ignore errors for a moment ('errorignore'?). Another
|
|
2444 option to switch off giving error messages ('errorquiet'?). Also an option
|
|
2445 not to give any messages ('quiet')? Or ":quiet on", ":quiet off".
|
|
2446 Careful: For a severe error (out of memory), and when the user starts
|
|
2447 typing, error messages must be switched back on.
|
|
2448 Also a flag to ignore error messages for shell commands (for mappings).
|
237
|
2449 - Option to set time for emsg() sleep. Interrupt sleep when key is typed?
|
587
|
2450 Sleep before second message?
|
7
|
2451 8 In Ex silent mode or when reading commands from a file, what exactly is
|
|
2452 not printed and what is? Check ":print", ":set all", ":args", ":vers",
|
|
2453 etc. At least there should be no prompt. (Smulders) And don't clear the
|
|
2454 screen when reading commands from stdin. (Kendall)
|
|
2455 --> Make a difference between informative messages, prompts, etc. and
|
|
2456 error messages, printing text, etc.
|
|
2457 8 Window should be redrawn when resizing at the hit-enter prompt.
|
|
2458 Also at the ":tselect" prompt. Find a generic solution for redrawing when
|
|
2459 a prompt is present (with a callback function?).
|
|
2460
|
|
2461
|
|
2462 Screen updating:
|
|
2463 7 Add a string to the 'display' option to make CTRL-E and CTRL-Y scroll one
|
|
2464 screen line, also if this means the first line doesn't start with the
|
|
2465 first character (like what happens with a single line that doesn't fit).
|
|
2466 - screen_line():
|
|
2467 - insert/delete character stuff.
|
|
2468 - improve delete rest of line (spaces at end of line).
|
|
2469 - When moving or resizing window, try to avoid a complete redraw (esp. when
|
|
2470 dragging the status line with the mouse).
|
|
2471 - When 'lazyredraw' set, don't echo :ex commands? Need a flag to redraw when
|
|
2472 waiting for a character.
|
|
2473 8 Add a ":refresh [winnr]" command, to force updating a window. Useful from
|
|
2474 an event handler where ":normal" can't be used. Also useful when
|
|
2475 'lazyredraw' is set in a mapping.
|
|
2476 7 Make 'list' and 'linebreak' work together.
|
|
2477
|
|
2478
|
|
2479 Scrolling:
|
|
2480 8 Add "zm" command: scroll horizontally to put the cursor in the middle.
|
|
2481 6 Add option to set the overlap for CTRL-F and CTRL-B. (Garhi)
|
|
2482 - extend 'scrollbind' option: 'scrollopt' words "search", "relative", etc..
|
|
2483 Also 'e'xecute some commands (search, vertical movements) in all bound
|
|
2484 windows.
|
|
2485 7 Add 'scrollbind' feature to make the offset of one window with the next
|
|
2486 one equal to the window height. When editing one file in both windows it
|
|
2487 looks like each window displays a page of the buffer.
|
|
2488 - Allow scrolling by dragging with the mouse (grab a character and move it
|
|
2489 up/down). Like the "hand" in Acrobat reader. Use Alt-LeftMouse for this?
|
|
2490 (Goldfarb)
|
|
2491 - Add command to execute some commands (search, vertical movements) in all
|
|
2492 bound windows.
|
|
2493 - Add 'search' option to 'scrollopt' to allow 'scrollbind' windows to
|
|
2494 be bound by regexp searches
|
9
|
2495 - Add "z>" and "z<": scroll sideways one screenful. (Campbell)
|
7
|
2496 - Add option to set the number of lines when not to scroll, instead of the
|
|
2497 fixed number used now (for terminals that scroll slow with a large number
|
|
2498 of lines but not with a single line).
|
|
2499
|
|
2500
|
|
2501 Autoconf:
|
|
2502 8 Should use acconfig.h to define prototypes that are used by autoheader.
|
|
2503 8 Some compilers don't give an error for "-OPT:Olimit" but a warning. (Webb)
|
|
2504 Add a check for the warning, so that "Olimit" can be added automatically?
|
|
2505 - Autoconf: Use @datadir@ for the system independent files. Make sure the
|
|
2506 system dependent and system independent files are separated. (Leitner).
|
|
2507 - Add autoconf check for waitpid()/wait4().
|
|
2508 - Remove fcntl() from autoconf, all systems have it?
|
|
2509 - Set default for 'dictionary', add search for dictionary to autoconf.
|
|
2510
|
|
2511
|
|
2512 Perl interface:
|
|
2513 8 Rename typemap file to something else?
|
|
2514 7 Make buffers accessed as Perl arrays. (Clark)
|
|
2515 7 Make it possible to compile with non-ANSI C?
|
|
2516 6 Tcl/Tk has the "load" command: load a shared library (.so or .dll).
|
|
2517
|
|
2518
|
|
2519 Shared libraries:
|
|
2520 6 Add support for loading shared libraries, and calling functions in it.
|
|
2521 :libload internal-name libname
|
|
2522 :libunload internal-name
|
|
2523 :liblist
|
|
2524 :libcall internal-name function(arg1, arg2, ...)
|
|
2525 :libcall function(arg1, arg2, ...)
|
|
2526 libcall() can have only one integer or String argument at the moment.
|
|
2527 6 Have a look on how Perl handles loading dynamic libraries.
|
|
2528
|
|
2529
|
|
2530 Tags:
|
824
|
2531 9 With ":set tags=./tags,../tags" and a tag appears in both tags files it is
|
|
2532 added twice. Requires figuring out the actual file name for each found
|
|
2533 match. Remove tag_fname from the match and combine it with the fname in
|
|
2534 the match (without expanding or other things that take time). When
|
|
2535 'tagrelative' is off tag_fname isn't needed at all.
|
1668
|
2536 8 For 'tags' wildcard in the file name is not supported, only in the path.
|
|
2537 This is due to it using |file-searching|. Suboptimal solution would be to
|
|
2538 make the filename or the whole option use |wildcards| globing, better
|
|
2539 would be to merge the 2 kinds of globing. originall (Erik Falor, 2008
|
|
2540 April 18), updated (Ian Kelling, 2008 July 4)
|
857
|
2541 8 Use a mechanism similar to omni completion to figure out the kind of tab
|
|
2542 for CTRL-] and jump to the appropriate matching tag (if there are
|
|
2543 several).
|
667
|
2544 7 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
|
|
2545 number of possible matches? Check tags file for an item that has members.
|
|
2546 (Flemming Madsen)
|
7
|
2547 8 Scope arguments for ":tag", e.g.: ":tag class:cPage open", like Elvis.
|
|
2548 8 When output of ":tselect" is long, getting the more-prompt, should be able
|
|
2549 to type the tag number directly.
|
|
2550 7 Add the possibility to use the "-t {tag}" argument multiple times. Open a
|
|
2551 window for each tag.
|
|
2552 7 Make output of ":tselect" a bit nicer. Use highlighting?
|
|
2553 7 Highlight the "tag 1 of >2" message. New highlight group, or same as "hit
|
|
2554 bottom" search message.
|
|
2555 7 When using ":tag" at the top of the tag stack, should add another entry,
|
|
2556 so CTRL-T can bring you back to where you are now AND to where you were
|
|
2557 before the previous ":tag" command. (Webb)
|
150
|
2558 - When doing "[^I" or "[^D" add position to tag stack.
|
|
2559 - Add command to put current position to tag stack: ":tpush".
|
1125
|
2560 - Add functions to save and restore the tag stack? Or a command to switch
|
|
2561 to another tag stack? So that you can do something else and come back to
|
|
2562 what you were working on.
|
7
|
2563 7 When using CTRL-] on someClass::someMethod, separate class from method and
|
|
2564 use ":ta class:someClass someMethod".
|
|
2565 Include C++ tags changes (Bertin). Change "class::func" tag into "func"
|
|
2566 with "class=class"? Docs in oldmail/bertin/in.xxx.
|
|
2567 7 Add ":tagargs", to set values for fields:
|
|
2568 :tagargs class:someclass file:version.c
|
|
2569 :tagargs clear
|
|
2570 These are then the default values (changes the order of priority in tag
|
|
2571 matching).
|
|
2572 7 Support for "gtags" and "global"? With ":rtag" command?
|
|
2573 There is an example for how to do this in Nvi.
|
|
2574 Or do it like Elvis: 'tagprg' and 'tagprgonce' options. (Yamaguchi)
|
|
2575 The Elvis method is far more flexible, do it that way.
|
|
2576 7 Support "col:99" extra field, to position the cursor in that column. With
|
|
2577 a flag in 'cpoptions' to switch it off again.
|
|
2578 7 Better support for jumping to where a function or variable is used. Use
|
|
2579 the id-utils, with a connection to "gid" (Emacs can do it too). Add
|
|
2580 ":idselect", which uses an "ID" database (made by "mkid") like "tselect".
|
|
2581
|
|
2582
|
|
2583 Win32 GUI:
|
|
2584 8 Make debug mode work while starting up (vim -D). Open console window for
|
|
2585 the message and input?
|
|
2586 7 The Python interface only works with one version of Python, selected at
|
|
2587 compile time. Can this be made to work with version 2.1 and 2.2
|
|
2588 dynamically?
|
|
2589 7 GvimExt: when there are several existing Vims, move the list to a submenu.
|
|
2590 (Mike McCollister)
|
|
2591 8 When using "Edit with Vim" for one file it changes directory, when several
|
|
2592 files are selected and using "Edit with single Vim" the directory isn't
|
|
2593 changed. At least change directory when the path is the same for all
|
|
2594 files. Perhaps just use the path of the first file or use the longest
|
|
2595 common part of the path.
|
|
2596 8 Add font argument to set the lfCharSet. (Bobcik)
|
|
2597 8 Somehow automatically detect the system language and set $LANG, so that
|
|
2598 gettext and menus work.
|
|
2599 8 Could keep console open to run multiple commands, to avoid the need to hit
|
|
2600 return in every console.
|
|
2601 Also: Look at how Emacs does runs external commands:
|
|
2602 http://www.cs.washington.edu/homes/voelker/ntemacs.html.
|
|
2603 8 Need a separate PopUp menu for modeless selection. Need two new commands:
|
|
2604 Copy selection to clipboard, Paste selection (as typed text).
|
|
2605 8 Support copy/paste for other file formats. At least HTML, perhaps RTF.
|
|
2606 Add "copy special" and "paste special" commands?
|
|
2607 7 Use different default colors, to match the current Windows color scheme.
|
|
2608 Sys_WindowText, Sys_Window, etc. (Lionel Schaffhauser)
|
|
2609 7 Use <C-Tab> to cycle through open windows (e.g., the find dialog).
|
|
2610 7 <Esc> should close a dialog.
|
|
2611 7 Keep the console for external commands open. Don't wait for a key to be
|
|
2612 hit. Re-open it when the user has closed it anyway. Or use a prepended
|
|
2613 command: ":nowait {cmd}", or ":quiet", which executes {cmd} without any
|
|
2614 prompts.
|
|
2615 7 Should be able to set an option so that when you double click a file that
|
|
2616 is associated with Vim, you can either get a new instance of Vim, or have
|
|
2617 the file added into an already running Vim.
|
|
2618 7 The "-P" argument only works for the current codepage. Use wide
|
|
2619 functions to find the window title.
|
|
2620
|
|
2621
|
|
2622 GUI:
|
|
2623 8 Make inputdialog() work for Photon, Amiga, RiscOS.
|
|
2624 - <C--> cannot be mapped. Should be possible to recognize this as a
|
|
2625 normal "-" with the Ctrl modifier.
|
|
2626 7 Implement ":popup" for other systems than Windows.
|
|
2627 8 Implement ":tearoff" for other systems than Win32 GUI.
|
|
2628 6 Implement ":untearoff": hide a torn-off menu.
|
|
2629 8 When using the scrollbar to scroll, don't move the cursor position. When
|
|
2630 moving the cursor: scroll to the cursor position.
|
|
2631 9 Make <S-Insert> paste from the clipboard by default. (Kunze)
|
|
2632 7 Menu local to a buffer, like mappings. Or local to a filetype?
|
|
2633 8 In Buffers menu, add a choice whether selecting a buffer opens it in the
|
|
2634 current window, splits the window or uses ":hide".
|
|
2635 8 Dragging the mouse pointer outside of a Vim Window should make the text
|
|
2636 scroll. Return a value from gui_send_mouse_event() to the machine
|
|
2637 specific code to indicate the time in which the event should be repeated.
|
|
2638 8 Make it possible to ignore a mouse click when it's used to give Vim (gvim)
|
|
2639 window focus. Also when a mouse click is used to bring a window to front.
|
|
2640 8 Make the split into system independent code and system specific code more
|
|
2641 explicit. There are too many #ifdefs in gui.c.
|
|
2642 If possible, separate the Vim code completely from the GUI code, to allow
|
|
2643 running them in separate processes.
|
|
2644 7 X11: Support cursorColor resource and "-cr" argument.
|
|
2645 8 X11 (and others): CTRL-; is not different from ';'. Set the modifier mask
|
|
2646 to include CTRL for keys where CTRL produces the same ASCII code.
|
471
|
2647 7 Add some code to handle proportional fonts on more systems? Need to draw
|
|
2648 each character separately (like xterm). Also for when a double-width font
|
|
2649 is not exactly double-width. (Maeda)
|
7
|
2650 8 Should take font from xterm where gvim was started (if no other default).
|
|
2651 8 Selecting font names in X11 is difficult, make a script or something to
|
70
|
2652 select one.
|
7
|
2653 8 Visual highlighting should keep the same font (bold, italic, etc.).
|
|
2654 8 Add flag to 'guioptions' to not put anything in the clipboard at all?
|
|
2655 8 Should support a way to use keys that we don't recognize yet. Add a
|
|
2656 command that adds entries to special_keys somehow. How do we make this
|
|
2657 portable (X11, Win32, ..)?
|
|
2658 7 Add a flag to 'guioptions' that tells not to remove inactive menu items.
|
|
2659 For systems where greying-out or removing menu items is very slow. The
|
|
2660 menu items would remain visibly normally, but not do anything.
|
|
2661 7 Add ":minimize" and ":maximize", which iconize the window and back.
|
|
2662 Useful when using gvim to run a script (e.g. 2html.vim).
|
|
2663 7 X11: Is it possible to free allocated colors, so that other programs can
|
|
2664 use them again? Otherwise, allow disabling allocating the default colors.
|
|
2665 Or allocate an own colormap (check UAE). With an option to use it. For
|
|
2666 the commandline, "-install" is mostly used for X11 programs.
|
|
2667 7 Add command line argument for "gvim" not to start the GUI. Sort of the
|
|
2668 inverse of "vim -g". (Vikas)
|
|
2669 7 Should support multi-column menus.
|
|
2670 - Should add option for where to put the "Help" menu: like Motif at the far
|
|
2671 right, or with the other menus (but still at the right).
|
|
2672 - Add menu item to "Keep Insert mode".
|
|
2673 8 ":mkgvimrc" command, that includes menus.
|
|
2674 6 Big change: Move GUI to separate program "vimgui", to make startup of vim a
|
|
2675 lot faster, but still be able to do "vim -g" or ":gui".
|
|
2676 7 More explicit mouse button binding instead of 'mousemodel'?
|
|
2677 7 Add option to set the position of the window on the screen. 'windowpos',
|
|
2678 which has a value of "123,456": <x>,<y>.
|
|
2679 Or add a command, like ":winsize"?
|
|
2680 7 Add toolbar for more GUIs.
|
|
2681 8 Make it possible to use "amenu icon=BuiltIn##", so that the toolbar item
|
|
2682 name can be chosen free.
|
|
2683 7 Make it possible to put the toolbar on top, left, right and/or bottom of
|
|
2684 the window? Allows for softkey-like use.
|
|
2685 6 Separate the part of Vim that does the editing from the part that runs the
|
|
2686 GUI. Communicate through a pseudo-tty. Vim starts up, creates a
|
|
2687 pty that is connected to the terminal. When the GUI starts, the pty is
|
|
2688 reconnected to the GUI process. When the GUI stops, it is connected to
|
|
2689 the terminal again. Also use the pty for external processes, it looks
|
|
2690 like a vt100 terminal to them. Vim uses extra commands to communicate GUI
|
|
2691 things.
|
|
2692 7 Motif: For a confirm() dialog <Enter> should be ignored when no default
|
|
2693 button selected, <Esc> should close the dialog.
|
|
2694 7 When using a pseudo-tty Vim should behave like some terminal (vt52 looks
|
237
|
2695 simple enough). Terminal codes to/from shell should be translated.
|
7
|
2696 - Would it be useful to be able to quit the GUI and go back to the terminal
|
|
2697 where it was started from?
|
|
2698 7 Support "-visual <type>" command line argument.
|
|
2699
|
|
2700
|
|
2701 Autocommands:
|
713
|
2702 - Put autocommand event names in a hashtable for faster lookup?
|
40
|
2703 7 For autocommand events that trigger multiple times per buffer (e.g.,
|
|
2704 CursorHold), go through the list once and cache the result for a specific
|
|
2705 buffer. Invalidate the cache when adding/deleting autocommands or
|
|
2706 changing the buffer name.
|
7
|
2707 8 Add ScriptReadCmd event: used to load remote Vim scripts, e.g.
|
|
2708 "vim -u http://mach/path/vimrc".
|
271
|
2709 7 Add TagJump event: do something after jumping to a tag.
|
662
|
2710 8 Add "TagJumpFile" autocommand: When jumping to another file for a tag.
|
|
2711 Can be used to open "main.c.gz" when "main.c" isn't found.
|
7
|
2712 8 Use another option than 'updatetime' for the CursorHold event. The two
|
|
2713 things are unrelated for the user (but the implementation is more
|
|
2714 difficult).
|
662
|
2715 8 Add an event like CursorHold that is triggered repeatedly, not just once
|
|
2716 after typing something.
|
|
2717 7 Add autocommand event for when a buffer cannot be abandoned. So that the
|
|
2718 user can define the action taking (autowrite, dialog, fail) based on the
|
|
2719 kind of file. (Yakov Lerner) Or is BufLeave sufficient?
|
7
|
2720 8 Autocommand for when modified files have been found, when getting input
|
|
2721 focus again (e.g., FileChangedFocus).
|
|
2722 Check when: getting focus, jumping to another buffer, ...
|
1125
|
2723 7 Autocommand for when an option is changed. Match buffer name or option
|
|
2724 name?
|
662
|
2725 8 Autocommands should not change registers. And marks? And the jumplist?
|
|
2726 And anything else? Add a command to save and restore these things.
|
7
|
2727 8 Add autocommands, user functions and user commands to ":mkvimrc".
|
|
2728 6 Add KeymapChanged event, so that the effects of a different keymap can be
|
|
2729 handled (e.g., other font) (Ron Aaron)
|
662
|
2730 7 When trying to open a directory, trigger an OpenDirectory event.
|
7
|
2731 7 Add file type in front of file pattern: <d> for directory, <l> for link,
|
|
2732 <x> for executable, etc. <&xxx> for Risc OS. With commas to separate
|
|
2733 alternatives. The autocommand is only executed when both the file type
|
|
2734 AND the file pattern match. (Leonard)
|
|
2735 5 Add option that specifies extensions which are to be discarded from the
|
|
2736 file name. E.g. 'ausuffix', with ".gz,.orig". Such that file.c.gz will
|
|
2737 trigger the "*.c" autocommands. (Belabas)
|
|
2738 7 Add something to break the autocommands for the current event, and for
|
|
2739 what follows. Useful for a "BufWritePre" that wants to avoid writing the
|
|
2740 file.
|
|
2741 8 When editing "tt.gz", which is in DOS format, 'fileformat' stays at
|
|
2742 "unix", thus writing the file changes it. Somehow detect that the read
|
|
2743 command used dos fileformat. Same for 'fileencoding'.
|
|
2744 - Add events to autocommands:
|
|
2745 Error - When an error happens
|
|
2746 NormalEnter - Entering Normal mode
|
|
2747 ReplaceEnter - Entering Replace mode
|
838
|
2748 CmdEnter - Entering Cmdline mode (with type of cmdline to allow
|
|
2749 different mapping)
|
7
|
2750 VisualEnter - Entering Visual mode
|
11
|
2751 *Leave - Leaving a mode (in pair with the above *Enter)
|
17
|
2752 VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
|
|
2753 when exiting isn't a good idea.
|
1125
|
2754 CursorHoldC - CursorHold while command-line editing
|
26
|
2755 WinMoved - when windows have been moved around, e.g, ":wincmd J"
|
7
|
2756 CmdUndefined - Like FuncUndefined but for user commands.
|
|
2757 SearchPost - After doing a search command (e.g. to do "M")
|
|
2758 PreDirChanged/PostDirChanged
|
|
2759 - Before/after ":cd" has been used (for changing the
|
|
2760 window title)
|
|
2761 BufReadAction - replaces reading a file
|
|
2762 BufWriteAction - replaces writing a file
|
|
2763 ShutDown - when the system is about to shut down
|
|
2764 InsertCharPre - user typed character Insert mode, before inserting the
|
|
2765 char. Pattern is matched with text before the cursor.
|
|
2766 Set v:char to the character, can be changed.
|
|
2767 (not triggered when 'paste' is set).
|
|
2768 InsertCharPost - user typed a character in Insert mode, after inserting
|
|
2769 the char.
|
|
2770 BufModified - When a buffer becomes modified, or unmodified (for
|
|
2771 putting a [+] in the window title or checking out the
|
|
2772 file from CVS).
|
|
2773 BufFirstChange - When making a change, when 'modified' is set. Can be
|
|
2774 used to do a :preserve for remote files.
|
|
2775 BufChange - after a change was made. Set some variables to indicate
|
|
2776 the position and number of inserted/deleted lines, so
|
|
2777 that marks can be updated. HierAssist has patch to add
|
|
2778 BufChangePre, BufChangePost and RevertBuf. (Shah)
|
1125
|
2779 ViewChanged - triggered when the text scrolls and when the window size
|
|
2780 changes.
|
|
2781 WinResized - After a window has been resized
|
|
2782 WinClose - Just before closing a window
|
620
|
2783 - Write the file now and then ('autosave'):
|
7
|
2784 *'autosave'* *'as'* *'noautosave'* *'noas'*
|
|
2785 'autosave' 'aw' number (default 0)
|
|
2786 Automatically write the current buffer to file N seconds after the
|
|
2787 last change has been made and when |'modified'| is still set.
|
|
2788 Default: 0 = do not autosave the buffer.
|
|
2789 Alternative: have 'autosave' use 'updatetime' and 'updatecount' but make
|
|
2790 them save the file itself besides the swapfile.
|
|
2791
|
|
2792
|
725
|
2793 Omni completion:
|
1668
|
2794 - Add a flag to 'complete' to be able to do omni completion with CTRL-N (and
|
|
2795 mix it with other kinds of completion).
|
725
|
2796 - Ideas from the Vim 7 BOF at SANE:
|
|
2797 - For interpreted languages, use the interpreter to obtain information.
|
|
2798 Should work for Java (Eclipse does this), Python, Tcl, etc.
|
|
2799 Richard Emberson mentioned working on an interface to Java.
|
|
2800 - Check Readline for its completion interface.
|
|
2801 - Ideas from others:
|
|
2802 http://www.wholetomato.com/
|
|
2803 http://www.vim.org/scripts/script.php?script_id=747
|
|
2804 http://sourceforge.net/projects/insenvim
|
|
2805 or http://insenvim.sourceforge.net
|
|
2806 Java, XML, HTML, C++, JSP, SQL, C#
|
|
2807 MS-Windows only, lots of dependencies (e.g. Perl, Internet
|
|
2808 explorer), uses .dll shared libraries.
|
|
2809 For C++ uses $INCLUDE environment var.
|
|
2810 Uses Perl for C++.
|
|
2811 Uses ctags to find the info:
|
|
2812 ctags -f $allTagsFile --fields=+aiKmnsSz --language-force=C++ --C++-kinds=+cefgmnpsut-dlux -u $files
|
|
2813 www.vim.org script 1213 (Java Development Environment) (Fuchuan Wang)
|
|
2814 IComplete: http://www.vim.org/scripts/script.php?script_id=1265
|
|
2815 and http://stud4.tuwien.ac.at/~e0125672/icomplete/
|
|
2816 http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
|
|
2817 Ivan Villanueva has something for Java.
|
|
2818 Emads: http://www.xref-tech.com/xrefactory/more_c_completion.html
|
|
2819 Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
|
|
2820 - Pre-expand abbreviations, show which abbrevs would match?
|
|
2821
|
|
2822
|
7
|
2823 Insert mode completion/expansion:
|
713
|
2824 - GUI implementation of the popup menu.
|
860
|
2825 7 When searching in other files the name flash by, too fast to read. Only
|
|
2826 display a name every second or so, like with ":vimgrep".
|
1668
|
2827 7 When expanding file names with an environment variable, add the match with
|
|
2828 the unexpanded var. So $HOME/tm expands to "/home/guy/tmp" and
|
|
2829 "$HOME/tmp"
|
7
|
2830 8 When there is no word before the cursor but something like "sys." complete
|
|
2831 with "sys.". Works well for C and similar languages.
|
|
2832 9 ^X^L completion doesn't repeat correctly. It uses the first match with
|
|
2833 the last added line, instead of continuing where the last match ended.
|
|
2834 (Webb)
|
|
2835 8 Add option to set different behavior for Insert mode completion:
|
|
2836 - ignore/match case
|
|
2837 - different characters than 'iskeyword'
|
1125
|
2838 8 Add option 'isexpand', containing characters when doing expansion (so that
|
|
2839 "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
|
|
2840 Also: 'istagword': characters used for CTRL-].
|
|
2841 When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
|
|
2842 Alternative: Use a pattern so that start and end of a keyword can be
|
|
2843 defined, only allow dash in the middle, etc.
|
7
|
2844 8 Add a command to undo the completion, go back to the original text.
|
471
|
2845 7 Completion of an abbreviation: Can leave letters out, like what Instant
|
|
2846 text does: www.textware.com
|
7
|
2847 8 Use the class information in the tags file to do context-sensitive
|
|
2848 completion. After "foo." complete all member functions/variables of
|
|
2849 "foo". Need to search backwards for the class definition of foo.
|
|
2850 Should work for C++ and Java.
|
|
2851 Even more context would be nice: "import java.^N" -> "io", "lang", etc.
|
|
2852 7 When expanding $HOME/dir with ^X^F keep the $HOME (with an option?).
|
|
2853 7 Add CTRL-X command in Insert mode like CTRL-X CTRL-N, that completes WORDS
|
|
2854 instead of words.
|
|
2855 8 Add CTRL-X CTRL-R: complete words from register contents.
|
|
2856 8 Add completion of previously inserted texts (like what CTRL-A does).
|
|
2857 Requires remembering a number of insertions.
|
|
2858 8 Add 'f' flag to 'complete': Expand file names.
|
|
2859 Also apply 'complete' to whole line completion.
|
1624
|
2860 - Add a flag to 'complete' to only scan local header files, not system
|
|
2861 header files. (Andri Moell)
|
7
|
2862 - Make it possible to search include files in several places. Use the
|
|
2863 'path' option? Can this be done with the dictionary completion (use
|
|
2864 wildcards in the file name)?
|
|
2865 - Make CTRL-X CTRL-K do a binary search in the dictionary (if it's sorted).
|
|
2866 - Speed up CTRL-X CTRL-K dictionary searching (don't use a regexp?).
|
|
2867 - Set a mark at the position where the match was found (file mark, could
|
|
2868 be in another file).
|
|
2869 - Add CTRL-A command in CTRL-X mode: show all matches.
|
|
2870 - Make CTRL-X CTRL-L use the 'complete' option?
|
|
2871 - Add command in CTRL-X mode to add following words to the completed string
|
|
2872 (e.g. to complete "Pointer->element" with CTRL-X CTRL-P CTRL-W CTRL-W)
|
|
2873 - CTRL-X CTRL-F: Use 'path' to find completions.
|
|
2874 - CTRL-X CTRL-F: Option to use forward slashes on MS-Windows?
|
|
2875 - CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly)
|
|
2876 - Allow listing all matches in some way (and picking one from the list).
|
|
2877
|
|
2878
|
|
2879 Command line editing:
|
|
2880 7 Add commands (keys) to delete from the cursor to the end of the command
|
|
2881 line.
|
|
2882 8 Custom completion of user commands can't use the standard completion
|
|
2883 functions. Add a hook to invoke a user function that returns the type of
|
|
2884 completion to be done: "file", "tag", "custom", etc.
|
|
2885 - Add flags to 'whichwrap' for command line editing (cursor right at end of
|
|
2886 lines wraps to start of line).
|
|
2887 - Make editing the command line work like Insert mode in a single-line view
|
|
2888 on a buffer that contains the command line history. But this has many
|
|
2889 disadvantages, only implement it when these can be solved. Elvis has run
|
|
2890 into these, see remarks from Steve (~/Mail/oldmail/kirkendall/in.00012).
|
|
2891 - Going back in history and editing a line there would change the history.
|
|
2892 Would still need to keep a copy of the history elsewhere. Like the
|
|
2893 cmdwin does now already.
|
|
2894 - Use CTRL-O to execute one Normal mode command. How to switch to normal
|
|
2895 mode for more commands? <Esc> should cancel the command line. CTRL-T?
|
|
2896 - To allow "/" and "= need to recursively call getcmdline(), overwrite the
|
|
2897 cmdline. But then we are editing a command-line again. How to avoid
|
|
2898 that the user gets confused by the stack of command lines?
|
|
2899 - Use edit() for normal cmdline editing? Would have to integrate
|
|
2900 getcmdline() into edit(). Need to solve conflicts between Insert mode
|
|
2901 and Command-line mode commands. Make it work like Korn shell and tcsh.
|
|
2902 Problems:
|
|
2903 - Insert: completion with 'wildchar'
|
|
2904 - Insert: use cmdline abbreviations
|
|
2905 - Insert: CTRL-D deletes indent instead of listing matches
|
|
2906 - Normal: no CTRL-W commands
|
|
2907 - Normal: no ":" commands?
|
|
2908 - Normal: allow Visual mode only within one line.
|
|
2909 - where to show insert/normal mode message? Change highlighting of
|
|
2910 character in first column?
|
|
2911 - Implementation ideas:
|
|
2912 - Set "curwin" and "curbuf" to the command line window and buffer.
|
|
2913 - curwin->w_topline is always equal to curwin->w_cursor.lnum.
|
|
2914 - never set 'number', no folding, etc. No status line.
|
|
2915 - sync undo after entering a command line?
|
|
2916 - use NV_NOCL flag for commands that are not allowed in Command-line
|
|
2917 Mode.
|
|
2918
|
|
2919
|
|
2920 Command line completion:
|
1624
|
2921 8 Completing ":r ~br" should find matching user names.
|
7
|
2922 8 Change expand_interactively into a flag that is passed as an argument.
|
|
2923 8 With command line completion after '%' and '#', expand current/alternate
|
|
2924 file name, so it can be edited. Also with modifiers, such as "%:h".
|
|
2925 8 When completing command names, either sort them on the long name, or list
|
|
2926 them with the optional part inside [].
|
1624
|
2927 8 Add an option to ignore case when doing interactive completion. So that
|
|
2928 ":e file<Tab>" also lists "Filelist" (sorted after matching case matches).
|
7
|
2929 7 Completion of ":map x ": fill in the current mapping, so that it can be
|
|
2930 edited. (Sven Guckes)
|
|
2931 - For 'wildmenu': Simplify "../bar" when possible.
|
|
2932 - When using <Up> in wildmenu mode for a submenu, should go back to the
|
|
2933 current menu, not the first one. E.g., ":emenu File.Save<Up>".
|
|
2934 8 For ":find" and ":sfind" expand files found in 'path'.
|
|
2935 8 When using backtick expansion, the external command may write a greeting
|
|
2936 message. Add an option or commands to remove lines that match a regexp?
|
|
2937 7 When listing matches of files, display the common path separately from the
|
|
2938 file names, if this makes the listing shorter. (Webb)
|
|
2939 - Add command line completion for ":ilist" and friends, show matching
|
|
2940 identifiers (Webb).
|
|
2941 8 Add command line completion for "old value" of a command. ":args <key>"
|
|
2942 would result in the current list of arguments, which you can then edit.
|
|
2943 7 Add command line completion with CTRL-X, just like Insert mode completion.
|
|
2944 Useful for ":s/word/xx/".
|
|
2945 - Add command to go back to the text as it was before completion started.
|
|
2946 Also to be used for <Up> in the command line.
|
|
2947 - Add 'wildlongest' option: Key to use to find longest common match for
|
|
2948 command line completion (default CTRL-L), like 'wildchar'. (Cregut)
|
|
2949 Also: when there are several matches, show them line a CTRL-D.
|
|
2950
|
|
2951
|
|
2952 Command line history:
|
222
|
2953 9 Remember which command lines were actually typed and were not loaded from
|
|
2954 viminfo. When writing viminfo append only these lines, so that lines from
|
|
2955 other Vim's are not overwritten.
|
7
|
2956 - Add "KeyWasTyped" flag: It's reset before each command and set when a
|
|
2957 character from the keyboard is consumed. Value is used to decide to put a
|
|
2958 command line in history or not. Put line in history if it didn't
|
|
2959 completely resulted from one mapping.
|
|
2960 - When using ":browse", also put the resulting edit command in the history,
|
|
2961 so that it can be repeated. (Demirel)
|
|
2962
|
|
2963
|
|
2964 Insert mode:
|
10
|
2965 9 When 'autoindent' is set, hitting <CR> twice, while there is text after
|
|
2966 the cursor, doesn't delete the autoindent in the resulting blank line.
|
|
2967 (Rich Wales) This is Vi compatible, but it looks like a bug.
|
7
|
2968 8 When using CTRL-O in Insert mode, then executing an insert command
|
|
2969 "a" or "i", should we return to Insert mode after <Esc>? (Eggink)
|
|
2970 Perhaps it can be allowed a single time, to be able to do
|
|
2971 "<C-O>10axyz<Esc>". Nesting this further is confusing.
|
|
2972 ":map <F2> 5aabc<Esc>" works only once from Insert mode.
|
1624
|
2973 8 When using CTRL-G CTRL-O do like CTRL-\ CTRL-O, but when returning with
|
|
2974 the cursor in the same position and the text didn't change continue the
|
|
2975 same change, so that "." repeats the whole insert.
|
7
|
2976 7 Use CTRL-G <count> to repeat what follows. Useful for inserting a
|
|
2977 character multiple times or repeating CTRL-Y.
|
1668
|
2978 - Make 'revins' work in Replace mode.
|
7
|
2979 7 Use 'matchpairs' for 'showmatch': When inserting a character check if it
|
|
2980 appears in the rhs of 'matchpairs'.
|
|
2981 - In Insert mode (and command line editing?): Allow undo of the last typed
|
|
2982 character. This is useful for CTRL-U, CTRL-W, delete and backspace, and
|
|
2983 also for characters that wrap to the next line.
|
|
2984 Also: be able to undo CTRL-R (insert register).
|
|
2985 Possibly use 'backspace'="whole" for a mode where at least a <CR> that
|
|
2986 inserts autoindent is undone by a single <BS>.
|
|
2987 - Use CTRL-G in Insert mode for an extra range of commands, like "g" in
|
|
2988 Normal mode.
|
|
2989 - Make 'paste' work without resetting other options, but override their
|
|
2990 value. Avoids problems when changing files and modelines or autocommands
|
|
2991 are used.
|
|
2992 - When typing CTRL-V and a digit higher than 2, only expect two digits.
|
|
2993 - Insert binary numbers with CTRL-V b.
|
|
2994 - Make it possible to undo <BS>, <C-W> and <C-U>. Bash uses CTRL-Y.
|
|
2995
|
|
2996
|
|
2997 'cindent', 'smartindent':
|
1624
|
2998 9 ") :" confuses continuation line: (Colin Bennett, 2007 Dec 14)
|
|
2999 cout << "a"
|
|
3000 << ") :"
|
|
3001 << "y";
|
1125
|
3002 8 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
|
1624
|
3003 8 Why are continuation lines outside of a {} block not indented? E.g.:
|
|
3004 long_type foo =
|
|
3005 value;
|
7
|
3006 8 Java: Inside an anonymous class, after an "else" or "try" the indent is
|
|
3007 too small. (Vincent Bergbauer)
|
832
|
3008 Problem of using {} inside (), 'cindent' doesn't work then.
|
7
|
3009 8 In C++ it's possible to have {} inside (): (Kirshna)
|
|
3010 func(
|
|
3011 new String[] {
|
|
3012 "asdf",
|
|
3013 "asdf"
|
|
3014 }
|
|
3015 );
|
1125
|
3016 6 Add 'cino' flag for this function argument layout: (Spencer Collyer)
|
|
3017 func( arg1
|
|
3018 , arg2
|
|
3019 , arg3
|
|
3020 );
|
829
|
3021 7 Add separate "(0" option into inside/outside a function (Zellner):
|
7
|
3022 func(
|
|
3023 int x) // indent like "(4"
|
|
3024 {
|
|
3025 if (a
|
|
3026 && b) // indent like "(0"
|
|
3027 9 Using "{" in a comment: (Helmut Stiegler)
|
|
3028 if (a)
|
|
3029 {
|
|
3030 if (b)
|
|
3031 {
|
|
3032 // {
|
|
3033 }
|
|
3034 } <-- this is indented incorrect
|
829
|
3035 Problem is that find_start_brace() checks for the matching brace to be in
|
|
3036 a comment, but not braces in between. Requires adding a comment check to
|
|
3037 findmatchlimit().
|
237
|
3038 - Make smartindenting configurable. Add 'sioptions', e.g. '#' setting the
|
7
|
3039 indent to 0 should be switched on/off.
|
|
3040 7 Support ANSI style function header, with each argument on its own line.
|
|
3041 - "[p" and "]p" should use 'cindent' code if it's on (only for the first
|
|
3042 line).
|
|
3043 - Add option to 'cindent' to set indent for comments outside of {}?
|
|
3044 - Make a command to line up a comment after a code line with a previous
|
|
3045 comment after a code line. Can 'cindent' do this automatically?
|
|
3046 7 Add 'j' flag to 'formatoptions': Remove comment leader when joining lines.
|
|
3047 - When 'cindent'ing a '}', showmatch is done before fixing the indent. It
|
|
3048 looks better when the indent is fixed before the showmatch. (Webb)
|
|
3049 - Add option to make indenting work in comments too (for commented-out
|
|
3050 code), unless the line starts with "*".
|
|
3051 - Don't use 'cindent' when doing formatting with "gq"?
|
|
3052 - When formatting a comment after some text, insert the '*' for the new line
|
|
3053 (indent is correct if 'cindent' is set, but '*' doesn't get inserted).
|
|
3054 8 When 'comments' has both "s1:/*,mb:*,ex:*/" and "s1:(*,mb:*,ex:*)", the
|
|
3055 'x' flag always uses the first match. Need to continue looking for more
|
|
3056 matches of "*" and remember all characters that could end the comment.
|
|
3057 - For smartindent: When typing 'else' line it up with matching 'if'.
|
|
3058 - 'smartindent': allow patterns in 'cinwords', for e.g. TeX files, where
|
|
3059 lines start with "\item".
|
|
3060 - Support this style of comments (with an option): (Brown)
|
|
3061 /* here is a comment that
|
|
3062 is just autoindented, and
|
|
3063 nothing else */
|
|
3064 - Add words to 'cinwords' to reduce the indent, e.g., "end" or "fi".
|
|
3065 7 Use Tabs for the indent of starting lines, pad with spaces for
|
|
3066 continuation lines. Allows changing 'tabstop' without messing up the
|
|
3067 indents.
|
829
|
3068 'keeptabs': when set don't change the tabs and spaces used for indent,
|
|
3069 when the indent remains the same or increases.
|
7
|
3070
|
|
3071
|
|
3072 Java:
|
|
3073 8 Can have {} constructs inside parens. Include changes from Steve
|
|
3074 Odendahl?
|
|
3075 8 Recognize "import java.util.Vector" and use $CLASSPATH to find files for
|
|
3076 "[i" commands and friends.
|
|
3077 - For files found with 'include': handle "*" in included name, for Java.
|
|
3078 (Jason)
|
|
3079 - How to make a "package java.util" cause all classes in the package to be
|
|
3080 searched? Also for "import java.util.*". (Mark Brophy)
|
|
3081
|
|
3082
|
|
3083 'comments':
|
|
3084 8 When formatting C comments that are after code, the "*" isn't repeated
|
|
3085 like it's done when there is no code. And there is no automatic wrapping.
|
|
3086 Recognize comments that come after code. Should insert the comment leader
|
|
3087 when it's "#" or "//".
|
121
|
3088 Other way around: when a C command starts with "* 4" the "*" is repeated
|
|
3089 while it should not. Use syntax HL comment recognition?
|
7
|
3090 7 When using "comments=fg:--", Vim inserts three spaces for a new line.
|
|
3091 When hitting a TAB, these spaces could be removed.
|
|
3092 7 The 'n'esting flag doesn't do the indenting of the last (rightmost) item.
|
|
3093 6 Make strings in 'comments' option a RE, to be able to match more
|
|
3094 complicated things. (Phillipps) Use a special flag to indicate that a
|
|
3095 regexp is used.
|
|
3096 8 Make the 'comments' option with "/* * */" lines only repeat the "*" line
|
|
3097 when there is a "/*" before it? Or include this in 'cindent'?
|
|
3098
|
|
3099
|
|
3100 Virtual edit:
|
|
3101 8 Make the horizontal scrollbar work to move the text further left.
|
|
3102 7 Add a mode where the cursor is only allowed to go one character after the
|
|
3103 end of the line?
|
|
3104 7 Allow specifying it separately for Tabs and beyond end-of-line?
|
|
3105
|
|
3106
|
|
3107 Text objects:
|
1624
|
3108 8 Add text object for fold, so that it can be yanked when it's open.
|
7
|
3109 8 Add test script for text object commands "aw", "iW", etc.
|
1280
|
3110 8 Add text object for part of a CamelHumpedWord and under_scored_word.
|
164
|
3111 (Scott Graham) "ac" and "au"?
|
169
|
3112 8 Add a text object for any kind of quoting, also with multi-byte
|
|
3113 characters. Option to specify what quotes are recognized (default: all)
|
170
|
3114 use "aq" and "iq". Use 'quotepairs' to define pairs of quotes, like
|
|
3115 'matchpairs'?
|
169
|
3116 8 Add text object for any kind of parens, also multi-byte ones.
|
7
|
3117 7 Add text object for current search pattern: "a/" and "i/". Makes it
|
|
3118 possible to turn text highlighted for 'hlsearch' into a Visual area.
|
1624
|
3119 8 Add a way to make an ":omap" for a user-defined text object. Requires
|
|
3120 changing the starting position in oap->start.
|
7
|
3121 8 Add "gp" and "gP" commands: insert text and make sure there is a single
|
|
3122 space before it, unless at the start of the line, and after it, unless at
|
|
3123 the end of the line or before a ".".
|
|
3124 7 Add objects with backwards extension? Use "I" and "A". Thus "2dAs"
|
|
3125 deletes the current and previous sentence. (Jens Paulus)
|
|
3126 7 Add "g{" and "g}" to move to the first/last character of a paragraph
|
|
3127 (instead of the line just before/after a paragraph as with "{" and "}").
|
|
3128 6 Ignore comment leaders for objects. Make "das" work in reply-email.
|
|
3129 5 Make it possible to use syntax group matches as a text object. For
|
|
3130 example, define a "ccItem" group, then do "da<ccItem>" to delete one.
|
|
3131 Or, maybe just define "dai", delete-an-item, to delete the syntax item the
|
|
3132 cursor is on.
|
|
3133
|
|
3134
|
|
3135 Select mode:
|
|
3136 8 In blockwise mode, typed characters are inserted in front of the block,
|
|
3137 backspace deletes a column before the block. (Steve Hall)
|
|
3138 7 Alt-leftmouse starts block mode selection in MS Word.
|
|
3139 See http://www.vim.org/tips/tip.php?tip_id=743
|
|
3140 7 Add Cmdline-select mode. Like Select mode, but used on the command line.
|
|
3141 - Change gui_send_mouse_event() to pass on mouse events when 'mouse'
|
|
3142 contains 'C' or 'A'.
|
|
3143 - Catch mouse events in ex_getln.c. Also shift-cursor, etc., like in
|
|
3144 normal_cmd().
|
|
3145 - remember start and end of selection in cmdline_info.
|
|
3146 - Typing text replaces the selection.
|
|
3147
|
|
3148
|
|
3149 Visual mode:
|
|
3150 - When dragging the Visual selection with the mouse and 'scrolloff' is zero,
|
|
3151 behave like 'scrolloff' is one, so that the text scrolls when the pointer
|
|
3152 is in the top line.
|
713
|
3153 - Displaying size of Visual area: use 24-33 column display.
|
|
3154 When selecting multiple lines, up to about a screenful, also count the
|
|
3155 characters.
|
7
|
3156 8 When using "I" or "A" in Visual block mode, short lines do not get the new
|
587
|
3157 text. Make it possible to add the text to short lines too, with padding
|
7
|
3158 where needed.
|
|
3159 7 With a Visual block selected, "2x" deletes a block of double the width,
|
|
3160 "3y" yanks a block of triple width, etc.
|
|
3161 7 When selecting linewise, using "itext" should insert "text" at the start
|
|
3162 of each selected line.
|
|
3163 8 What is "R" supposed to do in Visual mode?
|
|
3164 8 Make Visual mode local to the buffer. Allow changing to another buffer.
|
|
3165 When starting a new Visual selection, remove the Visual selection in any
|
|
3166 other buffer. (Ron Aaron)
|
|
3167 8 Support dragging the Visual area to drop it somewhere else. (Ron Aaron,
|
|
3168 Ben Godfrey)
|
|
3169 7 Support dragging the Visual area to drop it in another program, and
|
|
3170 receive dropped text from another program. (Ben Godfrey)
|
|
3171 7 With blockwise Visual mode and "c", "C", "I", "A", etc., allow the use of
|
|
3172 a <CR>. The entered lines are repeated over the Visual area.
|
|
3173 7 CTRL-V :s should substitute only in the block, not to whole lines. (David
|
|
3174 Young is working on this)
|
|
3175 7 Filtering a block should only apply to the block, not to the whole lines.
|
8
|
3176 When the number of lines is increased, add lines. When decreased, pad with
|
7
|
3177 spaces or delete? Use ":`<,`>" on the command line.
|
|
3178 8 After filtering the Visual area, make "gv" select the filtered text?
|
|
3179 Currently "gv" only selects a single line, not useful.
|
|
3180 7 Don't move the cursor when scrolling? Needed when the selection should
|
|
3181 stay the same. Scroll to the cursor at any movement command. With an
|
|
3182 option!
|
|
3183 7 In Visual block mode, need to be able to define a corner on a position
|
|
3184 that doesn't have text? Also: when using the mouse, be able to select
|
|
3185 part of a TAB. Even more: Add a mode where the cursor can be on a screen
|
|
3186 position where there is no text. When typing, add spaces to fill the gap.
|
|
3187 Other solution: Always use curswant, so that you can move the cursor to
|
|
3188 the right column, and then use up/down movements to select the line,
|
|
3189 without changing the column.
|
|
3190 6 ":left" and ":right" should work in Visual block mode.
|
|
3191 7 CTRL-I and CTRL-O should work in Visual mode, but only jump to marks in the
|
|
3192 current buffer.
|
|
3193 7 CTRL-A and CTRL-X should increase/decrease all numbers in the Visual area.
|
|
3194 6 In non-Block mode, "I" should insert the same text in front of each line,
|
|
3195 before the first non-blank, "gI" in column 1.
|
|
3196 6 In non-Block mode, "A" should append the same text after each line.
|
|
3197 6 When in blockwise visual selection (CTRL-V), allow cursor to be placed
|
237
|
3198 right of the line. Could also allow cursor to be placed anywhere on a TAB
|
7
|
3199 or other special character.
|
|
3200 6 Add commands to move selected text, without deselecting.
|
|
3201
|
|
3202
|
|
3203 More advanced repeating commands:
|
|
3204 - Add "." command for visual mode: redo last visual command (e.g. ":fmt").
|
237
|
3205 7 Repeating "d:{cmd}" with "." doesn't work. (Benji Fisher) Somehow remember
|
7
|
3206 the command line so that it can be repeated?
|
1624
|
3207 - Add "gn": repeat last movement command. Including count.
|
237
|
3208 - Add "." command after operator: repeat last command of same operator. E.g.
|
7
|
3209 "c." will repeat last change, also when "x" used since then (Webb).
|
|
3210 "y." will repeat last yank.
|
|
3211 "c2." will repeat the last but one change?
|
|
3212 Also: keep history of Normal mode commands, add command to list the history
|
|
3213 and/or pick an older command.
|
|
3214 - History stack for . command? Use "g." command.
|
|
3215
|
|
3216
|
|
3217 Mappings and Abbreviations:
|
|
3218 8 When "0" is mapped (it is a movement command) this mapping should not be
|
|
3219 used after typing another number, e.g. "20l". (Charles Campbell)
|
|
3220 Is this possible without disabling the mapping of the following command?
|
|
3221 8 Should mapping <C-A> and <C-S-A> both work?
|
|
3222 7 ":abbr b byte", append "b " to an existing word still expands to "byte".
|
|
3223 This is Vi compatible, but can we avoid it anyway?
|
|
3224 8 To make a mapping work with a prepended "x to select a register, store the
|
|
3225 last _typed_ register name and access it with "&.
|
|
3226 8 Add ":amap", like ":amenu".
|
725
|
3227 7 Add a mapping that works always, for remapping the keyboard.
|
7
|
3228 8 Add ":cab!", abbreviations that only apply to Command-line mode and not to
|
|
3229 entering search strings.
|
|
3230 8 Add a flag to ":abbrev" to eat the character that triggers the
|
|
3231 abbreviation. Thus "abb ab xxx" and typing "ab<Space>" inserts "xxx" and
|
|
3232 not the <Space>.
|
|
3233 8 Allow mapping of CTRL-@ (anywhere in the LHS).
|
|
3234 8 Give a warning when using CTRL-C in the lhs of a mapping. It will never
|
|
3235 (?) work.
|
|
3236 8 Add a way to save a current mapping and restore it later. Use a function
|
|
3237 that returns the mapping command to restore it: mapcmd()? mapcheck() is
|
|
3238 not fool proof. How to handle ambiguous mappings?
|
|
3239 7 Add <0x8f> (hex), <033> (octal) and <123> (decimal) to <> notation?
|
|
3240 7 Allow mapping "Q" and "Q}" at the same time. Need to put a flag with "Q",
|
237
|
3241 that it needs an extra character before it can match. See Vile 'maplonger'
|
7
|
3242 option.
|
|
3243 7 When someone tries to unmap with a trailing space, and it fails, try
|
|
3244 unmapping without the trailing space. Helps for ":unmap xx | unmap yy".
|
|
3245 7 Make it possible to map 'wildchar', but only when it's a special character
|
|
3246 (like CTRL-E). Currently it's only recognized when typed. Useful for
|
|
3247 mapping a key to do something and then completion.
|
|
3248 6 Context-sensitive abbreviations: Specify syntax group(s) in which the
|
|
3249 abbreviations are to be used.
|
|
3250 - Add mappings that take arguments. Could work like the ":s" command. For
|
|
3251 example, for a mouse escape sequence:
|
|
3252 :mapexp <Esc>{\([0-9]*\),\([0-9]*\); H\1j\2l
|
725
|
3253 - Add optional <Number> argument for mappings:
|
|
3254 :map <Number>q ^W^W<Number>G
|
|
3255 :map <Number>q<Number>t ^W^W<Number1-1>G<Number2>l
|
|
3256 :map q<Char> :s/<Char>/\u\0/g
|
|
3257 Or implicit:
|
|
3258 :map q <Register>d<Number>$
|
7
|
3259 - Make it possible to include a <Nul> in the lhs and rhs of a mapping.
|
|
3260 - Add command to repeat a whole mapping ("." only repeats the last change in
|
|
3261 a mapping). Also: Repeat a whole insert command, including any mappings
|
|
3262 that it included. Sort-of automatic recording?
|
|
3263 - Add an option to ":map" that makes it display the special keys in
|
|
3264 <> notation (e.g. <CR> instead of ^M). Or just always do this?
|
|
3265 - Include an option (or flag to 'cpoptions') that makes errors in mappings
|
|
3266 not flush the rest of the mapping (like nvi does).
|
|
3267 - Use context sensitiveness of completion to switch abbreviations and
|
|
3268 mappings off for :unab and :unmap.
|
|
3269 6 When using mappings in Insert mode, insert characters for incomplete
|
|
3270 mappings first, then remove them again when a mapping matches. Avoids
|
|
3271 that characters that are the start of some mapping are not shown until you
|
|
3272 hit another character.
|
|
3273 - Add mappings for replace mode: ":rmap". How do we then enter mappings for
|
|
3274 non-replace Insert mode?
|
|
3275 - Add separate mappings for Visual-character/block/line mode?
|
|
3276 - Add 'mapstop' command, to stop recursive mappings.
|
|
3277 - List mappings that have a raw escape sequence both with the name of the key
|
|
3278 for that escape sequence (if there is one) and the sequence itself.
|
|
3279 - List mappings: Once with special keys listed as <>, once with meta chars as
|
237
|
3280 <M-a>, once with the byte values (octal?). Sort of "spell mapping" command?
|
7
|
3281 - When entering mappings: Add the possibility to enter meta keys like they
|
|
3282 are displayed, within <>: <M-a>, <~@> or <|a>.
|
|
3283 - Allow multiple arguments to :unmap.
|
|
3284 - Command to show keys that are not used and available for mapping
|
|
3285 ":freekeys".
|
|
3286 - Allow any character except white space in abbreviations lhs (Riehm).
|
|
3287
|
|
3288
|
|
3289 Incsearch:
|
|
3290 - Add a limit to the number of lines that are searched for 'incsearch'?
|
|
3291 - When no match is found and the user types more, the screen is redrawn
|
|
3292 anyway. Could skip that. Esp. if the line wraps and the text is scrolled
|
|
3293 up every time.
|
|
3294 - Temporarily open folds to show where the search ends up. Restore the
|
|
3295 folds when going to another line.
|
|
3296 - When incsearch used and hitting return, no need to search again in many
|
|
3297 cases, saves a lot of time in big files. (Slootman wants to work on this?)
|
|
3298 When not using special characters, can continue search from the last match
|
|
3299 (or not at all, when there was no match). See oldmail/webb/in.872.
|
|
3300 - With incsearch, use CTRL-N/CTRL-P to go to next/previous match, some other
|
|
3301 key to copy matched word to search pattern (Alexander Schmid).
|
|
3302
|
|
3303
|
|
3304 Searching:
|
625
|
3305 8 Add "g/" and "gb" to search for a pattern in the Visually selected text?
|
40
|
3306 "g?" is already used for rot13.
|
1125
|
3307 The vis.vim script has a ":S" command that does something like this.
|
625
|
3308 Can use "g/" in Normal mode, uses the '< to '> area.
|
1125
|
3309 Use "&/" for searching the text in the Visual area?
|
231
|
3310 8 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands
|
|
3311 for "go recursive here" and \@( \) marks the recursive part.
|
|
3312 Perl does it this way:
|
|
3313 $paren = qr/ \(( [^()] | (??{ $paren }) )* \) /x;
|
|
3314 Here $paren is evaluated when it's encountered. This is like a regexp
|
|
3315 inside a regexp. In the above terms it would be:
|
|
3316 \@((\([^()]\|\@g\)*)\)
|
1125
|
3317 8 Show the progress every second. Could use the code that checks for CTRL-C
|
|
3318 to find out how much time has passed. Or use SIGALRM. Where to show the
|
|
3319 number?
|
328
|
3320 7 Support for approximate-regexps to find similar words (agrep
|
|
3321 http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
|
218
|
3322 8 Add an item for a big character range, so that one can search for a
|
|
3323 chinese character: \z[234-1234] or \z[XX-YY] or \z[0x23-0x234].
|
39
|
3324 7 Add an item stack to allow matching (). One side is "push X on
|
7
|
3325 the stack if previous atom matched". Other side is "match with top of
|
|
3326 stack, pop it when it matches". Use "\@pX" and "\@m"?
|
|
3327 Example: \((\@p).\{-}\@m\)*
|
|
3328 7 Add an option to accept a match at the cursor position. Also for
|
|
3329 search(). (Brett)
|
39
|
3330 7 Add a flag to "/pat/" to discard an error. Useful to continue a mapping
|
|
3331 when a search fails. Could be "/pat/E" (e is already used for an offset).
|
7
|
3332 7 Add pattern item to use properties of Unicode characters. In Perl it's
|
|
3333 "\p{L}" for a letter. See Regular Expression Pocket Reference.
|
|
3334 8 Would it be possible to allow ":23,45/pat/flags" to search for "pat" in
|
|
3335 lines 23 to 45? Or does this conflict with Ex range syntax?
|
|
3336 8 Allow identical pairs in 'matchpairs'. Restrict the search to the current
|
|
3337 line.
|
|
3338 7 Allow longer pairs in 'matchpairs'. Use ~/vim/macros/matchit.vim as an
|
|
3339 example.
|
|
3340 8 Make it possible to define the character that "%" checks for in
|
|
3341 #if/#endif. For nmake it's !if/!endif.
|
|
3342 - For "%" command: set hierarchy for which things include other things that
|
|
3343 should be ignored (like "*/" or "#endif" inside /* */).
|
|
3344 Also: use "%" to jump from start to end of syntax region and back.
|
|
3345 Alternative: use matchit.vim
|
|
3346 8 "/:/e+1" gets stuck on a match at the end of the line. Do we care?
|
|
3347 8 A pattern like "\([^a]\+\)\+" takes an awful long time. Recognize that
|
|
3348 the recursive "\+" is meaningless and optimize for it.
|
|
3349 This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".
|
|
3350 7 Recognize "[a-z]", "[0-9]", etc. and replace them with the faster "\l" and
|
|
3351 "\d".
|
24
|
3352 7 Add a way to specify characters in <C-M> or <Key> form. Could be
|
|
3353 \%<C-M>.
|
7
|
3354 8 Add an argument after ":s/pat/str/" for a range of matches. For example,
|
|
3355 ":s/pat/str/#3-4" to replace only the third and fourth "pat" in a line.
|
1624
|
3356 8 When 'iskeyword' is changed the matches from 'hlsearch' may change. (Benji
|
|
3357 Fisher) redraw if some options are set while 'hlsearch' is set?
|
7
|
3358 8 Add an option not to use 'hlsearch' highlighting for ":s" and ":g"
|
|
3359 commands. (Kahn) It would work like ":noh" is used after that command.
|
|
3360 Also: An extra flag to do this once, and a flag to keep the existing
|
|
3361 search pattern.
|
1624
|
3362 - Make 'hlsearch' a local/global option, so that it can be disabled in some
|
|
3363 of the windows.
|
7
|
3364 - Add \%h{group-name}; to search for a specific highlight group.
|
|
3365 Add \%s{syntax-group}; to search for a specific syntax group.
|
|
3366 - Support Perl regexp. Use PCRE (Perl Compatible RE) package. (Shade)
|
|
3367 Or translate the pattern to a Vim one.
|
|
3368 Don't switch on with an option for typed commands/mappings/functions, it's
|
|
3369 too confusing. Use "\@@" in the pattern, to avoid incompatibilities.
|
1624
|
3370 8 Add a way to access the last substitute text, what is used for ":s//~/".
|
|
3371 Can't use the ~ register, it's already used for drag & drop.
|
7
|
3372 - Remember flags for backreferenced items, so that "*" can be used after it.
|
|
3373 Check with "\(\S\)\1\{3}". (Hemmerling)
|
1624
|
3374 8 Flags that apply to the whole pattern.
|
|
3375 This works for all places where a regexp is used.
|
|
3376 Add "\q" to not store this pattern as the last search pattern?
|
7
|
3377 - Add flags to search command (also for ":s"?):
|
|
3378 i ignore case
|
|
3379 I use case
|
|
3380 p use Perl regexp syntax (or POSIX?)
|
|
3381 v use Vi regexp syntax
|
|
3382 f forget pattern, don't keep it for "n" command
|
|
3383 F remember pattern, keep it for "n" command
|
|
3384 Perl uses these too:
|
|
3385 e evaluate the right side as an expression (Perl only)
|
|
3386 m multiple line expression (we don't need it)
|
|
3387 o compile only once (Perl only)
|
|
3388 s single line expression (we don't need it)
|
|
3389 x extended regexp (we don't need it)
|
|
3390 When used after ":g" command, backslash needed to avoid confusion with the
|
|
3391 following command.
|
|
3392 Add 'searchflags' for default flags (replaces 'gdefault').
|
|
3393 - Add command to display the last used substitute pattern and last used
|
|
3394 pattern. (Margo) Maybe make it accessible through a register (like "/
|
|
3395 for search string)?
|
|
3396 7 Use T-search algorithm, to speed up searching for strings without special
|
|
3397 characters. See C't article, August 1997.
|
|
3398 - Add 'fuzzycase' option, so that case doesn't matter, and '-' and '_' are
|
|
3399 equivalent (for Unix filenames).
|
|
3400 - Add 'v' flag to search command: enter Visual mode, with the matching text
|
|
3401 as Visual area. (variation on idea from Bertin)
|
|
3402 - Searching: "/this//that/" should find "that" after "this".
|
|
3403 - Add global search commands: Instead of wrapping at the end of the buffer,
|
237
|
3404 they continue in another buffer. Use flag after search pattern:
|
7
|
3405 a for the next file in the argument list
|
|
3406 f for file in the buffer list
|
|
3407 w for file edited in a window.
|
237
|
3408 e.g. "/pat/f". Then "n" and "N" work through files too. "f" flag also for
|
|
3409 ":s/pat/foo/f"??? Then when 'autowrite' and 'hidden' are both not set, ask
|
7
|
3410 before saving files: "Save modified buffer "/path/file"? (Yes/Hide/No
|
|
3411 Save-all/hide-All/Quit) ".
|
|
3412 - ":s/pat/foo/3": find 3rd match of "pat", like sed. (Thomas Koehler)
|
|
3413 7 When searching with 'n' give message when getting back where the search
|
237
|
3414 first started. Remember start of search in '/ mark.
|
7
|
3415 7 Add option that scrolls screen to put cursor in middle of screen after
|
|
3416 search always/when off-screen/never. And after a ":tag" command. Maybe
|
|
3417 specify how many lines below the screen causes a redraw with the cursor in
|
|
3418 the middle (default would be half a screen, zero means always).
|
|
3419 6 Support multiple search buffers, so macros can be made without side
|
|
3420 effects.
|
|
3421 7 From xvim: Allow a newline in search patterns (also for :s, can delete
|
|
3422 newline). Add BOW, EOW, NEWL, NLORANY, NLBUTANY, magic 'n' and 'r', etc.
|
|
3423 [not in xvim:] Add option to switch on matches crossing ONE line boundary.
|
271
|
3424 7 Add ":iselect", a combination of ":ilist" and ":tselect". (Aaron) (Zellner)
|
7
|
3425 Also ":dselect".
|
|
3426
|
|
3427
|
|
3428 Undo:
|
1624
|
3429 9 After undo/redo, in the message show whether the buffer is modified or
|
|
3430 not.
|
1125
|
3431 8 Undo tree: visually show the tree somehow (Damian Conway)
|
|
3432 Show only the leaves, indicating how many changed from the branch and the
|
|
3433 timestamp?
|
|
3434 Put branch with most recent change on the left, older changes get more
|
|
3435 indent?
|
1624
|
3436 8 See ":e" as a change operation, find the changes and add them to the
|
|
3437 undo info. Also be able to undo the "Reload file" choice for when a file
|
|
3438 was changed outside of Vim.
|
|
3439 Would require doing a diff between the buffer text and the file and
|
|
3440 storing the differences.
|
1125
|
3441 8 Search for pattern in undo tree, showing when it happened and the text
|
|
3442 state, so that you can jump to it.
|
713
|
3443 - Persistent undo: store undo in a file.
|
|
3444 Use timestamps, so that a version a certain time ago can be found and info
|
|
3445 before some time/date can be flushed. 'undopersist' gives maximum time to
|
|
3446 keep undo: "3h", "1d", "2w", "1y", etc. For the file use dot and
|
|
3447 extension: ".filename.un~" (like swapfile but "un~" instead of "swp").
|
26
|
3448 - Make it possible to undo all the commands from a mapping, including a
|
|
3449 trailing unfinished command, e.g. for ":map K iX^[r".
|
7
|
3450 - When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
|
|
3451 possible, even when typing <Esc> immediately. (Grahn) Also for "i", "a",
|
|
3452 etc. Postpone saving for undo until something is really inserted?
|
|
3453 8 When Inserting a lot of text, it can only be undone as a whole. Make undo
|
|
3454 sync points at every line or word. Could recognize the start of a new
|
|
3455 word (white space and then non-white space) and backspacing.
|
|
3456 Can already use CTRL-G u, but that requires remapping a lot of things.
|
|
3457 8 Make undo more memory-efficient: Compare text before and after change,
|
|
3458 only remember the lines that really changed.
|
|
3459 7 Add undo for a range of lines. Can change these back to a previous
|
|
3460 version without changing the rest of the file. Stop doing this when a
|
|
3461 change includes only some of these lines and changes the line count. Need
|
|
3462 to store these undo actions as a separate change that can be undone.
|
|
3463 - For u_save() include the column number. This can be used to set '[ and '].
|
|
3464 And in the future the undo can be made more efficient (Webb).
|
|
3465 - In out-of-memory situations: Free allocated space in undo, and reduce the
|
|
3466 number of undo levels (with confirmation).
|
|
3467 - Instead of [+], give the number of changes since the last write: [+123].
|
|
3468 When undoing to before the last write, change this to a negative number:
|
|
3469 [-99].
|
|
3470 - With undo with simple line delete/insert: optimize screen updating.
|
|
3471 - When executing macro's: Save each line for undo only once.
|
|
3472 - When doing a global substitute, causing almost all lines to be changed,
|
|
3473 undo info becomes very big. Put undo info in swap file??
|
|
3474
|
|
3475
|
|
3476 Buffer list:
|
|
3477 7 Command to execute a command in another buffer: ":inbuf {bufname} {cmd}".
|
|
3478 Also for other windows: ":inwin {winnr} {cmd}". How to make sure that
|
|
3479 this works properly for all commands, and still be able to return to the
|
|
3480 current buffer/window? E.g.: ":inbuf xxx only".
|
|
3481 8 Add File.{recent_files} menu entries: Recently edited files.
|
|
3482 Ron Aaron has a plugin for this: mru.vim.
|
|
3483 8 Unix: Check all uses of fnamecmp() and fnamencmp() if they should check
|
|
3484 inode too.
|
|
3485 7 Add another number for a buffer, which is visible for the user. When
|
237
|
3486 creating a new buffer, use the lowest number not in use (or the highest
|
|
3487 number in use plus one?).
|
7
|
3488 7 Offer some buffer selection from the command line? Like using ":ls" and
|
|
3489 asking for a buffer number. (Zachmann)
|
|
3490 - When starting to edit a file that is already in the buffer list, use the
|
|
3491 file name argument for the new short file name. (Webb)
|
|
3492 - Add an option to make ":bnext" and ":bprev" wrap around the end of the
|
|
3493 buffer list. Also for ":next" and ":prev"?
|
|
3494 7 Add argument to ":ls" which is a pattern for buffers to list.
|
|
3495 E.g. ":ls *.c". (Thompson)
|
|
3496 7 Add expansion of buffer names, so that "*.c" is expanded to all buffer
|
|
3497 names. Needed for ":bdel *.c", ":bunload *.c", etc.
|
|
3498 8 Support for <afile> where a buffer name is expected.
|
237
|
3499 8 Some commands don't use line numbers, but buffer numbers. '$'
|
7
|
3500 should then mean the number of the last buffer. E.g.: "4,$bdel".
|
|
3501 7 Add an option to mostly use slashes in file names. Separately for
|
|
3502 internal use and for when executing an external program?
|
|
3503
|
|
3504
|
|
3505 Swap (.swp) files:
|
|
3506 8 If writing to the swap file fails, should try to open one in another
|
|
3507 directory from 'dir'. Useful in case the file system is full and when
|
|
3508 there are short file name problems.
|
|
3509 8 Also use the code to try using a short file name for the backup and swap
|
|
3510 file for the Win32 and Dos 32 bit versions.
|
|
3511 8 When a file is edited by root, add $LOGNAME to know who did su.
|
|
3512 8 When the edited file is a symlink, try to put the swap file in the same
|
237
|
3513 dir as the actual file. Adjust FullName(). Avoids editing the same file
|
7
|
3514 twice (e.g. when using quickfix). Also try to make the name of the backup
|
|
3515 file the same as the actual file?
|
|
3516 Use the code for resolve()?
|
|
3517 7 When using 64 bit inode numbers, also store the top 32 bits. Add another
|
|
3518 field for this, using part of bo_fname[], to keep it compatible.
|
|
3519 7 When editing a file on removable media, should put swap file somewhere
|
237
|
3520 else. Use something like 'r' flag in 'viminfo'. 'diravoid'?
|
7
|
3521 Also: Be able to specify minimum disk space, skip directory when not
|
|
3522 enough room.
|
|
3523 7 Add a configure check for which directory should be used: /tmp, /var/tmp
|
|
3524 or /var/preserve.
|
|
3525 - Add an option to create a swap file only when making the first change to
|
|
3526 the buffer. (Liang) Or only when the buffer is not read-only.
|
|
3527 - Add option to set "umask" for backup files and swap files (Antwerpen).
|
|
3528 'backupumask' and 'swapumask'? Or 'umaskback' and 'umaskswap'?
|
|
3529 - When editing a readonly file, don't use a swap file but read parts from the
|
|
3530 original file. Also do this when the file is huge (>'maxmem'). We do
|
|
3531 need to load the file once to count the number of lines? Perhaps keep a
|
|
3532 cached list of which line is where.
|
|
3533
|
|
3534
|
|
3535 Viminfo:
|
|
3536 7 Can probably remove the code that checks for a writable viminfo file,
|
|
3537 because we now do the chown() for root, and others can't overwrite someone
|
|
3538 else's viminfo file.
|
1280
|
3539 8 When there is no .viminfo file and someone does "su", runs Vim, a
|
|
3540 root-owned .viminfo file is created. Is there a good way to avoid this?
|
|
3541 Perhaps check the owner of the directory. Only when root?
|
7
|
3542 8 Add argument to keep the list of buffers when Vim is started with a file
|
|
3543 name. (Schild)
|
|
3544 8 Keep the last used directory of the file browser (File/Open menu).
|
|
3545 8 Remember the last used register for "@@".
|
1624
|
3546 8 Remember the redo buffer, so that "." works after restarting.
|
7
|
3547 8 Remember a list of last accessed files. To be used in the
|
|
3548 "File.Open Recent" menu. Default is to remember 10 files or so.
|
|
3549 Also remember which files have been read and written. How to display
|
|
3550 this?
|
|
3551 7 Also store the ". register (last inserted text).
|
|
3552 7 Make it possible to store buffer names in viminfo file relative to some
|
|
3553 directory, to make them portable over a network. (Aaron)
|
|
3554 6 Store a snapshot of the currently opened windows. So that when quitting
|
|
3555 Vim, and then starting again (without a file name argument), you see the
|
|
3556 same files in the windows. Use ":mksession" code?
|
|
3557 - Make marks present in .viminfo usable as file marks: Display a list of
|
|
3558 "last visited files" and select one to jump to.
|
|
3559
|
|
3560
|
|
3561 Modelines:
|
|
3562 8 Before trying to execute a modeline, check that it looks like one (valid
|
|
3563 option names). If it's very wrong, silently ignore it.
|
|
3564 Ignore a line that starts with "Subject: ".
|
1624
|
3565 - Add an option to whitelist options that are allowed in a modeline. This
|
|
3566 would allow careful users to use modelines, e.g., only allowing
|
|
3567 'shiftwidth'.
|
|
3568 - Add an option to let modelines only set local options, not global ones
|
|
3569 such as 'encoding'.
|
7
|
3570 - When an option value is coming from a modeline, do not carry it over to
|
|
3571 another edited file? Would need to remember the value from before the
|
|
3572 modeline setting.
|
|
3573 - Allow setting a variable from a modeline? Only allow using fixed strings,
|
|
3574 no function calls, to avoid a security problem.
|
|
3575 - Allow ":doauto BufRead x.cpp" in modelines, to execute autocommands for
|
|
3576 .cpp files.
|
|
3577 - Support the "abbreviate" command in modelines (Kearns). Careful for
|
|
3578 characters after <Esc>, that is a security leak.
|
|
3579 - Add option setting to ask user if he wants to have the modelines executed
|
|
3580 or not. Same for .exrc in local dir.
|
|
3581
|
|
3582
|
580
|
3583 Sessions:
|
|
3584 8 DOS/Windows: ":mksession" generates a "cd" command where "aa\#bb" means
|
|
3585 directory "#bb" in "aa", but it's used as "aa#bb". (Ronald Hoellwarth)
|
|
3586 7 When there is a "help.txt" window in a session file, restoring that
|
|
3587 session will not get the "LOCAL ADDITIONS" back.
|
7
|
3588 8 With ":mksession" always store the 'sessionoptions' option, even when
|
|
3589 "options" isn't in it. (St-Amant)
|
580
|
3590 8 When using ":mksession", also store a command to reset all options to
|
|
3591 their default value, before setting the options that are not at their
|
|
3592 default value.
|
|
3593 7 With ":mksession" also store the tag stack and jump history. (Michal
|
|
3594 Malecki)
|
|
3595 7 Persistent variables: "p:var"; stored in viminfo file and sessions files.
|
856
|
3596
|
580
|
3597
|
|
3598 Options:
|
374
|
3599 7 ":with option=value | command": temporarily set an option value and
|
|
3600 restore it after the command has executed.
|
7
|
3601 7 Setting an option always sets "w_set_curswant", while this is only
|
|
3602 required for a few options. Only do it for those options to avoid the
|
|
3603 side effect.
|
|
3604 8 Make "old" number options that really give a number of effects into string
|
|
3605 options that are a comma separated list. The old number values should
|
|
3606 also be supported.
|
|
3607 8 Add commands to save and restore an option, which also preserves the flag
|
|
3608 that marks if the option was set. Useful to keep the effect of setting
|
|
3609 'compatible' after ":syntax on" has been used.
|
|
3610 7 There is 'titleold', why is there no 'iconold'? (Chazelas)
|
|
3611 7 Make 'scrolloff' a global-local option, so that it can be different in the
|
|
3612 quickfix window, for example. (Gary Holloway)
|
|
3613
|
|
3614
|
|
3615 External commands:
|
|
3616 8 When filtering text, redirect stderr so that it can't mess up the screen
|
|
3617 and Vim doesn't need to redraw it. Also for ":r !cmd".
|
|
3618 4 Set separate shell for ":sh", piping "range!filter", reading text "r !ls"
|
|
3619 and writing text "w !wc". (Deutsche) Allow arguments for fast start (e.g.
|
|
3620 -f).
|
|
3621 4 Allow direct execution, without using a shell.
|
|
3622 4 Run an external command in the background. But how about I/O in the GUI?
|
|
3623 Careful: don't turn Vim into a shell!
|
|
3624 4 Add feature to disable using a shell or external commands.
|
|
3625
|
|
3626
|
|
3627 Multiple Windows:
|
|
3628 7 "vim -oO file ..." use both horizontal and vertical splits.
|
|
3629 8 Add CTRL-W T: go to the top window in the column of the current window.
|
|
3630 And CTRL-W B: go to bottom window.
|
|
3631 7 Use CTRL-W <Tab>, like alt-tab, to switch between buffers. Repeat <Tab>
|
|
3632 to select another buffer (only loaded ones?), <BS> to go back, <Enter> to
|
|
3633 select buffer, <Esc> to go back to original buffer.
|
1668
|
3634 7 Make it possible to edit a new buffer in the preview window. A script can
|
|
3635 then fill it with something. ":popen"?
|
782
|
3636 7 Add a 'tool' window: behaves like a preview window but there can be
|
|
3637 several. Don't count it in only_one_window(). (Alexei Alexandrov)
|
7
|
3638 6 Add an option to resize the shell when splitting and/or closing a window.
|
|
3639 ":vsp" would make the shell wider by as many columns as needed for the new
|
237
|
3640 window. Specify a maximum size (or use the screen size). ":close" would
|
7
|
3641 shrink the shell by as many columns as come available. (Demirel)
|
|
3642 7 When starting Vim several times, instantiate a Vim server, that allows
|
|
3643 communication between the different Vims. Feels like one Vim running with
|
|
3644 multiple top-level windows. Esp. useful when Vim is started from an IDE
|
|
3645 too. Requires some form of inter process communication.
|
|
3646 - Support a connection to an external viewer. Could call the viewer
|
|
3647 automatically after some seconds of non-activity, or with a command.
|
|
3648 Allow some way of reporting scrolling and cursor positioning in the viewer
|
|
3649 to Vim, so that the link between the viewed and edited text can be made.
|
|
3650
|
|
3651
|
|
3652 Marks:
|
1624
|
3653 8 Add ten marks for last changed files: ':0, ':1, etc. One mark per file.
|
7
|
3654 8 When cursor is first moved because of scrolling, set a mark at this
|
|
3655 position. (Rimon Barr) Use '-.
|
237
|
3656 8 Add a command to jump to a mark and make the motion inclusive. g'm and g`m?
|
7
|
3657 8 The '" mark is set to the first line, even when doing ":next" a few times.
|
|
3658 Only set the '" mark when the cursor was really moved in a file.
|
|
3659 8 Make `` and '', which would position the new cursor position in the middle
|
|
3660 of the window, restore the old topline (or relative position) from when
|
|
3661 the mark was set.
|
|
3662 7 Make a list of file marks in a separate window. For listing all buffers,
|
|
3663 matching tags, errors, etc. Normal commands to move around. Add commands
|
|
3664 to jump to the mark (in current window or new window). Start it with
|
|
3665 ":browse marks"?
|
|
3666 6 Add a menu that lists the Marks like ":marks". (Amerige)
|
|
3667 7 For ":jumps", ":tags" and ":marks", for not loaded buffers, remember the
|
|
3668 text at the mark. Highlight the column with the mark.
|
|
3669 7 Highlight each mark in some way (With "Mark" highlight group).
|
|
3670 Or display marks in a separate column, like 'number' does.
|
|
3671 7 Use d"m to delete rectangular area from cursor to mark m (like Vile's \m
|
|
3672 command).
|
|
3673 7 Try to keep marks in the same position when:
|
|
3674 - replacing with a line break, like in ":s/pat/^M/", move marks after the
|
|
3675 line break column to the next line. (Acevedo)
|
|
3676 - inserting/deleting characters in a line.
|
|
3677 5 Include marks for start/end of the current word and section. Useful in
|
|
3678 mappings.
|
|
3679 6 Add "unnamed mark" feature: Like marks for the ":g" command, but place and
|
|
3680 unplace them with commands before doing something with the lines.
|
|
3681 Highlight the marked lines somehow.
|
|
3682
|
|
3683
|
|
3684 Digraphs:
|
|
3685 7 Make "ga" show the digraph for a character, if it exists.
|
|
3686 Also the keymap?
|
|
3687 - Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
|
|
3688 below/above).
|
|
3689 - Use digraph table to tell Vim about the collating sequence of special
|
|
3690 characters?
|
26
|
3691 8 Add command to remove one or more (all) digraphs. (Brown)
|
7
|
3692 7 Support different sets of digraphs (depending on the character set?). At
|
|
3693 least Latin1/Unicode, Latin-2, MS-DOS (esp. for Win32).
|
|
3694
|
|
3695
|
|
3696 Writing files:
|
|
3697 - In vim_rename(), should lock "from" file when deleting "to" file for
|
|
3698 systems other than Amiga. Avoids problems with unexpected longname to
|
|
3699 shortname conversion.
|
|
3700 8 write mch_isdevice() for Amiga, Mac, VMS, etc.
|
|
3701 8 When appending to a file, Vim should also make a backup and a 'patchmode'
|
|
3702 file.
|
|
3703 8 'backupskip' doesn't write a backup file at all, a bit dangerous for some
|
|
3704 applications. Add 'backupelsewhere' to write a backup file in another
|
|
3705 directory? Or add a flag to 'backupdir'?
|
|
3706 7 The 'directory' option supports changing path separators to "%" to make
|
|
3707 file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
|
|
3708 6 Add an option to write a new, numbered, backup file each time. Like
|
|
3709 'patchmode', e.g., 'backupmode'.
|
|
3710 6 Make it possible to write 'patchmode' files to a different directory.
|
|
3711 E.g., ":set patchmode=~/backups/*.orig". (Thomas)
|
|
3712 6 Add an option to prepend something to the backup file name. E.g., "#".
|
|
3713 Or maybe allow a function to modify the backup file name?
|
237
|
3714 8 Only make a backup when overwriting a file for the first time. Avoids
|
7
|
3715 losing the original when writing twice. (Slootman)
|
|
3716 7 On non-Unix machines, also overwrite the original file in some situations
|
|
3717 (file system full, it's a link on an NFS partition).
|
|
3718 7 When editing a file, check that it has been change outside of Vim more
|
|
3719 often, not only when writing over it. E.g., at the time the swap file is
|
|
3720 flushed. Or every ten seconds or so (use the time of day, check it before
|
|
3721 waiting for a character to be typed).
|
|
3722 8 When a file was changed since editing started, show this in the status
|
|
3723 line of the window, like "[time]".
|
|
3724 Make it easier to reload all outdated files that don't have changes.
|
|
3725 Automatic and/or with a command.
|
|
3726
|
|
3727
|
|
3728 Substitute:
|
343
|
3729 8 Substitute with hex/unicode number "\%xff" and "\%uabcd". Just like
|
|
3730 "\%uabcd" in search pattern.
|
237
|
3731 8 Make it easier to replace in all files in the argument list. E.g.:
|
7
|
3732 ":argsub/oldword/newword/". Works like ":argdo %s/oldword/newword/g|w".
|
|
3733 - :s///p prints the line after a substitution.
|
|
3734 - With :s///c replace \&, ~, etc. when showing the replacement pattern.
|
|
3735 8 With :s///c allow scrolling horizontally when 'nowrap' is effective.
|
|
3736 Also allow a count before the scrolling keys.
|
237
|
3737 - Add number option to ":s//2": replace second occurrence of string? Or:
|
7
|
3738 :s///N substitutes N times.
|
|
3739 - Add answers to ":substitute" with 'c' flag, used in a ":global", e.g.:
|
|
3740 ":g/pat1/s/pat2/pat3/cg": 'A' do all remaining replacements, 'Q' don't do
|
|
3741 any replacements, 'u' undo last substitution.
|
|
3742 7 Substitute in a block of text. Use {line}.{column} notation in an Ex
|
|
3743 range, e.g.: ":1.3,$.5s" means to substitute from line 1 column 3 to the
|
|
3744 last line column 5.
|
|
3745 5 Add commands to bookmark lines, display bookmarks, remove bookmarks,
|
|
3746 operate on lines with bookmarks, etc. Like ":global" but with the
|
|
3747 possibility to keep the bookmarks and use them with several commands.
|
|
3748 (Stanislav Sitar)
|
|
3749
|
|
3750
|
|
3751 Mouse support:
|
|
3752 8 Add 'o' flag to 'mouse'?
|
|
3753 7 Be able to set a 'mouseshape' for the popup menu.
|
|
3754 8 Add 'mouse' flag, which sets a behavior like Visual mode, but automatic
|
|
3755 yanking at the button-up event. Or like Select mode, but typing gets you
|
|
3756 out of Select mode, instead of replacing the text. (Bhaskar)
|
|
3757 - Implement mouse support for the Amiga console.
|
|
3758 - Using right mouse button to extend a blockwise selection should attach to
|
|
3759 the nearest corner of the rectangle (four possible corners).
|
|
3760 - Precede mouse click by a number to simulate double clicks?!?
|
|
3761 - When mouse click after 'r' command, get character that was pointed to.
|
|
3762
|
|
3763
|
|
3764 Crypt and security:
|
|
3765 8 Also crypt the swapfile, each block separately. Change mf_write() and
|
|
3766 mf_read(). How to get b_p_key to these functions?
|
|
3767
|
|
3768
|
|
3769 Argument list:
|
|
3770 6 Add command to put all filenames from the tag files in the argument list.
|
|
3771 When given an argument, only use the files where that argument matches
|
|
3772 (like `grep -l ident`) and jump to the first match.
|
|
3773 6 Add command to form an args list from all the buffers?
|
|
3774
|
|
3775
|
|
3776 Registers:
|
|
3777 8 Don't display empty registers with ":display". (Etienne)
|
|
3778 8 Make the # register writable, so that it can be restored after jumping
|
|
3779 around in windows.
|
|
3780 8 Add put command that overwrites existing text. Should also work for
|
|
3781 blocks. Useful to move text around in a table. Works like using "R ^R r"
|
|
3782 for every line.
|
|
3783 6 When yanking into the unnamed registers several times, somehow make the
|
|
3784 previous contents also available (like it's done for deleting). What
|
|
3785 register names to use? g"1, g"2, etc.?
|
|
3786 - When appending to a register, also report the total resulting number of
|
|
3787 lines. Or just say "99 more lines yanked", add the "more".
|
|
3788 - When inserting a register in Insert mode with CTRL-R, don't insert comment
|
|
3789 leader when line wraps?
|
|
3790 - The ":@r" commands should take a range and execute the register for each
|
|
3791 line in the range.
|
|
3792 - Add "P" command to insert contents of unnamed register, move selected text
|
|
3793 to position of previous deleted (to swap foo and bar in " + foo")
|
|
3794 8 Should be able to yank and delete into the "/ register.
|
|
3795 How to take care of the flags (offset, magic)?
|
8
|
3796
|
7
|
3797
|
|
3798 Debug mode:
|
|
3799 7 Add something to enable debugging when a remote message is received.
|
|
3800 8 Add breakpoints for setting an option
|
9
|
3801 8 Add breakpoints for assigning to a variable.
|
7
|
3802 7 Add a watchpoint in the debug mode: An expression that breaks execution
|
23
|
3803 when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
|
3804 the value of the expression changes. ":watchdel" deletes an item,
|
|
3805 ":watchlist" lists the items. (Charles Campbell)
|
7
|
3806 7 Store the history from debug mode in viminfo.
|
|
3807 7 Make the debug mode history available with histget() et al.
|
|
3808
|
|
3809
|
|
3810 Various improvements:
|
1624
|
3811 8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
|
|
3812 buffer={bufnr}". So one can remove all signs for one file/buffer.
|
667
|
3813 7 Add plugins for formatting? Should be able to make a choice depending on
|
|
3814 the language of a file (English/Korean/Japanese/etc.).
|
|
3815 Setting the 'langformat' option to "chinese" would load the
|
|
3816 "format/chinese.vim" plugin.
|
|
3817 The plugin would set 'formatexpr' and define the function being called.
|
|
3818 Edward L. Fox explains how it should be done for most Asian languages.
|
|
3819 (2005 Nov 24)
|
1624
|
3820 Alternative: patch for utf-8 line breaking. (Yongwei Wu, 2008 Feb 23)
|
432
|
3821 7 [t to move to previous xml/html tag (like "vatov"), ]t to move to next
|
|
3822 ("vatv").
|
436
|
3823 7 [< to move to previous xml/html tag, e.g., previous <li>. ]< to move to
|
|
3824 next <li>, ]< to next </li>, [< to previous </li>.
|
7
|
3825 8 Add ":rename" command: rename the file of the current buffer and rename
|
|
3826 the buffer. Buffer may be modified.
|
1125
|
3827 7 Instead of filtering errors with a shell script it should be possible to
|
|
3828 do this with Vim script. A function that filters the raw text that comes
|
|
3829 from the 'makeprg'?
|
651
|
3830 - Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
|
41
|
3831 Govindachar)
|
1125
|
3832 7 Add a command that goes back to the position from before jumping to the
|
|
3833 first quickfix location. ":cbefore"?
|
7
|
3834 6 In the quickfix window statusline add the command used to get the list of
|
|
3835 errors, e.g. ":make foo", ":grep something *.c".
|
|
3836 6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
|
|
3837 7 Support using ":vert" with User commands. Add expandable items <vert>.
|
|
3838 Do the same for ":browse" and ":confirm"?
|
|
3839 For ":silent" and ":debug" apply to the whole user command.
|
1624
|
3840 More general: need a way to access command modifiers in a user command.
|
|
3841 Assign them to a v: variable?
|
7
|
3842 7 Allow a window not to have a statusline. Makes it possible to use a
|
|
3843 window as a buffer-tab selection.
|
|
3844 7 Add an invisible buffer which can be edited. For use in scripts that want
|
|
3845 to manipulate text without changing the window layout.
|
|
3846 8 Add a command to revert to the saved version of file; undo or redo until
|
|
3847 all changes are gone.
|
|
3848 6 "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri)
|
|
3849 8 Add "--remote-fail": When contacting the server fails, exit Vim.
|
|
3850 Add "--remote-self": When contacting the server fails, do it in this Vim.
|
|
3851 Overrules the default of "--remote-send" to fail and "--remote" to do it
|
|
3852 in this Vim.
|
|
3853 8 When Vim was started without a server, make it possible to start one, as
|
237
|
3854 if the "--servername" argument was given. ":startserver <name>"?
|
7
|
3855 8 No address range can be used before the command modifiers. This makes
|
|
3856 them difficult to use in a menu for Visual mode. Accept the range and
|
|
3857 have it apply to the following command.
|
|
3858 8 Add the possibility to set 'fileformats' to force a format and strip other
|
|
3859 CR characters. For example, for "dos" files remove CR characters at the
|
|
3860 end of the line, so that a file with mixed line endings is cleaned up.
|
|
3861 To just not display the CR characters: Add a flag to 'display'?
|
|
3862 7 Some compilers give error messages in which the file name does not have a
|
|
3863 path. Be able to specify that 'path' is used for these files.
|
|
3864 7 Xterm sends <Esc>O3F for <M-End>. Similarly for other <M-Home>, <M-Left>,
|
|
3865 etc. Combinations of Alt, Ctrl and Shift are also possible. Recognize
|
|
3866 these to avoid inserting the raw byte sequence, handle like the key
|
|
3867 without modifier (unless mapped).
|
|
3868 7 Support ":browse edit" in console, using explorer.vim?
|
|
3869 6 Add "gG": like what "gj" is to "j": go to the N'th window line.
|
|
3870 8 Add command like ":normal" that accepts <Key> notation like ":map".
|
|
3871 9 Support ACLs on more systems.
|
|
3872 7 Add ModeMsgVisual, ModeMsgInsert, etc. so that each mode message can be
|
|
3873 highlighted differently.
|
|
3874 7 Add a message area for the user. Set some option to reserve space (above
|
|
3875 the command line?). Use an ":echouser" command to display the message
|
|
3876 (truncated to fit in the space).
|
|
3877 7 Add %s to 'keywordprg': replace with word under the cursor. (Zellner)
|
|
3878 8 Support printing on Unix. Can use "lpansi.c" as an example. (Bookout)
|
|
3879 8 Add put command that replaces the text under it. Esp. for blockwise
|
|
3880 Visual mode.
|
8
|
3881 7 Enhance termresponse stuff: Add t_CV(?): pattern of term response, use
|
7
|
3882 regexp: "\e\[[>?][0-9;]*c", but only check just after sending t_RV.
|
|
3883 7 Add "g|" command: move to N'th column from the left margin (after wrapping
|
|
3884 and applying 'leftcol'). Works as "|" like what "g0" is to "0".
|
|
3885 7 Support setting 'equalprg' to a user function name.
|
|
3886 7 Highlight the characters after the end-of-line differently.
|
|
3887 7 When 'whichwrap' contains "l", "$dl" should join lines?
|
|
3888 8 Add an argument to configure to use $CFLAGS and not modify it? (Mooney)
|
|
3889 8 Enabling features is a mix of configure arguments and defines in
|
|
3890 feature.h. How to make this consistent? Feature.h is required for
|
|
3891 non-unix systems. Perhaps let configure define CONF_XXX, and use #ifdef
|
|
3892 CONF_XXX in feature.h? Then what should min-features and max-features do?
|
|
3893 8 Add "g^E" and "g^Y", to scroll a screen-full line up and down.
|
|
3894 6 Add ":timer" command, to set a command to be executed at a certain
|
|
3895 interval, or once after some time has elapsed. (Aaron)
|
620
|
3896 Perhaps an autocommand event like CursorHold is better?
|
7
|
3897 8 Add ":confirm" handling in open_exfile(), for when file already exists.
|
|
3898 8 When quitting with changed files, make the dialog list the changed file
|
|
3899 and allow "write all", "discard all", "write some". The last one would
|
|
3900 then ask "write" or "discard" for each changed file. Patch in HierAssist
|
|
3901 does something like this. (Shah)
|
|
3902 7 Use growarray for replace stack.
|
|
3903 7 Have a look at viH (Hellenic or Greek version of Vim). But a solution
|
|
3904 outside of Vim might be satisfactory (Haritsis).
|
|
3905 3 Make "2d%" work like "d%d%" instead of "d2%"?
|
|
3906 7 "g CTRL-O" jumps back to last used buffer. Skip CTRL-O jumps in the same
|
|
3907 buffer. Make jumplist remember the last ten accessed buffers?
|
|
3908 - Keep a list of most recently used files for each window, use "[o" to go
|
|
3909 back (older file) and "]n" to go forward (newer file) (like ^O and ^I for
|
237
|
3910 jumps). (Webb) Use ":files" and ":ls" to list the files in history order.
|
7
|
3911 7 Add a history of recently accessed buffer. Maybe make "2 CTRL-^" jump to
|
|
3912 the 2nd previously visited buffer, "3 CTRL-^" to the third, etc. Or use
|
|
3913 "3 g CTRL-^" for this?
|
|
3914 - Add code to disable the CAPS key when going from Insert to Normal mode.
|
|
3915 - Set date/protection/etc. of the patchfile the same as the original file.
|
|
3916 - Use growarray for termcodes[] in term.c
|
|
3917 - Add <window-99>, like <cword> but use filename of 99'th window.
|
|
3918 7 Add a way to change an operator to always work characterwise-inclusive
|
|
3919 (like "v" makes the operator characterwise-exclusive). "x" could be used.
|
|
3920 - Make a set of operations on list of names: expand wildcards, replace home
|
|
3921 dir, append a string, delete a string, etc.
|
|
3922 - Remove mktemp() and use tmpname() only? Ctags does this.
|
|
3923 - When replacing environment variables, and there is one that is not set,
|
|
3924 turn it into an empty string? Only when expanding options? (Hiebert)
|
|
3925 - Option to set command to be executed instead of producing a beep (e.g. to
|
|
3926 call "play newbeep.au").
|
|
3927 - Add option to show the current function name in the status line. More or
|
|
3928 less what you find with "[[k", like how 'cindent' recognizes a function.
|
|
3929 (Bhatt).
|
|
3930 - "[r" and "]r": like "p" and "P", but replace instead of insert (esp. for
|
|
3931 blockwise registers).
|
|
3932 - Add 'timecheck' option, on by default. Makes it possible to switch off the
|
|
3933 timestamp warning and question. (Dodt).
|
|
3934 - Add an option to set the time after which Vim should check the timestamps
|
|
3935 of the files. Only check when an event occurs (e.g., character typed,
|
|
3936 mouse moved). Useful for non-GUI versions where keyboard focus isn't
|
|
3937 noticeable.
|
|
3938 - Make 'smartcase' work even though 'ic' isn't set (Webb).
|
|
3939 7 When formatting text, allow to break the line at a number of characters.
|
|
3940 Use an option for this: 'breakchars'? Useful for formatting Fortran code.
|
|
3941 - Add flag to 'formatoptions' to be able to format book-style paragraphs
|
|
3942 (first line of paragraph has larger indent, no empty lines between
|
|
3943 paragraphs). Complements the '2' flag. Use '>' flag when larger indent
|
|
3944 starts a new paragraph, use '<' flag when smaller indent starts a new
|
|
3945 paragraph. Both start a new paragraph on any indent change.
|
1125
|
3946 8 The 'a' flag in 'formatoptions' is too dangerous. In some way only do
|
|
3947 auto-formatting in specific regions, e.g. defined by syntax highlighting.
|
7
|
3948 8 Allow using a trailing space to signal a paragraph that continues on the
|
|
3949 next line (MIME text/plain; format=flowed, RFC 2646). Can be used for
|
|
3950 continuous formatting. Could use 'autoformat' option, which specifies a
|
|
3951 regexp which triggers auto-formatting (for one line).
|
|
3952 ":set autoformat=\\s$".
|
|
3953 - Be able to redefine where a sentence stops. Use a regexp pattern?
|
169
|
3954 - Support multi-byte characters for sentences. Example from Ben Peterson.
|
7
|
3955 7 Add command "g)" to go to the end of a sentence, "g(" to go back to the
|
|
3956 end of a sentence. (Servatius Brandt)
|
|
3957 - Be able to redefine where a paragraph starts. For "[[" where the '{' is
|
|
3958 not in column 1.
|
|
3959 6 Add ":cdprev": go back to the previous directory. Need to remember a
|
|
3960 stack of previous directories. We also need ":cdnext".
|
|
3961 7 Should ":cd" for MS-DOS go to $HOME, when it's defined?
|
|
3962 - Make "gq<CR>" work on the last line in the file. Maybe for every operator?
|
|
3963 - Add more redirecting of Ex commands:
|
121
|
3964 :redir #> bufname
|
|
3965 :redir #>> bufname (append)
|
162
|
3966 - Give error message when starting :redir: twice or using END when no
|
|
3967 redirection was active.
|
7
|
3968 - Setting of options, specifically for a buffer or window, with
|
|
3969 ":set window.option" or ":set buffer.option=val". Or use ":buffer.set".
|
|
3970 Also: "buffer.map <F1> quit".
|
|
3971 6 Would it be possible to change the color of the cursor in the Win32
|
|
3972 console? (Klaus Hast)
|
|
3973 - Add :delcr command:
|
|
3974 *:delcr*
|
|
3975 :[range]delcr[!] Check [range] lines (default: whole buffer) for lines
|
|
3976 ending in <CR>. If all lines end in <CR>, or [!] is
|
|
3977 used, remove the <CR> at the end of lines in [range].
|
|
3978 A CTRL-Z at the end of the file is removed. If
|
|
3979 [range] is omitted, or it is the whole file, and all
|
|
3980 lines end in <CR> 'textmode' is set. {not in Vi}
|
|
3981 - Should integrate addstar() and file_pat_to_reg_pat().
|
|
3982 - When working over a serial line with 7 bit characters, remove meta
|
|
3983 characters from 'isprint'.
|
|
3984 - Use fchdir() in init_homedir(), like in FullName().
|
|
3985 - In win_update(), when the GUI is active, always use the scrolling area.
|
|
3986 Avoid that the last status line is deleted and needs to be redrawn.
|
|
3987 - That "cTx" fails when the cursor is just after 'x' is Vi compatible, but
|
|
3988 may not be what you expect. Add a flag in 'cpoptions' for this? More
|
|
3989 general: Add an option to allow "c" to work with a null motion.
|
|
3990 - Give better error messages by using errno (strerror()).
|
|
3991 - Give "Usage:" error message when command used with wrong arguments (like
|
|
3992 Nvi).
|
|
3993 - Make 'restorescreen' option also work for xterm (and others), replaces the
|
|
3994 SAVE_XTERM_SCREEN define.
|
|
3995 7 Support for ":winpos" In xterm: report the current window position.
|
|
3996 - Give warning message when using ":set t_xx=asdf" for a termcap code that
|
|
3997 Vim doesn't know about. Add flag in 'shortmess'?
|
|
3998 6 Add ":che <file>", list all the include paths which lead to this file.
|
|
3999 - For a commandline that has several commands (:s, :d, etc.) summarize the
|
|
4000 changes all together instead of for each command (e.g. for the rot13
|
|
4001 macro).
|
|
4002 - Add command like "[I" that also shows the tree of included files.
|
|
4003 - ":set sm^L" results in ":set s", because short names of options are also
|
|
4004 expanded. Is there a better way to do this?
|
|
4005 - Add ":@!" command, to ":@" like what ":source!" is to ":source".
|
|
4006 8 Add ":@:!": repeat last command with forceit set.
|
|
4007 - Should be possible to write to a device, e.g. ":w! /dev/null".
|
|
4008 - Add 't_normal': Used whenever t_me, t_se, t_ue or t_Zr is empty.
|
|
4009 - ":cab map test ^V| je", ":cunab map" doesn't work. This is vi compatible!
|
|
4010 - CTRL-W CTRL-E and CTRL-W CTRL-Y should move the current window up or down
|
|
4011 if it is not the first or last window.
|
|
4012 - Include-file-search commands should look in the loaded buffer of a file (if
|
|
4013 there is one) instead of the file itself.
|
|
4014 7 Change 'nrformats' to include the leader for each format. Example:
|
|
4015 nrformats=hex:$,binary:b,octal:0
|
|
4016 Add setting of 'nrformats' to syntax files.
|
|
4017 - 'path' can become very long, don't use NameBuff for expansion.
|
|
4018 - When unhiding a hidden buffer, put the same line at top of the window as
|
237
|
4019 the one before hiding it. Or: keep the same relative cursor position (so
|
7
|
4020 many percent down the windows).
|
|
4021 - Make it possible for the 'showbreak' to be displayed at the end of the
|
|
4022 line. Use a comma to separate the part at the end and the start of the
|
|
4023 line? Highlight the linebreak characters, add flag in 'highlight'.
|
|
4024 - Some string options should be expanded if they have wildcards, e.g.
|
|
4025 'dictionary' when it is "*.h".
|
|
4026 - Use a specific type for number and boolean options, making it possible to
|
|
4027 change it for specific machines (e.g. when a long is 64 bit).
|
|
4028 - Add option for <Insert> in replace mode going to normal mode. (Nugent)
|
|
4029 - Add a next/previous possibility to "[^I" and friends.
|
|
4030 - Add possibility to change the HOME directory. Use the directory from the
|
|
4031 passwd file? (Antwerpen)
|
|
4032 8 Add commands to push and pop all or individual options. ":setpush tw",
|
|
4033 ":setpop tw", ":setpush all". Maybe pushing/popping all options is
|
|
4034 sufficient. ":setflush" resets the option stack?
|
|
4035 How to handle an aborted mapping? Remember position in tag stack when
|
|
4036 mapping starts, restore it when an error aborts the mapping?
|
|
4037 - Change ":fixdel" into option 'fixdel', t_del will be adjusted each time
|
|
4038 t_bs is set? (Webb)
|
|
4039 - "gc": goto character, move absolute character positions forward, also
|
237
|
4040 counting newlines. "gC" goes backwards (Weigert).
|
|
4041 - When doing CTRL-^, redraw buffer with the same topline. (Demirel) Store
|
7
|
4042 cursor row and window height to redraw cursor at same percentage of window
|
|
4043 (Webb).
|
|
4044 - Besides remembering the last used line number of a file, also remember the
|
237
|
4045 column. Use it with CTRL-^ et. al.
|
7
|
4046 - Check for non-digits when setting a number option (careful when entering
|
|
4047 hex codes like 0xff).
|
|
4048 - Add option to make "." redo the "@r" command, instead of the last command
|
|
4049 executed by it. Also to make "." redo the whole mapping. Basically: redo
|
|
4050 the last TYPED command.
|
|
4051 - Support URL links for ^X^F in Insert mode, like for "gf".
|
|
4052 - Support %name% expansion for "gf" on Windows.
|
|
4053 - Make "gf" work on "file://c:/path/name". "file:/c:/" and "file:///c:/"
|
|
4054 should also work?
|
|
4055 - Add 'urlpath', used like 'path' for when "gf" used on an URL?
|
|
4056 8 When using "gf" on an absolute file name, while editing a remote file
|
|
4057 (starts with scp:// or http://) should prepend the method and machine
|
|
4058 name.
|
|
4059 - When finding an URL or file name, and it doesn't exist, try removing a
|
|
4060 trailing '.'.
|
|
4061 - Add ":path" command modifier. Should work for every command that takes a
|
|
4062 file name argument, to search for the file name in 'path'. Use
|
|
4063 find_file_in_path().
|
|
4064 - Highlight control characters on the screen: Shows the difference between
|
|
4065 CTRL-X and "^" followed by "X" (Colon).
|
|
4066 - Integrate parsing of cmdline command and parsing for expansion.
|
|
4067 - Create a program that can translate a .swp file from any machine into a
|
|
4068 form usable by Vim on the current machine.
|
|
4069 - Add ":noro" command: Reset 'ro' flag for all buffers, except ones that have
|
237
|
4070 a readonly file. ":noro!" will reset all 'ro' flags.
|
7
|
4071 - Add a variant of CTRL-V that stops interpretation of more than one
|
|
4072 character. For entering mappings on the command line where a key contains
|
|
4073 several special characters, e.g. a trailing newline.
|
237
|
4074 - Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine
|
7
|
4075 the two into a regex for searching. (Ned Konz)
|
|
4076 - Make '2' option in 'formatoptions' also work inside comments.
|
|
4077 - Add 's' flag to 'formatoptions': Do not break when inside a string. (Dodt)
|
|
4078 - When window size changed (with the mouse) and made too small, set it back
|
|
4079 to the minimal size.
|
|
4080 - Add "]>" and "[<", shift comment at end of line (command; /* comment */).
|
|
4081 - Should not call cursorcmd() for each vgetc() in getcmdline().
|
|
4082 - ":split file1 file2" adds two more windows (Webb).
|
|
4083 - Don't give message "Incomplete last line" when editing binary file.
|
|
4084 - Add ":a", ":i" for preloading of named buffers.
|
|
4085 - Allow autowrite when doing ":e file" (with an option 'eaw').
|
|
4086 - Allow a "+command" argument before each file name in the Vim command line:
|
|
4087 "vim +123 file1 +234 file2 +345 file3". ???
|
|
4088 - When entering text, keep other windows on same buffer updated (when a line
|
|
4089 entered)?
|
|
4090 - Check out how screen does output optimizing. Apparently this is possible
|
|
4091 as an output filter.
|
237
|
4092 - In dosub() regexec is called twice for the same line. Try to avoid this.
|
7
|
4093 - Window updating from memline.c: insert/delete/replace line.
|
|
4094 - Optimize ml_append() for speed, esp. for reading a file.
|
|
4095 - V..c should keep indent when 'ai' is set, just like [count]cc.
|
|
4096 - Updatescript() can be done faster with a string instead of a char.
|
|
4097 - Screen updating is inefficient with CTRL-F and CTRL-B when there are long
|
|
4098 lines.
|
|
4099 - Uppercase characters in ex commands can be made lowercase?
|
|
4100 8 Add option to show characters in text not as "|A" but as decimal ("^129"),
|
|
4101 hex ("\x81") or octal ("\201") or meta (M-x). Nvi has the 'octal' option
|
|
4102 to switch from hex to octal. Vile can show unprintable characters in hex
|
|
4103 or in octal.
|
|
4104 7 Tighter integration with xxd to edit binary files. Make it more
|
|
4105 easy/obvious to use. Command line argument?
|
237
|
4106 - How does vi detect whether a filter has messed up the screen? Check source.
|
7
|
4107 After ":w !command" a wait_return?
|
|
4108 - Improve screen updating code for doput() (use s_ins()).
|
|
4109 - With 'p' command on last line: scroll screen up (also for terminals without
|
|
4110 insert line command).
|
|
4111 - Use insert/delete char when terminal supports it.
|
|
4112 - Optimize screen redraw for slow terminals.
|
|
4113 - Optimize "dw" for long row of spaces (say, 30000).
|
|
4114 - Add "-d null" for editing from a script file without displaying.
|
|
4115 - In Insert mode: Remember the characters that were removed with backspace
|
|
4116 and re-insert them one at a time with <key1>, all together with <key2>.
|
237
|
4117 - Amiga: Add possibility to set a keymap. The code in amiga.c does not work
|
7
|
4118 yet.
|
|
4119 - Implement 'redraw' option.
|
|
4120 - Add special code to 'sections' option to define something else but '{' or
|
|
4121 '}' as the start of a section (e.g. one shiftwidth to the right).
|
|
4122 7 Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy". Only needs
|
|
4123 implementing ":w" to stdout in the buffer that was read from stdin.
|
231
|
4124 Perhaps writing to stdout will work, since stderr is used for the terminal
|
|
4125 I/O.
|
7
|
4126 8 Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd". Vile can
|
|
4127 do it.
|
|
4128 - Add commands like ]] and [[ that do not include the line jumped to.
|
|
4129 - When :unab without matching "from" part and several matching "to" parts,
|
|
4130 delete the entry that was used last, instead of the first in the list.
|
|
4131 - Add text justification option.
|
|
4132 - Set boolean options on/off with ":set paste=off", ":set paste=on".
|
|
4133 - After "inv"ing an option show the value: ":set invpaste" gives "paste is
|
|
4134 off".
|
|
4135 - Check handling of CTRL-V and '\' for ":" commands that do not have TRLBAR.
|
|
4136 - When a file cannot be opened but does exist, give error message.
|
|
4137 - Amiga: When 'r' protection bit is not set, file can still be opened but
|
237
|
4138 gives read errors. Check protection before opening.
|
7
|
4139 - When writing check for file exists but no permission, "Permission denied".
|
|
4140 - If file does not exists, check if directory exists.
|
|
4141 - MSDOS: although t_cv and t_ci are not set, do invert char under cursor.
|
|
4142 - Settings edit mode: make file with ":set opt=xx", edit it, parse it as ex
|
|
4143 commands.
|
|
4144 - ":set -w all": list one option per line.
|
|
4145 - Amiga: test for 'w' flag when reading a file.
|
|
4146 - :table command (Webb)
|
|
4147 - Add new operator: clear, make area white (replace with spaces): "g ".
|
|
4148 - Add command to ":read" a file at a certain column (blockwise read?).
|
|
4149 - Add sort of replace mode where case is taken from the old text (Goldfarb).
|
|
4150 - Allow multiple arguments for ":read", read all the files.
|
|
4151 - Support for tabs in specific columns: ":set tabcol=8,20,34,56" (Demirel).
|
|
4152 - Add 'searchdir' option: Directories to search for file name being edited
|
|
4153 (Demirel).
|
|
4154 - Modifier for the put command: Change to linewise, charwise, blockwise, etc.
|
|
4155 - Add commands for saving and restoring options ":set save" "set restore",
|
|
4156 for use in macro's and the like.
|
|
4157 - Keep output from listings in a window, so you can have a look at it while
|
237
|
4158 working in another window. Put cmdline in a separate window?
|
7
|
4159 - Add possibility to put output of ex commands in a buffer or file, e.g. for
|
|
4160 ":set all". ":r :set all"?
|
|
4161 - 'edit' option: When off changing the buffer is not possible (Really
|
|
4162 read-only mode).
|
|
4163 - When the 'equalalways' option is set, creating a new window should not
|
237
|
4164 result in windows to become bigger. Deleting a window should not result in
|
7
|
4165 a window to become smaller (Webb).
|
|
4166 - When resizing the whole Vim window, the windows inside should be resized
|
|
4167 proportionally (Webb).
|
237
|
4168 - Include options directly in option table, no indirect pointers. Use
|
7
|
4169 mkopttab to make option table?
|
|
4170 - When doing ":w dir", where "dir" is a directory name, write the current
|
|
4171 file into that directory, with the current file name (without the path)?
|
|
4172 - Support for 'dictionary's that are sorted, makes access a lot faster
|
|
4173 (Haritsis).
|
237
|
4174 - Add "^Vrx" on the command line, replace with contents of register x. Used
|
7
|
4175 instead of CTRL-R to make repeating possible. (Marinichev)
|
|
4176 - Add "^Vb" on the command line, replace with word before or under the
|
|
4177 cursor?
|
|
4178 - Option to make a .swp file only when a change is made (Templeton).
|
|
4179 - Support mapping for replace mode and "r" command (Vi doesn't do this)?
|
|
4180 5 Add 'ignorefilecase' option: Ignore case when expanding file names.
|
|
4181 ":e ma<Tab>" would also find "Makefile" on Unix.
|
9
|
4182 8 Sorting of filenames for completion is wrong on systems that ignore
|
|
4183 case of filenames. Add 'ignorefncase' option. When set, case in
|
|
4184 filenames is ignored for sorting them. Patch by Mike Williams:
|
|
4185 ~/vim/patches/ignorefncase. Also change what matches? Or use another
|
|
4186 option name.
|
7
|
4187 8 Should be able to compile Vim in another directory, with $(srcdir) set to
|
|
4188 where the sources are. Add $(srcdir) in the Makefile in a lot of places.
|
|
4189 (Netherton)
|
|
4190 6 Make it configurable when "J" inserts a space or not. Should not add a
|
|
4191 space after "(", for example.
|
|
4192 5 When inserting spaces after the end-of-line for 'virtualedit', use tabs
|
|
4193 when the user wants this (e.g., add a "tab" field to 'virtualedit').
|
|
4194 (Servatius Brandt)
|
|
4195
|
|
4196
|
|
4197 From Elvis:
|
|
4198 - Use "instman.sh" to install manpages?
|
|
4199 - Add ":alias" command.
|
|
4200 - fontchanges recognized "\\fB" etc.
|
|
4201 - Search patterns:
|
|
4202 \@ match word under cursor.
|
|
4203 but do:
|
|
4204 \@w match the word under the cursor?
|
|
4205 \@W match the WORD under the cursor?
|
|
4206 8 ":window" command:
|
|
4207 :win + next window (up)
|
|
4208 :win ++ idem, wrapping
|
|
4209 :win - previous window (down)
|
|
4210 :win -- idem, wrapping
|
|
4211 :win nr to window number "nr"
|
|
4212 :win name to window editing buffer "name"
|
|
4213 7 ":cc" compiles a single file (default: current one). 'ccprg' option is
|
|
4214 program to use with ":cc". Use ":compile" instead of ":cc"?
|
|
4215
|
|
4216
|
|
4217 From Nvi:
|
|
4218 - 'searchincr' option, alias for 'incsearch'?
|
|
4219 - 'leftright' option, alias for 'nowrap'?
|
|
4220 - Have a look at "vi/doc/vi.chart", for Nvi specialties.
|
|
4221 8 Add 'keytime', time in 1/10 sec for mapping timeout?
|
|
4222 - Add 'filec' option as an alternative for 'wildchar'.
|
|
4223 6 Support Nvi command names as an alias:
|
|
4224 :bg :hide
|
|
4225 :fg fname :buf fname (with 'hidden' set?)
|
|
4226 :dis b :ls
|
|
4227 :Edit fname :split fname
|
|
4228 :Fg fname :sbuf fname (with 'hidden' set?)
|
|
4229 :Next :snext (can't do this, already use :Next)
|
|
4230 :Previous :sprevious
|
|
4231 :Tag :stag
|
|
4232
|
|
4233
|
|
4234 From xvi:
|
|
4235 - CTRL-_ : swap 8th bit of character.
|
|
4236 - Add egrep-like regex type, like xvi (Ned Konz) or Perl (Emmanuel Mogenet)
|
|
4237
|
|
4238
|
|
4239 From vile:
|
|
4240 - When horizontal scrolling, use '>' for lines continuing right of a window.
|
|
4241 - Support putting .swp files in /tmp: Command in rc.local to move .swp files
|
|
4242 from /tmp to some directory before deleting files.
|
|
4243
|
|
4244
|
|
4245 Far future and "big" extensions:
|
541
|
4246 - Instead of using a Makefile and autoconf, use a simple shell script to
|
|
4247 find the C compiler and do everything with C code. Translate something
|
|
4248 like an Aap recipe and configure.in to C. Avoids depending on Python,
|
|
4249 thus will work everywhere. With batch file to find the C compiler it
|
|
4250 would also work on MS-Windows.
|
7
|
4251 - Make it easy to setup Vim for groups of users: novice vi users, novice
|
|
4252 Vim users, C programmers, xterm users, GUI users,...
|
|
4253 - Change layout of blocks in swap file: Text at the start, with '\n' in
|
|
4254 between lines (just load the file without changes, except for Mac).
|
|
4255 Indexes for lines are from the end of the block backwards. It's the
|
|
4256 current layout mirrored.
|
|
4257 - Make it possible to edit a register, in a window, like a buffer.
|
|
4258 - Add stuff to syntax highlighting to change the text (upper-case keywords,
|
|
4259 set indent, define other highlighting, etc.).
|
|
4260 - Mode to keep C-code formatted all the time (sort of on-line indent).
|
|
4261 - Several top-level windows in one Vim session. Be able to use a different
|
|
4262 font in each top-level window.
|
|
4263 - Allow editing above start and below end of buffer (flag in 'virtualedit').
|
|
4264 - Smart cut/paste: recognize words and adjust spaces before/after them.
|
|
4265 - Add open mode, use it when terminal has no cursor positioning.
|
|
4266 - Special "drawing mode": a line is drawn where the cursor is moved to.
|
|
4267 Backspace deletes along the line (from jvim).
|
|
4268 - Implement ":Bset", set option in all buffers. Also ":Wset", set in all
|
|
4269 windows, ":Aset, set in all arguments and ":Tset", set in all files
|
|
4270 mentioned in the tags file.
|
|
4271 Add buffer/arg range, like in ":2,5B%s/..." (do we really need this???)
|
|
4272 Add search string: "B/*.c/%s/.."? Or ":F/*.c/%s/.."?
|
|
4273 - Support for underlining (underscore-BS-char), bold (char-BS-char) and other
|
|
4274 standout modes switched on/off with , 'overstrike' option (Reiter).
|
|
4275 - Add vertical mode (Paul Jury, Demirel): "5vdw" deletes a word in five
|
|
4276 lines, "3vitextESC" will insert "text" in three lines, etc..
|
|
4277 4 Recognize l, #, p as 'flags' to EX commands:
|
|
4278 :g/RE/#l shall print lines with line numbers and in list format.
|
|
4279 :g/RE/dp shall print lines that are deleted.
|
|
4280 POSIX: Commands where flags shall apply to all lines written: list,
|
237
|
4281 number, open, print, substitute, visual, &, z. For other commands, flags
|
7
|
4282 shall apply to the current line after the command completes. Examples:
|
|
4283 :7,10j #l Join the lines 7-10 and print the result in list
|
|
4284 - Allow two or more users to edit the same file at the same time. Changes
|
|
4285 are reflected in each Vim immediately. Could work with local files but
|
|
4286 also over the internet. See http://www.codingmonkeys.de/subethaedit/.
|
|
4287
|
648
|
4288 When using "do" or ":diffget" in a buffer with changes in every line an extra
|
|
4289 empty line would appear.
|
7
|
4290
|
|
4291 vim:tw=78:sw=4:sts=4:ts=8:ft=help:norl:
|
|
4292 vim: set fo+=n :
|