Sven [email protected] ©1995-2001 | Last update: Tue Oct 02 17:00:00 MEST 2001 |
Please note: The "todo list" is maintained by the author and ships with the distribution of Vim (filename "todo"). It is not the same as this "Vim Wishlist".
So send me your wishes - I will try to convince the developers that they need to be implemented. But before sending your wishes please check out this page and the todo list first to avoid "noise". Thanks!
Sven [email protected]
:help todo /redef - Be able to redefine where a sentence stops. Use a regexp pattern? - Be able to redefine where a paragraph starts. For "[[" where the '{' is not in column 1.
'cursoroffset' 'co' numberlist (default "0,0") local to buffer Number of top/bottom offset lines for the cursor. This keeps the cursor from getting to near the window borders and enforces a scrolling when moving into the scroll offset, thereby keeping some "context" of the text for the user. The value "T,B" will prevent the cursor from being displayed within the T top lines and B bottom lines of the current window. If T+B exceeds the number of lines in the current window then the cursor will always be displayed on the middle line. However, the start and end of the buffer is always shown.
Your Name: [Mr|Mrs] [\w\{40\}]This allows to chose from "Mr" and "Mrs" and to type in a name using "words" up to a length of 40 characters.
ai aw nocin nocp digraph et nopaste tw=76 nowrap vbOptionally show unset boolean options in reverse.
:s/search/replace/N replace Nth match :s/search/replace/Ng replace Nth match and beyond
foo [bar baz | lah di] dah | textwidth---^Then ":ri" should produce this:
foo bar baz| lah di dah| textwidth---^
'swapfile' 'sf' boolean (default on) local "set swapfile" creates a swapfile for the current buffer. [according tho these rules] "set noswapfile" closes the swapfile for the current buffer. [sync data?] Delete the current swapfile with command [example]
41 I would very much like to see a special mark 42 'a at the side together with the line numbers. 43 That way you would not even need any color 44 'b which might get in the way of syntax coloring.
value show matching line at.. H (home) first line of window M (middle) middle line of window L (last) last line of window . current line of cursor
text: foo. bar command: :j result: foo. bar
*:ua* *:uall* Write all modified buffers to file. Unmodified buffers are not written. {not in Vi}
mode cursor shape insert block command vertical bar replace underscoreProblem: xterm and Linux console cannot change the cursor shape.
map SaveToFloppy gF:!cp" /mnt/floppy map ShowDelta gF:!rcsdiff " | less
:alias :which :!whichThis example shows how to make use of an external command.
:[range]pad [column_left] [column_right] Align the text in [range] between columns [column_left] and [column_right]. Fill with spaces where appropriate.Emacs calls it "text region fill". However, "fill" with *roff commands means "put as much text onto each line as possible". That's why "pad" seems much better.
*'autosave'* *'as'* *'noautosave'* *'noas'* 'autosave' 'aw' number (default 0) local Automatically write the current buffer to file after N seconds after the last change has been made and when |modified| is still set. Default: 0 = do not autosave the buffer.
W When a wildcard is specified on the command line, and no files are found, act as if that file specification was not even present. vi default is to edit a file with the wildcard character or characters in its name.
vim-5.0 [released 980219] [compile 980303] Copyright (c) 1998, Bram Moolenaar [email protected] For more info see the internal command ":version" and the webpages at https://www.vim8.org/. Report bugs to to the author or to [email protected] (subscription required).Then you can easily include it in your mail with ":r!vim --version". While there is copy&paste; on many systems, you sometimes need it as such - especially if you are using DOS.
flag word behaviour A All show all info that can be given with this option cursor position: c column show the column number of the cursor l line show the line number of the cursor wc char show the character number of the cursor wl line show the line number of the cursor C column show the column number of the cursor within current window w screen show the byte number of the cursor window position: H high show number of first line of current window L low show number of last line of current window M middle show number of middle line of current window G last show number of last line of current buffer P percent show the percentage of the current line R Range show the percentage range of the current window ie the percentage of the window's first and last line r ratio show the ratio of the current window's line range towards the whole buffer ("how much of the complete thing do I see?") NOTE: The flags for lines of the current window and for the last line were chosen to match Vi's default commands to jump to these lines. The default format is "%l,%c-%C [H=%H,M=%ML=%L,G=%G] (%r,%p)". Unset flags will simply leave out the information and surrounding brackets. Example: For "set ruler=lcCGHLr" the ruler display might show "50,9-65 [40,60;100] (%20)" which means that the cursor in line 50 on the 9th character displayed on column
if exists("_vimrc") source _vimrc fiSyntax for the script is to be decided upon later (please don't start a discussion about this right now!)."
long info: "-- VISUAL -- lines:3,7[4] chars:365 words:90 width:79 pars:2 short info: "-- VISUAL -- 3,7[4];365c;80wo;79wi;2paThis means that I have selected text within the line range "3 to 7" with "4" lines, "365" characters, 80 words, biggest width of "79" characters, and with "2" paragraphs. Suggested key: "I" ("info").
wordexpandmin number (default 0) Expand words while typing. value=0: No expansion. Suggested value: At least 4. Words with at least "wordexpandmin" letters will automatically be expanded while writing. The expansion is taken from the previous text of the current buffer.
Mode metakey key function normal - a append after character normal shift a append after end-of-line normal control a - normal meta a ??? insert control a insert previous inserted text ...
Screen Jumps Screen Jump commands change the current column or line of the current character on the screen within the current window. This allows for both horizontal and a vertical movement of the text. The vertical movement changes the position of the current line; the current column is either kept (set option) or changed to the column of the first (non-blank) character (set nooption). Table of vertical screen jumps *table_screen_jumps_vertical* (Changes position of current line within current window.) Type 'z' first - then type letter in table: new style old style column: first current first current line ===== ======= ===== ======= Home H h 'CR' t Middle M m . z Last L l - b Table of horizontal screen jumps *table_screen_jumps_horizontal* (Changes position of current column within current window.) Type 'Z' first - then type letter in table: leftmost left lefttab middle righttab right rightmost H h ^D < m M c C ^T > l r L So we'd use 'h' and 'l' for the usual left/right movement (with an optional 'r' for "right"). 'H' and 'L' work in analogy to 'h' and 'l', ie the go to the boundary of the current window. And 'M' does the same for the "middle". As there is only one middle we can use 'm', too. Same holds for 'C' and 'c' for those who prefer to think of "center". And there is a jump by tabstop with ^D and ^T - using '<' and '>' as easy alternatives. "Z0" and "Z$" can be interpreted as '0' and '$'.
Default: smartindent=0i 0: Jump to first non-whitespace character of current line. 1,2,3: Jump to first (1) space (2) tab (3) letter of current line. and switch to (1) insert mode (2) append mode (3) . (default) a,i,o,r: Switch to (a) append (i) insert (o) open (r) replace mode. The last cipher or letter "wins".Add option "insert" (numeric) to enable use of the "insert_key" to cycle through the five "insert modes", ie "command", "append", "insert", "open", "replace":
Default: insert=0 0: No effect. 1: Enable "append". 2: Enable "insert". 4: Enable "open". 8: Enable "replace". Example: insert=10 enables "2" and "8", ie pressing the "insert_key" repeatedly will cycle through mode "command" -> "insert" -> "replace" -> "command".
keywordprg (kp) string (default "ref") Program to use for the "K" command. Environment variables are expanded. {not in Vi}Suggested change: Do not make a shell call if "kp" is not set (ie empty). [TODO: This seem to have been implemented. Check again! 960701]
set trin="A-Z" set trout="a-z"This is just to show that the usual functionality of the switch command is just a special case.
set trin="A-Z a-z < {} [] () \/ `' ,. :; +-" set trout="a-z A-Z > }{ ][ )( /\ '` ., ;: -+"This not only switches letters - but also brackets pairs and other corresponding characters (slash/backslash, tick/backtick, dot/comma, colon/semicolon, plus/minus). This allows an easy fix of frequent typos for these characters.
set trin="a-zA-Z" set trout="d-za-cD-ZA-C"This shifts all letters three positions forward within the alphabet. Of course, this asks for a setup to decode it, too:
set trin="a-zA-Z" set trout="x-za-wX-ZA-W"Although switching these values is just a matter of a simple mapping, it is much nicer to use a code which is invers to itself, so you need not change any setting. Such a code is "rot13":
set trin="a-zA-Z" set trout="n-za-mN-ZA-M"
Binary Mode
| Color
| Commands
| Display
| Documentation
| GUI
| Options
| Register Names
| Misc
whitespace a all prefix suffix i inner none none p prefix prefix none s suffix none suffix text objects p paragraph P paragraph delimited by blank lines s sentence S sentence - delimiters can be defined
| ... ... |[2] ~/foo | ... ... |[3] ~/bar | ... ... |:command line
Dot operator after key command, ie command sequences "(key).". Repeat last command of same operator. E.g. "c." will repeat last change, also when "x" used since then. [Robert Webb]
s "squeeze". This squeezes runs of whitespace to a single space. e "end-of-sentence double spaces". Use two spaces after end-of-sentence punctuation, ie words which end with any of the characters of [.:!?].
matchoffset=4,3 (keep four lines from top and three lines from bottom) _________________ window border 1: top line of current window 2: 3: 4: 5: matching line 6: 7: 8: 9: bottom line of current window ================= window status line
Suggestion for a command name:
:define this nicely abbreviates to ":def". :decode :dec - you always wanted that name in vi, didn't you? :xl8 translate ("trans-l-eight" ;-)Rules about the following two characters:
(1) [0-9a-fA-F][0-9a-fA-F] -> hex value =20 =3D (2) ^[a-zA-Z] -> control character C^M C^V (3) \[a-zA-Z] -> C escape sequence \n newline \t tab \r return \g bell etcExamples:
Map the delete character to the backspace character: :def = map =^? =^H Translate ^M to ^J: :def = :%s/=^M/=^J/ Translate all quoted printable spaces into real spaces: :def = :%s/=20/ /g
Those in favor argue that you can regard the command line as a window with only one line. But as there is only one line you edit on you would have to disable the colon command (which switches to ex mode), all vertical jump commands, window commands (^W etc), and the commands that open a new line ('o'. 'O'). All these things will require a lot of additions and thus result in *more* code, not less.
Another problem is that the messages for command completion and for showing the current mode cannot be shown. And you would have to distinguish between command-line-normal-mode and comman-line-insert-mode. This can become quite confusing.
So we'd rather refrain from making the command line yet another window. Hope you understand.
NOTE: The Vi clone "nvi" allows Vi commands to be used on the command line. I wonder how good that works. Comments welcome!
I'm afraid that it currently is impossible to include a CR in a search pattern. It is quite a bit of work to add, in a way that it works properly. But it is in the todo list, it will be implemented one day. Don't expect it soon.
noremap gf gf'"
vim-5.0r added: - "\w" in regexp, for whitespace. Should be much faster than "[ \t]". vim-5.0s: - Added "\S" to regexp patterns: matches a non-white character. Changed "\w" to "\s", to make it similar with Perl.
URL: http://www.math.fu-berlin.de/~guckes/vim/wish.html URL: https://www.vim8.org/wish.html (mirror) Created: Mon May 15 00:00:00 MET 1995Send feedback on this page to