Problem: When a test script navigates to another buffer the .res file is
created with the wrong name.
Solution: Use the "testname" for the .res file. (Damien)
Problem: When using 'colorcolumn' and there is a sign with a fullwidth
character the highlighting is wrong. (Andrew Stewart)
Solution: Only increment vcol when in the right state. (Christian Brabandt)
Problem: New style testing is incomplete.
Solution: Add the runtest script to the list of distributed files.
Add the new functions to the function overview.
Rename the functions to match Vim function style.
Move undolevels testing into a new style test script.
Problem: Writing tests for Vim script is hard.
Solution: Add assertEqual(), assertFalse() and assertTrue() functions. Add
the v:errors variable. Add the runtest script. Add a first new
style test script.
Problem: test_utf8 fails on MS-Windows when executed with gvim.
Solution: Use the insert flag on feedkeys() to put the string before the
":" that was already read when checking for available chars.
Problem: A clientserver message interrupts handling keys of a mapping.
Solution: Have mch_inchar() send control back to WaitForChar when it is
interrupted by server message. (James Kolb)
Problem: Completing the longest match doesn't work properly with multi-byte
characters.
Solution: When using multi-byte characters use another way to find the
longest match. (Hirohito Higashi)
Problem: User may yank or put using the register being recorded in.
Solution: Add the recording register in the message. (Christian Brabandt,
closes#470)
Problem: DEVELOPER_DIR gets reset by configure.
Solution: Do not reset DEVELOPER_DIR when there is no --with-developer-dir
argument. (Kazuki Sakamoto, closes#482)
Problem: When running out of memory while copying a dict memory may be
freed twice. (ZyX)
Solution: Do not call the garbage collector when running out of memory.
Problem: Libraries for dynamically loading interfaces can only be defined
at compile time.
Solution: Add options to specify the dll names. (Kazuki Sakamoto,
closes#452)
Problem: On MS-Windows the viminfo file is (always) given the hidden
attribute. (raulnac)
Solution: Check the hidden attribute in a different way. (Ken Takata)
Problem: Python interface can produce error "vim.message' object has no
attribute 'isatty'".
Solution: Add dummy isatty(), readable(), etc. (closes#464)
Problem: MS-Windows: When 'encoding' differs from the current code page,
expandinig wildcards may cause illegal memory access.
Solution: Allocate a longer buffer. (Ken Takata)
Problem: Problems with using the MS-Windows console.
Solution: Revert patches 7.4.851, 7.4.876 and 7.4.886 until we find a better
solution. (suggested by Ken Takata)
Problem: Freeze and crash when there is a sleep in a remote command.
(Karl Yngve Lervåg)
Solution: Remove a message from the queue before dealing with it. (James
Kolb)
Problem: Custom command line completion does not work for a command
containing digits.
Solution: Skip over the digits. (suggested by Yasuhiro Matsumoto)
Problem: C indenting is wrong below a "case (foo):" because it is
recognized as a C++ base class construct. Issue #38.
Solution: Check for the case keyword.
Problem: Indentation of array initializer is wrong.
Solution: Avoid that calling find_start_rawstring() changes the position
returned by find_start_comment(), add a test. (Hirohito Higashi)
Problem: When doing an upwards search without wildcards the search fails if
the initial directory doesn't exist.
Solution: Fix the non-wildcard case. (Stefan Kempf)
Problem: When leaving the command line window with CTRL-C while a
completion menu is displayed the menu isn't removed.
Solution: Force a screen update. (Hirohito Higashi)
Problem: Windows7: when using vim.exe with msys or msys2, conhost.exe
(console window provider on Windows7) will freeze or crash.
Solution: Make original screen buffer active, before executing external
program. And when the program is finished, revert to vim's one.
(Taro Muraoka)
Problem: MS-Windows: When Vim runs inside another application, the size
isn't right.
Solution: When in child mode compute the size differently. (Agorgianitis
Loukas)
Problem: May get into an invalid state when using getchar() in an
expression mapping.
Solution: Anticipate mod_mask to change. (idea by Yukihiro Nakadaira)
Problem: 'smarttab' is also effective when 'paste' is enabled. (Alexander
Monakov)
Solution: Disable 'smarttab' when 'paste' is set. (Christian Brabandt)
Do the same for 'expandtab'.
Problem: Crash when changing the 'tags' option from a remote command.
(Benjamin Fritz)
Solution: Instead of executing messages immediately, use a queue, like for
netbeans. (James Kolb)
Problem: It's a bit clumsy to execute a command on a list of matches.
Solution: Add the ":ldo", ":lfdo", ":cdo" and ":cfdo" commands. (Yegappan
Lakshmanan)
Problem: On MS-Windows console Vim uses ANSI APIs for keyboard input and
console output, it cannot input/output Unicode characters.
Solution: Use Unicode APIs for console I/O. (Ken Takata, Yasuhiro Matsumoto)
Problem: Saving and restoring the console buffer does not work properly.
Solution: Instead of ReadConsoleOutputA/WriteConsoleOutputA use
CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer.
(Ken Takata)
Problem: Moving the cursor in Insert mode starts new undo sequence.
Solution: Add CTRL-G U to keep the undo sequence for the following cursor
movement command. (Christian Brabandt)
Problem: More side effects of ":set all&" are missing. (Björn Linse)
Solution: Call didset_options() and add didset_options2() to collect more
side effects to take care of. Still not everything...
Problem: Resetting 'encoding' when doing ":set all&" causes problems.
(Bjorn Linse) Display is not updated.
Solution: Do not reset 'encoding'. Do a full redraw.
Problem: Gcc sanitizer complains about using a NULL pointer to memmove().
Solution: Only call memmove when there is something to move. (Vittorio
Zecca)
Problem: On MS-Windows 8 IME input doen't work correctly.
Solution: Read console input before calling MsgWaitForMultipleObjects().
(vim-jp, Nobuhiro Takasaki)
Problem: The ruler shows "Bot" even when there are only filler lines
missing. (Gary Johnson)
Solution: Use "All" when the first line and one filler line are visible.
Problem: Repeating a change in Visual mode does not work as expected.
(Urtica Dioica)
Solution: Make redo in Visual mode work better. (Christian Brabandt)
Problem: Crash when using more lines for the command line than
'maxcombine'.
Solution: Use the correct array index. Also, do not try redrawing when
exiting. And use screen_Columns instead of Columns.
Problem: Test fails when the autochdir feature is not available. Test
output contains the test script.
Solution: Check for the autochdir feature. (Kazunobu Kuriyama) Only write
the relevant test output.
Problem: On some systems automatically adding the missing EOL causes
problems. Setting 'binary' has too many side effects.
Solution: Add the 'fixeol' option, default on. (Pavel Samarkin)
Problem: Using CTRL-A in a line without a number moves the cursor. May
cause a crash when at the start of the line. (Urtica Dioica)
Solution: Do not move the cursor if no number was changed.
Problem: It is not possible to avoid using the first item of completion.
Solution: Add the "noinsert" and "noselect" values to 'completeopt'. (Shougo
Matsu)
Problem: When using the CompleteDone autocommand event it's difficult to
get to the completed items.
Solution: Add the v:completed_items variable. (Shougo Matsu)
Problem: 'langmap' is used in command-line mode when checking for mappings.
Issue 376.
Solution: Do not use 'langmap' in command-line mode. (Larry Velazquez)
Problem: Search does not handle multi-byte character at the start position
correctly.
Solution: Take byte size of character into account. (Yukihiro Nakadaira)
Problem: Background color response with transparency is not ignored.
Solution: Change the way escape sequences are recognized. (partly by
Hirohito Higashi)
Problem: When 'conceallevel' is 1 and quitting the command-line window with
CTRL-C the first character ':' is erased.
Solution: Reset 'conceallevel' in the command-line window. (Hirohito
Higashi)
Problem: Using CTRL-A in Visual mode does not work well. (Gary Johnson)
Solution: Make it increment all numbers in the Visual area. (Christian
Brabandt)
Problem: Appending in Visual mode with 'linebreak' set does not work
properly. Also when 'selection' is "exclusive". (Ingo Karkat)
Solution: Recalculate virtual columns. (Christian Brabandt)
Problem: It is not obvious how to enable the address sanitizer.
Solution: Add commented-out flags in the Makefile. (Dominique Pelle)
Also add missing test targets.
Problem: The entries added by matchaddpos() are returned by getmatches()
but can't be set with setmatches(). (Lcd)
Solution: Fix setmatches(). (Christian Brabandt)
Problem: When using += with ":set" a trailing comma is not recognized.
(Issue 365)
Solution: Don't add a second comma. Add a test. (partly by Christian
Brabandt)
Problem: In a string "\U" only takes 4 digits, while after CTRL-V U eight
digits can be used.
Solution: Make "\U" also take eight digits. (Christian Brabandt)
Problem: On MS-Windows vimgrep over arglist doesn't work (Issue 361)
Solution: Only escape backslashes in ## expansion when it is not used as the
path separator. (James McCoy)
Problem: When setting the crypt key and using a swap file, text may be
encrypted twice or unencrypted text remains in the swap file.
(Issue 369)
Solution: Call ml_preserve() before re-encrypting. Set correct index for
next pointer block.
Problem: When 'list' is set Visual mode does not highlight anything in
empty lines. (mgaleski)
Solution: Check the value of lcs_eol in another place. (Christian Brabandt)
Problem: Autocommands triggered by quickfix cannot get the current title
value.
Solution: Set w:quickfix_title earlier. (Yannick)
Also move the check for a title into the function.
Problem: When using the 'c' flag of ":substitute" and selecting "a" or "l"
at the prompt the flags are not remembered for ":&&". (Ingo
Karkat)
Solution: Save the flag values and restore them. (Hirohito Higashi)
Problem: Window drawn wrong when 'laststatus' is zero and there is a
command-line window. (Yclept Nemo)
Solution: Set the status height a bit later. (Christian Brabandt)
Problem: Searching for a character matches an illegal byte and causes
invalid memory access. (Dominique Pelle)
Solution: Do not match an invalid byte when search for a character in a
string. Fix equivalence classes using negative numbers, which
result in illegal bytes.
Problem: Various problems with locked and fixed lists and dictionaries.
Solution: Disallow changing locked items, fix a crash, add tests. (Olaf
Dabrunz)
Problem: Out-of-bounds read, dectected by Coverity.
Solution: Remember the value of cmap for the first matching encoding. Reset
cmap to that value if first matching encoding is going to be used.
(Eliseo Martínez)
Problem: On MS-Windows, when 'autochdir' is set, diff mode with files in
different directories does not work. (Axel Bender)
Solution: Remember the current directory and use it where needed. (Christian
Brabandt)
Problem: When there are illegal utf-8 characters the old regexp engine may
go past the end of a string.
Solution: Only advance to the end of the string. (Dominique Pelle)
Problem: When starting several Vim instances in diff mode, the temp files
used may not be unique. (Issue 353)
Solution: Add an argument to vim_tempname() to keep the file.
Problem: The search highlighting and match highlighting replaces the
cursorline highlighting, this doesn't look good.
Solution: Combine the highlighting. (Yasuhiro Matsumoto)
Problem: MS-Windows: When Vim is minimized the window height is computed
incorrectly.
Solution: When minimized use the previously computed size. (Ingo Karkat)
Problem: On Mac, when not using the default Python framework configure
doesn't do the right thing.
Solution: Use a linker search path. (Kazunobu Kuriyama)
Problem: When a FileReadPost autocommand moves the cursor inside a line it
gets moved back.
Solution: When checking whether an autocommand moved the cursor store the
column as well. (Christian Brabandt)
Problem: When completing a shell command, directories in the current
directory are not listed.
Solution: When "." is not in $PATH also look in the current directory for
directories.
Problem: When 'compatible' is reset 'numberwidth' is set to 4, but the
effect doesn't show until a change is made.
Solution: Check if 'numberwidth' changed. (Christian Brabandt)
Problem: When using netbeans a buffer is not found in another tab.
Solution: When 'switchbuf' is set to "usetab" then switch to another tab
when possible. (Xavier de Gaye)
Problem: When 'M' is in the 'cpo' option then selecting a text object in
parenthesis does not work correctly.
Solution: Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi)
Problem: Using "0 CTRL-D" in Insert mode may have CursorHoldI interfere.
(Gary Johnson)
Solution: Don't store K_CURSORHOLD as the last character. (Christian
Brabandt)
Problem: Text deleted by "dit" depends on indent of closing tag.
(Jan Parthey)
Solution: Do not adjust oap->end in do_pending_operator(). (Christian
Brabandt)
Problem: glob() and globpath() cannot include links to non-existing files.
(Charles Campbell)
Solution: Add an argument to include all links with glob(). (James McCoy)
Also for globpath().
Problem: Insert mode completion with complete() may have CTRL-L work like
CTRL-P.
Solution: Handle completion with complete() differently. (Yasuhiro
Matsumoto, Christian Brabandt, Hirohito Higashi)
Problem: Can't match "%>80v" properly for multi-byte characters.
Solution: Multiply the character number by the maximum number of bytes in a
character. (Yasuhiro Matsumoto)
Problem: After running the tests on MS-Windows many files differ from their
originals as they were checked out.
Solution: Use a temp directory for executing the tests. (Ken Takata, Taro
Muraoka)
Problem: When splitting the window in a BufAdd autocommand while still in
the first, empty buffer the window count is wrong.
Solution: Do not reset b_nwindows to zero and don't increment it.
Problem: After deleting characters in Insert mode such that lines are
joined undo does not work properly. (issue 324)
Solution: Use Insstart instead of Insstart_orig. (Christian Brabandt)
Problem: Incorrectly read the number of buffer for which an autocommand
should be registered.
Solution: Reverse check for "<buffer=abuf>". (Lech Lorens)
Problem: A search with end offset gets stuck at end of file. (Gary Johnson)
Solution: When a search doesn't move the cursor repeat it with a higher
count. (Christian Brabandt)
Problem: If no NL or CR is found in the first block of a file then the
'fileformat' may be set to "mac". (Issue 77)
Solution: Check if a CR was found. (eswald)
Problem: The default conceal character is documented to be a space but it's
initially a dash. (Christian Brabandt)
Solution: Make the intial value a space.
Problem: When using Insert mode completion combined with autocommands the
redo command may not work.
Solution: Do not save the redo buffer when executing autocommands. (Yasuhiro
Matsumoto)
Problem: Vim hangs when freeing a lot of objects.
Solution: Do not go back to the start of the list every time. (Yasuhiro
Matsumoto and Ariya Mizutani)
Problem: For complicated list and dict use the garbage collector can run
out of stack space.
Solution: Use a stack of dicts and lists to be marked, thus making it
iterative instead of recursive. (Ben Fritz)
Problem: 'foldcolumn' may be set such that it fills the whole window, not
leaving space for text.
Solution: Reduce the foldcolumn width when there is not sufficient room.
(idea by Christian Brabandt)
Problem: ":tabdo windo echo 'hi'" causes "* register not to be changed.
(Salman Halim)
Solution: Change how clip_did_set_selection is used and add
clipboard_needs_update and global_change_count. (Christian
Brabandt)
Problem: Using a block delete while 'breakindent' is set does not work
properly.
Solution: Use "line" instead of "prev_pend" as the first argument to
lbr_chartabsize_adv(). (Hirohito Higashi)
Problem: Crash when searching for "x\{0,90000}". (Dominique Pelle)
Solution: Bail out from the NFA engine when the max limit is much higher
than the min limit.
Problem: When doing ":e foobar" when already editing "foobar" and 'buftype'
is "nofile" the buffer is cleared. (Xavier de Gaye)
Solution: Do no clear the buffer.
Problem: Matching with a virtual column has a lot of overhead on very long
lines. (Issue 310)
Solution: Bail out early if there can't be a match. (Christian Brabandt)
Also check for CTRL-C at every position.
Problem: Redrawing problem with 'relativenumber' and 'linebreak'.
Solution: Temporarily reset 'linebreak' and restore it in more places.
(Christian Brabandt)
Problem: Having CTRL-C interrupt or not does not check the mode of the
mapping. (Ingo Karkat)
Solution: Use a bitmask with the map mode. (Christian Brabandt)
Problem: Ranges for arguments, buffers, tabs, etc. are not checked to be
valid but limited to the maximum. This can cause the wrong thing
to happen.
Solution: Give an error for an invalid value. (Marcin Szamotulski)
Use windows range for ":wincmd".
Problem: Appending a block in the middle of a tab does not work correctly
when virtualedit is set.
Solution: Decrement spaces and count, don't reset them. (James McCoy)
Problem: curs_rows() function is always called with the second argument
false.
Solution: Remove the argument. (Christian Brabandt)
validate_botline_win() can then also be removed.
Problem: Using "vit" does not select a multi-byte character at the end
correctly.
Solution: Advance the cursor over the multi-byte character. (Christian
Brabandt)
Problem: Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three.
(Eliseo Martínez) Issue 287
Solution: Correct the line count. (Christian Brabandt)
Also set the last used search pattern.
Problem: Using a range for window and buffer commands has a few problems.
Cannot specify the type of range for a user command.
Solution: Add the -addr argument for user commands. Fix problems. (Marcin
Szamotulski)
Problem: Crash when computing buffer count. Problem with range for user
commands. Line range wrong in Visual area.
Solution: Avoid segfault in compute_buffer_local_count(). Check for
CMD_USER when checking type of range. (Marcin Szamotulski)
Problem: Value of v:hlsearch reflects an internal variable.
Solution: Make the value reflect whether search highlighting is actually
displayed. (Christian Brabandt)
Problem: When using 'incsearch' "2/pattern/e" highlights the first match.
Solution: Move the code to set extra_col inside the loop for count. (Ozaki
Kiichi)
Problem: Many commands take a count or range that is not using line
numbers.
Solution: For each command specify what kind of count it uses. For windows,
buffers and arguments have "$" and "." have a relevant meaning.
(Marcin Szamotulski)
Problem: When the X11 server is stopped and restarted, while Vim is kept in
the background, copy/paste no longer works. (Issue 203)
Solution: Setup the clipboard again. (Christian Brabandt)
Problem: With a wrapping line the cursor may not end up in the right place.
(Nazri Ramliy)
Solution: Adjust n_extra for a Tab that wraps. (Christian Brabandt)
Problem: In a help buffer the global 'foldmethod' is used. (Paul Marshall)
Solution: Reset 'foldmethod' when starting to edit a help file. Move the
code to a separate function.
Problem: Generating proto for if_ruby.c uses type not defined elsewhere.
Solution: Do not generate a prototype for
rb_gc_writebarrier_unprotect_promoted()
Problem: On MS-Windows when 'encoding' is a double-byte encoding a file
name longer than MAX_PATH bytes but shorter than that in
characters causes problems.
Solution: Fail on file names longer than MAX_PATH bytes. (Ken Takata)
Problem: Restriction of the MS-Windows installer that the path must end in
"Vim" prevents installing more than one version.
Solution: Remove the restriction. (Tim Lebedkov)
Problem: Language mapping also applies to mapped characters.
Solution: Add the 'langnoremap' option, when on 'langmap' does not apply to
mapped characters. (Christian Brabandt)
Problem: With some regexp patterns the NFA engine uses many states and
becomes very slow. To the user it looks like Vim freezes.
Solution: When the number of states reaches a limit fall back to the old
engine. (Christian Brabandt)
Problem: Cursor shape is wrong after a CompleteDone autocommand.
Solution: Update the cursor and mouse shape after ":normal" restores the
state. (Jacob Niehus)
Problem: A TextChanged autocommand is triggered when saving a file.
(William Gardner)
Solution: Update last_changedtick after calling unchanged(). (Christian
Brabandt)
Problem: In Insert mode, after inserting a newline that inserts a comment
leader, CTRL-O moves to the right. (ZyX) Issue 57.
Solution: Correct the condition for moving the cursor back to the NUL.
(Christian Brabandt)
Problem: Cannot specify the buffer to use for "do" and "dp", making them
useless for three-way diff.
Solution: Use the count as the buffer number. (James McCoy)
Problem: Cursor movement still wrong when 'lbr' is set and there is a
number column. (Hirohito Higashi)
Solution: Add correction for number column. (Hiroyuki Takagi)
Problem: ":sign jump" may use another window even though the file is
already edited in the current window.
Solution: First check if the file is in the current window. (James McCoy)
Problem: MS-Windows: The console title can be wrong.
Solution: Take the encoding into account. When restoring the title use the
right function. (Yasuhiro Matsumoto)
Problem: Cursor movement is incorrect when there is a number
column/sign/fold column and 'sbr' is displayed.
Solution: Adjust the column for 'sbr'. (Christian Brabandt)
Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak
is set and list is not.
Solution: Only draw this character when 'list' is on. (Christian Brabandt)
Problem: MS-Windows: When printer name contains multi-byte, the name is
displayed as ???.
Solution: Convert the printer name from the active codepage to 'encoding'.
(Yasuhiro Matsumoto)
Problem: Setting the local value of 'backupcopy' empty gives an error.
(Peter Mattern)
Solution: When using an empty value set the flags to zero. (Hirohito
Higashi)
Problem: MS-Windows: When collate is on the number of copies is too high.
Solution: Only set the collated/uncollated count when collate is on.
(Yasuhiro Matsumoto)
Problem: Using getchar() in an expression mapping may result in
K_CURSORHOLD, which can't be recognized.
Solution: Add the <CursorHold> key. (Hirohito Higashi)
Problem: When using a Visual selection of multiple words and doing CTRL-W_]
it jumps to the tag matching the word under the cursor, not the
selected text. (Patrick hemmer)
Solution: Do not reset Visual mode. (idea by Christian Brabandt)
Problem: Calling system() with empty input gives an error for writing the
temp file.
Solution: Do not try writing if the string length is zero. (Olaf Dabrunz)
Problem: Not all commands that edit another buffer support the +cmd
argument.
Solution: Add the +cmd argument to relevant commands. (Marcin Szamotulski)
Problem: In some situations, when setting up an environment to trigger an
autocommand, the environment is not properly restored.
Solution: Check the return value of switch_win() and call restore_win()
always. (Daniel Hahler)
Problem: Endless loop and other problems when 'cedit' is set to CTRL-C.
Solution: Do not call ex_window() when ex_normal_busy or got_int was set.
(Yasuhiro Matsumoto)
Problem: Duplicate message in message history. Some quickfix messages
appear twice. (Gary Johnson)
Solution: Do not reset keep_msg too early. (Hirohito Higashi)
Problem: ml_get error for autocommand that moves the cursor of the current
window.
Solution: Check the cursor position after switching back to the current
buffer. (Christian Brabandt)
Problem: gettabvar() is not consistent with getwinvar() and getbufvar().
Solution: Return a dict with all variables when the varname is empty.
(Yasuhiro Matsumoto)
Problem: When the startup code expands command line arguments, setting
'encoding' will not properly convert the arguments.
Solution: Call get_cmd_argsW() early in main(). (Yasuhiro Matsumoto)
Problem: When an InsertCharPre autocommand executes system() typeahead may
be echoed and messes up the display. (Jacob Niehus)
Solution: Do not set cooked mode when invoked from ":silent".
Problem: When 'showbreak' is used "gj" may move to the wrong position.
(Nazri Ramliy)
Solution: Adjust virtcol when 'showbreak' is set. (Christian Brabandt)
Problem: Get ml_get error when using Python to delete lines in a buffer
that is not in a window. issue 248.
Solution: Do not try adjusting the cursor for a different buffer.
Problem: When using conceal with linebreak some text is not displayed
correctly. (Grüner Gimpel)
Solution: Check for conceal mode when using linebreak. (Christian Brabandt)
Problem: When leaving ":append" the cursor shape is like in Insert mode.
(Jacob Niehus)
Solution: Do not have State set to INSERT when calling getline().
Problem: After splitting a window and setting 'breakindent' the default
minimum with is not respected.
Solution: Call briopt_check() when copying options to a new window.
Problem: MS-Windows: Using US international keyboard layout, inserting dead
key by pressing space does not always work. Issue 250.
Solution: Let MS-Windows translate the message. (John Wellesz)
Problem: Inserting text for Visual block mode, with cursor movement,
repeats the wrong text. (Aleksandar Ivanov)
Solution: Reset the update_Insstart_orig flag. (Christian Brabandt)
Problem: Valgrind reports errors when running test 72. (Dominique Pelle)
Solution: Reset the local 'cryptmethod' option before storing the seed.
Set the seed in the memfile even when there is no block0 yet.
Problem: Encryption implementation is messy. Blowfish encryption has a
weakness.
Solution: Refactor the encryption, store the state in an allocated struct
instead of using a save/restore mechanism. Introduce the
"blowfish2" method, which does not have the weakness and encrypts
the whole undo file. (largely by David Leadbeater)
Problem: Gcc error for the argument of InterlockedIncrement() and
InterlockedDecrement(). (Axel Bender)
Solution: Remove "unsigned" from the cRefCount_ declaration.
Problem: Matchparen only uses the topmost syntax item.
Solution: Go through the syntax stack to find items. (James McCoy)
Also use getcurpos() when possible.
Problem: Text drawing on newer MS-Windows systems is suboptimal. Some
multi-byte characters are not displayed, even though the same font
in Notepad can display them. (Srinath Avadhanula)
Solution: Add the 'renderoptions' option to enable Direct-X drawing. (Taro
Muraoka)
Problem: No 'cursorline' highlighting when the cursor is on a line with
diff highlighting. (Benjamin Fritz)
Solution: Combine the highlight attributes. (Christian Brabandt)
Problem: Still sometimes Vim enters Replace mode when starting up.
Solution: Use a different solution in detecting the termresponse and
location response. (Hayaki Saito)
Problem: When building with tiny or small features building the .mo files
fails.
Solution: In autoconf do not setup for building the .mo files when it would
fail.
Problem: When 'equalalways' is set a split may report "no room" even though
there is plenty of room.
Solution: Compute the available room properly. (Yukihiro Nakadaira)
Problem: Character after "fb" command not mapped if it might be a composing
character.
Solution: Don't disable mapping when looking for a composing character.
(Jacob Niehus)
Problem: Linebreak test fails when encoding is not utf-8. (Danek Duvall)
Solution: Split the test in a single byte one and a utf-8 one. (Christian
Brabandt)
Problem: Restoring the window sizes after closing the command line window
doesn't work properly if there are nested splits.
Solution: Restore the sizes twice. (Hirohito Higashi)
Problem: When matchaddpos() uses a length smaller than the number of bytes
in the (last) character the highlight continues until the end of
the line.
Solution: Change condition from equal to larger-or-equal.
Problem: When 'ttymouse' is set to 'uxterm' the xterm version is not
requested. (Tomas Janousek)
Solution: Do not mark uxterm as a conflict mouse and add
resume_get_esc_sequence().
Problem: Using C indenting for Javascript does not work well for a {} block
inside parenthesis.
Solution: When looking for a matching paren ignore one that is before the
start of a {} block.
Problem: When there are matches to highlight the whole window is redrawn,
which is slow.
Solution: Only redraw everything when lines were inserted or deleted.
Reset b_mod_xlines when needed. (Alexey Radkov)
Problem: Cannot wrap lines taking indent into account.
Solution: Add the 'breakindent' option. (many authors, final improvements by
Christian Brabandt)
Problem: When there is an error preparing to edit the command line, the
command won't be executed. (Hirohito Higashi)
Solution: Reset did_emsg before editing.
Problem: GTK: When a sign icon doesn't fit exactly there can be ugly gaps.
Solution: Scale the sign to fit when the aspect ratio is not too far off.
(Christian Brabandt)
Problem: Using a regexp pattern to highlight a specific position can be
slow.
Solution: Add matchaddpos() to highlight specific positions efficiently.
(Alexey Radkov)
Problem: When moving the cursor and then switching to another window the
previous window isn't scrolled. (Yukihiro Nakadaira)
Solution: Call update_topline() before leaving the window. (Christian
Brabandt)
Problem: When 'verbose' is set to display the return value of a function,
may get E724 repeatedly.
Solution: Do not give an error for verbose messages. Abort conversion to
string after an error.
Problem: When starting the gui and changing the window size the status line
may not be drawn correctly.
Solution: Catch new_win_height() being called recursively. (Christian
Brabandt)
Problem: Possible crash when an BufLeave autocommand deletes the buffer.
Solution: Check for the window pointer being valid. Postpone freeing the
window until autocommands are done. (Yasuhiro Matsumoto)
Problem: Crash when putting zero bytes on the clipboard.
Solution: Do not support the utf8_atom target when not using an Unicode
encoding. (Naofumi Honda)
Problem: Check for whether a highlight group has settings ignores fg and bg
color settings.
Solution: Also check cterm and GUI color settings. (Christian Brabandt)
Problem: When increasing the size of the lower window, the upper window
jumps back to the top. (Ron Aaron)
Solution: Change setting the topline. (Nobuhiro Takasaki)
Problem: Making 'ttymouse' empty after the xterm version was requested
causes problems. (Elijah Griffin)
Solution: Do not check for DEC mouse sequences when the xterm version was
requested. Also don't request the xterm version when DEC mouse
was enabled.
Problem: When using double-width characters the text displayed on the
command line is sometimes truncated.
Solution: Reset the string lenght. (Nobuhiro Takasaki)
Problem: Searching for "a" does not match accented "a" with new regexp
engine, does match with old engine. (David Bürgin)
"ca" does not match "ca" with accented "a" with either engine.
Solution: Change the old engine, check for following composing character
also for single-byte patterns.
Problem: A non-greedy match followed by a branch is too greedy. (Ingo
Karkat)
Solution: Add NFA_MATCH when it is already in the state list if the position
differs.
Problem: Pattern with repeated backreference does not match with new regexp
engine. (Urtica Dioica)
Solution: Also check the end of a submatch when deciding to put a state in
the state list.
Problem: Patches for .hgignore don't work, since the file is not in the
distribution.
Solution: Add .hgignore to the distribution. Will be effective with the
next version.
Problem: When 'relativenumber' is set and deleting lines or undoing that,
line numbers are not always updated. (Robert Arkwright)
Solution: (Christian Brabandt)
Problem: Setting 'langmap' in the modeline can cause trouble. E.g. mapping
":" breaks many commands. (Jens-Wolfhard Schicke-Uffmann)
Solution: Disallow setting 'langmap' from the modeline.
Problem: When a session file has more than one tabpage and 'showtabline' is
one the positions may be slightly off.
Solution: Set 'showtabline' to two while positioning windows.
Problem: When using a session file the relative position of the cursor is
not restored if there is another tab. (Nobuhiro Takasaki)
Solution: Update w_wrow before calculating the fraction.
Problem: globpath() returns a string, making it difficult to get a list of
matches. (Greg Novack)
Solution: Add an optional argument like with glob(). (Adnan Zafar)
Problem: Using ":sign unplace *" may leave the cursor in the wrong position
(Christian Brabandt)
Solution: Update the cursor position when removing all signs.
Problem: When doing ":update" just before running an external command that
changes the file, the timestamp may be unchanged and the file
is not reloaded.
Solution: Also check the file size.
Problem: "make autoconf" and "make reconfig" may first run configure and
then remove the output.
Solution: Add these targets to the exceptions. (Ken Takata)
Problem: CTRL-U in Insert mode does not work after using a cursor key.
(Pine Wu)
Solution: Use the original insert start position. (Christian Brabandt)
Problem: Can't define a function starting with "g:". Can't assign a
funcref to a buffer-local variable.
Solution: Skip "g:" at the start of a function name. Don't check for colons
when assigning to a variable.
Problem: When updating the window involves a regexp pattern, an interactive
substitute to replace a "\n" with a line break fails. (Ingo
Karkat)
Solution: Set reg_line_lbr in vim_regsub() and vim_regsub_multi().
Problem: It is possible to define a function with a colon in the name. It
is possible to define a function with a lower case character if a
"#" appears after the name.
Solution: Disallow using a colon other than with "s:". Ignore "#" after the
name.
Problem: Using systemlist() may cause a crash and does not handle NUL
characters properly.
Solution: Increase the reference count, allocate memory by length. (Yasuhiro
Matsumoto)
Problem: Crash when using cpp syntax file with pattern using external
match. (Havard Garnes)
Solution: Discard match when end column is before start column.
Problem: Crash when BufAdd autocommand wipes out the buffer.
Solution: Check for buffer to still be valid. Postpone freeing the buffer
structure. (Hirohito Higashi)
Problem: When passing input to system() there is no way to keep NUL and
NL characters separate.
Solution: Optionally use a list for the system() input. (ZyX)
Problem: getreg() does not distinguish between a NL used for a line break
and a NL used for a NUL character.
Solution: Add another argument to return a list. (ZyX)
Problem: The string returned by submatch() does not distinguish between a
NL from a line break and a NL that stands for a NUL character.
Solution: Add a second argument to return a list. (ZyX)
Problem: Escaping special characters for using "%" with a shell command is
inconsistant, parenthesis are escaped but spaces are not.
Solution: Only escape "!". (Gary Johnson)
Problem: An error in ":options" is not caught by the tests.
Solution: Add a test for ":options". Set $VIMRUNTIME for the tests so that
it uses the current runtime files instead of the installed ones.
Problem: Using ":let" for listing variables and the second one is a curly
braces expression may fail.
Solution: Check for an "=" in a better way. (ZyX)
Problem: When 'relativenumber' or 'cursorline' are set the window is
redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution: Check the VALID_CROW flag instead of VALID_WROW.
Problem: When src/auto/configure was updated, "make clean" would run
configure pointlessly.
Solution: Do not run configure for "make clean" and "make distclean" when
the make program supports $MAKECMDGOALS. (Ken Takata)
Problem: Inconsistency: ":sp foo" does not reload "foo", unless "foo" is
the current buffer. (Liang Li)
Solution: Do not reload the current buffer on a split command.
Problem: The cursor report sequence is sometimes not recognized and results
in entering replace mode.
Solution: Also check for the cursor report when not asked for.
Problem: ":mksession" writes command to move to second argument while it
does not exist. When it does exist the order might be wrong.
Solution: Use ":argadd" for each argument instead of using ":args" with a
list of names. (Nobuhiro Takasaki)
Problem: Can't build Vim with Perl when -Dusethreads is not specified for
building Perl, and building Vim with --enable-perlinterp=dynamic.
Solution: Adjust #ifdefs. (Yasuhiro Matsumoto)
Problem: match() does not work properly with a {count} argument.
Solution: Compute the length once and update it. Quit the loop when at the
end. (Hirohito Higashi)
Problem: When using 'pastetoggle' the status lines are not updated. (Samuel
Ferencik, Jan Christoph Ebersbach)
Solution: Update the status lines. (Nobuhiro Takasaki)
Problem: Dictionary.update() thows an error when used without arguments.
Python programmers don't expect that.
Solution: Make Dictionary.update() without arguments do nothing. (ZyX)
Problem: When a wide library function fails, falling back to the non-wide
function may do the wrong thing.
Solution: Check the platform, when the wide function is supported don't fall
back to the non-wide function. (Ken Takata)
Problem: Completion hangs when scanning the current buffer after doing
keywords. (Christian Brabandt)
Solution: Set the first match position when starting to scan the current
buffer.
Problem: Get E685 error when assigning a function to an autoload variable.
(Yukihiro Nakadaira)
Solution: Instead of having a global no_autoload variable, pass an autoload
flag down to where it is used. (ZyX)
Problem: Cursor moves to wrong position when using "gj" after "$" and
virtual editing is active.
Solution: Make "gj" behave differently when virtual editing is active.
(Hirohito Higashi)
Problem: getregtype() does not return zero for unknown register.
Solution: Adjust documention: return empty string for unknown register.
Check the register name to be valid. (Yukihiro Nakadaira)
Problem: Problems when building with Borland: st_mode is signed short;
can't build with Python; temp files not ignored by Mercurial;
building with DEBUG doesn't define _DEBUG.
Solution: Fix the problems. (Ken Takata)
Problem: Crash when wiping out buffer triggers autocommand that wipes out
only other buffer.
Solution: Do not delete the last buffer, make it empty. (Hirohito Higashi)
Problem: MS-Windows: When saving a file with a UNC path the file becomes
read-only.
Solution: Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
Problem: Win32: When 'encoding' is set to "utf-8" and the active codepage
is cp932 then ":grep" and other commands don't work for multi-byte
characters.
Solution: (Yasuhiro Matsumoto)
Problem: It's possible that redrawing the status lines causes
win_redr_custom() to be called recursively.
Solution: Protect against recursiveness. (Yasuhiro Matsumoto)
Problem: Can't build with Cygwin/MingW and Perl 5.18.
Solution: Add a linker argument for the Perl library. (Cesar Romani)
Adjust CFLAGS and LIB. (Cesar Romani)
Move including inline.h further down. (Ken Takata)
Problem: "gUgn" cannot be repeeated. (Dimitar Dimitrov)
Solution: Don't put "gn" in a different order in the redo buffer. Restore
'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the
Python code doesn't catch it. (Yggdroot Chen)
Solution: Throw exceptions on errors in vim.eval(). (ZyX)
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
line.
Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi
Hayashida, Urtica Dioica)
Solution: Always add NFA_SKIP, also when it already exists at the start
position.
Problem: Append in blockwise Visual mode with "$" is wrong.
Solution: After "$" don't use the code that checks if the cursor was moved.
(Hirohito Higashi, Ken Takata)
Problem: When using ":'<,'>del" errors may be given for the visual line
numbers being out of range.
Solution: Reset Visual mode in ":del". (Lech Lorens)
Problem: Win32: When a directory name contains an exclamation mark,
completion doesn't complete the contents of the directory.
Solution: Escape the exclamation mark. (Jan Stocker)
Problem: When editing a file in a directory mounted through sshfs Vim
doesn't set the security context on a renamed file.
Solution: Add mch_copy_sec() to vim_rename(). (Peter Backes)
Problem: When spell checking is enabled Asian characters are always marked
as error.
Solution: When 'spelllang' contains "cjk" do not mark Asian characters as
error. (Ken Takata)
Problem: Skipping over an expression when not evaluating it does not work
properly for dict members.
Solution: Skip over unrecognized expression. (ZyX)
Problem: When inserting text in Visual block mode and moving the cursor the
wrong text gets repeated in other lines.
Solution: Use the '[ mark to find the start of the actually inserted text.
(Christian Brabandt)
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() wether adding ! make sense.
Problem: DOS installer creates shortcut without a path, resulting in the
current directory to be C:\Windows\system32.
Solution: Use environment variables.
Problem: When undo'ing all changes and creating a new change the undo
structure is incorrect. (Christian Brabandt)
Solution: When deleting the branch starting at the old header, delete the
whole branch, not just the first entry.
Problem: Cannot right shift lines starting with #.
Solution: Allow the right shift when 'cino' contains #N with N > 0.
(Christian Brabandt)
Refactor parsing 'cino', store the values in the buffer.
Problem: MS-Windows: When there is a colon in the file name (sub-stream
feature) the swap file name is wrong.
Solution: Change the colon to "%". (Yasuhiro Matsumoto)
Problem: When recording, the character typed at the hit-enter prompt is
recorded twice. (Urtica Dioica)
Solution: Avoid recording the character twice. (Christian Brabandt)
Problem: When replacing a character in Visual block mode, entering a CR
does not cause a repeated line break.
Solution: Recognize the situation and repeat the line break. (Christian
Brabandt)
Problem: With 'fo' set to "a2" inserting a space in the first column may
cause the cursor to jump to the previous line.
Solution: Handle the case when there is no comment leader properly. (Tor
Perkins) Also fix that cursor is in the wrong place when spaces
get replaced with a Tab.
Problem: Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution: Copy the pim structure before calling addstate() to avoid it
becoming invalide when the state list is reallocated.
Problem: "gn" selects too much for the pattern "\d" when there are two
lines with a single digit. (Ryan Carney)
Solution: Adjust the logic of is_one_char(). (Christian Brabandt)
Problem: When using ":setlocal" for 'spell' and 'spellang' then :spelldump
doesn't work. (Dimitar Dimitrov)
Solution: Copy the option variables to the new window used to show the dump.
(Christian Brabandt)
Problem: Valgrind error on exit when a script-local variable holds a
reference to the scope of another script.
Solution: First clear all variables, then free the scopes. (ZyX)
Problem: MS-Windows: MSCV10 and earlier can't handle symlinks to a
directory properly.
Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
Problem: Using "zw" and "zg" when 'spell' is off give a confusing error
message. (Gary Johnson)
Solution: Ignore the error when locating the word. Explicitly mention what
word was added. (Christian Brabandt)
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
successful.
Problem: When the terminal has only 20 lines test 92 and 93 overwrite the
input file.
Solution: Explicitly write test.out. Check that the terminal is large enough
to run the tests. (Hirohito Higashi)
Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles
Cooper)
Solution: Only resets related options in a window where 'diff' is set.
Problem: Equivalence classes are not working for multi-byte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
Problem: Another valgrind error when using CTRL-X CTRL-F at the start of
the line. (Dominique Pelle)
Solution: Don't call mb_ptr_back() at the start of the line. Add a test.
Problem: When root edits a file the undo file is owned by root while the
edited file may be owned by another user, which is not allowed.
(cac2s)
Solution: Accept an undo file owned by the current user.
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
end of another branch to be wrong. (William Fugh)
Solution: Set end position if it wasn't set yet.
Problem: MS-Windows: File name completion doesn't work properly with
Chinese characters. (Yue Wu)
Solution: Take care of multi-byte characters when looking for the start of
the file name. (Ken Takata)
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
Fritz)
Solution: When reading the start of the tags file do parse lines that are
not header lines.
Problem: When a file was not decrypted (yet), writing it may destroy the
contents.
Solution: Mark the file as readonly until decryption was done. (Christian
Brabandt)
Problem: Creating a preview window on startup leaves the screen layout in a
messed up state. (Marius Gedminas)
Solution: Don't change firstwin. (Christian Brabandt)
Problem: Pattern with two alternative look-behind matches does not match.
(Amadeus Demarzi)
Solution: When comparing PIMs also compare their state ID to see if they are
different.
Problem: Character classes such as [a-z] to not react to 'ignorecase'.
Breaks man page highlighting. (Mario Grgic)
Solution: Add separate items for classes that react to 'ignorecase'. Clean
up logic handling character classes. Add more tests.
2013-08-14 12:06:49 +02:00
719 changed files with 64546 additions and 28915 deletions
to edit all kinds of plain text. It is especially useful for editing
programs.
There are a lot of enhancements above Vi: multi level undo, multi win-
There are a lot of enhancements above Vi: multi level undo, multi win‐
dows and buffers, syntax highlighting, command line editing, filename
completion, on-line help, visual selection, etc.. See ":help
vi_diff.txt" for a summary of the differences between Vim and Vi.
While running Vim a lot of help can be obtained from the on-line help
system, with the ":help" command. See the ON-LINE HELP section below.
system, with the ":help" command. See the ON-LINE HELP section below.
Most often Vim is started to edit a single file with the command
@@ -38,44 +38,44 @@ DESCRIPTION
vim [options] [filelist]
If the filelist is missing, the editor will start with an empty buffer.
Otherwise exactly one out of the following four may be used to choose
Otherwise exactly one out of the following four may be used to choose
one or more files to be edited.
file .. A list of filenames. The first one will be the current
file and read into the buffer. The cursor will be posi-
file .. A list of filenames. The first one will be the current
file and read into the buffer. The cursor will be posi‐
tioned on the first line of the buffer. You can get to the
other files with the ":next" command. To edit a file that
other files with the ":next" command. To edit a file that
starts with a dash, precede the filelist with "--".
- The file to edit is read from stdin. Commands are read
- The file to edit is read from stdin. Commands are read
from stderr, which should be a tty.
-t {tag} The file to edit and the initial cursor position depends on
a "tag", a sort of goto label. {tag} is looked up in the
a "tag", a sort of goto label. {tag} is looked up in the
tags file, the associated file becomes the current file and
the associated command is executed. Mostly this is used
for C programs, in which case {tag} could be a function
the associated command is executed. Mostly this is used
for C programs, in which case {tag} could be a function
name. The effect is that the file containing that function
becomes the current file and the cursor is positioned on
becomes the current file and the cursor is positioned on
the start of the function. See ":help tag-commands".
-q [errorfile]
Start in quickFix mode. The file [errorfile] is read and
the first error is displayed. If [errorfile] is omitted,
Start in quickFix mode. The file [errorfile] is read and
the first error is displayed. If [errorfile] is omitted,
the filename is obtained from the 'errorfile' option
(defaults to "AztecC.Err" for the Amiga, "errors.err" on
other systems). Further errors can be jumped to with the
(defaults to "AztecC.Err" for the Amiga, "errors.err" on
other systems). Further errors can be jumped to with the
":cn" command. See ":help quickfix".
Vim behaves differently, depending on the name of the command (the exe-
Vim behaves differently, depending on the name of the command (the exe‐
cutable may still be the same file).
vim The "normal" way, everything is default.
ex Start in Ex mode. Go to Normal mode with the ":vi" command.
ex Start in Ex mode. Go to Normal mode with the ":vi" command.
Can also be done with the "-e" argument.
view Start in read-only mode. You will be protected from writing
view Start in read-only mode. You will be protected from writing
the files. Can also be done with the "-R" argument.
gvim gview
@@ -87,102 +87,102 @@ DESCRIPTION
be done with the "-y" argument.
rvim rview rgvim rgview
Like the above, but with restrictions. It will not be possi-
ble to start shell commands, or suspend Vim. Can also be
Like the above, but with restrictions. It will not be possi‐
ble to start shell commands, or suspend Vim. Can also be
done with the "-Z" argument.
OPTIONS
The options may be given in any order, before or after filenames.
The options may be given in any order, before or after filenames.
Options without an argument can be combined after a single dash.
+[num] For the first file the cursor will be positioned on line
"num". If "num" is missing, the cursor will be positioned
+[num] For the first file the cursor will be positioned on line
"num". If "num" is missing, the cursor will be positioned
on the last line.
+/{pat} For the first file the cursor will be positioned on the
first occurrence of {pat}. See ":help search-pattern" for
the available search patterns.
+/{pat} For the first file the cursor will be positioned in the
line with the first occurrence of {pat}. See ":help
search-pattern" for the available search patterns.
+{command}
-c {command}
{command} will be executed after the first file has been
read. {command} is interpreted as an Ex command. If the
{command} contains spaces it must be enclosed in double
quotes (this depends on the shell that is used). Example:
{command} will be executed after the first file has been
read. {command} is interpreted as an Ex command. If the
{command} contains spaces it must be enclosed in double
quotes (this depends on the shell that is used). Example:
Vim "+set si" main.c
Note: You can use up to 10 "+" or "-c" commands.
-S {file} {file} will be sourced after the first file has been read.
This is equivalent to -c "source {file}". {file} cannot
-S {file} {file} will be sourced after the first file has been read.
This is equivalent to -c "source {file}". {file} cannot
start with '-'. If {file} is omitted "Session.vim" is used
(only works when -S is the last argument).
--cmd {command}
Like using "-c", but the command is executed just before
processing any vimrc file. You can use up to 10 of these
Like using "-c", but the command is executed just before
processing any vimrc file. You can use up to 10 of these
commands, independently from "-c" commands.
-A If Vim has been compiled with ARABIC support for editing
right-to-left oriented files and Arabic keyboard mapping,
this option starts Vim in Arabic mode, i.e. 'arabic' is
-A If Vim has been compiled with ARABIC support for editing
right-to-left oriented files and Arabic keyboard mapping,
this option starts Vim in Arabic mode, i.e. 'arabic' is
set. Otherwise an error message is given and Vim aborts.
-b Binary mode. A few options will be set that makes it pos-
-b Binary mode. A few options will be set that makes it pos‐
sible to edit a binary or executable file.
-C Compatible. Set the 'compatible' option. This will make
Vim behave mostly like Vi, even though a .vimrc file
-C Compatible. Set the 'compatible' option. This will make
Vim behave mostly like Vi, even though a .vimrc file
exists.
-d Start in diff mode. There should be two, three or four
file name arguments. Vim will open all the files and show
-d Start in diff mode. There should be two, three or four
file name arguments. Vim will open all the files and show
differences between them. Works like vimdiff(1).
-d {device} Open {device} for use as a terminal. Only on the Amiga.
-d {device} Open {device} for use as a terminal. Only on the Amiga.
Example: "-d con:20/30/600/150".
-D Debugging. Go to debugging mode when executing the first
-D Debugging. Go to debugging mode when executing the first
command from a script.
-e Start Vim in Ex mode, just like the executable was called
-e Start Vim in Ex mode, just like the executable was called
"ex".
-E Start Vim in improved Ex mode, just like the executable was
called "exim".
-f Foreground. For the GUI version, Vim will not fork and
-f Foreground. For the GUI version, Vim will not fork and
detach from the shell it was started in. On the Amiga, Vim
is not restarted to open a new window. This option should
be used when Vim is executed by a program that will wait
for the edit session to finish (e.g. mail). On the Amiga
is not restarted to open a new window. This option should
be used when Vim is executed by a program that will wait
for the edit session to finish (e.g. mail). On the Amiga
the ":sh" and ":!" commands will not work.
--nofork Foreground. For the GUI version, Vim will not fork and
--nofork Foreground. For the GUI version, Vim will not fork and
detach from the shell it was started in.
-F If Vim has been compiled with FKMAP support for editing
right-to-left oriented files and Farsi keyboard mapping,
this option starts Vim in Farsi mode, i.e. 'fkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-g If Vim has been compiled with GUI support, this option
enables the GUI. If no GUI support was compiled in, an
error message is given and Vim aborts.
-h Give a bit of help about the command line arguments and
options. After this Vim exits.
-H If Vim has been compiled with RIGHTLEFT support for editing
right-to-left oriented files and Hebrew keyboard mapping,
this option starts Vim in Hebrew mode, i.e. 'hkmap' and
-F If Vim has been compiled with FKMAP support for editing
right-to-left oriented files and Farsi keyboard mapping,
this option starts Vim in Farsi mode, i.e. 'fkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-g If Vim has been compiled with GUI support, this option
enables the GUI. If no GUI support was compiled in, an
error message is given and Vim aborts.
-h Give a bit of help about the command line arguments and
options. After this Vim exits.
-H If Vim has been compiled with RIGHTLEFT support for editing
right-to-left oriented files and Hebrew keyboard mapping,
this option starts Vim in Hebrew mode, i.e. 'hkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-i {viminfo}
When using the viminfo file is enabled, this option sets
the filename to use, instead of the default "~/.viminfo".
When using the viminfo file is enabled, this option sets
the filename to use, instead of the default "~/.viminfo".
This can also be used to skip the use of the .viminfo file,
by giving the name "NONE".
@@ -190,92 +190,92 @@ OPTIONS
-l Lisp mode. Sets the 'lisp' and 'showmatch' options on.
-m Modifying files is disabled. Resets the 'write' option.
You can still modify the buffer, but writing a file is not
-m Modifying files is disabled. Resets the 'write' option.
You can still modify the buffer, but writing a file is not
possible.
-M Modifications not allowed. The 'modifiable' and 'write'
options will be unset, so that changes are not allowed and
files can not be written. Note that these options can be
-M Modifications not allowed. The 'modifiable' and 'write'
options will be unset, so that changes are not allowed and
files can not be written. Note that these options can be
set to enable making modifications.
-N No-compatible mode. Reset the 'compatible' option. This
will make Vim behave a bit better, but less Vi compatible,
-N No-compatible mode. Reset the 'compatible' option. This
will make Vim behave a bit better, but less Vi compatible,
even though a .vimrc file does not exist.
-n No swap file will be used. Recovery after a crash will be
impossible. Handy if you want to edit a file on a very
slow medium (e.g. floppy). Can also be done with ":set
-n No swap file will be used. Recovery after a crash will be
impossible. Handy if you want to edit a file on a very
slow medium (e.g. floppy). Can also be done with ":set
uc=0". Can be undone with ":set uc=200".
-nb Become an editor server for NetBeans. See the docs for
-nb Become an editor server for NetBeans. See the docs for
details.
-o[N] Open N windows stacked. When N is omitted, open one window
for each file.
-O[N] Open N windows side by side. When N is omitted, open one
-O[N] Open N windows side by side. When N is omitted, open one
window for each file.
-p[N] Open N tab pages. When N is omitted, open one tab page for
each file.
-R Read-only mode. The 'readonly' option will be set. You
can still edit the buffer, but will be prevented from acci-
dently overwriting a file. If you do want to overwrite a
file, add an exclamation mark to the Ex command, as in
":w!". The -R option also implies the -n option (see
below). The 'readonly' option can be reset with ":set
-R Read-only mode. The 'readonly' option will be set. You
can still edit the buffer, but will be prevented from acci‐
dently overwriting a file. If you do want to overwrite a
file, add an exclamation mark to the Ex command, as in
":w!". The -R option also implies the -n option (see
below). The 'readonly' option can be reset with ":set
noro". See ":help 'readonly'".
-r List swap files, with information about using them for
-r List swap files, with information about using them for
recovery.
-r {file} Recovery mode. The swap file is used to recover a crashed
editing session. The swap file is a file with the same
-r {file} Recovery mode. The swap file is used to recover a crashed
editing session. The swap file is a file with the same
filename as the text file with ".swp" appended. See ":help
recovery".
-s Silent mode. Only when started as "Ex" or when the "-e"
-s Silent mode. Only when started as "Ex" or when the "-e"
option was given before the "-s" option.
-s {scriptin}
The script file {scriptin} is read. The characters in the
file are interpreted as if you had typed them. The same
The script file {scriptin} is read. The characters in the
file are interpreted as if you had typed them. The same
can be done with the command ":source! {scriptin}". If the
end of the file is reached before the editor exits, further
characters are read from the keyboard.
-T {terminal}
Tells Vim the name of the terminal you are using. Only
required when the automatic way doesn't work. Should be a
terminal known to Vim (builtin) or defined in the termcap
Tells Vim the name of the terminal you are using. Only
required when the automatic way doesn't work. Should be a
terminal known to Vim (builtin) or defined in the termcap
or terminfo file.
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
initialization" within vim for more details.
-U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa-
tions. All the other GUI initializations are skipped. It
can also be used to skip all GUI initializations by giving
the name "NONE". See ":help gui-init" within vim for more
-U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa‐
tions. All the other GUI initializations are skipped. It
can also be used to skip all GUI initializations by giving
the name "NONE". See ":help gui-init" within vim for more
details.
-V[N] Verbose. Give messages about which files are sourced and
for reading and writing a viminfo file. The optional num-
-V[N] Verbose. Give messages about which files are sourced and
for reading and writing a viminfo file. The optional num‐
ber N is the value for 'verbose'. Default is 10.
-v Start Vim in Vi mode, just like the executable was called
"vi". This only has effect when the executable is called
-v Start Vim in Vi mode, just like the executable was called
"vi". This only has effect when the executable is called
"ex".
-w {scriptout}
All the characters that you type are recorded in the file
{scriptout}, until you exit Vim. This is useful if you
want to create a script file to be used with "vim -s" or
All the characters that you type are recorded in the file
{scriptout}, until you exit Vim. This is useful if you
want to create a script file to be used with "vim -s" or
":source!". If the {scriptout} file exists, characters are
appended.
@@ -285,27 +285,27 @@ OPTIONS
-x Use encryption when writing files. Will prompt for a crypt
key.
-X Don't connect to the X server. Shortens startup time in a
terminal, but the window title and clipboard will not be
-X Don't connect to the X server. Shortens startup time in a
terminal, but the window title and clipboard will not be
used.
-y Start Vim in easy mode, just like the executable was called
"evim" or "eview". Makes Vim behave like a click-and-type
"evim" or "eview". Makes Vim behave like a click-and-type
editor.
-Z Restricted mode. Works like the executable starts with
-Z Restricted mode. Works like the executable starts with
"r".
-- Denotes the end of the options. Arguments after this will
be handled as a file name. This can be used to edit a
-- Denotes the end of the options. Arguments after this will
be handled as a file name. This can be used to edit a
filename that starts with a '-'.
--echo-wid GTK GUI only: Echo the Window ID on stdout.
--help Give a help message and exit, just like "-h".
--literal Take file name arguments literally, do not expand wild-
cards. This has no effect on Unix where the shell expands
--literal Take file name arguments literally, do not expand wild‐
cards. This has no effect on Unix where the shell expands
wildcards.
--noplugin Skip loading plugins. Implied by -u NONE.
@@ -315,18 +315,18 @@ OPTIONS
is given and the files are edited in the current Vim.
--remote-expr {expr}
Connect to a Vim server, evaluate {expr} in it and print
Connect to a Vim server, evaluate {expr} in it and print
the result on stdout.
--remote-send {keys}
Connect to a Vim server and send {keys} to it.
--remote-silent
As --remote, but without the warning when no server is
As --remote, but without the warning when no server is
found.
--remote-wait
As --remote, but Vim does not exit until the files have
As --remote, but Vim does not exit until the files have
been edited.
--remote-wait-silent
@@ -337,31 +337,31 @@ OPTIONS
List the names of all Vim servers that can be found.
--servername {name}
Use {name} as the server name. Used for the current Vim,
Use {name} as the server name. Used for the current Vim,
unless used with a --remote argument, then it's the name of
the server to connect to.
--socketid {id}
GTK GUI only: Use the GtkPlug mechanism to run gvim in
GTK GUI only: Use the GtkPlug mechanism to run gvim in
another window.
--version Print version information and exit.
ON-LINE HELP
Type ":help" in Vim to get started. Type ":help subject" to get help
on a specific subject. For example: ":help ZZ" to get help for the
"ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd-
line-completion"). Tags are present to jump from one place to another
Type ":help" in Vim to get started. Type ":help subject" to get help
on a specific subject. For example: ":help ZZ" to get help for the
"ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd‐
line-completion"). Tags are present to jump from one place to another
(sort of hypertext links, see ":help"). All documentation files can be
viewed in this way, for example ":help syntax.txt".
FILES
/usr/local/lib/vim/doc/*.txt
The Vim documentation files. Use ":help doc-file-list"
The Vim documentation files. Use ":help doc-file-list"
to get the complete list.
/usr/local/lib/vim/doc/tags
The tags file used for finding information in the docu-
The tags file used for finding information in the docu‐
mentation files.
/usr/local/lib/vim/syntax/syntax.vim
@@ -381,7 +381,7 @@ FILES
~/.gvimrc Your personal gvim initializations.
/usr/local/lib/vim/optwin.vim
Script used for the ":options" command, a nice way to
Script used for the ":options" command, a nice way to
view and set options.
/usr/local/lib/vim/menu.vim
@@ -391,11 +391,11 @@ FILES
Script to generate a bug report. See ":help bugs".
/usr/local/lib/vim/filetype.vim
Script to detect the type of a file by its name. See
Script to detect the type of a file by its name. See
":help 'filetype'".
/usr/local/lib/vim/scripts.vim
Script to detect the type of a file by its contents.
Script to detect the type of a file by its contents.
See ":help 'filetype'".
/usr/local/lib/vim/print/*.ps
@@ -410,8 +410,8 @@ SEE ALSO
AUTHOR
Most of Vim was made by Bram Moolenaar, with a lot of help from others.
See ":help credits" in Vim.
Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and
G.R. (Fred) Walter. Although hardly any of the original code remains.
Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and
G.R. (Fred) Walter. Although hardly any of the original code remains.
BUGS
Probably. See ":help todo" for a list of known problems.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.