📄 todo.txt
字号:
Help:8 When a help window is closed, delete the help buffer from the buffer list?- First try using the ":help" argument literally, before using it as a pattern. And then match it as part of a tag.- Use GNU Texinfo for the help files somehow? Use Info format files? At least the other way around: Use Vim to view (and edit) .info files.- Default mapping for help files: <Tab> to position cursor on next |:tag|.- When hitting <Esc> or CTRL-C in Normal mode, give a message to help novice users to get out: "Type :q! to quit Vim".- Implement a "sticky" help window, some help text lines that are always displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file, user can edit it to insert his favorite commands, new account can contain a default contents.- When entering the help window, don't resize to 'helpheight' if the user has reduced the size before (Webb). Keep the window height that the user set the window to in a "preferred window height" entry for each window.- ":help :s^I" should expand to ":help :substitute".- Make the help key (<F1>) context sensitive?- Learn mode: show short help while typing commands."make test":- Find a way to skip tests that can't be done. For non-Unix systems, but also for e.g. the Perl interface.Syntax highlighting:8 Make it easier to add new or modified syntax files. Use a search path for syntax files instead of synload?8 Allow the user to add items to the Syntax menu sorted, without having to change this for each release.8 Add patch from Scott Bigham for back referencing. ~/vim/patches/bigham.regexp3 .8 Some syntax files set 'iskeyword'. When switching to another filetype this isn't reset. Add "set isk&" to all syntax files?8 Add specific syntax item to match with parens/braces that don't have a match. :syntax nomatch cParenError "("8 Add a command to jump to the next characterw highlighted with "Error".8 Highlight the text between two matching parens (e.g., with a grey background) when on one of the parens or in between them.8 When using a cterm, and no ctermfg or ctermbg are defined, use start/stop sequences. Add remark in docs that :if 'term' == "term-name" should be used.8 Add @spell cluster to String and Comment groups for many languages. Will allow spell checking. (Fleiner)8 When listing syntax items, try to sort the keywords alphabetically. And re-insert the [] if possible.8 Make it possible to use color of text for Visual highlight group (like for the Cursor).8 Make it possible to only highlight a sub-expression of a match. Like using "\1" in a ":s" command.8 Add a way of syncing where it always starts at the beginning of the file, to find the group where redrawing starts. Useful for "#if 0" constructs in C. (Geddes) c.vim: Use advanced syncing to make long "#if 0" constructs work.8 cpp.vim: In C++ it's allowed to use {} inside ().8 Keep more context for syncing, but not for every line. Make this settable with some command ":syn sync context=1000 skip=10" (store state for 1000 lines, every 10 lines). Store the context with the window, instead of the buffer. Useful when there are two windows on the same buffer. OR: Use three options: syntaxminsyncs: minimal number of sync points (for speedy small files) syntaxmaxsyncs: maximum number of sync points (for very big files) syntaxsyncdist: number of lines between two sync points (overruled by the other two options).8 Support for deleting syntax items: :syn keyword cTodo remove this :syn match cTodo remove "pattern" :syn region cString remove start="this" end="that"8 Make it possible for a skip pattern to include "$", so that it can skip over newlines for a "oneline" region.8 Make it possible to use "inverted" highlighting, invert the original character. For Visual mode. (xterm-selection already does this).8 Highlight non-printable characters with "SpecialChar", linked to "Special". Display them with the digraph characters, if possible.8 Highlight the clipboard-selection with a highlight group.8 Be able to reset highlighting to its original (default) values.7 Be able to write current highlighting to a file as commands, similar to ":mkvimrc".8 Reduce the number of regexp in c.vim (for speed).8 Add check for unterminated strings in c.vim, with a variable to switch it on: "c_strict_ansi".8 Add a flag to temporarily disable highlighting. Set it while dragging the status line.8 Add an option to restrict the updating of syntax highlighting to the current line while in Insert mode.8 When guessing value of 'background', the syntax file has already been loaded (from the .gvimrc). After changing 'background', load it again?8 Add ":syn resync" command, to re-parse the whole file until the current display position.8 Should support "me" offset for a region start pattern. To be used to allow searching for the end pattern inside the match of the end pattern. Example: syn region pikeXX start="([^{]" end=")" should work on "()".8 When using a regexp for "contains=", should delay matching with it until redrawing happens. Set a flag when a group is added, check this flag when highlighting starts.7 Add "semitrans": Add highlighting. E.g., make the text bold, but keep the colors. And add colors, so that Green+Red becomes Yellow.7 CTRL-] checks the highlight group for finding out what the tag is.6 Not possible now: Two regions that add up. E.g. for this html: <B> bold text <I> italic+bold text </B> italic text </I>7 Not only change highlighting of text, also change what is displayed. Can be used to hide tags, e.g. :syn region boldstuff start="<B>" display="" end="</B>" display=""7 Add an explanation how a list of words can be used to highlight misspelled words.7 Should find a better way to parse the :syntax and :highlight commands. Use tables or lists that can be shared by parsing for execution and completion?7 Add a few sets of colors (e.g. Borland Turbo C one). With a menu to select one of the sets.8 Add offsets to sub-matches: "\(a*\) *"he=e1-1 'e' is end of match 'e1' is end of sub-match 1, 's2' is start of submatch 2, etc.8 Add more command line completion for :syntax.8 Add more command line completion for :highlight.8 In Insert mode, when there are typeahead characters, postpone the highlighting (for "." command).8 Syncing on comments isn't 100% correct when / / lines mix with / * and * /. For example: What about a line that starts with / / and contains * /?8 Ignore / * and * / inside strings, when syncing.8 Add possibility to sync on something else, when the syncing in one way doesn't find match. For HTML: When no {script} is found, try looking for a '<'. (Fleiner)8 Replace the synchronizing method with a state machine specification. Should be able to start at any line in the file, search forwards or backwards, and use the result of matching a pattern.7 Build a few more syntax files from the file "/usr/share/misc/vgrindefs": ISP, LDL, Icon, ratfor. And check "nedit/source/highlight.c".6 Add possibility to have background color continue until the right edge of the window. Useful for comment blocks and function headings. (Rogall)- Make it possible to add "contains" items for all items in a group. Useful when extending an already existing syntax file.- Allow the use of "blink". Make a new attr when it's used.- Add line-continuation pattern for non-syncing items too?7 Allow "\@1" in end (and skip) pattern, use first sub-match of start pattern. To be used in e.g.: 'start="[/=+]" end="\@1"' Also for Perl.8 Add cursor-column highlighting. Enable it with 'cursorcolumn' option, set highlighting with "CursorColumn" group. Useful for aligning text. Also cursor-row highlighting.- Add possibility to highlight specific columns (for Fortran). Or put a line in between columns (e.g. for 'textwidth').- Add possibility to highlight the whole line, including the right margin (for comment blocks).- Add 'hlmatch' option: List of flags: 'c': highlight match for character under the cursor. 'b': highlight the previous (, and its match. 'a': highlight all text from the previous ( until its match. Also for {}, <>, etc.? 'e': highlight all braces without a match (slow?) OR: add an argument "cursor" to the syntax command, which means that the region/match/keyword is only highlighted when the cursor is on it. (Campbell)7 Make it possible to use all words in the tags files as Keyword. Can also be done with a script (but it's slow).7 Make it possible to call a ":" command when a match is found. Should allow for adding keywords from the text (e.g. variables that are set). And allows for sections with different highlighting.7 Add highlight group for commandline: "Commandline". Make sure it highlights the command line while typing a command, and any output from messages. And external commands?8 Make a version that works like less, but with highlighting: read stdin for text, exit at end of file, don't allow editing, etc. moreim? lessim?Built-in script language:8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and ":let &t_xx =". Useful for making portable mappings.8 Allow range for ":exec". Pass it on to the executed command. (Webb)8 Add a way to catch errors: :try : [commands that can fail] :catch [error-type] : [error handling] :endtry8 Have a look at VSEL. Would it be useful to include? (Bigham)8 Add ":fungroup" command, to group function definitions together. When encountered, all functions in the group are removed. Suggest using an obscure name to avoid name clashes. Require a ":fungroup END" in the same sourced file? Assume the group ends at the end of the file. Handle nested packages? Alternative: Support packages. {package-name}:{function-name}(). Packages are loaded automatically when first used, from $VIMRUNTIME/packages (or use a search path). Or add a FuncUndefined autocommand, so that the user can handle loading a function as he pleases. (Aaron) Pre-parse or compile Vim scripts into a bytecode. Put the bytecode with the original script, with an ":if" around it, so that it's only used with a Vim that supports it.8 The input() function should not read mapped characters, but always get characters from the user (or a script). Need to change vgetorpeek() to ignore mapped characters.8 Add functions: cursor(lnum, col) Position cursor (when lnum or col 0 keep val) col("$") Column number of last char in line. See ~/vim/patches/wall.coldollar . multibyteidx(string, idx) Byte index in multi-byte character. menuname({menu_name}, {idx}) get name of menu. menuname("", 1) returns "File", menuname("File", 1) returns "Open...". menuarg({menu_name}) return argument of a menu item by name. mapname({idx}, mode) return the name of the idx'th mapping. match({pat}, {string}, [count]) get index of count'th match stridx(bigstr, smallstr) return index of first smallstr in bigstr strridx(bigstr, smallstr) return index of last smallstr in bigstr sprintf(format, arg, ..) How to prevent a crash??? inputpassword() Ask user to enter password without showing it. Or extra argument to input() (Haegg) attributes() return file protection flags "drwxrwxrwx" perl(cmd) call Perl and return string shorten(fname) shorten a file name, like home_replace() input(prompt, complete) like input() but do specified completion filewritable() like filereadable() getfperm() file permissions, in form "rwxrwxrwx" getfsize() file size in bytes (directory is 0) getftype() "file", "dir", "link", "other"? getbufvar({bufid}, {name}) setbufvar({bufid}, {name}, {value}) get/set value of variable {name} in buffer {bufid} See ~/vim/patches/aaron.getbufvar4 setwinvar() getwinvar() libcall() Allow more than one argument. libcallnr() Like libcall(), but function returns a number. fnamemod({fname}, {mod}) {mod} can be ":p:h" etc., to be applied to {fname} getchar() get one character from the user. confirm() add "flags" argument, with 'v' for vertical layout and 'c' for console dialog. Also add 'c' to 'guioptions' (for all dialogs) (Haegg) toupper({string}) tolower({string}) filter({cmd} [, {string}]) Filter {string} through the shell command {cmd} and return the result. If {string} is omitted no input is given to {cmd}. getkey() Like input() but get only one char.8 argc() returns 0 when using "vim -t tag". How to detect that no file was specified in any way? To be able to jump to the last edited file.8 When starting to source a vim script, delete all functions that it has previously defined. Avoids using ":fun!" all the time.8 Include support for arrays? Patch from Robert Webb.7 Add optional arguments to user functions: :func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)6 User functions: Functions local to buffer "b:func()"?8 Add ":let var[{expr}] = {expr}". When past the end of "var" just ignore.8 The "= register should be writable, if followed by the name of a variable, option or environment variable.8 ":let &option" should list the value of the option.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -