Mercurial > vim
comparison runtime/doc/todo.txt @ 7707:41768bcebc9b
commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 21 23:36:05 2016 +0100
Update runtime files
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 21 Jan 2016 23:45:07 +0100 |
parents | 07f11de5efca |
children | ca19726d5e83 |
comparison
equal
deleted
inserted
replaced
7706:dd457970efc8 | 7707:41768bcebc9b |
---|---|
1 *todo.txt* For Vim version 7.4. Last change: 2016 Jan 17 | 1 *todo.txt* For Vim version 7.4. Last change: 2016 Jan 21 |
2 | 2 |
3 | 3 |
4 VIM REFERENCE MANUAL by Bram Moolenaar | 4 VIM REFERENCE MANUAL by Bram Moolenaar |
5 | 5 |
6 | 6 |
73 - this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving | 73 - this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving |
74 out the \& works. Seems any column check after \& fails. | 74 out the \& works. Seems any column check after \& fails. |
75 - The pattern "\1" with the old engine gives E65, with the new engine it | 75 - The pattern "\1" with the old engine gives E65, with the new engine it |
76 matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24) | 76 matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24) |
77 - Search for \\~ causes error E874. | 77 - Search for \\~ causes error E874. |
78 - "\%1l^#.*" does not match on a line starting with "#". The zero-width match | |
79 clears the start-of-line flag. | |
80 | |
81 C89: remove __ARGS in more places | |
82 - Script: Hirohito Higashi, Jan 21. | |
83 - Update to osdef.sh, Hirohito Higashi, 2016 Jan 21. | |
78 | 84 |
79 Need to try out instructions in INSSTALLpc.txt about how to install all | 85 Need to try out instructions in INSSTALLpc.txt about how to install all |
80 interfaces and how to build Vim with them. | 86 interfaces and how to build Vim with them. |
81 Appveyor build with self-installing executable, includes getting most | 87 Appveyor build with self-installing executable, includes getting most |
82 interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build | 88 interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build |
87 | 93 |
88 Problem that a previous silent ":throw" causes a following try/catch not to | 94 Problem that a previous silent ":throw" causes a following try/catch not to |
89 work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) | 95 work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) |
90 | 96 |
91 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) | 97 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) |
98 | |
99 Use vim.vim syntax highlighting for help file examples, but without ":" in | |
100 'iskeyword' for syntax. | |
101 | |
102 Remove SPACE_IN_FILENAME ? What could possibly go wrong? | |
92 | 103 |
93 Installation of .desktop files does not work everywhere. | 104 Installation of .desktop files does not work everywhere. |
94 It's now fixed, but the target directory probably isn't right. | 105 It's now fixed, but the target directory probably isn't right. |
95 Add configure check? | 106 Add configure check? |
96 Should use /usr/local/share/applications or /usr/share/applications. | 107 Should use /usr/local/share/applications or /usr/share/applications. |
100 Access to uninitialized memory in match_backref() regexp_nda.c:4882 | 111 Access to uninitialized memory in match_backref() regexp_nda.c:4882 |
101 (Dominique Pelle, 2015 Nov 6) | 112 (Dominique Pelle, 2015 Nov 6) |
102 | 113 |
103 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the | 114 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the |
104 directory exists. (Sergio Gallelli, 2013 Dec 29) | 115 directory exists. (Sergio Gallelli, 2013 Dec 29) |
116 | |
117 Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12) | |
118 More tests May 14. Update May 29. Update Aug 10. | |
119 Now part of large file patches. (Ken Takata, 2016 Jan 19, second one) | |
120 Updated patches with ordering: Jan 20. | |
105 | 121 |
106 Using ":windo" to set options in all windows has the side effect that it | 122 Using ":windo" to set options in all windows has the side effect that it |
107 changes the window layout and the current window. Make a variant that saves | 123 changes the window layout and the current window. Make a variant that saves |
108 and restores. Use in the matchparen plugin. | 124 and restores. Use in the matchparen plugin. |
109 Perhaps we can use ":windo <restore> {cmd}"? | 125 Perhaps we can use ":windo <restore> {cmd}"? |
115 | 131 |
116 Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. | 132 Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. |
117 | 133 |
118 Unexpected delay when using CTRL-O u. It's not timeoutlen. | 134 Unexpected delay when using CTRL-O u. It's not timeoutlen. |
119 (Gary Johnson, 2015 Aug 28) | 135 (Gary Johnson, 2015 Aug 28) |
136 | |
137 Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21) | |
120 | 138 |
121 Instead of separately uploading patches to the ftp site, we can get them from | 139 Instead of separately uploading patches to the ftp site, we can get them from |
122 github with a URL like this: | 140 github with a URL like this: |
123 https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff | 141 https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff |
124 Diff for version.c contains more context, can't skip a patch. | 142 Diff for version.c contains more context, can't skip a patch. |
150 'cursorline'/'cursorcolumn' are a lot faster? | 168 'cursorline'/'cursorcolumn' are a lot faster? |
151 | 169 |
152 Build with Python on Mac does not always use the right library. | 170 Build with Python on Mac does not always use the right library. |
153 (Kazunobu Kuriyama, 2015 Mar 28) | 171 (Kazunobu Kuriyama, 2015 Mar 28) |
154 | 172 |
155 Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21) | 173 Need a Vim equivalent of Python's None and a way to test for it. |
156 Need a Vim equivalent of None and a way to test for it. | |
157 | 174 |
158 To support Thai (and other languages) word boundaries, include the ICU | 175 To support Thai (and other languages) word boundaries, include the ICU |
159 library: http://userguide.icu-project.org/boundaryanalysis | 176 library: http://userguide.icu-project.org/boundaryanalysis |
160 | 177 |
161 When complete() first argument is before where insert started and 'backspace' | 178 When complete() first argument is before where insert started and 'backspace' |
162 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19) | 179 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19) |
163 | 180 |
164 Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11) | |
165 Problem reported by David Fishburn, using searchpair() with synID() used in | |
166 the skip expression. | |
167 | |
168 Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not | 181 Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not |
169 handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10) | 182 handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10) |
170 | 183 |
171 Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13) | 184 Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13) |
172 Goes away when disabling the swap file. (might1, Feb 16) | 185 Goes away when disabling the swap file. (might1, Feb 16) |
173 | 186 |
174 MS-Windows: Crash opening very long file name starting with "\\". | 187 MS-Windows: Crash opening very long file name starting with "\\". |
175 (Christian Brock, 2012 Jun 29) | 188 (Christian Brock, 2012 Jun 29) |
176 | |
177 Patch to add ":syn iskeyword". (Christian Brabandt, 2015 Nov 10) | |
178 | |
179 Patch to use PLATFORM to determine target architecture. (Taro Muraoka, 2015 | |
180 Nov 29) | |
181 | |
182 If libiconv.dll is not found search for libiconv2.dll. (Yasuhiro Matsumoto, | |
183 2015 Oct 7) | |
184 | 189 |
185 Using an external diff is inefficient. Not all systems have a good diff | 190 Using an external diff is inefficient. Not all systems have a good diff |
186 program available (esp. MS-Windows). Would be nice to have in internal diff | 191 program available (esp. MS-Windows). Would be nice to have in internal diff |
187 implementation. Can then also use this for displaying changes within a line. | 192 implementation. Can then also use this for displaying changes within a line. |
188 Olaf Dabrunz is working on this. | 193 Olaf Dabrunz is working on this. |
196 ":tag" does not jump to the right entry of a :tselect. (James Speros, 2015 Oct | 201 ":tag" does not jump to the right entry of a :tselect. (James Speros, 2015 Oct |
197 9) | 202 9) |
198 | 203 |
199 The argument for "-S" is not taken literally, the ":so" command expands | 204 The argument for "-S" is not taken literally, the ":so" command expands |
200 wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4) | 205 wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4) |
201 | |
202 Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct | |
203 30) | |
204 | 206 |
205 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5) | 207 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5) |
206 Update Aug 14. | 208 Update Aug 14. |
207 | 209 |
208 Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27) | 210 Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27) |
319 Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) | 321 Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) |
320 | 322 |
321 Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny, | 323 Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny, |
322 2015 Feb 6. | 324 2015 Feb 6. |
323 | 325 |
324 Plugins need to make a lot of effort, lots of mappings, to know what happened | |
325 before pressing the key that triggers a plugin action. How about keeping the | |
326 last N pressed keys, so that they do not need to be mapped? | |
327 | |
328 Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4. | 326 Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4. |
329 Is this a good solution? | 327 Is this a good solution? |
330 | 328 |
331 Patch to allow setting w:quickfix_title via setqflist() and setloclist() | 329 Patch to allow setting w:quickfix_title via setqflist() and setloclist() |
332 functions. (Christian Brabandt, 2013 May 8, update May 21) | 330 functions. (Christian Brabandt, 2013 May 8, update May 21) |
408 | 406 |
409 Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki | 407 Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki |
410 Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7). | 408 Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7). |
411 Update 2015 Jan 10. | 409 Update 2015 Jan 10. |
412 | 410 |
413 Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12) | |
414 More tests May 14. Update May 29. Update Aug 10. | |
415 | |
416 Idea: For a window in the middle (has window above and below it), use | 411 Idea: For a window in the middle (has window above and below it), use |
417 right-mouse-drag on the status line to move a window up/down without changing | 412 right-mouse-drag on the status line to move a window up/down without changing |
418 its height? It's like dragging the status bar above it at the same time. | 413 its height? It's like dragging the status bar above it at the same time. |
419 | 414 |
420 Can we make ":unlet $VAR" use unsetenv() to delete the env var? | 415 Can we make ":unlet $VAR" use unsetenv() to delete the env var? |
436 | 431 |
437 Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman, | 432 Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman, |
438 2014 Jun 8) | 433 2014 Jun 8) |
439 | 434 |
440 Include a plugin manager with Vim? Neobundle seems to be the best currently. | 435 Include a plugin manager with Vim? Neobundle seems to be the best currently. |
436 Also Vundle: https://github.com/gmarik/vundle | |
441 Long message about this from ZyX, 2014 Mar 23. And following replies. | 437 Long message about this from ZyX, 2014 Mar 23. And following replies. |
442 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html | 438 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html |
443 User view: | 439 User view: |
444 - Support multiple sources, basically any http:// URL. Be able to look into | 440 - Support multiple sources, basically any http:// URL. Or a central place that |
445 the files before deciding to install. | 441 will work for everybody (github? redirects from vim.org?). |
442 Be able to look into the files before deciding to install. | |
446 - Be able to try out a plugin and remove it again with (almost) no traces. | 443 - Be able to try out a plugin and remove it again with (almost) no traces. |
447 - Each plugin needs a "manifest" file that has the version, dependencies | 444 - Each plugin needs a "manifest" file that has the version, dependencies |
448 (including Vim version and features), conflicts, list of files, etc. | 445 (including Vim version and features), conflicts, list of files, etc. |
449 Updater uses that to decide what/how to update. | 446 Updater uses that to decide what/how to update. |
450 Dependencies can use a URL for specific versions, or short name for scripts | 447 Dependencies can use a URL for specific versions, or short name for scripts |
1111 | 1108 |
1112 Gui menu edit/paste in block mode insert only inserts in one line (Bjorn | 1109 Gui menu edit/paste in block mode insert only inserts in one line (Bjorn |
1113 Winckler, 2011 May 11) | 1110 Winckler, 2011 May 11) |
1114 Requires a map mode for Insert mode started from blockwise Visual mode. | 1111 Requires a map mode for Insert mode started from blockwise Visual mode. |
1115 | 1112 |
1113 Use json format for new items in .viminfo: | |
1114 |["info","any info"] | |
1115 |["text","text text text" | |
1116 |"continuation line"] | |
1117 |["hist",242342342,{"arg":"value"}] | |
1118 Use \" for a single ". Use \\ for a \. | |
1119 See http://www.ietf.org/rfc/rfc4627.txt | |
1120 | |
1116 Writing nested List and Dict in viminfo gives error message and can't be read | 1121 Writing nested List and Dict in viminfo gives error message and can't be read |
1117 back. (Yukihiro Nakadaira, 2010 Nov 13) | 1122 back. (Yukihiro Nakadaira, 2010 Nov 13) |
1118 | 1123 |
1119 Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11) | 1124 Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11) |
1120 Additional info by Dominique Pelle. (also on 2010 Apr 10) | 1125 Additional info by Dominique Pelle. (also on 2010 Apr 10) |
2128 Add an option for a minimal text length before inserting a line break for | 2133 Add an option for a minimal text length before inserting a line break for |
2129 'textwidth'. Avoids very short lines when a very long word follows. | 2134 'textwidth'. Avoids very short lines when a very long word follows. |
2130 (Kartik Agaram) | 2135 (Kartik Agaram) |
2131 | 2136 |
2132 | 2137 |
2133 At next release: | 2138 Better plugin support (not plugin manager, see elsewhere for that): |
2134 - Build a huge version by default. | 2139 - Add interface to another process, e.g. to run a background plugin. |
2135 - Improve plugin handling: Automatic updates, handle dependencies? | 2140 Can use the code from netbeans to communicate over a socket. |
2136 E.g. Vundle: https://github.com/gmarik/vundle | 2141 A bit like +clientserver but without the hassle of starting another Vim. |
2142 Use json for the messages. | |
2143 let handle = startjob({command}) # uses stdin/stdout | |
2144 let handle = startjob({command}, {address}) # uses socket | |
2145 let handle = connect({address}) # uses socket | |
2146 let handle = deamon({command}, {address}) # start it if connect fails | |
2147 let response = sendjson(handle, {json}) # sync | |
2148 call sendjson(handle, {json}, {callback}) # async | |
2149 call sethandler(handle, {callback}) | |
2150 The response json is wrapped in an array: | |
2151 [{code},{response}] | |
2152 {code} must be positive, when zero the callback from sethandler() is called | |
2153 The job can send Vim commands that do not require a handler: | |
2154 ['ex', {Ex command}] | |
2155 ['normal', {Normal mode command}] | |
2156 ['keys', {condition}, {key sequence}] | |
2157 ['eval', {expression}] sync, will send back result | |
2158 ['expr', {expression}] async | |
2159 - Native JSON support (to be able to commucate with any interface in the same | |
2160 way). | |
2161 - Avoid use of feedkeys, add eval functions where needed: | |
2162 - manipulating the Visual selection? | |
2163 - Add createmark(): add a mark like mM, but return a unique ID. Need some way | |
2164 to clean them up again... Use a name + the script ID. | |
2165 Add createmark( , 'c') to track inserts/deletes before the column. | |
2166 - Plugins need to make a lot of effort, lots of mappings, to know what | |
2167 happened before pressing the key that triggers a plugin action. How about | |
2168 keeping the last N pressed keys, so that they do not need to be mapped? | |
2137 | 2169 |
2138 | 2170 |
2139 More patches: | 2171 More patches: |
2140 - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) | 2172 - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) |
2141 Needs a few tests. | 2173 Needs a few tests. |
3480 pattern, but not in the body. | 3512 pattern, but not in the body. |
3481 8 Add a "keepend-contained" argument: Don't change the end of an item this | 3513 8 Add a "keepend-contained" argument: Don't change the end of an item this |
3482 one is contained in. Like "keepend" but specified on the contained item, | 3514 one is contained in. Like "keepend" but specified on the contained item, |
3483 instead of the containing item. | 3515 instead of the containing item. |
3484 8 cpp.vim: In C++ it's allowed to use {} inside (). | 3516 8 cpp.vim: In C++ it's allowed to use {} inside (). |
3485 8 Some syntax files set 'iskeyword'. When switching to another filetype | 3517 8 Some syntax files set 'iskeyword', they should use "syn iskeyword". |
3486 this isn't reset. Add a special keyword definition for the syntax rules? | |
3487 When this is done, use vim.vim syntax highlighting for help file examples, | |
3488 but without ":" in 'iskeyword' for syntax. | |
3489 Also need a separate 'iskeyword' for the command line, e.g., in a help | 3518 Also need a separate 'iskeyword' for the command line, e.g., in a help |
3490 window ":e /asdf/asdf/" CTRL-W works different. | 3519 window ":e /asdf/asdf/" CTRL-W works different. |
3491 8 Add specific syntax item to match with parens/braces that don't have a | 3520 8 Add specific syntax item to match with parens/braces that don't have a |
3492 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained] | 3521 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained] |
3493 8 Highlight the text between two matching parens (e.g., with a grey | 3522 8 Highlight the text between two matching parens (e.g., with a grey |