Compare commits

..

704 Commits

Author SHA1 Message Date
Yee Cheng Chin 5cd759d24e MacVim Snapshot 153
Vim patch 8.1.577

Targets macOS 10.8+

Features:

- The option to automatically download and install updates is now
  exposed in the preference panel. This gives you a way to uncheck it,
  as previously there was no user-visible way to do so once it's
  checked. #816

Fixes:

- Title bar is no longer transparent in 10.12 Sierra #805
- Fixed 'transparency' setting not working properly in Mojave #805
- Fixed setting 'fullscreen' in vimrc leading to black screen in 10.14
  Mojave if non-native fullscreen is used #811
- Fixed showing all black if MMUseCGLayerAlways is set in 10.14 Mojave
  #811
- Fixed misconfigured Python paths in default vimrc #812

Script interfaces have compatibility with these versions:

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
2018-12-12 03:45:19 -08:00
Yee Cheng Chin e6977ce6b1 Merge remote-tracking branch 'vim/master' 2018-12-12 03:32:01 -08:00
Yee Cheng Chin 5af4e395b3 Merge pull request #816 from ychin/auto-update-preference-pane
Expose "automatically install updates" option in preference pane
2018-12-12 01:14:39 -08:00
Yee Cheng Chin 03e13e7354 Expose "automatically install updates" option in preference pane
Currently the updater (Sparkle) supports an option to automatically
download and install updates in the background. The only user-visible
way to turn it on/off is by checking the checkbox in the new update
dialog box but that dialog box only shows up if auto-update is off,
meaning that there's no way to undo setting that setting. Fix this by
exposing the setting in user preference panel.

Also, previously auto-update would even still keep on working even if
"check for updates" is off, since it has precedence. Make the preference
pane un-check auto-update if "check for updates" is turned off.

Fix #808
2018-12-12 00:38:45 -08:00
Bram Moolenaar 295471920d patch 8.1.0577: tabpage right-click menu never shows "Close tab"
Problem:    Tabpage right-click menu never shows "Close tab".
Solution:   Always create the "Close tab" item but ignore the event if there
            is only one tab.
2018-12-11 20:39:19 +01:00
Bram Moolenaar 30700cd5ff patch 8.1.0576: indent script tests pick up installed scripts
Problem:    Indent script tests pick up installed scripts.
Solution:   Use current runtime indent scripts.
2018-12-10 21:36:56 +01:00
Yee Cheng Chin b39705238b Merge pull request #811 from ychin/startup-nonnative-fullscreen-fix
Fix starting up in non-native fullscreen resulting in black screen
2018-12-10 04:40:51 -08:00
Yee Cheng Chin d6f259e6be Merge pull request #812 from ychin/fix-homebrew-python2
Fix misconfigured Python paths in default vimrc
2018-12-10 03:03:22 -08:00
Yee Cheng Chin 7c26ef0ab9 Fix misconfigured Python paths in default vimrc
Homebrew Python 2.7 was misconfigured to use the wrong path, and
official Python 2.7 install was configured to set "pythonthreedll"
instead of "pythondll". Fix them.

Fix #803
2018-12-10 02:28:36 -08:00
Yee Cheng Chin a3a7a5a577 Merge pull request #810 from ychin/yosemite-tab-close-button-on-hover
Make pre-Mojave tabs also show the close button on hover over tab
2018-12-10 01:45:00 -08:00
Yee Cheng Chin b6bc72b09d Fix starting up in non-native fullscreen resulting in black screen
Fix issues related to starting up in fullscreen mode (by setting
`set fullscreen` in gvimrc).

Fix black screen when starting in non-native fullscreen:
- Fix #804
- Non-native fullscreen has an old behavior where it sets CGLayer mode
  on core text renderer to address rendering artifacts in pre-Mojave,
  and we have an insufficient block against it (by checking cgContext).
  In Mojave, we use buffered draws instead and prevent setting CGLayer
  by checking cgContext, but it is not yet initialized yet in this
  situation (since it's lazily initialized). Block against
  cgBufferDrawEnabled instead.
- The CGLayer renderer is really deprecated at this point so ideally we
  could clean up the code a little bit in the future.

Setting MMUseCGLayerAlways no longer results in black screen:
- Fix #801
- CGLayer renderer is basically deprecated doesn't actually work in
  Mojave. Make sure setting MMUseCGLayerAlways won't trigger it if we
  are already using buffered draw (which is automatically the case in
  Mojave).

Fix starting up in fullscreen resulting in a small Vim window:
- When starting MacVim in fullscreen mode, the presentation is delayed
  until the window is made. need to make sure to set shouldResizeVimView
  in this code path too. Before the guioption-k fixes, there were a lot
  of random calls to recalculate sizes which was why this happened
  implicitly. Now need to make sure we do the right thing and call it.
2018-12-10 01:01:27 -08:00
Yee Cheng Chin 67754cb23f Merge pull request #805 from ychin/fix-sierra-transparent-titlebar
Fix 10.12 transparent title bar, and 10.14 'transparency' issues
2018-12-09 20:53:56 -08:00
Yee Cheng Chin 8fce3735aa Make pre-Mojave tabs also show the close button on hover over tab
This makes them show up on tab hover, so you don't have to hover over
the exact location of the close button to see it.
2018-12-09 20:51:20 -08:00
Yee Cheng Chin 55197bd4c4 Fix 10.12 transparent title bar, and 10.14 'transparency' issues
Change the code that sets window's backgroundColor to Mojave (10.14)
only. Right now, we are creating windows with the flag
NSWindowStyleMaskTexturedBackground which is actually deprecated, and it
had the annoying effect of auto-setting transparent title bars in Sierra
SDKs. When the previous change set the background color of the window it
also made the title bar color change as well. Now, the background color
is only set for Mojave so those earlier platforms won't be affected.

Also fix the 'transparency' setting in Mojave. Since in Mojave the
rendering is done through layers now, we need to make sure the layers
are all transparent other than the text view that's trying to blend on
top of the desktop (this is why we needed to set the window background
color to begin with). There *is* one hack where we have to set the
window background with 0.001 alpha because if you set to 0, the whole
border disappears the the window behaves sluggishly.

In the future, consider removing NSWindowStyleMaskTexturedBackground
since it's been deprecated for a while. One issue is that without it the
system title bar has this annoying gray/black line and it doesn't look
as neat. It's a minor aesthetics issue though and if in the future it
gets completely deprecated it's not a big deal. Alternatively, consider
using a transparent title bar and use customized theming.

Also, fix a regression where zoom button was not working properly in
pre-Mojave, due to [NSAnimationContext beginGrouping] being improperly
called.

Fix #799.
2018-12-09 20:39:24 -08:00
Bram Moolenaar d47d52232b Update runtime files. 2018-12-09 20:43:55 +01:00
Bram Moolenaar 37402ed534 patch 8.1.0575: Termdebug: clearing multi-breakpoint does not work
Problem:    Termdebug: clearing multi-breakpoint does not work.
Solution:   Delete all X.Y breakpoints.  Keep more information about placed
            breakpoints. (Ozaki Kiichi, closes #3641)
2018-12-09 15:53:01 +01:00
Bram Moolenaar 4af7259b2b patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Problem:    'commentstring' not used when adding fold marker in C.
Solution:   Require white space before middle comment part. (mostly by
            Hirohito Higashi)
2018-12-09 15:00:52 +01:00
Bram Moolenaar 55d4691308 patch 8.1.0573: cannot redefine user command without ! in same script
Problem:    Cannot redefine user command without ! in same script
Solution:   Allow redefining user command without ! in same script, like with
            functions.
2018-12-08 16:03:28 +01:00
Bram Moolenaar 76ab4fd619 patch 8.1.0572: stopping a job does not work properly on OpenBSD
Problem:    Stopping a job does not work properly on OpenBSD.
Solution:   Do not use getpgid() to check the process group of the job
            processs ID, always pass the negative process ID to kill().
            (George Koehler, closes #3656)
2018-12-08 14:39:05 +01:00
Bram Moolenaar 446e7a3cd3 patch 8.1.0571: non-silent execute() resets display column to zero
Problem:    Non-silent execute() resets display column to zero.
Solution:   Keep the display column as-is.
2018-12-08 13:57:42 +01:00
Bram Moolenaar 539328197c patch 8.1.0570: 'commentstring' not used when adding fold marker
Problem:    'commentstring' not used when adding fold marker. (Maxim Kim)
Solution:   Only use empty 'comments' middle when leader is empty. (Christian
            Brabandt, closes #3670)
2018-12-07 21:08:49 +01:00
Bram Moolenaar 10ccaa17ec patch 8.1.0569: execute() always resets display column to zero
Problem:    Execute() always resets display column to zero. (Sha Liu)
Solution:   Don't reset it to zero, restore the previous value. (closes #3669)
2018-12-07 16:38:23 +01:00
Bram Moolenaar 9a8534673a patch 8.1.0568: error message for NUL byte in ScreenLines breaks Travis CI
Problem:    Error message for NUL byte in ScreenLines breaks Travis CI.
Solution:   Use a normal message fornow.
2018-12-07 14:10:37 +01:00
Bram Moolenaar 4087bfd96d patch 8.1.0567: error for NUL byte in ScreenLines goes unnoticed
Problem:    Error for NUL byte in ScreenLines goes unnoticed.
Solution:   Add an internal error message.
2018-12-07 13:26:39 +01:00
Bram Moolenaar 20091c18c4 patch 8.1.0566: SGR not enabled for mintty because $TERM is "xterm"
Problem:    SGR not enabled for mintty because $TERM is "xterm".
Solution:   Detect mintty by the termresponse. (Ken Takata, closes #3667)
2018-12-07 13:18:19 +01:00
Bram Moolenaar 10600db772 patch 8.1.0565: asan complains about reading before allocated block
Problem:    Asan complains about reading before allocated block.
Solution:   Workaround: Avoid offset from becoming negative.
2018-12-05 19:46:07 +01:00
Bram Moolenaar 88b53fd052 patch 8.1.0564: setting v:errors to wrong type still possible
Problem:    Setting v:errors to wrong type still possible.
Solution:   Return after giving an error message. (Christian Brabandt)
2018-12-05 18:43:28 +01:00
Yee Cheng Chin f7ff60b4f2 MacVim Snapshot 152
Vim patch 8.1.560

Targets macOS 10.8+

Features:
- macOS Mojave (10.14) is now supported.
    - MacVim's UI now works with Dark Mode.
    - Fixed broken rendering and flickering under Mojave when using the
      default Core Text renderer. #757
- guioption 'k' is supported again. #731
    - This option prevents window from resizing when UI elements such as
      toolbars or tabs show or hide themselves.

Fixes:
- Fixed misc fullscreen and window resizing bugs and artifacts #745
- Dragging tabs to reorder now works properly #789
- Fixed timer callback handling in GUI #749
- Fixed native tabs (10.12+) interring with Vim tabs #788
- Fixed Japanese IME Ctrl-U/Ctrl-O handling #742
- Fixed MMShareFindPboard and Cmd-E/Cmd-G interactions #780
- Better handling of guifontwide font size #737
- Better python discovery in default vimrc #739

Known Issues:
- Scrolling performance is slightly worse under Mojave #796

Script interfaces have compatibility with these versions:
- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
2018-12-05 03:14:15 -08:00
Yee Cheng Chin 0a444c1956 Merge pull request #797 from ychin/travis-deploy-mojave
Switch Travis CI to deploy MacVim in Xcode 10 / Mojave SDK
2018-12-05 02:58:19 -08:00
Yee Cheng Chin cf80560781 Switch Travis CI to build MacVim in Xcode 10 / Mojave 10.14 SDK
The previous Mojave rendering artifacts have now been fixed, so we can
deploy MacVim for Mojave / Xcode 10 now.
2018-12-05 01:23:52 -08:00
Yee Cheng Chin 41adbabe54 Merge remote-tracking branch 'vim/master' 2018-12-05 00:53:42 -08:00
Bram Moolenaar 74ea88c170 patch 8.1.0563: setting v:errors to a string give confusing error
Problem:    Setting v:errors to a string give confusing error. (Christian
            Brabandt)
Solution:   Change internal error into normal error message.
2018-12-04 22:37:49 +01:00
Bram Moolenaar b6fc72851c patch 8.1.0562: parsing of 'diffopt' is slightly wrong
Problem:    Parsing of 'diffopt' is slightly wrong.
Solution:   Fix the parsing and add a test. (Jason Franklin, Christian
            Brabandt)
2018-12-04 22:24:16 +01:00
Yee Cheng Chin 79541d2844 Merge pull request #795 from ychin/fix-fullscreen-mojave-tabs
Fix Mojave-style tabs not triggering in fullscreen
2018-12-04 04:27:39 -08:00
Yee Cheng Chin 7d8b5890c1 Fix Mojave-style tabs not triggering in fullscreen 2018-12-04 04:14:06 -08:00
Yee Cheng Chin bbad3edf5a Merge pull request #757 from s4y/fix-the-flicker
Fix rendering issues when built against the 10.14 SDK.
2018-12-04 00:11:12 -08:00
Yee Cheng Chin ab71bd8d69 Fix resizing issues with the flicker fix and hide the tabline
Fix the misc resizing issues with the previous CoreText renderer commit,
in particular cases where zoom button was clicked, Vim initiated
resizing (e.g. ":set lines+=10"), font size changes (Cmd-+/-),
fullscreen toggles, etc.

- The core issue is that the order of operation for those are not
  consistent. Sometimes, MacVim changes window size first before letting
  Vim knows, but other times it lets Vim handle it before resizing (e.g.
  zoom).

- The new CoreText renderer's buffer needs to know when the size
  change in order to resize the buffer, and it wasn't doing it in the
  right spot. Fix it so that it's delayed until updateLayer: is called.
  By that time both MacVim and Vim should have already come to an
  agreement on the new size.

- Also, when using the new 10.14 buffer renderer, don't use
  [NSAnimationContext beginGrouping] to block the system from resizing
  the window, because it also suffers from the order of operation issue
  and sometimes endGrouping could get called before beginGrouping,
  causing the UI to appear frozen. Instead, just have updateLayer make a
  new image and copy over the old one to avoid the black flickering when
  resizing (which was what the begin/endGrouping was trying to solve to
  begin with), and the UI now works smoother as well (e.g. double
  clicking the border now works smoothly).

The previous change also set the window background color to whatever
default background color is which is fine but it affects the tabline
separator as well and makes it look jarring. The tabline separator is
mostly a relic of the older macOS versions, so disable it on new-ish
macOS verisons.

Also, update docs in the known issues section to make it clear there's
currently an issue in performance under Mojave. That will be removed
when the performance is fixed in the future.
2018-12-04 00:09:53 -08:00
Bram Moolenaar 9719568533 patch 8.1.0561: MSCV error format has changed
Problem:    MSCV error format has changed.
Solution:   Make the space between the line number and colon optional.
2018-12-03 20:50:02 +01:00
Bram Moolenaar 51a7454cd2 patch 8.1.0560: cannot use address type "other" with with user command
Problem:    Cannot use address type "other" with with user command.
Solution:   Add "other" to the list. (Daniel Hahler, closes #3655)  Also
            reject "%" for commands with "other".  Add some more tests.
2018-12-02 18:21:49 +01:00
Bram Moolenaar b513d3079b patch 8.1.0559: command line completion not sufficiently tested
Problem:    Command line completion not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes #3622)
2018-12-02 14:55:08 +01:00
Bram Moolenaar d2ec51f399 patch 8.1.0558: some MS-Windows instructions are outdated
Problem:    Some MS-Windows instructions are outdated.
Solution:   Update the uninstall instructions and the NSIS README. (Ken
            Takata, closes #3614)  Also update remark about diff.exe.
2018-12-02 13:58:00 +01:00
Bram Moolenaar 5378e1cf0a patch 8.1.0557: Termdebug: gdb may use X.Y for breakpoint number
Problem:    Termdebug: gdb may use X.Y for breakpoint number.
Solution:   Handle X.Y breakpoint numbers. (Yasuhiro Matsumoto, close #3641)
2018-12-02 13:47:03 +01:00
Sidney San Martín 0db547d459 Fix rendering issues with the 10.14 SDK.
Before this commit, the Core Text renderer relied on a legacy behavior
of NSView to keep its content across draws. setNeedsDisplayInRect: drew
over parts of the existing content as drawing commands were received,
without ever redrawing old content.

Layer backed views don't preserve content between draws and may be asked
to redraw at any time, and layer backing is default on in the 10.14 SDK.

This change adds a way to draw to a CGBitmapContext and then display
that in the view's layer. It's similar to the CGLayer path, but I wasn't
able to get the CGLayer path to work without hanging or crashing when I
scrolled. My best guess from looking at stack traces is that using
CGContextDrawLayerInRect to draw a layer into itself doesn't actually
copy pixels, but adds the self-draw as an action to be performed when
the CGLayer is drawn into a bitmap context. Scrolling stacks these
actions, which either hangs or overflows the stack when drawn.

The new code is controlled by the MMBufferedDrawing user default, which
is on by default on macOS >= 10.14 with this change. Fixes #751.
2018-12-02 00:18:44 -05:00
Yee Cheng Chin 63dbd5838d Merge pull request #793 from ychin/scrollbar_dark_mode_fix
Fix scrollbars in Mojave dark mode not rendering properly
2018-12-01 18:11:35 -08:00
Yee Cheng Chin 4ba02a87ed Fix scrollbars in Mojave dark mode not rendering properly
Dark mode scrollbars's background are rendered in a translucent color so
that it would overlay on top of the background nearly, even though we
are using legacy scrollbars with a dedicated space. This is unlike light
mode scrollbars which render with a concrete color. This means if the
background has uncleared rendering it would result in some oddities.
Just fix it by making sure we first render the scroll track with the
current background color before drawing the system overlay.

Known issues:
- The scroll knob will look quite light and hard to see if the
  background color is bright. Consider this OK for now as users who use
  dark mode will likely have a dark-ish background color in Vim.
- If both vertical and horizontal scrollbars are enabled, the corners
  will look black or sometimes filled with rendering artifacts. Will fix
  this later. One way to fix is to always fill the Vim view with a
  background color but that seems to slow things down a little bit
  because setNeedsDisplay seems to be called too much without a rect, so
  need to fix that first.
- Vertical scrollbars' positions are sometimes set incorrectly. That's a
  separate bug and will be addressed later.
- MacVim currently doesn't support overlay scrollbars which have been
  introduced in macOS since 10.7. Investigate that option too.
2018-12-01 17:31:09 -08:00
Bram Moolenaar ed8bc78d23 patch 8.1.0556: saving/restoring search patterns share saved last_idx
Problem:    Saving/restoring search patterns share saved last_idx.
Solution:   Use a separate saved last_idx for saving search patterns for
            functions and incremental search.
2018-12-01 21:08:21 +01:00
Bram Moolenaar 2fb8f684d8 patch 8.1.0555: crash when last search pat is set but not last substitute pat
Problem:    Crash when last search pat is set but not last substitute pat.
Solution:   Do not mix up last search pattern and last subtitute pattern.
            (closes #3647)
2018-12-01 13:14:45 +01:00
Bram Moolenaar 614ab8aa00 patch 8.1.0554: popup menu overlaps with preview window
Problem:    Popup menu overlaps with preview window.
Solution:   Adjust the height computation. (Hirohito Higashi, closes #3414)
2018-12-01 11:59:00 +01:00
Bram Moolenaar 07dc18ffa4 patch 8.1.0553: it is not easy to edit a script that was sourced
Problem:    It is not easy to edit a script that was sourced.
Solution:   Add a count to ":scriptnames", so that ":script 40" edits the
            script with script ID 40.
2018-11-30 22:48:32 +01:00
Bram Moolenaar 01a060da74 patch 8.1.0552: saved last search pattern may not be restored
Problem:    Saved last search pattern may not be restored.
Solution:   Call restore_last_search_pattern().  Add a check for balancing
            saving and restoring the last search pattern.
2018-11-30 21:57:55 +01:00
Bram Moolenaar 8ff5af9544 patch 8.1.0551: expression evaluation may repeat an error message
Problem:    Expression evaluation may repeat an error message. (Jason
            Franklin)
Solution:   Check for the value of did_emsg when giving an error
            for the :execute command.
2018-11-28 21:20:38 +01:00
Bram Moolenaar 76a6345433 patch 8.1.0550: expression evaluation may repeat an error message
Problem:    Expression evaluation may repeat an error message. (Jason
            Franklin)
Solution:   Increment did_emsg and check for the value when giving an error
            for the echo command.
2018-11-28 20:38:37 +01:00
Yee Cheng Chin dabe5a224a Merge remote-tracking branch 'vim/master' 2018-11-27 03:53:27 -08:00
Bram Moolenaar 10efcd5b02 patch 8.1.0549: netbeans test depends on README.txt contents
Problem:    Netbeans test depends on README.txt contents.
Solution:   Use a generated file instead.
2018-11-26 21:22:07 +01:00
Bram Moolenaar 1341024e08 patch 8.1.0548: crash when job callback unloads a buffer
Problem:    Crash when job callback unloads a buffer. (James McCoy)
Solution:   Don't round up the wait time to 10 msec in ui_inchar().
2018-11-26 21:19:11 +01:00
Yee Cheng Chin bbbdc4731a Merge pull request #791 from ychin/tabs_dark_mode_and_fixes
Add Mojave-style tabs, which also supports Dark Mode
2018-11-26 10:54:14 -08:00
Yee Cheng Chin 6e1489e531 Add Mojave-style tabs, which also supports Dark Mode
Add a new tab style "Mojave". The files were copied from Yosemite-style
tabs but with additional improvements. It now reads the colors from an
asset catalog with colors for both dark and light modes. The colors and
style are also retuned to look more like native Mojave tabs. The new tab
and close tab buttons are now using a style much more similar to what
native macOS are like, with the close tab button showing up when mouse
is hovering over a particular tab.

Reason for cloning PSMYosemiteTabStyle is to avoid having too many
special cases in a single file and to avoid breaking its behaviors on
older systems. Also, PSMTabBarControl is mostly a dead project, so it's
wise to modify existing code as little as possible.

MacVim will only use this style if it's compiled with Mojave SDKs and
it's actually being run in Mojave (10.14) or higher.

Fix #775
2018-11-26 03:41:29 -08:00
Yee Cheng Chin 007de995cb Copy Yosemite tab style files to "Mojave" files before modifying them 2018-11-26 02:31:44 -08:00
Yee Cheng Chin acb1c07777 Docs update to mention Github in addition to mailing list 2018-11-26 02:31:44 -08:00
Yee Cheng Chin b1e26a6b4c Merge pull request #786 from ichizok/fix/ctrl-6
Fix the working of Ctrl-6
2018-11-25 02:53:45 -08:00
Yee Cheng Chin af6bd98de1 Merge pull request #789 from ychin/fix_tabs_dragging
Fix dragging tabs not working properly
2018-11-25 01:56:08 -08:00
Yee Cheng Chin d8606ce022 Refactor Ctrl-6 fix to be clearer and only trigger under Japanese IME
Only limiting this condition to be under Japanese IME helps prevents
unintended effects on other IMEs as well, as this bug is only known to
happen under Japanese IME with Windows shortcuts.

Also update comments to be clear that most of the time you do want to go
through the interpretKeyEvents: path.
2018-11-25 01:51:04 -08:00
Yee Cheng Chin 7e1b43e6c2 Fix tab dragging not working when dragging a tab to the right
Vim's tabmove has two positions where it doesn't do anything, so need to
add 1 to index when moving tab to the right.

Fix #257
2018-11-25 01:25:12 -08:00
Yee Cheng Chin e126fa9652 Fix tab dragging crashing under 10.14 due to deprecated API
Use the newer `cacheDisplayInRect:toBitmapImageRep:` API instead to work
around this.
2018-11-25 01:25:12 -08:00
Bram Moolenaar 3067a4dd0d patch 8.1.0547: modeline test with keymap still fails
Problem:    Modeline test with keymap still fails.
Solution:   Check that the keymap feature is available for the failure assert.
2018-11-25 05:06:48 +01:00
Bram Moolenaar 4ace6ab7e7 patch 8.1.0546: modeline test with keymap fails
Problem:    Modeline test with keymap fails.
Solution:   Check that the keymap feature is available.
2018-11-25 04:25:58 +01:00
Bram Moolenaar dc2f73a698 patch 8.1.0545: when executing indent tests user preferences interfere
Problem:    When executing indent tests user preferences interfere.
Solution:   Add "--clean".
2018-11-25 04:03:09 +01:00
Bram Moolenaar b730f0c7ba Update runtime files 2018-11-25 03:56:26 +01:00
Bram Moolenaar 916a818cea patch 8.1.0544: setting 'filetype' in a modeline causes an error
Problem:    Setting 'filetype' in a modeline causes an error (Hirohito
            Higashi).
Solution:   Don't add the P_INSECURE flag when setting 'filetype' from a
            modeline.  Also for 'syntax'.
2018-11-25 02:18:29 +01:00
Bram Moolenaar 4e303c8ba8 patch 8.1.0543: Coverity warns for leaking memory and using wrong struct
Problem:    Coverity warns for leaking memory and using wrong struct.
Solution:   Free pointer when allocation fails. Change "boff" to "loff".
            (closes #3634)
2018-11-24 14:27:44 +01:00
Yee Cheng Chin e5d11768a2 Merge pull request #788 from ychin/disable_native_tabs
Disable macOS native tabs (introduced in 10.12)
2018-11-23 17:58:11 -08:00
Yee Cheng Chin 1a0d5034a6 Disable macOS native tabs (introduced in 10.12)
MacVim already has its own tabbing interface and native tabs
(configurable in System Preferences) introduce a second layer of tabs
which is confusing. MacVim also doesn't behave properly under such
circumstances such as rendering artifacts, lacking proper native menu
items (e.g. "Move Tab to New Window"), and keyboard shortcuts like Cmd-W
don't work.

Note that it's currently not a good idea to implement Vim tabs using
native tabs since they assume multiple NSWindow instances and assume
they can be split off into multiple windows, which Vim doesn't support.
2018-11-23 17:32:25 -08:00
Yee Cheng Chin 8e5b2b51bd Merge pull request #787 from ychin/macvim_xcodeproj_askpass
Add macvim-askpass to project.pbxproj to avoid it always show up modified
2018-11-22 00:59:33 -08:00
Yee Cheng Chin 5ad7ee8107 Add macvim-askpass to project.pbxproj to avoid it always show up modified
Since the file macvim-askpass is copied in the build steps, Xcode keeps
trying to add this file as a "recovered reference". Just fix this by
adding it to the xcodeproj properly.
2018-11-22 00:15:03 -08:00
Bram Moolenaar f951416a83 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Problem:    shiftwidth() does not take 'vartabstop' into account.
Solution:   Use the cursor position or a position explicitly passed.
            Also make >> and << work better with 'vartabstop'. (Christian
            Brabandt)
2018-11-22 03:08:29 +01:00
ichizok 7c6b2b0e86 Fix the working of Ctrl-6
Call interpretKeyEvents: with except Ctrl-O and Ctrl-U since should
translate key-input by doCommandBySelector:.
2018-11-22 03:24:48 +09:00
Bram Moolenaar 2b84949ad8 patch 8.1.0541: help message in dosinst.c is outdated
Problem:    Help message in dosinst.c is outdated.
Solution:   Update the comment. (Ken Takata, closes #3626)
2018-11-21 13:58:35 +01:00
Bram Moolenaar 247bb7e43b patch 8.1.0540: may evaluate insecure value when appending to option
Problem:    May evaluate insecure value when appending to option.
Solution:   Set the secure flag when changing an option that was previously
            set insecurely.  Also allow numbers for the characters from
            'spelllang' that are used for LANG.vim.
2018-11-20 14:27:07 +01:00
Bram Moolenaar 82e8c92ebe patch 8.1.0539: cannot build without the sandbox
Problem:    Cannot build without the sandbox.
Solution:   Set the secure option instead of using the sandbox.  Also restrict
            the characters from 'spelllang' that are used for LANG.vim.
            (suggested by Yasuhiro Matsumoto)
2018-11-20 13:32:36 +01:00
Yee Cheng Chin 8fbb254859 Merge pull request #784 from ychin/macos-ci-more-versions
Add more Xcode / macOS versions to test in Travis CI
2018-11-20 01:09:32 -08:00
Yee Cheng Chin 199fa1f766 Add more Xcode / macOS versions to test in Travis CI
This helps make sure changes utilizing newer OS features won't break old
OS versions. CI now tests from Xcode 7.3 to 10.1.
2018-11-20 00:43:07 -08:00
Yee Cheng Chin dd1d7f6c3c Merge pull request #783 from ychin/temp_disable_bad_unit_tests_2
Disable test_timers also in non-GUI mode as well
2018-11-20 00:08:52 -08:00
Yee Cheng Chin 2aa9b8f2c5 Disable test_timers also in non-GUI mode as well 2018-11-20 00:07:22 -08:00
Yee Cheng Chin dc42fa339e Merge pull request #782 from ychin/temp_disable_bad_unit_tests
Disable timer & channel unit tests since they have been breaking CI
2018-11-19 23:19:57 -08:00
Yee Cheng Chin 1447ebfdfb Disable timer & channel unit tests since they have been breaking CI
MacVim seems to have some timing issues with test_channel and
test_timers and they frequently fail in Travis CI. Disable them for now
to avoid build break red herring.

https://github.com/macvim-dev/macvim/issues/778 will track fixing this.
2018-11-19 22:55:58 -08:00
Yee Cheng Chin ea5fe03309 Merge pull request #780 from ychin/find-pasteboard-fixes
Fix MMShareFindPboard and Cmd-E/Cmd-G
2018-11-19 21:18:59 -08:00
Bram Moolenaar 5958f95a40 patch 8.1.0538: evaluating a modeline might invoke using a shell command
Problem:    Evaluating a modeline might invoke using a shell command. (Paul
            Huber)
Solution:   Set the sandbox flag when setting options from a modeline.
2018-11-20 04:25:21 +01:00
Bram Moolenaar 48d23bb4de patch 8.1.0537: ui_breakcheck() may be called recursively
Problem:    ui_breakcheck() may be called recursively, which doesn't work.
Solution:   When called recursively, just return. (James McCoy, closes #3617)
2018-11-20 02:42:43 +01:00
Yee Cheng Chin b3907e6722 Make Cmd-E work and always share to OS Find Pasteboard
Cmd-E (Edit -> Use Selection for Find") in most macOS apps follow the
convention that it shares to the system Find Pasteboard, while Cmd-G
uses the Find Pasteboard to find the next item. Make Cmd-E always do
that even if MMShareFindPboard is set to NO. This way, normal searches
in Vim wouldn't pollute the system find pasteboard, but could still have
a way to share to it by using this action.
2018-11-18 21:04:41 -08:00
Yee Cheng Chin 3df190c296 Fix MMShareFindPboard not working properly and update docs
MMShareFindPboard is supposed to prevent MacVim from updating the system
find pasteboard when searching, but the previous behavior was that it
would only set the Vim-specific format to the find pasteboard so you
could still share search patterns across Vim windows but it has the
effect of clearing the global find pasteboard. Just fix that by making
MacVim not touch the system find pasteboard at all when
MMShareFindPboard is set to NO to respect user's wish. Cmd-G will still
use the system find pasteboard to make it easy to search in another
macOS program and jump to Vim. The user can always use `n` instead if
that's not desired.

Also update docs to make this clear, and rename all "OS X" to "macOS" to
keep up with the times.

Close #773
2018-11-18 21:03:05 -08:00
Bram Moolenaar addc156c38 patch 8.1.0536: file time test fails when using NFS
Problem:    File time test fails when using NFS.
Solution:   Use three file times instead of localtim(). (James McCoy,
            closes #3618)
2018-11-18 12:25:09 +01:00
Bram Moolenaar 6b731886ca patch 8.1.0535: increment/decrement might get interrupted by updating folds
Problem:    Increment/decrement might get interrupted by updating folds.
Solution:   Disable fold updating for a moment. (Christian Brabandt,
            closes #3599)
2018-11-16 20:54:47 +01:00
Bram Moolenaar 25a494ce60 patch 8.1.0534: MS-Windows installer uses different $HOME than Vim
Problem:    MS-Windows installer uses different $HOME than Vim.
Solution:   Use the Vim logic also in the MS-Windows installer. (Ken Takata,
            closes #3564)
2018-11-16 19:39:50 +01:00
Bram Moolenaar 447f6ce8bd patch 8.1.0533: screendump tests can be flaky
Problem:    Screendump tests can be flaky.
Solution:   Add VerifyScreenDump to the pattern of flaky tests.
2018-11-16 18:50:19 +01:00
Bram Moolenaar 2d67d307ee patch 8.1.0532: cannot distinguish between quickfix and location list
Problem:    Cannot distinguish between quickfix and location list.
Solution:   Add an explicit type variable. (Yegappan Lakshmanan)
2018-11-16 18:46:02 +01:00
Bram Moolenaar dbc0d2163a patch 8.1.0531: flaky tests often fail with a common error message
Problem:    Flaky tests often fail with a common error message.
Solution:   Add a pattern to match an error message indicating a flaky test.
2018-11-16 18:22:45 +01:00
Bram Moolenaar c0f05d0bd1 patch 8.1.0530: channel and terminal tests that start a server can be flaky
Problem:    Channel and terminal tests that start a server can be flaky.
Solution:   Add all channel and terminal tests that start a server to the list
            of flaky tests.
2018-11-16 17:44:48 +01:00
Bram Moolenaar f77af0e613 patch 8.1.0529: flaky test sometimes fails in different ways
Problem:    Flaky test sometimes fails in different ways.
Solution:   When the second run gives a different error, try running the test
            again, up to five times.
2018-11-16 16:52:16 +01:00
Bram Moolenaar c4568ab37e patch 8.1.0528: various typos in comments
Problem:    Various typos in comments.
Solution:   Fix the typos.
2018-11-16 16:21:05 +01:00
Bram Moolenaar f0d58efc9d Update runtime files. 2018-11-16 16:13:44 +01:00
Bram Moolenaar 0c27cbcacf patch 8.1.0527: using 'shiftwidth' from wrong buffer for folding
Problem:    Using 'shiftwidth' from wrong buffer for folding.
Solution:   Use "buf" instead of "curbuf". (Christian Brabandt)
2018-11-14 21:45:32 +01:00
Bram Moolenaar 61fb8d8c67 patch 8.1.0526: running out of signal stack in RealWaitForChar
Problem:    Running out of signal stack in RealWaitForChar. (Vladimir Marek)
Solution:   Make the fd_set variables static.
2018-11-12 21:45:08 +01:00
Bram Moolenaar d3471e5785 patch 8.1.0525: terminal test skips part on Windows
Problem:    Terminal test skips part on Windows.
Solution:   Fix Test_terminal_does_not_truncate_last_newlines(). (Hirohito
            Higashi, closes #3606)
2018-11-12 21:42:24 +01:00
Bram Moolenaar c2c02574ec patch 8.1.0524: terminal test fails on Windows
Problem:    Terminal test fails on Windows.
Solution:   Skip Test_terminal_does_not_truncate_last_newlines() for now.
2018-11-11 23:14:54 +01:00
Bram Moolenaar b244373bec patch 8.1.0523: opening window from quickfix leaves empty buffer behind
Problem:    Opening window from quickfix leaves empty buffer behind.
Solution:   Add qf_jump_newwin(). (Yegappan Lakshmanan, closes #2574)
2018-11-11 22:50:27 +01:00
Bram Moolenaar f3aea59afa patch 8.1.0522: :terminal does not show trailing empty lines
Problem:    :terminal does not show trailing empty lines.
Solution:   Add empty lines. (Hirohito Higashi, closes #3605)
2018-11-11 22:18:21 +01:00
Bram Moolenaar 883ba68cda patch 8.1.0521: cannot build with +eval but without +quickfix
Problem:    Cannot build with +eval but without +quickfix.
Solution:   Remove #ifdef for e_stringreq. (John Marriott)
2018-11-11 21:22:57 +01:00
Bram Moolenaar 218959bc91 patch 8.1.0520: screen diff test sometimes fails
Problem:    Screen diff test sometimes fails.
Solution:   Add to list of flaky tests.
2018-11-11 18:51:42 +01:00
Bram Moolenaar f49cc60aa8 patch 8.1.0519: cannot save and restore the tag stack
Problem:    Cannot save and restore the tag stack.
Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
            closes #3604)
2018-11-11 15:21:05 +01:00
Kazuki Sakamoto 2c43cd672d Merge remote-tracking branch 'vim/master' 2018-11-10 19:50:19 -08:00
Bram Moolenaar 8617b40159 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Problem:    Test_window_split_edit_bufnr() fails on AppVeyor.
Solution:   Disable the failing part for now.
2018-11-10 20:47:48 +01:00
Bram Moolenaar d42333d8e9 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Problem:    Test_window_split_edit_alternate() fails on AppVeyor.
Solution:   Disable the failing part for now.
2018-11-10 20:28:19 +01:00
Bram Moolenaar ddd1f9183b patch 8.1.0516: :move command marks buffer modified when nothing changed
Problem:    :move command marks buffer modified when nothing changed.
Solution:   Do not set 'modified'.  Add a test. (Jason Franklin)
2018-11-10 19:19:36 +01:00
Bram Moolenaar ded5f1bed7 patch 8.1.0515: reloading a script gives errors for existing functions
Problem:    Reloading a script gives errors for existing functions.
Solution:   Allow redefining a function once when reloading a script.
2018-11-10 17:33:29 +01:00
Bram Moolenaar 1bbb619483 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Problem:    CTRL-W ^ does not work when alternate buffer has no name.
Solution:   Use another method to split and edit the alternate buffer. (Jason
            Franklin)
2018-11-10 16:02:01 +01:00
Yee Cheng Chin 98fed9dfc9 Make Travis CI logs easier to read by using travis_fold tags (#774) 2018-11-09 04:11:15 -08:00
Yee Cheng Chin 49b33ba08a Merge pull request #772 from ychin/fix_travis_ci_build_ruby
Fix Travis CI build break and ruby configuration error
2018-11-07 05:01:10 -08:00
Yee Cheng Chin c5e9d1f5b4 Fix Travis CI build break and ruby configuration error
Homebrew's Ruby formula seems to have switched to be keg-only, which
breaks the normal paths in /usr/local/bin and /usr/local/lib. Fix this
by switching to the explicit paths (e.g.  /usr/local/opt/ruby/bin) for
Ruby.

Use the new Travis CI native Homebrew addon to manage packages instead
of explicit brew commands.

Update to Xcode 9.4, and leave a comment why we are not going to Xcode
10 / macOS 10.14 yet.

Use "set -e" to make sure we fail fast.
2018-11-07 01:38:43 -08:00
Yee Cheng Chin eda162cdbb Merge pull request #765 from phillmv/patch-1
Proposal for LICENSE file
2018-11-06 22:58:39 -08:00
Phill MV 0b95deff83 Deleted Summary preamble from LICENSE 2018-11-06 16:16:39 -05:00
Bram Moolenaar d0721058f4 patch 8.1.0513: no error for set diffopt+=algorithm:
Problem:    No error for set diffopt+=algorithm:.
Solution:   Check for missing argument. (Hirohito Higashi, closes #3598)
2018-11-05 21:21:33 +01:00
Bram Moolenaar 389ab7122b patch 8.1.0512: 'helplang' default is inconsistent for C and C.UTF-8
Problem:    'helplang' default is inconsistent for C and C.UTF-8.
Solution:   Don't accept a value unless it starts with two letters.
2018-11-05 20:25:52 +01:00
Bram Moolenaar 9e353b5265 patch 8.1.0511: ml_get error when calling a function with a range
Problem:    ml_get error when calling a function with a range.
Solution:   Don't position the cursor after the last line.
2018-11-04 23:39:38 +01:00
Bram Moolenaar ba3ff53930 Update runtime files 2018-11-04 14:45:49 +01:00
Bram Moolenaar dcd71cbaed patch 8.1.0510: filter test fails when $LANG is C.UTF-8
Problem:    Filter test fails when $LANG is C.UTF-8.
Solution:   Set 'helplang' to "en" for any C language. (Christian Brabandt,
            closes #3577)
2018-11-04 14:40:47 +01:00
Kazuki Sakamoto fdb10af4c1 Merge remote-tracking branch 'vim/master' 2018-11-03 21:04:14 -07:00
Bram Moolenaar 0b38f54730 patch 8.1.0509: checking cwd not accessible fails for root
Problem:    Checking cwd not accessible fails for root. (James McCoy)
Solution:   Skip this part of the test for root. (closes #3595)
2018-11-03 21:47:16 +01:00
Bram Moolenaar 0f62cf5b33 patch 8.1.0508: suspend test fails when run by root
Problem:    Suspend test fails when run by root.
Solution:   Accept both '$' and '#' for the prompt. (James McCoy, closes #3590)
2018-11-03 21:09:15 +01:00
Bram Moolenaar da1c11c641 patch 8.1.0507: .raml files not properly detected
Problem:    .raml files not properly detected.
Solution:   Recognize .raml as raml instead of yaml. (closes #3594)
2018-11-03 19:52:15 +01:00
Bram Moolenaar 9691f82f86 patch 8.1.0506: modeline test fails when run by root
Problem:    Modeline test fails when run by root.
Solution:   Set 'modeline' for the test. (James McCoy, closes #3592)
2018-11-03 19:06:25 +01:00
Bram Moolenaar bd9a0c611c patch 8.1.0505: filter command test may fail if helplang is not set
Problem:    Filter command test may fail if helplang is not set.
Solution:   Set 'helplang' for the test. (James McCoy, closes #3591)
2018-11-03 19:00:14 +01:00
Bram Moolenaar 4dbc262764 patch 8.1.0504: when CTRL-C is mapped it triggers InsertLeave
Problem:    When CTRL-C is mapped it triggers InsertLeave.
Solution:   Make CTRL-C behave the same way when typed or used in a mapping.
2018-11-02 11:59:15 +01:00
Yee Cheng Chin 91aa372a22 Merge pull request #745 from ychin/rendering_fixes
Fix native fullscreen rendering and resizing bugs
2018-11-01 22:33:34 -07:00
Yee Cheng Chin 8400c5301d Update homepage link on README.md to use HTTPS 2018-11-01 22:00:43 -07:00
Kazuki Sakamoto 57dd4c6884 Merge remote-tracking branch 'vim/master' 2018-11-01 20:46:13 -07:00
Bram Moolenaar f7acf2b63c patch 8.1.0503: missing change to diff test
Problem:    Missing change to diff test. (Hirohito Higashi)
Solution:   Add the missing test function.
2018-11-01 21:14:53 +01:00
Yee Cheng Chin fa0fad6d73 Fixed double-clicking on border resulting in bad resize
Fix issue where if the user double-clicks on the window border or corner
to resize MacVim (the macOS behavior is to resize the window all the way
to the screen's border), it results in an incomplete resize and also
takes a long time.

The code was spamming the Vim instance with live resize messages,
leading to slowdown and dropped messages. Fix it by rate limiting the
messages to one at a time, which speeds things up, and clean up when
live resize finishes to make sure things look right.
2018-11-01 01:06:18 -07:00
Yee Cheng Chin ad821e46d9 Fix toggling native fullscreen on/off to restore window to correct size
Previously when using native fullscreen mode, if you toggle fullscreen
off, the window will end up taking up the whole screen rather than
restoring back to the original size. Fix that.

The real issue is because when you resize MacVim's window (which the
fullscreen restore code does), then callback (windowDidResize) triggered
a complicated set of callbacks by calling setFrameSize:, which in turn
resizes Vim, which in turn calls windowDidResize again, which usually
does the right thing, but not always. Fix the window resize handler code
to always respect the new window size by calling
setFrameSizeKeepGUISize: instead which doesn't resize the window.
2018-11-01 01:06:18 -07:00
Yee Cheng Chin 5502bbf9ff Fixed native fullscreen rendering corruption bug
Fix the issue where MacVim would occasionally draws corrupted image in
fullscreen (it would draw mostly black).

The easiest way to reproduce this is as follows:

1. Make a new MacVim window, enter fullscreen
2. Open a new tab or hit Cmd-= a few times
3. Switch to another fullscreen app or desktop, click around, then
   switch back
4. Observe most of the screen is black.

The reason this happens is that the MacVim resize code always tries to
resize the window to fit the content size (calculated from how many
lines / columns we have and whether other elements like tab bar are
visible).  This means the resize code
(resizeWindowToFitContentSize:keepOnScreen:) would make the window
smaller than the full size of screen. For some reason, when you switch
away from the space, macOS decides to resize the window back to screen
size again, causing a window resize event to happen. The resize event
invalidates the NSView, causing it to draw black.

This is also why fullscreen mode has black bars on top / bottom, which
is especially jarring when font size is large of `linespace` is high.

The fix is to treat guioptions 'k' to be on when in full screen mode,
since the option means we will always try to fit the Vim content inside
the window, rather than resize the window to fit the Vim content. This
way the fullscreen Vim window will take up the whole screen and won't
keep getting resized. This is also more similar to how native Gvim works
when maximized.

Close #496 (black bars)

Close #557, close #674 (full screen rendering issues)

A related issue is that MacVim (without CGLayer backing) doesn't
actually know how to redraw itself properly when invalidated, which is
the root cause of this bug. It receives Vim draw calls incrementally and
doesn't actually cache the rendered content, so it relies on the fact
that MacVim's NSWindow doesn't usually invalidates all the content which
allows it to draw incrementally without needing to perform a full
redraw. This is why non-native fullscreen requires CGLayer backing mode
as macOS's behavior in this mode (basically a borderless window) is that
it does clear the NSWindow's content when setWantsDisplay: is called.
This is also why Vim live window resizing is limited to cell size
instead of allowing smooth resize (to avoid having to trigger redraws).
These are issues that should be fixed later.
2018-11-01 01:06:18 -07:00
Bram Moolenaar f080d70a82 patch 8.1.0502: internal diff fails when diffing a context diff
Problem:    Internal diff fails when diffing a context diff. (Hirohito Higashi)
Solution:   Only use callback calls with one line. (closes #3581)
2018-10-31 22:57:26 +01:00
Kazuki Sakamoto 324ff06148 Merge remote-tracking branch 'vim/master' 2018-10-30 19:45:14 -07:00
Bram Moolenaar a9a8e04eab patch 8.1.0501: cppcheck warns for using array index before bounds check
Problem:    Cppcheck warns for using array index before bounds check.
Solution:   Swap the conditions. (Dominique Pelle)
2018-10-30 22:15:55 +01:00
Kazuki Sakamoto 0e473839d0 Merge remote-tracking branch 'vim/master' 2018-10-28 19:21:49 -07:00
Bram Moolenaar 833e5dab14 patch 8.1.0500: cleaning up in src/tee may not always work
Problem:    Cleaning up in src/tee may not always work.
Solution:   Use "rm" when appropriate. (Michael Soyka, closes #3571)
2018-10-28 15:43:58 +01:00
Phill MV 7dd6ce67e2 Proposal for LICENSE file 2018-10-28 10:00:21 -04:00
Bram Moolenaar 1c29943416 patch 8.1.0499: :2vimgrep causes an ml_get error
Problem:    :2vimgrep causes an ml_get error
Solution:   Pass tomatch pointer instead of value. (Yegappan Lakshmanan)
2018-10-28 14:36:09 +01:00
Bram Moolenaar d474686a09 patch 8.1.0498: /etc/gitconfig not recognized at a gitconfig file
Problem:    /etc/gitconfig not recognized at a gitconfig file.
Solution:   Add pattern to filetype detection. (closes #3568)
2018-10-27 14:27:20 +02:00
Bram Moolenaar 5f57bdcab7 patch 8.1.0497: :%diffput changes order of lines
Problem:    :%diffput changes order of lines. (Markus Braun)
Solution:   Do adjust marks when using internal diff.
2018-10-25 17:52:23 +02:00
Bram Moolenaar c0fe4978f2 patch 8.1.0496: no tests for indent files
Problem:    No tests for indent files.
Solution:   Add a mechanism for running indent file tests.  Add a first test
            for Vim indenting.
2018-10-25 16:53:19 +02:00
Bram Moolenaar f86db78fed patch 8.1.0495: :filter only supports some commands
Problem:    :filter only supports some commands.
Solution:   Add :filter support for more commands. (Marcin Szamotulski,
            closes #2856)
2018-10-25 13:31:37 +02:00
Bram Moolenaar babfcf54ae patch 8.1.0494: functions do not check for a window ID in other tabs
Problem:    Functions do not check for a window ID in other tabs.
Solution:   Also find the window ID in other than the current tab.
2018-10-25 13:11:16 +02:00
Bram Moolenaar e6e3989c1b patch 8.1.0493: argv() and argc() only work on the current argument list
Problem:    argv() and argc() only work on the current argument list.
Solution:   Add a window ID argument. (Yegappan Lakshmanan, closes #832)
2018-10-25 12:32:11 +02:00
Bram Moolenaar bf9679ae46 patch 8.1.0492: "Edit with existing Vim" list can get long
Problem:    "Edit with existing Vim" list can get long.
Solution:   Move the list to a submenu. (Ken Takata, closes #3561)
2018-10-25 11:25:53 +02:00
Kazuki Sakamoto 93d7fe4bd5 Merge remote-tracking branch 'vim/master' 2018-10-23 21:32:59 -07:00
Bram Moolenaar 0fd6be77de patch 8.1.0491: if a terminal dump has CR it is considered corrupt
Problem:    If a terminal dump has CR it is considered corrupt.
Solution:   Ignore CR characters. (Nobuhiro Takasaki, closes #3558)
2018-10-23 21:42:59 +02:00
Bram Moolenaar eda9e9c2fe patch 8.1.0490: MS-Windows: doesn't handle missing glibwinpthread-1.dll
Problem:    MS-Windows: doesn't handle missing glibwinpthread-1.dll.
Solution:   Adjust Cygwin/MinGW build file. (Ken Takata, closes #2827)
2018-10-21 22:45:43 +02:00
Bram Moolenaar b6f1480a6a patch 8.1.0489: crash when autocmd clears vimpgrep location list
Problem:    Crash when autocmd clears vimpgrep location list.
Solution:   Return from qf_jump_edit_buffer() early. (Yegappan Lakshmanan)
2018-10-21 18:47:43 +02:00
Bram Moolenaar 9f84ded38b patch 8.1.0488: using freed memory in quickfix code
Problem:    Using freed memory in quickfix code. (Dominique Pelle)
Solution:   Add the quickfix_busy() flag to postpone deleting quickfix lists
            until it is safe. (Yegappan Lakshmanan, closes #3538)
2018-10-20 20:54:02 +02:00
Bram Moolenaar 4c5d815256 patch 8.1.0487: no menus specifically for the terminal window
Problem:    No menus specifically for the terminal window.
Solution:   Add :tlmenu. (Yee Cheng Chin, closes #3439) Add a menu test.
2018-10-19 22:36:53 +02:00
Bram Moolenaar 42a4ea10af patch 8.1.0486: can't build in MS-Windows
Problem:    Can't build in MS-Windows.
Solution:   Put mch_access() call inside #ifdef
2018-10-19 17:36:01 +02:00
Bram Moolenaar 839e81e12d patch 8.1.0485: term_start() does not check if directory is accessible
Problem:    term_start() does not check if directory is accessible.
Solution:   Add mch_access() call. (Jason Franklin)
2018-10-19 16:53:39 +02:00
Bram Moolenaar 38654503b0 patch 8.1.0484: some file types are not recognized
Problem:    Some file types are not recognized.
Solution:   Update the file type detection.
2018-10-19 16:27:31 +02:00
Bram Moolenaar 2c64ca1802 Update runtime files 2018-10-19 16:22:31 +02:00
Bram Moolenaar 04c86d27fe patch 8.1.0483: MinGW does not build tee.exe
Problem:    MinGW does not build tee.exe.
Solution:   Add build instructions. (Yasuhiro Matsumoto, closes #3548)
2018-10-17 22:45:54 +02:00
Bram Moolenaar 115510f0bd patch 8.1.0482: MinGW "make clean" deletes all .exe files
Problem:    MinGW "make clean" deletes all .exe files.
Solution:   Only delete .exe files that it builds. (Ken takata)
2018-10-17 22:12:14 +02:00
Bram Moolenaar 29e7fe55be patch 8.1.0481: when "Terminal" highlight is reverted cursor doesn't show
Problem:    When "Terminal" highlight is reverted cursor doesn't show.
Solution:   Get the colors of the "Terminal" group. (closes #3546)
2018-10-16 22:13:00 +02:00
Bram Moolenaar b361db077f patch 8.1.0480: MinGW build file uses different -I flags than MVC
Problem:    MinGW build file uses different -I flags than MVC.
Solution:   Add -I to $CFLAGS. (Ken takata)
2018-10-16 21:13:14 +02:00
Bram Moolenaar 64f410742f patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Problem:    Failure when setting 'varsofttabstop' to end in a comma. (Ralf
            Schandl)
Solution:   Reject value with trailing command.  Add test for invalid values
            (closes #3544)
2018-10-15 22:51:50 +02:00
Bram Moolenaar 65dc12143a patch 8.1.0478: cannot build with perl using MinGW
Problem:    Cannot build with perl using MinGW.
Solution:   Add -I. (Ken takata, Cesar Romani)
2018-10-15 20:11:18 +02:00
Bram Moolenaar d95c3c253c patch 8.1.0477: tiny build fails
Problem:    Tiny build fails.
Solution:   Add a dummy declaration for funccal_entry_T.
2018-10-14 22:38:09 +02:00
Bram Moolenaar a2aad02830 patch 8.1.0476: memory leaks in test_escaped_glob
Problem:    Memory leaks in test_escaped_glob.
Solution:   Avoid failure when running the shell, use the sandbox.
2018-10-14 22:03:56 +02:00
Bram Moolenaar 27e80c885b patch 8.1.0475: memory not freed on exit when quit in autocmd
Problem:    Memory not freed on exit when quit in autocmd.
Solution:   Remember funccal stack when executing autocmd.
2018-10-14 21:41:01 +02:00
Bram Moolenaar a16bc54503 patch 8.1.0474: directory where if_perl.c is written is inconsistent
Problem:    Directory where if_perl.c is written is inconsistent.
Solution:   use auto/if_perl.c for MS-Windows. (Ken Takata, closes #3540)
2018-10-14 16:25:10 +02:00
Bram Moolenaar d6105cb408 patch 8.1.0473: user doesn't notice file does not exist when swap file does
Problem:    User doesn't notice file does not exist when swap file does.
Solution:   Add a note that the file cannot be found.  Make the "still
            running" notice stand out.
2018-10-13 19:06:27 +02:00
Bram Moolenaar 6cdb2c9811 patch 8.1.0472: dosinst command has a few flaws
Problem:    Dosinst command has a few flaws.
Solution:   Register DisplayIcon, DisplayVersion and Publisher for the
            uninstaller. (closes #3485)  Don't set 'diffexpr' if internal diff
            is supported. Allow for using Vi compatible from the command line.
            Remove needless sleeps.  Add comments in the generated _vimrc.
            (Ken Takata, closes #3525)
2018-10-13 17:25:27 +02:00
Bram Moolenaar 453ce7c16b patch 8.1.0471: some tests are flaky or fail on some systems
Problem:    Some tests are flaky or fail on some systems.
Solution:   Increase waiting time for port number. Use "cmd /c" to execute
            "echo" on win32. (Ken Takata, closes #3534)
2018-10-12 22:15:12 +02:00
Bram Moolenaar 3d6014f033 patch 8.1.0470: pointer ownership around fname_expand() is unclear
Problem:    Pointer ownership around fname_expand() is unclear.
Solution:   Allow b_ffname and b_sfname to point to the same allocated memory,
            only free one.  Update comments.
2018-10-11 19:27:47 +02:00
Bram Moolenaar 108e7b422b patch 8.1.0469: too often indexing in qf_lists[]
Problem:    Too often indexing in qf_lists[].
Solution:   Use a qf_list_T pointer. (Yegappan Lakshmanan)
2018-10-11 17:39:12 +02:00
Kazuki Sakamoto 4be190ebe6 Merge remote-tracking branch 'vim/master' 2018-10-10 20:53:21 -07:00
Bram Moolenaar 0664089ecc patch 8.1.0468: MS-Windows: filter command with pipe character fails
Problem:    MS-Windows: Filter command with pipe character fails. (Johannes
            Riecken)
Solution:   Find the pipe character outside of quotes. (Yasuhiro Matsumoto,
            closes #1743, closes #3523)
2018-10-09 21:49:33 +02:00
Bram Moolenaar 1d3dbcf743 patch 8.1.0467: cannot build with Mac OS X 10.5
Problem:    Cannot build with Mac OS X 10.5.
Solution:   Change #ifdef into #if. (Akshay Hegde, closes #3022)
2018-10-08 20:07:39 +02:00
Bram Moolenaar 6a2633b00b patch 8.1.0466: autocmd test fails
Problem:    Autocmd test fails.
Solution:   Do call inchar() when flushing typeahead.
2018-10-07 23:16:36 +02:00
Bram Moolenaar 95ba5c364f patch 8.1.0465: client-server test fails
Problem:    Client-server test fails.
Solution:   Change logic in EnumWindows().
2018-10-07 22:47:07 +02:00
Bram Moolenaar 1df2fa47b4 patch 8.1.0464: MS-Windows: job_info() has cmd without backslashes
Problem:    MS-Windows: job_info() has cmd without backslashes. (Daniel
            Hahler)
Solution:   Use rem_backslash(). (closes #3517, closes #3404)
2018-10-07 21:36:11 +02:00
Bram Moolenaar 798184cc67 patch 8.1.0463: "simalt ~x" in .vimrc blocks swap file prompt
Problem:    "simalt ~x" in .vimrc blocks swap file prompt.
Solution:   Flush buffers before prompting. (Yasuhiro Matsumoto,
            closes #3518, closes #2192)
2018-10-07 20:48:39 +02:00
Bram Moolenaar c0543e145f patch 8.1.0462: when using ConPTY Vim can be a child process
Problem:    When using ConPTY Vim can be a child process.
Solution:   To find a Vim window use both EnumWindows() and
            EnumChildWindows(). (Nobuhiro Takasaki, closes #3521)
2018-10-07 20:35:12 +02:00
Bram Moolenaar 00bf8cd211 patch 8.1.0461: quickfix code uses too many /* */ comments
Problem:    Quickfix code uses too many /* */ comments.
Solution:   Change to // comments. (Yegappan Lakshmanan)
2018-10-07 20:26:20 +02:00
Bram Moolenaar 1307d1c003 patch 8.1.0460: assert_fails() does not take a message argument
Problem:    assert_fails() does not take a message argument
Solution:   Add the argument.
2018-10-07 20:16:49 +02:00
Bram Moolenaar a05a0d325c patch 8.1.0459: Test_executable fails when there is a dog in the system
Problem:    Test_executable fails when there is a dog in the system.
Solution:   Rename the dog. (Hirohito Higashi)
2018-10-07 18:43:05 +02:00
Bram Moolenaar df77cef92e patch 8.1.0458: ml_get error and crash when using "do"
Problem:    Ml_get error and crash when using "do".
Solution:   Adjust cursor position also when diffupdate is not needed.
            (Hirohito Higashi)
2018-10-07 17:46:42 +02:00
Bram Moolenaar 0cc7b2d6cc patch 8.1.0457: win32 console: key mappings don't work
Problem:    Win32 console: key mappings don't work.
Solution:   Use another solution for the keypad keys that doesn't break
            mappings. Some values will be negative. (Mike Williams)
2018-10-07 15:49:56 +02:00
Bram Moolenaar d8f27b30d6 patch 8.1.0456: running test hangs when the input file is being edited
Problem:    Running test hangs when the input file is being edited.
Solution:   Use a SwapExists autocommand to ignore editing the test script.
2018-10-07 15:42:07 +02:00
Bram Moolenaar 019dfe6855 patch 8.1.0455: checking for empty quickfix stack is not consistent
Problem:    Checking for empty quickfix stack is not consistent.
Solution:   Use qf_stack_empty(). (Yegappan Lakshmanan)
2018-10-07 14:38:49 +02:00
Bram Moolenaar 2610990709 patch 8.1.0454: resolve() was not tested with a symlink cycle
Problem:    resolve() was not tested with a symlink cycle.
Solution:   Add a test. (Dominique Pelle, closes #3513)
2018-10-06 15:43:17 +02:00
Bram Moolenaar 8295666dc2 patch 8.1.0453: MS-Windows: executable() is not reliable
Problem:    MS-Windows: executable() is not reliable.
Solution:   Use $PATHEXT properly. (Yasuhiro Matsumoto, closes #3412)
2018-10-06 15:18:45 +02:00
Bram Moolenaar 7554c548a4 patch 8.1.0452: MS-Windows: not finding intl.dll
Problem:    MS-Windows: not finding intl.dll.
Solution:   Also find intl.dll next to libintl.dll. (Ken Takata)
2018-10-06 15:03:15 +02:00
Kazuki Sakamoto 8b2dcf4d6e Merge remote-tracking branch 'vim/master' 2018-10-03 22:29:11 -07:00
Bram Moolenaar 2bc152ab53 patch 8.1.0451: Win32 console: keypad keys don't work
Problem:    Win32 console: keypad keys don't work.
Solution:   Use numbers instead of characters to avoid the value becoming
            negative. (Mike Williams)
2018-10-03 20:44:20 +02:00
Bram Moolenaar 0e9deefb4f patch 8.1.0450: build failure without the +fold feature
Problem:    Build failure without the +fold feature.
Solution:   Add #ifdef.
2018-10-02 21:48:34 +02:00
Bram Moolenaar 7701f30856 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Problem:    When 'rnu' is set folded lines are not displayed correctly.
            (Vitaly Yashin)
Solution:   When only redrawing line numbers do draw folded lines.
            (closes #3484)
2018-10-02 21:20:32 +02:00
Bram Moolenaar 4a5abbd613 patch 8.1.0448: cursorline not removed when using 'cursorbind'
Problem:    Cursorline not removed when using 'cursorbind'. (Justin Keyes)
Solution:   Store the last cursor line per window. (closes #3488)
2018-10-02 18:26:10 +02:00
Bram Moolenaar 586c70cdfe patch 8.1.0447: GUI scrollbar test fails with Athena and Motif
Problem:    GUI scrollbar test fails with Athena and Motif.
Solution:   When not using on-the-fly scrolling call normal_cmd().
2018-10-02 16:23:58 +02:00
Bram Moolenaar 4f88875725 patch 8.1.0446: options test fails in the GUI
Problem:    Options test fails in the GUI.
Solution:   Don't try changing 'term' in the GUI.
2018-10-02 15:06:40 +02:00
Bram Moolenaar 35bc7d6c52 patch 8.1.0445: setting 'term' does not store location for termcap options
Problem:    Setting 'term' does not store location for termcap options.
Solution:   Set the script context for termcap options that are changed when
            'term' is set.
2018-10-02 14:45:10 +02:00
Bram Moolenaar 54ade9f7e3 patch 8.1.0444: unnecessary check for NULL pointer
Problem:    Unnecessary check for NULL pointer.
Solution:   Remove check and call vim_free() directly.
2018-10-02 14:15:12 +02:00
Bram Moolenaar 95bafa296a Update runtime files. 2018-10-02 13:26:25 +02:00
Kazuki Sakamoto 6bfafd9d5f Merge remote-tracking branch 'vim/master' 2018-09-30 16:28:11 -07:00
Bram Moolenaar 6dff58f15c patch 8.1.0443: unnecessary static function prototypes
Problem:    Unnecessary static function prototypes.
Solution:   Remove unnecessary prototypes.
2018-09-30 21:43:26 +02:00
Bram Moolenaar f45d747ebf patch 8.1.0442: GUI: cursor not drawn after ":redraw | sleep"
Problem:    GUI: Cursor not drawn after ":redraw | sleep".
Solution:   Flush the output. (closes #3496)
2018-09-30 18:22:26 +02:00
Bram Moolenaar d3dc062160 patch 8.1.0441: build failure without command line history
Problem:    Build failure without command line history.
Solution:   Move cmdline_init() outside of #ifdef.
2018-09-30 17:45:30 +02:00
Bram Moolenaar 2bfddfc508 patch 8.1.0440: remove() with a range not sufficiently tested
Problem:    remove() with a range not sufficiently tested.
Solution:   Add a test. (Dominique Pelle, closes #3497)
2018-09-30 17:16:25 +02:00
Bram Moolenaar 438d176e35 patch 8.1.0439: recursive use of getcmdline() still not protected
Problem:    Recursive use of getcmdline() still not protected.
Solution:   Instead of saving the command buffer when making a call which may
            cause recursiveness, save the buffer when actually being called
            recursively.
2018-09-30 17:11:48 +02:00
Bram Moolenaar b434ae2a1f patch 8.1.0438: the ex_make() function is too long
Problem:    The ex_make() function is too long.
Solution:   Split it into several functions. (Yegappan Lakshmanan)
2018-09-28 23:09:55 +02:00
Bram Moolenaar 95892c27b2 patch 8.1.0437: may access freed memory when syntax HL times out
Problem:    May access freed memory when syntax HL times out. (Philipp Gesang)
Solution:   Clear b_sst_first when clearing b_sst_array.
2018-09-28 22:26:54 +02:00
Kazuki Sakamoto dfe72b890a Merge remote-tracking branch 'vim/master' 2018-09-25 22:20:15 -07:00
Bram Moolenaar ee91c33570 patch 8.1.0436: can get the text of inputsecret() with getcmdline()
Problem:    Can get the text of inputsecret() with getcmdline(). (Tommy Allen)
Solution:   Don't return the text.
2018-09-25 22:27:35 +02:00
Bram Moolenaar 8c63e0ec31 patch 8.1.0435: cursorline highlight not removed in some situation
Problem:    Cursorline highlight not removed in some situation. (Vitaly
            Yashin)
Solution:   Reset last_cursorline when resetting 'cursorline'. (Christian
            Brabandt, closes #3481)
2018-09-25 22:17:54 +02:00
Bram Moolenaar 09037503ea patch 8.1.0434: copy_loclist() is too long
Problem:    copy_loclist() is too long.
Solution:   Split in multiple functions. (Yegappan Lakshmanan)
2018-09-25 22:08:14 +02:00
Bram Moolenaar 31cbadf74b patch 8.1.0433: mapping can obtain text from inputsecret()
Problem:    Mapping can obtain text from inputsecret(). (Tommy Allen)
Solution:   Disallow CTRL-R = and CTRL-\ e when using inputsecret().
2018-09-25 20:48:57 +02:00
Bram Moolenaar 45c5c86e63 patch 8.1.0432: compiler warning for signed/unsigned
Problem:    Compiler warning for signed/unsigned.
Solution:   Add type cast. (Mike Williams)
2018-09-25 18:59:21 +02:00
Bram Moolenaar 6dae96ef7a patch 8.1.0431: the qf_jump() function is too long
Problem:    The qf_jump() function is too long.
Solution:   Refactor to split it into several functions. (Yegappan Lakshmanan)
2018-09-24 21:50:12 +02:00
Bram Moolenaar d339828b4b patch 8.1.0430: Xargadd file left behind after running test
Problem:    Xargadd file left behind after running test.
Solution:   Delete the file. (Dominique Pelle)
2018-09-24 21:32:11 +02:00
Bram Moolenaar c75878c923 patch 8.1.0429: no test for :lcd with 'shellslash'
Problem:    No test for :lcd with 'shellslash'.
Solution:   Add a test. (Daniel Hahler, closes #3475)
2018-09-23 19:36:15 +02:00
Bram Moolenaar 3b30168f04 patch 8.1.0428: the :suspend command is not tested
Problem:    The :suspend command is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3472)
2018-09-22 21:37:39 +02:00
Bram Moolenaar 7ff8a3cfb6 patch 8.1.0427: MS-Windows GUI: using invalid encoded file name
Problem:    MS-Windows GUI: using invalid encoded file name.
Solution:   Drop the file name and return NULL. (Ken Takata, closes #3467)
2018-09-22 14:39:15 +02:00
Bram Moolenaar 4841a7ccae patch 8.1.0426: accessing invalid memory in SmcOpenConnection()
Problem:    Accessing invalid memory in SmcOpenConnection().
Solution:   Reduce size of errorstring by one. (Dominique Pelle, closes #3469)
2018-09-22 14:08:49 +02:00
Kazuki Sakamoto 7b3e0ab5a8 Merge remote-tracking branch 'vim/master' 2018-09-22 00:59:19 -07:00
Kazuki Sakamoto 3616c83b36 Merge pull request #737 from cwlin/fix_guifontwide_size
Respect the font size setting of guifontwide.
2018-09-22 00:59:00 -07:00
Arseny Nasokin 592e3c7823 Vimrc python37 (#739)
* Use Python 3.7 from python.org if installed

* Use Python from MacPorts after Homebrew if installed

* Added requested comments and Python2.7 from python.org detection
2018-09-22 00:58:29 -07:00
Kazuki Sakamoto a968ddf5a4 Merge pull request #742 from ichizok/fix/windows-like-shortcuts
<C-U> and <C-O> don't work when using Japanese IM with "Windows-like shortcuts" turned on
2018-09-22 00:57:57 -07:00
Kazuki Sakamoto d716ad7ff8 Merge pull request #749 from ichizok/fix/timer-check
Fix timer handling
2018-09-22 00:56:03 -07:00
Bram Moolenaar 9cea87c577 patch 8.1.0425: ml_get error and crash with appendbufline()
Problem:    ml_get error and crash with appendbufline(). (Masashi Iizuka)
Solution:   Set per-window buffer info. (Hirohito Higashi, closes #3455)
2018-09-21 16:59:45 +02:00
Bram Moolenaar e76d7a63df patch 8.1.0424: test output is very verbose, loading CI log is slow
Problem:    Test output is very verbose, loading CI log is slow.
Solution:   Redirect output to /dev/null. (Ken Takata, closes #3456)
2018-09-21 16:37:25 +02:00
Bram Moolenaar 0bd4051732 patch 8.1.0423: MS-Windows: using dup-close for flushing a file
Problem:    MS-Windows: using dup-close for flushing a file.
Solution:   Use _commit(). (Ken Takata, closes #3463)
2018-09-21 14:48:53 +02:00
Bram Moolenaar 4ff4290de1 patch 8.1.0422: cannot create map file with MinGW
Problem:    Cannot create map file with MinGW.
Solution:   Add support for $MAP. (Ken Takata, closes #3460)
2018-09-21 14:43:10 +02:00
Bram Moolenaar 76c612a166 patch 8.1.0421: MS-Windows: Ruby path is wrong for Ruby 1.9 and later
Problem:    MS-Windows: Ruby path is wrong for Ruby 1.9 and later.
Solution:   Let -I argument depend on Ruby version. (Ken Takata, closes #3461)
2018-09-21 14:31:51 +02:00
Bram Moolenaar 1f402806b8 patch 8.1.0420: generating vim.lib when using ActivePerl 5.20.3 or later
Problem:    Generating vim.lib when using ActivePerl 5.20.3 or later.
Solution:   Redefine XS_EXTERNAL(). (Ken Takata, closes #3462)
2018-09-21 14:01:27 +02:00
Bram Moolenaar de2bd37bec patch 8.1.0419: Cygwin: running cproto fails with -O2
Problem:    Cygwin: running cproto fails with -O2.
Solution:   Strip -O2 for cproto. (Ken Takata, closes #3465)
2018-09-21 13:56:25 +02:00
Bram Moolenaar b872e63fc6 patch 8.1.0418: MS-Windows: cannot separate Lua include and library dirs
Problem:    MS-Windows: cannot separate Lua include and library directories.
Solution:   Add LUA_LIBDIR and LUA_INCDIR. (Ken Takata, closes #3464)
2018-09-21 13:44:09 +02:00
Bram Moolenaar 036b09ca78 patch 8.1.0417: several command line arguments are not tested
Problem:    Several command line arguments are not tested.
Solution:   Add tests for -m, -M, -R and -Vfile. (Dominique Pelle,
            closes #3458)
2018-09-21 12:54:06 +02:00
Bram Moolenaar b0e982bf05 patch 8.1.0416: sort doesn't report deleted lines
Problem:    Sort doesn't report deleted lines.
Solution:   Call msgmore(). (Christian Brabandt, closes #3454)
2018-09-21 12:46:22 +02:00
Bram Moolenaar d4f73438bb patch 8.1.0415: not actually using 16 colors with vtp
Problem:    Not actually using 16 colors with vtp.
Solution:   Always use 256 colors when vtp is used. (Nobuhiro Takasaki,
            closes #3432)
2018-09-21 12:24:12 +02:00
Bram Moolenaar 3f3fb0b147 patch 8.1.0414: v:option_old is cleared when using :set in OptionSet autocmd
Problem:    v:option_old and v:option_new are cleared when using :set in
            OptionSet autocmd. (Gary Johnson)
Solution:   Don't trigger OptionSet recursively.
2018-09-21 11:59:32 +02:00
Bram Moolenaar 933bef779a patch 8.1.0413: test output is duplicated or missing
Problem:    Test output is duplicated or missing.
Solution:   Adjust the MS-Windows and Unix test makefiles. (Ken Takata,
            closes #3452)
2018-09-20 21:39:33 +02:00
ichizok d9c3c62eaf Add the condition for calling interpretKeyEvents 2018-09-20 16:25:48 +09:00
ichizok 92fcfe15a5 Check new timer before [MMBackend waitForInput:] 2018-09-20 16:23:19 +09:00
Kazuki Sakamoto 1f7e0c9ec1 Merge remote-tracking branch 'vim/master' 2018-09-19 19:04:51 -07:00
Bram Moolenaar 92cbf62b87 patch 8.1.0412: cannot build with GTK 2.4
Problem:    Cannot build with GTK 2.4.
Solution:   Add back a few #ifdefs. (Ken Takata, closes #3447)
            Also support older GTK. (Tom Christensen)
2018-09-19 22:40:03 +02:00
Bram Moolenaar cec12cd661 patch 8.1.0411: renamed file missing from distribution
Problem:    Renamed file missing from distribution.
Solution:   Rename screen.c to termscreen.c (Zdenek Dohnal, closes #3449)
2018-09-19 22:00:30 +02:00
Bram Moolenaar 476c0db002 patch 8.1.0410: the ex_copen() function is too long
Problem:    The ex_copen() function is too long.
Solution:   Refactor to split off two functions. (Yegappan Lakshmanan)
2018-09-19 21:56:02 +02:00
Bram Moolenaar 4b1c9a91b5 patch 8.1.0409: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Do the Arabic test in silent Ex mode.  Loosen the check for -V2.
2018-09-19 21:06:31 +02:00
Kazuki Sakamoto 365fede8af Merge remote-tracking branch 'vim/master' 2018-09-18 19:45:10 -07:00
Bram Moolenaar a87f8fd3fe patch 8.1.0408: MSVC: cannot use the "x64" native compiler option
Problem:    MSVC: cannot use the "x64" native compiler option.
Solution:   Ignore case for %Platform%.  Improve documentation. (Ken Takata)
2018-09-18 22:58:41 +02:00
Bram Moolenaar fe15b7dfa6 patch 8.1.0407: quickfix code mixes using the stack and a list pointer
Problem:    Quickfix code mixes using the stack and a list pointer.
Solution:   Use a list pointer in more places. (Yegappan Lakshmanan,
            closes #3443)
2018-09-18 22:50:06 +02:00
Bram Moolenaar 9e81db9742 patch 8.1.0406: several command line arguments are not tested
Problem:    Several command line arguments are not tested.
Solution:   Add tests for -A, -F, -H, -p and -V. (Dominique Pelle,
            closes #3446)
2018-09-18 22:37:31 +02:00
Bram Moolenaar 664323e7c8 patch 8.1.0405: too many #ifdefs for GTK
Problem:    Too many #ifdefs for GTK.
Solution:   Define macros instead of using #ifdef. (Ken Takata, closes #3436)
2018-09-18 22:30:07 +02:00
Bram Moolenaar e961cba3cb patch 8.1.0404: accessing invalid memory with long argument name
Problem:    Accessing invalid memory with long argument name.
Solution:   Use item_count instead of checking for a terminating NULL.
            (Dominique Pelle, closes #3444)
2018-09-18 21:51:47 +02:00
Bram Moolenaar cc3a997746 patch 8.1.0403: header file missing from distribution
Problem:    Header file missing from distribution.
Solution:   Add src/protodef.h.
2018-09-18 21:41:47 +02:00
Bram Moolenaar 198fa066b2 patch 8.1.0402: the DiffUpdate event isn't triggered for :diffput
Problem:    The DiffUpdate event isn't triggered for :diffput.
Solution:   Also trigger DiffUpdate for :diffget and :diffput.
2018-09-18 21:20:26 +02:00
Kazuki Sakamoto acf95bfed2 Merge remote-tracking branch 'vim/master' 2018-09-17 21:51:27 -07:00
Bram Moolenaar 110bd60985 patch 8.1.0401: can't get swap name of another buffer
Problem:    Can't get swap name of another buffer.
Solution:   Add swapname(). (Ozaki Kiichi, closes #3441)
2018-09-16 18:46:59 +02:00
Bram Moolenaar d2b58c0a2c patch 8.1.0400: using freed memory with :diffget
Problem:    Using freed memory with :diffget.
Solution:   Skip ex_diffupdate() while updating diffs. (closes #3442)
2018-09-16 18:10:48 +02:00
Bram Moolenaar 65985ac998 patch 8.1.0399: 'hlsearch' highlight remains in other window
Problem:    'hlsearch' highlight remains in other window after cancelling
            command.
Solution:   Redraw all windows. Also remove unnecessary delays. (closes #3437)
2018-09-16 17:08:04 +02:00
Bram Moolenaar 8f4499b816 patch 8.1.0398: no test for -o and -O command line arguments
Problem:    No test for -o and -O command line arguments.
Solution:   Add a test. (Dominique Pelle, closes #3438)
2018-09-16 16:28:11 +02:00
Bram Moolenaar e8fa05b5bc patch 8.1.0397: no event triggered after updating diffs
Problem:    No event triggered after updating diffs.
Solution:   Add the DiffUpdated event.
2018-09-16 15:48:06 +02:00
Bram Moolenaar 42c63356d7 patch 8.1.0396: another compiler warning on 64-bit MS-Windows
Problem:    Another compiler warning on 64-bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2018-09-16 15:14:18 +02:00
Bram Moolenaar 6e272acc82 patch 8.1.0395: compiler warning on 64-bit MS-Windows
Problem:    Compiler warning on 64-bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2018-09-16 14:51:36 +02:00
Bram Moolenaar e3521d9cbb patch 8.1.0394: diffs are not always updated correctly
Problem:    Diffs are not always updated correctly.
Solution:   When using internal diff update for any changes properly.
2018-09-16 14:10:31 +02:00
Bram Moolenaar 785fc6567f patch 8.1.0393: not all white space difference options available
Problem:    Not all white space difference options available.
Solution:   Add "iblank", "iwhiteall" and "iwhiteeol" to 'diffopt'.
2018-09-15 19:17:38 +02:00
Bram Moolenaar 50eb16c3b2 patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Problem:    Error while typing :/foo/s// with 'incsearch' enabled.
Solution:   Do not give search errors when highlighting matches.
2018-09-15 15:42:40 +02:00
Bram Moolenaar ac49f61a20 patch 8.1.0391: building in a shadow directory fails
Problem:    Building in a shadow directory fails.
Solution:   Don't link the xdiff directory but what's in it. (closes #3428)
2018-09-15 15:08:52 +02:00
Bram Moolenaar ab18673731 patch 8.1.0390: scrollbars are not tested
Problem:    Scrollbars are not tested.
Solution:   Add test_scrollbar() and a test.
2018-09-14 21:27:06 +02:00
Bram Moolenaar da1f71d75f patch 8.1.0389: :behave command is not tested
Problem:    :behave command is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3429)
2018-09-14 20:10:32 +02:00
Josh Petrie d02a1945e3 Merge pull request #731 from ychin/guioptions-k-2
Support guioptions 'k' flag in MacVim (2nd attempt)
2018-09-14 07:13:02 -07:00
Kazuki Sakamoto 33c20214bc Merge remote-tracking branch 'vim/master' 2018-09-13 20:47:20 -07:00
Bram Moolenaar bf1c1b8513 patch 8.1.0388: Coverity complains about possible NULL pointer use
Problem:    Coverity complains about possible NULL pointer use.
Solution:   Use get_tv_string() instead of get_tv_string_chk().
2018-09-13 21:30:05 +02:00
Bram Moolenaar 24839edc54 patch 8.1.0387: no test for 'ambiwidth' detection
Problem:    No test for 'ambiwidth' detection.
Solution:   Add a test.
2018-09-13 20:46:52 +02:00
Bram Moolenaar fe8ef98dd1 patch 8.1.0386: cannot test with non-default option value
Problem:    Cannot test with non-default option value.
Solution:   Add test_option_not_set().
2018-09-13 20:31:54 +02:00
Bram Moolenaar c91c500348 patch 8.1.0385: Coveralls badge doesn't update
Problem:    Coveralls badge doesn't update.
Solution:   Update the URL
2018-09-13 19:04:48 +02:00
Bram Moolenaar 8aeb504fc6 patch 8.1.0384: sign ordering depends on +netbeans feature
Problem:    Sign ordering depends on +netbeans feature.
Solution:   Also order signs without +netbeans. (Christian Brabandt,
            closes #3224)
2018-09-13 18:33:05 +02:00
Bram Moolenaar a214079008 patch 8.1.0383: missing source file rename
Problem:    Missing source file rename.
Solution:   Update the dependency.
2018-09-13 18:05:48 +02:00
Bram Moolenaar 0f7683f973 patch 8.1.0382: some make programs can't handle "xdiff/../"
Problem:    Some make programs can't handle dependency on "xdiff/../".
Solution:   Strip it out.
2018-09-13 18:01:31 +02:00
Bram Moolenaar 5c6f574bd1 patch 8.1.0381: variable declaration not at start of block
Problem:    Variable declaration not at start of block.
Solution:   Fix line ordering.
2018-09-13 17:32:07 +02:00
Bram Moolenaar 32d19c1820 patch 8.1.0380: "make proto" doesn't work well
Problem:    "make proto" doesn't work well.
Solution:   Define a few more types for cproto.  Update proto files.  Fix that
            workshop didn't build.
2018-09-13 17:26:54 +02:00
Bram Moolenaar 78dcd4f002 patch 8.1.0379: build dependencies are incomplete
Problem:    Build dependencies are incomplete.
Solution:   Update the build dependencies, mainly for xdiff.  Adjust object
            directory for libvterm and xdiff.
2018-09-13 17:23:28 +02:00
Bram Moolenaar 0d5f21c3df patch 8.1.0378: CI build failure
Problem:    CI build failure.
Solution:   Include vim.h as ../vim.h.  Fix compiler warning.
2018-09-13 15:58:58 +02:00
Bram Moolenaar 42335f50bc patch 8.1.0377: xdiff doesn't use the Vim memory allocation functions
Problem:    Xdiff doesn't use the Vim memory allocation functions.
Solution:   Change the xdl_ defines.  Check for out-of-memory.  Rename
            "ignored" to "vim_ignored".
2018-09-13 15:33:43 +02:00
Bram Moolenaar c787539747 patch 8.1.0376: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize the variable.
2018-09-13 14:57:41 +02:00
Bram Moolenaar 3b8defd0a5 patch 8.1.0375: cannot use diff mode with Cygwin diff.exe
Problem:    Cannot use diff mode with Cygwin diff.exe. (Igor Forca)
Solution:   Skip over unrecognized lines in the diff output.
2018-09-13 13:03:11 +02:00
Kazuki Sakamoto cfcb2d4ffe Merge remote-tracking branch 'vim/master' 2018-09-12 21:29:45 -07:00
Bram Moolenaar bd9a53c06c patch 8.1.0374: moving the cursor is slow when 'relativenumber' is set
Problem:    Moving the cursor is slow when 'relativenumber' is set.
Solution:   Only redraw the number column, not all lines.
2018-09-12 23:15:48 +02:00
Bram Moolenaar 1b7fefcbce patch 8.1.0373: screen updating still slow when 'cursorline' is set
Problem:    Screen updating still slow when 'cursorline' is set.
Solution:   Fix setting last_cursorline.
2018-09-12 22:27:15 +02:00
Bram Moolenaar 90a997987d patch 8.1.0372: screen updating slow when 'cursorline' is set
Problem:    Screen updating slow when 'cursorline' is set.
Solution:   Only redraw the old and new cursor line, not all lines.
2018-09-12 21:52:18 +02:00
Bram Moolenaar 643b614087 patch 8.1.0371: argument types for select() may be wrong
Problem:    Argument types for select() may be wrong.
Solution:   Use a configure macro. (Tobias Ulmer)
2018-09-12 20:29:09 +02:00
Bram Moolenaar 274cea35c6 patch 8.1.0370: not using internal diff if 'diffopt' is not changed
Problem:    Not using internal diff if 'diffopt' is not changed.
Solution:   Correct initialization of diff_flags. (Christian Brabandt)
2018-09-12 18:00:12 +02:00
Kazuki Sakamoto 3f1f9b0f9d Merge remote-tracking branch 'vim/master' 2018-09-11 19:55:13 -07:00
Bram Moolenaar 67f8ab8299 patch 8.1.0369: continuation lines cannot contain comments
Problem:    Continuation lines cannot contain comments.
Solution:   Support using "\ .
2018-09-11 22:37:29 +02:00
Bram Moolenaar 25328e39d2 patch 8.1.0368: GTK code has too many #ifdefs and GTK 2.10 building fails
Problem:    GTK code has too many #ifdefs and building fails with GTK 2.10.
Solution:   Always use gtk_widget_get_window() and define it for older GTK
            versions. (Ken Takata, closes #3421)
2018-09-11 21:30:09 +02:00
Bram Moolenaar 84d9390480 patch 8.1.0367: getchar(1) no longer processes pending messages
Problem:    getchar(1) no longer processes pending messages. (Yasuhiro
            Matsumoto)
Solution:   Call parse_queued_messages().
2018-09-11 20:10:20 +02:00
Kazuki Sakamoto be7053b6bd Merge remote-tracking branch 'vim/master' 2018-09-10 22:49:48 -07:00
Bram Moolenaar 007921611b patch 8.1.0366: pieces of the xdiff code are not used
Problem:    Pieces of the xdiff code are not used.
Solution:   Add "#if 0" to omit unused code.
2018-09-10 22:18:52 +02:00
Bram Moolenaar 4c7b08f640 patch 8.1.0365: function profile doesn't specify where it was defined
Problem:    Function profile doesn't specify where it was defined.
Solution:   Show the script name and line number.
2018-09-10 22:03:40 +02:00
Bram Moolenaar e797abf3c7 patch 8.1.0364: compiler warning in xdiff code
Problem:    Compiler warning in xdiff code. (Yegappan Lakshmanan)
Solution:   Initialize directly.
2018-09-10 21:22:15 +02:00
Bram Moolenaar c93262b2e3 patch 8.1.0363: internal diff isn't used by default as advertised
Problem:    Internal diff isn't used by default as advertised.
Solution:   Add "internal" to the default value of 'diffopt'.
            Also add couple of files missing from the distribution.
2018-09-10 21:15:40 +02:00
Bram Moolenaar f29c1c6aa3 patch 8.1.0362: cannot get the script line number when executing a function
Problem:    Cannot get the script line number when executing a function.
Solution:   Store the line number besides the script ID. (Ozaki Kiichi,
            closes #3362)  Also display the line number with ":verbose set".
2018-09-10 21:05:02 +02:00
Bram Moolenaar 6b0b83f768 patch 8.1.0361: remote user not used for completion
Problem:    Remote user not used for completion. (Stucki)
Solution:   Use $USER too. (Dominique Pelle, closes #3407)
2018-09-10 19:03:05 +02:00
Bram Moolenaar e828b7621c patch 8.1.0360: using an external diff program is slow and inflexible
Problem:    Using an external diff program is slow and inflexible.
Solution:   Include the xdiff library. (Christian Brabandt, closes #2732)
            Use it by default.
2018-09-10 17:51:58 +02:00
Josh Petrie 84f1c3dbe4 Merge pull request #736 from cwlin/add_10_12_2_def
Add MAC_OS_X_VERSION_10_12_2 definition.
2018-09-10 08:33:39 -07:00
Bram Moolenaar 93a1df2c20 Update runtime files. 2018-09-10 11:51:50 +02:00
Bram Moolenaar 6f8bdab8e2 patch 8.1.0359: no clue what test failed when using a screendump twice
Problem:    No clue what test failed when using a screendump twice.
Solution:   Add an extra argument to VerifyScreenDump().
2018-09-09 22:02:24 +02:00
Bram Moolenaar a5c48c2698 patch 8.1.0358: crash when using term_dumpwrite() after the job finished
Problem:    Crash when using term_dumpwrite() after the job finished.
Solution:   Check for a finished job and give an error message.
2018-09-09 19:56:07 +02:00
Bram Moolenaar 02c972153d patch 8.1.0357: instructions for tests are outdated
Problem:    Instructions for tests are outdated. (Jason Franklin)
Solution:   Update the text.
2018-09-09 15:56:06 +02:00
Bram Moolenaar 99f043a57d patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Problem:    Using :s with 'incsearch' prevents CTRL-R CTRL-W. (Boris Staletic)
Solution:   When past the pattern put cursor back in the start position.
            (closes #3413)
2018-09-09 15:54:14 +02:00
Bram Moolenaar a750ac2288 patch 8.1.0355: incorrect adjusting the popup menu for the preview window
Problem:    Incorrect adjusting the popup menu for the preview window.
Solution:   Compute position and height properl. (Ronan Pigott)  Also show at
            least ten items. (closes #3414)
2018-09-09 15:27:59 +02:00
Bram Moolenaar 53c8a478cc patch 8.1.0354: packadd test fails on MS-Windows
Problem:    Packadd test fails on MS-Windows.
Solution:   Ignore difference between forward and backward slashes.
2018-09-08 19:12:12 +02:00
Bram Moolenaar 99396d4cbf patch 8.1.0353: an "after" directory of a package is appended to 'rtp'
Problem:    An "after" directory of a package is appended to 'rtp', which
            will be after the user's "after" directory. ()
Solution:   Insert the package "after" directory before any other "after"
            directory in 'rtp'. (closes #3409)
2018-09-08 18:21:16 +02:00
Bram Moolenaar d4a1aabe37 patch 8.1.0352: browsing compressed tar files does not always work
Problem:    Browsing compressed tar files does not always work.
Solution:   Use the "file" command to get the compression type.
2018-09-08 15:10:34 +02:00
Kazuki Sakamoto ea5d7e71c0 Merge remote-tracking branch 'vim/master' 2018-09-06 22:51:52 -07:00
Bram Moolenaar 198cb66d65 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Problem:    'incsearch' for :/foo/s//<Esc> changes last search pattern.
Solution:   Save the last search pattern earlier.
2018-09-06 21:44:17 +02:00
Bram Moolenaar 0b1468884a patch 8.1.0350: Vim may block on ch_sendraw()
Problem:    Vim may block on ch_sendraw() when the job is sending data back to
            Vim, which isn't read yet. (Nate Bosch)
Solution:   Add the "noblock" option to job_start(). (closes #2548)
2018-09-06 16:27:24 +02:00
Bram Moolenaar ed5a9d6612 patch 8.1.0349: crash when wiping buffer in a callback
Problem:    Crash when wiping buffer in a callback.
Solution:   Do not handle messages when only peeking for a character.
            (closes #2107)  Add "redraw_flag" to test_override().
2018-09-06 13:14:43 +02:00
Kazuki Sakamoto f29a0fcb35 Merge remote-tracking branch 'vim/master' 2018-09-05 23:01:43 -07:00
Bram Moolenaar e67a7d690a patch 8.1.0348: on Travis the slowest build is run last
Problem:    On Travis the slowest build is run last. (Dominique Pelle)
Solution:   Reorder the build entries.
2018-09-05 22:25:50 +02:00
Kazuki Sakamoto 800c4f7cc1 Merge remote-tracking branch 'vim/master' 2018-09-03 21:29:37 -07:00
Bram Moolenaar f1c118be93 patch 8.1.0347: some tests fail on Solaris
Problem:    Some tests fail on Solaris.
Solution:   Skip writefile test. Fix path to libc.so. Improve test for Turkish
            case change. (Libor Bukata, Bjorn Linse, closes #3403)
2018-09-03 22:08:10 +02:00
Bram Moolenaar 20aac6c112 Update runtime files. 2018-09-02 21:07:30 +02:00
Bram Moolenaar acca8df9d4 patch 8.1.0346: building with Aap is outdated and unused
Problem:    Building with Aap is outdated and unused.
Solution:   Remove the Aap build files.
2018-09-02 15:27:07 +02:00
Bram Moolenaar c9cc9c78f2 patch 8.1.0345: cannot get the window id associated with the location list
Problem:    Cannot get the window id associated with the location list.
Solution:   Add the "filewinid" argument to getloclist(). (Yegappan
            Lakshmanan, closes #3202)
2018-09-02 15:18:42 +02:00
Bram Moolenaar 7ee3f15b21 patch 8.1.0344: 'hlsearch' highlighting has a gap after /$
Problem:    'hlsearch' highlighting has a gap after /$.
Solution:   Remove suspicious code. (Ricky Zhou, closes #3400)
2018-09-02 15:07:28 +02:00
Bram Moolenaar 3c5b8cd254 patch 8.1.0343: 'shellslash' is not used for getcwd() with local directory
Problem:    'shellslash' is not used for getcwd() with local directory.
            (Daniel Hahler)
Solution:   Call slash_adjust() later. (closes #3399)
2018-09-02 14:25:05 +02:00
Bram Moolenaar 94f01956a5 patch 8.1.0342: crash when a callback deletes a window that is being used
Problem:    Crash when a callback deletes a window that is being used.
Solution:   Do not unload a buffer that is being displayed while redrawing the
            screen. Also avoid invoking callbacks while redrawing.
            (closes #2107)
2018-09-01 15:30:03 +02:00
Kazuki Sakamoto b3c2a8c3b3 Merge remote-tracking branch 'vim/master' 2018-08-31 21:29:46 -07:00
Bram Moolenaar 32bbd00949 patch 8.1.0341: :argadd in empty buffer changes the buffer name
Problem:    :argadd in empty buffer changes the buffer name. (Pavol Juhas)
Solution:   Don't re-use the current buffer when not going to edit the file.
            (closes #3397)  Do re-use the current buffer for :next.
2018-08-31 23:06:22 +02:00
Bram Moolenaar 9049b68612 patch 8.1.0340: no test for :spellinfo
Problem:    No test for :spellinfo.
Solution:   Add a test. (Dominique Pelle, closes #3394)
2018-08-31 22:26:53 +02:00
Bram Moolenaar f13daa46da patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Problem:    Wrong highlight when 'incsearch' set and cancelling :s.
Solution:   Reset search line range. (Hirohito Higashi, Masamichi Abe)
2018-08-31 22:09:54 +02:00
Bram Moolenaar f6ceaf1e05 patch 8.1.0338: MS-Windows: VTP doesn't work properly with Powershell
Problem:    MS-Windows: VTP doesn't work properly with Powershell.
Solution:   Adjust the color index. (Nobuhiro Takasaki, closes #3347)
2018-08-30 17:47:05 +02:00
Bram Moolenaar 379fb76b08 patch 8.1.0337: :file fails in quickfix command
Problem:    :file fails in quickfix command.
Solution:   Allow :file without argument when curbuf_lock is set. (Jason
            Franklin)
2018-08-30 15:58:28 +02:00
Bram Moolenaar dd5d18eadf patch 8.1.0336: mkview test still fails on CI
Problem:    mkview test still fails on CI.
Solution:   Ignore curswant, don't see another solution.
2018-08-30 14:16:06 +02:00
Bram Moolenaar 2bf4fe07b6 patch 8.1.0335: mkview test fails on CI
Problem:    mkview test fails on CI.
Solution:   Attempt to force recomputing curswant after folding.
2018-08-30 14:04:25 +02:00
Bram Moolenaar 8c9e7b00f6 patch 8.1.0334: 'autowrite' takes effect when buffer is not to be written
Problem:    'autowrite' takes effect when buffer is not to be written.
Solution:   Don't write buffers that are not supposed to be written. (Even Q
            Jones, closes #3391)  Add tests for 'autowrite'.
2018-08-30 13:07:17 +02:00
Bram Moolenaar 92c1b69641 patch 8.1.0333: :mkview does not restore cursor properly after "$"
Problem:    :mkview does not restore cursor properly after "$". (Dominique
            Pelle)
Solution:   Position the cursor with "normal! $".
2018-08-29 21:42:42 +02:00
Kazuki Sakamoto ba7f8db26d Merge remote-tracking branch 'vim/master' 2018-08-28 19:38:47 -07:00
Bram Moolenaar a449a7c6b9 patch 8.1.0332: get Gdk-Critical error on first balloon show
Problem:    Get Gdk-Critical error on first balloon show.
Solution:   Get screen geometry using the draw area widget. (Davit Samvelyan,
            closes #3386)
2018-08-28 23:09:07 +02:00
Bram Moolenaar fc65cabb15 Update runtime files. 2018-08-28 22:58:02 +02:00
Bram Moolenaar 627cb6a6b3 patch 8.1.0331: insufficient test coverage for :mkview and :loadview
Problem:    Insufficient test coverage for :mkview and :loadview.
Solution:   Add tests. (Dominique Pelle, closes #3385)
2018-08-28 22:19:31 +02:00
Bram Moolenaar 6f6ef7c195 patch 8.1.0330: the qf_add_entries() function is too long
Problem:    The qf_add_entries() function is too long.
Solution:   Split in two parts. (Yegappan Lakshmanan)
2018-08-28 22:07:44 +02:00
Bram Moolenaar a06afc7f5e patch 8.1.0329: using inputlist() during startup results in garbage
Problem:    Using inputlist() during startup results in garbage. (Dominique
            Pelle)
Solution:   Make sure the xterm tracing is stopped when disabling the mouse.
2018-08-27 23:24:16 +02:00
Bram Moolenaar 4cbdf155ca patch 8.1.0328: inputlist() doesn't work with a timer
Problem:    inputlist() doesn't work with a timer. (Dominique Pelle)
Solution:   Don't redraw when cmdline_row is zero. (Hirohito Higashi,
            closes #3239)
2018-08-26 21:23:07 +02:00
cwlin 490169b266 Respect the font size setting of guifontwide.
Some of the fonts e.g., ProggyCleanTT expands the font height for
clearer view.
However, if the users set the customized guifontwide for CJK characters,
these CJK characters will be higher than the column height, and the top
of these characters will be cut.
This fix checks the pointSize of guifontwide, if it is bigger than the
guifont, then the font size will be fallback'd to guifont.
It provides an option to CJK users to set a smaller font size for guifontwide
to avoid the cut problem of CJK characters.
2018-08-25 14:40:19 +08:00
Bram Moolenaar 0529583ff1 patch 8.1.0327: the "g CTRL-G" command isn't tested much
Problem:    The "g CTRL-G" command isn't tested much.
Solution:   Add more tests. (Dominique Pelle, closes #3369)
2018-08-24 22:07:58 +02:00
Bram Moolenaar 98fc8d7b6c patch 8.1.0326: screen dump does not consider NUL and space equal
Problem:    Screen dump does not consider NUL and space equal.
Solution:   Use temp variables instead of character from cell.
2018-08-24 21:30:28 +02:00
cwlin ef51eff309 Add MAC_OS_X_VERSION_10_12_2 definition.
Some build environments don't have MAC_OS_X_VERSION_10_12_2 definition.
It could cause the build error on macOS prior to 10.12.
This fix adds the MAC_OS_X_VERSION_10_12_2 based on Apple's header:
https://opensource.apple.com/source/xnu/xnu-3789.60.24/EXTERNAL_HEADERS/AvailabilityMacros.h.auto.html
2018-08-24 14:25:43 +08:00
Bram Moolenaar 7c60505e10 patch 8.1.0325: strings in swap file may not be NUL terminated
Problem:    Strings in swap file may not be NUL terminated. (Coverity)
Solution:   Limit the length of the used string.
2018-08-23 23:01:27 +02:00
Bram Moolenaar 74c8be2c68 patch 8.1.0324: off-by-one error in cmdidx check
Problem:    Off-by-one error in cmdidx check. (Coverity)
Solution:   Use ">=" instead of ">".
2018-08-23 22:51:40 +02:00
Bram Moolenaar 2551c037e4 patch 8.1.0323: reverse order of VTP calls only needed the first time
Problem:    Reverse order of VTP calls only needed the first time.
Solution:   Add a flag to remember the state. (Nobuhiro Takasaki, closes #3366)
2018-08-23 22:38:31 +02:00
Bram Moolenaar 7cb33a14c9 patch 8.1.0322: Test_copy_winopt() does not restore 'hidden'
Problem:    Test_copy_winopt() does not restore 'hidden'.
Solution:   Restore the option, fix indent. (Ozaki Kiichi, closes #3367)
2018-08-23 22:20:35 +02:00
Bram Moolenaar 4edfe2d2a2 patch 8.1.0321: 'incsearch' regression: /\v highlights everything
Problem:    'incsearch' regression: /\v highlights everything.
Solution:   Put back the empty_pattern() check.
2018-08-23 20:55:45 +02:00
Kazuki Sakamoto bdfb631f49 Merge pull request #734 from ichizok/fix/opt_test
Fix CI failure
2018-08-23 08:53:43 -07:00
ichizok c206733e6f Fix gen_opt_test.vim
* Remove duplicate dict-key ('guifont')
* Fix option values for GUI MacVim
2018-08-23 17:26:59 +09:00
Bram Moolenaar 8b0d5ce881 patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Problem:    Too much 'incsearch' highlight for pattern matching everything.
Solution:   Add the skiplen to the command and remove the line range.
            (Christian Brabandt)  Check for empty pattern earlier.
2018-08-22 23:05:44 +02:00
Bram Moolenaar 8e7218c459 patch 8.1.0319: bzero() function prototype doesn't work for Android
Problem:    bzero() function prototype doesn't work for Android.
Solution:   Add an #ifdef. (Elliott Hughes, closes #3365)
2018-08-22 21:56:57 +02:00
Bram Moolenaar 3b3a506f57 patch 8.1.0318: the getftype() test may fail for char devices
Problem:    The getftype() test may fail for char devices if the file
            disappeared in between the listing and the getftype() call.
Solution:   Ignore empty result. (Ozaki Kiichi, closes #3360)
2018-08-22 20:16:16 +02:00
Bram Moolenaar 320bf2d85e patch 8.1.0317: Cscope test fails when using shadow directory
Problem:    Cscope test fails when using shadow directory.
Solution:   Resolve symlink in Vim. (James McCoy, closes #3364)
2018-08-22 20:06:26 +02:00
Bram Moolenaar 4c5765bc47 patch 8.1.0316: swapinfo() test fails on Travis
Problem:    swapinfo() test fails on Travis.
Solution:   Handle a long host name. (Ozaki Kiichi, closes #3361)
            Also make the version check flexible. (James McCoy)
2018-08-22 11:28:01 +02:00
Kazuki Sakamoto 5178dd4390 Merge remote-tracking branch 'vim/master' 2018-08-21 23:20:37 -07:00
Bram Moolenaar c631f2df62 patch 8.1.0315: helpgrep with language doesn't work properly
Problem:    Helpgrep with language doesn't work properly. (Takuya Fujiwara)
Solution:   Check for the language earlier. (Hirohito Higashi)
2018-08-21 21:58:13 +02:00
Bram Moolenaar 47ad5656e1 patch 8.1.0314: build failure without the +eval feature
Problem:    Build failure without the +eval feature. (Brenton Horne)
Solution:   Add #ifdef.  Also add the "dirty" item.
2018-08-21 21:09:07 +02:00
Bram Moolenaar 00f123a565 patch 8.1.0313: information about a swap file is unavailable
Problem:    Information about a swap file is unavailable.
Solution:   Add swapinfo(). (Enzo Ferber)
2018-08-21 20:28:54 +02:00
Bram Moolenaar 8e82c057ff patch 8.1.0312: wrong type for flags used in signal handlers
Problem:    Wrong type for flags used in signal handlers.
Solution:   Use sig_atomic_t. (Dominique Pelle, closes #3356)
2018-08-21 19:47:48 +02:00
Bram Moolenaar 8c5e0093c9 patch 8.1.0311: filtering entries in a quickfix list is not easy
Problem:    Filtering entries in a quickfix list is not easy.
Solution:   Add the cfilter plugin. (Yegappan Lakshmanan)
2018-08-21 19:22:23 +02:00
Bram Moolenaar 2f0f871159 patch 8.1.0310: file info msg not always suppressed with 'F' in 'shortmess'
Problem:    File info message not always suppressed with 'F' in 'shortmess'.
            (Asheq Imran)
Solution:   Save and restore msg_silent. (Christian Brabandt, closes #3221)
2018-08-21 18:50:18 +02:00
Bram Moolenaar 7feb35e778 patch 8.1.0309: profiling does not show a count for condition lines
Problem:    Profiling does not show a count for condition lines. (Daniel
            Hahler)
Solution:   Count lines when not skipping. (Ozaki Kiichi, closes #2499)
2018-08-21 17:49:54 +02:00
Bram Moolenaar fd6100b2aa patch 8.1.0308: a quick undo shows "1 seconds ago"
Problem:    A quick undo shows "1 seconds ago". (Tony Mechelynck)
Solution:   Add singular/plural message.
2018-08-21 17:07:45 +02:00
Bram Moolenaar 0f6b4f06de patch 8.1.0307: there is no good way to get the window layout
Problem:    There is no good way to get the window layout.
Solution:   Add the winlayout() function. (Yegappan Lakshmanan)
2018-08-21 16:56:34 +02:00
Bram Moolenaar da6e8919e7 patch 8.1.0306: plural messages are not translated properly
Problem:    Plural messages are not translated properly.
Solution:   Add more usage of NGETTEXT(). (Sergey Alyoshin)
2018-08-21 15:12:14 +02:00
Bram Moolenaar 830e3583da patch 8.1.0305: missing support for Lua 5.4 32 bits on Unix
Problem:    Missing support for Lua 5.4 32 bits on Unix.
Solution:   Define lua_newuserdatauv. (Kazunobu Kuriyama)
2018-08-21 14:23:35 +02:00
Bram Moolenaar 2e31048c30 patch 8.1.0304: no redraw when using a STOP signal on Vim and then CONT
Problem:    No redraw when using a STOP signal on Vim and then a CONT signal.
Solution:   Catch the CONT signal and set the terminal to raw mode.  This is
            like 8.1.0244 but without the screen redraw and a fix for
            multi-threading suggested by Dominique Pelle.
2018-08-21 13:09:10 +02:00
Bram Moolenaar c26f7c6053 patch 8.1.0303: line2byte() is wrong for last line with 'noeol'
Problem:    line2byte() is wrong for last line with 'noeol' and 'nofixeol'.
Solution:   Fix off-by-one error. (Shane Harper, closes #3351)
2018-08-20 22:53:04 +02:00
Bram Moolenaar f1883479be patch 8.1.0302: crash when using :suspend and "fg"
Problem:    Crash when using :suspend and "fg".
Solution:   Undo patch 8.1.244.
2018-08-20 21:58:57 +02:00
Bram Moolenaar 3f6a16f022 patch 8.1.0301: GTK: input method popup displayed on wrong screen.
Problem:    GTK: Input method popup displayed on wrong screen.
Solution:   Add the screen position offset. (Ken Takata, closes #3268)
2018-08-19 22:58:45 +02:00
Bram Moolenaar d8f0cef2bd patch 8.1.0300: the old window title might be freed twice
Problem:    The old window title might be freed twice. (Dominique Pelle)
Solution:   Do not free "oldtitle" in a signal handler but set a flag to have
            it freed later.
2018-08-19 22:20:16 +02:00
Bram Moolenaar 142ae736d9 patch 8.1.0299: misplaced comment
Problem:    misplaced comment
Solution:   Remove comment
2018-08-19 17:04:01 +02:00
Bram Moolenaar 46fad2ef0b patch 8.1.0298: window resize test sometimes fails on Mac
Problem:    Window resize test sometimes fails on Mac.
Solution:   Add Test_popup_and_window_resize() to flaky tests.
2018-08-19 16:09:27 +02:00
Bram Moolenaar cea1f9ec52 patch 8.1.0297: MS-Windows: tests fail, Vim crashes
Problem:    MS-Windows: tests fail, Vim crashes.
Solution:   Fix long file name handling.
2018-08-19 14:38:42 +02:00
Yee Cheng Chin e35b0a69a7 Fix opening window in another screen resulting in broken rendering
Fix the issue that MacVim's window will have broken rendering (wrong Vim
size) if the window was opened in another monitor. This was introduced
as part of the implementation for guioptions 'k',

The issue was that the function `moveWindowAcrossScreens` was buggy. It
sets a flag "resizingDueToMove" but doesn't unset it after the
`setFrameTopLeftPoint`, which may or may not call the resize function
that is responsible in unsetting "resizeDueToMove". Fix the function to
always unset it so that the flag doesn't leak till the next resize.
Previously it "worked" due to MacVim's excessive resize messages masking
the issue.
2018-08-18 22:37:20 -07:00
Bram Moolenaar 111bbd61e9 patch 8.1.0296: command parsing for 'incsearch' is a bit ugly
Problem:    Command parsing for 'incsearch' is a bit ugly.
Solution:   Return when there is no pattern.  Put common checks together.
2018-08-18 21:23:05 +02:00
Bram Moolenaar 264cf5cfaf patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Problem:    No 'incsearch' highlighting for :vimgrep and similar commands.
Solution:   Parse the :vimgrep command and similar ones to locate the search
            pattern. (Hirohito Higashi, closes #3344)
2018-08-18 21:05:31 +02:00
Bram Moolenaar 3b9fcfcffa patch 8.1.0294: MS-Windows: sometimes uses short directory name
Problem:    MS-Windows: sometimes uses short directory name.
Solution:   Expand to long file name with correct caps. (Nobuhiro Takasaki,
            closes #3334)
2018-08-18 20:20:27 +02:00
Bram Moolenaar 4d77c65a9e patch 8.1.0293: checks for type of stack is cryptic
Problem:    Checks for type of stack is cryptic.
Solution:   Define IS_QF_STACK() and IS_LL_STACK(). (Yegappan Lakshmanan)
2018-08-18 19:59:54 +02:00
Bram Moolenaar 9bc1eac2c7 patch 8.1.0292: MS-Windows: the text "self-installing" confuses some users
Problem:    MS-Windows: the text "self-installing" confuses some users.
Solution:   Remove the text from the uninstall entry. (closes #3337)
2018-08-18 19:04:37 +02:00
Bram Moolenaar 81f56536b1 patch 8.1.0291: 'incsearch' highlighting not used for :sort
Problem:    'incsearch' highlighting not used for :sort.
Solution:   Handle pattern in :sort command.
2018-08-18 16:19:42 +02:00
Bram Moolenaar b476cb7d8d patch 8.1.0290: "cit" on an empty HTML tag changes the whole tag
Problem:    "cit" on an empty HTML tag changes the whole tag.
Solution:   Only adjust the area in Visual mode. (Andy Massimino,
            closes #3332)
2018-08-16 21:37:50 +02:00
Bram Moolenaar 2dfcef4c08 patch 8.1.0289: cursor moves to wrong column after quickfix jump
Problem:    Cursor moves to wrong column after quickfix jump.
Solution:   Set the curswant flag. (Andy Massimino, closes #3331)
2018-08-15 22:29:51 +02:00
Bram Moolenaar 396659592f patch 8.1.0288: quickfix code uses cmdidx too often
Problem:    Quickfix code uses cmdidx too often.
Solution:   Add is_loclist_cmd(). (Yegappan Lakshmanan)
2018-08-15 20:59:48 +02:00
Bram Moolenaar 37b15568c2 patch 8.1.0287: MAX is not defined everywhere
Problem:    MAX is not defined everywhere.
Solution:   Define MAX where needed.
2018-08-14 22:08:25 +02:00
Bram Moolenaar 167ae42685 patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Problem:    'incsearch' does not apply to :smagic and :snomagic.
Solution:   Add support. (Hirohito Higashi)
2018-08-14 21:32:21 +02:00
Bram Moolenaar d7cc163570 patch 8.1.0285: compiler warning for conversion
Problem:    Compiler warning for conversion.
Solution:   Add a type cast. (Mike Williams)
2018-08-14 20:18:26 +02:00
Bram Moolenaar 2f6a346a4c patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Problem:    'cursorline' highlighting wrong with 'incsearch'.
Solution:   Move the cursor back if the match is outside the range.
2018-08-14 18:16:52 +02:00
Bram Moolenaar 80d83c094d patch 8.1.0283: missing test dump
Problem:    Missing test dump.
Solution:   Add the dump file
2018-08-14 17:28:56 +02:00
Bram Moolenaar 33c4dbb74b patch 8.1.0282: 'incsearch' does not work with command modifiers
Problem:    'incsearch' does not work with command modifiers.
Solution:   Skip command modifiers.
2018-08-14 16:06:16 +02:00
Bram Moolenaar effed9315c patch 8.1.0281: parsing command modifiers is not separated
Problem:    Parsing command modifiers is not separated.
Solution:   Move command modifier parsing to a separate function.
2018-08-14 13:38:17 +02:00
Kazuki Sakamoto 6a9348a1b9 MacVim Snapshot 151
Binary targets macOS 10.8+

- Vim patch 8.1.0280
- Reverted guioption 'k' #727

Script interfaces have compatibility with these versions

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
2018-08-13 22:13:05 -07:00
Kazuki Sakamoto 4d9b1a2c01 Workaround fix for Travis-CI
Skip cdev test which fails on Travis-CI.
2018-08-13 21:51:47 -07:00
Kazuki Sakamoto 1a8a544a61 Merge pull request #730 from ychin/macvim_doc_noet
Add 'noet' to MacVim docs' modeline to keep it consistent with Vim
2018-08-13 18:55:36 -07:00
Kazuki Sakamoto 5d9c7ebdfc Merge remote-tracking branch 'vim/master' 2018-08-13 17:26:45 -07:00
Bram Moolenaar def7b1dc61 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Problem:    'incsearch' highlighting does not work for ":g!/".
Solution:   Skip the exclamation mark. (Hirohito Higashi)
2018-08-13 22:54:35 +02:00
Bram Moolenaar 2b926fcb3c patch 8.1.0279: 'incsearch' highlighting does not skip white space
Problem:    'incsearch' highlighting does not skip white space.
Solution:   Skip white space after the command. (issue #3321)
2018-08-13 11:07:57 +02:00
Bram Moolenaar 60d0871000 patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Problem:    'incsearch' highlighting does not accept reverse range.
Solution:   Swap the range when needed. (issue #3321)
2018-08-12 21:53:15 +02:00
Bram Moolenaar c7f08b7ee1 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Problem:    'incsearch' highlighting wrong in a few cases.
Solution:   Fix using last search pattern.  Restore highlighting when changing
            command. (issue #3321)
2018-08-12 17:39:14 +02:00
Bram Moolenaar 164251ff80 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Problem:    No test for 'incsearch' highlighting with :s.
Solution:   Add a screendump test.
2018-08-12 16:26:58 +02:00
Bram Moolenaar 976b847f43 patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Problem:    'incsearch' with :s doesn't start at cursor line.
Solution:   Set cursor before parsing address. (closes #3318)
            Also accept a match at the start of the first line.
2018-08-12 15:49:47 +02:00
Yee Cheng Chin 0065c3fd3b Fix up the previous MacVim's guioptions 'k' implementation
Fix the following:

* Zoom button: There was an error in refactoring leading to the handler
  calling the wrong function.

* Toolbar addition/removal: This now respects the 'k' option. Toolbar is
  different from scrollbar and tabs because when you add/remove a
  toolbar in Cocoa it automatically resizes the window for you, so the
  implementation needs to manually un-resize the window and
  re-calculates the Vim view's 'lines' and 'columns' to fit.
2018-08-12 00:14:19 -07:00
Yee Cheng Chin 0e4db3d79e Support guioptions 'k' flag in MacVim, prevents unnecessary window resize
Adds support for native GVim's 'k' flag. Adding/removing tabs/scrollbars
and setting 'linespace'/'columnspace' would now cause the number of
lines and columns in the buffer change to keep the window size constant,
instead of the other way round of resizing the window to keep the view
size constant. This helps prevent the window from resizing itself
unncessarily, which could be especially annoying when the window is
pinned/maximized.

Manually setting 'lines'/'columns', going to full screen, dragging the
window corner to resize would still resize the window.

Also removed misc calls within MMWindowController.m that were setting
shouldResizeVimView. Those calls were already handled by native Vim's
gui.c's gui_set_shellsize so it's redundant.

rebased from 1333bc6c2
2018-08-11 21:34:26 -07:00
Yee Cheng Chin e85c90d810 Add 'noet' to MacVim docs' modeline to keep it consistent with Vim 2018-08-11 13:29:24 -07:00
Bram Moolenaar 21f990e1c2 patch 8.1.0274: 'incsearch' triggers on ":source"
Problem:    'incsearch' triggers on ":source".
Solution:   Check for the whole command name.
2018-08-11 19:20:49 +02:00
Bram Moolenaar ef73a28401 patch 8.1.0273: invalid memory access when using 'incsearch'
Problem:    Invalid memory access when using 'incsearch'.
Solution:   Reset "patlen" when using previous search pattern.
2018-08-11 19:02:22 +02:00
Bram Moolenaar d473c8c101 Update runtime files. 2018-08-11 18:00:22 +02:00
Bram Moolenaar f53c692240 patch 8.1.0272: options test fails if temp var ends in slash
Problem:    Options test fails if temp var ends in slash. (Tom Briden)
Solution:   Check for optional slash. (closes #3308)
2018-08-11 17:53:04 +02:00
Bram Moolenaar b0acacd767 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Problem:    'incsearch' doesn't work for :s, :g or :v.
Solution:   Also use 'incsearch' for other commands that use a pattern.
2018-08-11 16:40:43 +02:00
Bram Moolenaar b31a3acce1 patch 8.1.0270: checking for a Tab in a line could be faster
Problem:    Checking for a Tab in a line could be faster.
Solution:   Use strchr() instead of strrchr(). (closes #3312)
2018-08-11 14:41:55 +02:00
Bram Moolenaar 51e9fbf1c7 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Problem:    Ruby Kernel.#p method always returns nil.
Solution:   Copy p method implementation from Ruby code. (Masataka Pocke
            Kuwabara, closes #3315)
2018-08-11 14:24:11 +02:00
Bram Moolenaar d569bb0299 patch 8.1.0268: file type checking has too many #ifdef
Problem:    File type checking has too many #ifdef.
Solution:   Always define the S_IF macros. (Ken Takata, closes #3306)
2018-08-11 13:57:20 +02:00
Bram Moolenaar 90f1e2b7bc patch 8.1.0267: no good check if restoring quickfix list worked
Problem:    No good check if restoring quickfix list worked.
Solution:   Let qf_restore_list() return OK/FAIL. (Yegappan Lakshmanan)
2018-08-11 13:36:56 +02:00
Kazuki Sakamoto dae7a8964c Dump src/auto/config.h on Travis CI 2018-08-10 18:44:59 -07:00
Kazuki Sakamoto f66ad538c3 Merge remote-tracking branch 'vim/master' 2018-08-10 18:00:43 -07:00
Kazuki Sakamoto 027327ab58 Merge pull request #727 from ychin/revert-guioptions-k
Revert "Support guioptions 'k' flag in MacVim, prevents unnecessary w…
2018-08-10 17:59:19 -07:00
Bram Moolenaar ee8415bc59 patch 8.1.0266: parsing Ex address range is not a separate function
Problem:    Parsing Ex address range is not a separate function.
Solution:   Refactor do_one_cmd() to separate address parsing.
2018-08-10 23:13:12 +02:00
Bram Moolenaar 0ee81cb638 patch 8.1.0265: the getcmdline() function is way too big
Problem:    The getcmdline() function is way too big.
Solution:   Factor out the incremental search highlighting.
2018-08-10 22:07:32 +02:00
Yee Cheng Chin 02ae96681a Revert "Support guioptions 'k' flag in MacVim, prevents unnecessary window resize"
This reverts commit 1333bc6c20.

The previous change broke external monitors and zoom button. Revert the
change before a proper fix can be implemented.
2018-08-10 02:57:01 -07:00
Kazuki Sakamoto d0807a4aff Merge remote-tracking branch 'vim/master' 2018-08-09 20:38:52 -07:00
Bram Moolenaar efe03738f6 patch 8.1.0264: backup tests fail when CWD is in /tmp
Problem:    Backup tests fail when CWD is in /tmp.
Solution:   Make 'backupskip' empty. (Christian Brabandt, closes #3301)
2018-08-09 22:26:38 +02:00
Bram Moolenaar 4b16ee743e patch 8.1.0263: channel log doesn't show part of channel
Problem:    Channel log doesn't show part of channel.
Solution:   Add "sock", "out", "err" or "in". (Ozaki Kiichi, closes #3303)
2018-08-09 22:15:34 +02:00
Bram Moolenaar 1598f9937a patch 8.1.0262: not enough testing for getftype()
Problem:    Not enough testing for getftype().
Solution:   Add a test. (Dominique Pelle, closes #3300)
2018-08-09 22:08:57 +02:00
Bram Moolenaar 38efd1d17a patch 8.1.0261: Coverity complains about a negative array index
Problem:    Coverity complains about a negative array index.
Solution:   When qf_id2nr() cannot find the list then don't set qf_curlist.
2018-08-09 21:52:24 +02:00
Bram Moolenaar 4d37557ac6 patch 8.1.0260: no LGTM logo in README file
Problem:    No LGTM logo in README file.
Solution:   Add one. (Bas van Schaik, closes #3305)
2018-08-09 21:33:38 +02:00
Bram Moolenaar 3f347e4716 patch 8.1.0259: no test for fixed quickfix issue
Problem:    No test for fixed quickfix issue.
Solution:   Add a test.  Clean up the code a bit. (Yegappan Lakshmanan)
2018-08-09 21:19:20 +02:00
Bram Moolenaar af559d2c9f patch 8.1.0258: not enough testing for the CompleteDone event
Problem:    Not enough testing for the CompleteDone event.
Solution:   Add a test. (closes #3297)
2018-08-08 22:55:41 +02:00
Bram Moolenaar bfde0b482d patch 8.1.0257: no test for pathshorten()
Problem:    No test for pathshorten().
Solution:   Add a test. (Dominique Pelle, closes #3295)
2018-08-08 22:27:31 +02:00
Bram Moolenaar 9fa9506853 patch 8.1.0256: using setline() in TextChangedI splits undo
Problem:    Using setline() in TextChangedI splits undo.
Solution:   Use another solution for undo not working properly.
2018-08-08 22:08:32 +02:00
Bram Moolenaar f8f88f89e1 patch 8.1.0255: backup test fails when using shadow directory
Problem:    Backup test fails when using shadow directory.
Solution:   Remove check for "src".
2018-08-08 11:02:32 +02:00
Bram Moolenaar 980bab457e patch 8.1.0254: cannot build on MS-Windows; unused macro HAVE_HANDLE_DROP
Problem:    Cannot build on MS-Windows; Unused macro HAVE_HANDLE_DROP.
Solution:   Adjust #ifdef. Delete the macro.
2018-08-07 22:42:53 +02:00
Bram Moolenaar 40385dbcdf patch 8.1.0253: saving and restoring window title does not always work
Problem:    Saving and restoring window title does not always work.
Solution:   Use the stack push and pop commands. (Kouichi Iwamoto,
            closes #3059)
2018-08-07 22:31:44 +02:00
Bram Moolenaar de3b3677f7 patch 8.1.0252: quickfix functions are too long
Problem:    Quickfix functions are too long.
Solution:   Refactor. (Yegappan Lakshmanan, closes #2950)
2018-08-07 21:54:41 +02:00
Bram Moolenaar b782ba475a patch 8.1.0251: using full path is not supported for 'backupdir'
Problem:    Using a full path is supported for 'directory' but not for
            'backupdir'. (Mikolaj Machowski)
Solution:   Support 'backupdir' as well. (Christian Brabandt, closes #179)
2018-08-07 21:39:28 +02:00
Bram Moolenaar b1cf16113f patch 8.1.0250: MS-Windows using VTP: windows size change incorrect
Problem:    MS-Windows using VTP: windows size change incorrect.
Solution:   Call SetConsoleScreenBufferSize() first. (Nobuhiro Takasaki,
            closes #3164)
2018-08-07 20:47:16 +02:00
Bram Moolenaar 7ebf4e1c34 patch 8.1.0249: GTK: when screen DPI changes Vim does not handle it
Problem:    GTK: when screen DPI changes Vim does not handle it.
Solution:   Handle the gtk-xft-dpi signal. (Roel van de Kraats,
            closes #2357)
2018-08-07 20:01:40 +02:00
Bram Moolenaar 8d8a65e389 patch 8.1.0248: duplicated quickfix code
Problem:    duplicated quickfix code.
Solution:   Move the code to a function.
2018-08-07 19:48:08 +02:00
Bram Moolenaar 447bd5a346 patch 8.1.0247: Python: error message for failing import is incorrect
Problem:    Python: error message for failing import is incorrect.
Solution:   Adjust how modules are loaded. (Ozaki Kiichi, closes #3162)
2018-08-07 19:45:27 +02:00
Bram Moolenaar ee380ae376 patch 8.1.0246: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef
2018-08-07 19:32:52 +02:00
Bram Moolenaar 91d2e783b4 patch 8.1.0245: calling setline() in TextChangedI autocmd breaks undo
Problem:    Calling setline() in TextChangedI autocmd breaks undo. (Jason
            Felice)
Solution:   Don't save lines for undo when already saved. (closes #3291)
2018-08-07 19:05:01 +02:00
Bram Moolenaar 917e32bda5 patch 8.1.0244: no redraw when using a STOP signal on Vim and then CONT
Problem:    No redraw when using a STOP signal on Vim and then a CONT signal.
Solution:   Catch the CONT signal and force a redraw. (closes #3285)
2018-08-07 17:38:41 +02:00
Bram Moolenaar 5db7eec423 patch 8.1.0243: using :term ++close ++hidden closes a window
Problem:    Using :term ++close ++hidden closes a window. (Marcin Szamotulski)
Solution:   Don't close the window if only using it temporarily for unloading
            the terminal buffer. (closes #3287)
2018-08-07 16:33:18 +02:00
Bram Moolenaar 02ab97709d patch 8.1.0242: Insert mode completion may use an invalid buffer pointer
Problem:    Insert mode completion may use an invalid buffer pointer.
Solution:   Check for ins_buf to be valid. (closes #3290)
2018-08-07 14:55:09 +02:00
Bram Moolenaar 7cc596547a patch 8.1.0241: effect of ":tabmove N" is not clear
Problem:    Effect of ":tabmove N" is not clear.
Solution:   Add a test that shows the behavior. (Christian Brabandt,
            closes #3288)
2018-08-07 13:14:46 +02:00
Kazuki Sakamoto 60c26e028a Merge remote-tracking branch 'vim/master' 2018-08-05 18:57:58 -07:00
Bram Moolenaar 3cb4448b8a patch 8.1.0240: g:actual_curbuf set in wrong scope
Problem:    g:actual_curbuf set in wrong scope. (Daniel Hahler)
Solution:   Prepend the "g:" name space. (closes #3279)
2018-08-05 13:22:26 +02:00
Bram Moolenaar 218beb3e96 patch 8.1.0239: now Ruby build fails on other systems
Problem:    Now Ruby build fails on other systems.
Solution:   Always define rb_intern. (Ken Takata, closes #3275)
2018-08-04 17:24:44 +02:00
Bram Moolenaar 7da1fb5532 patch 8.1.0238: 'buftype' is cleared when using ":term ++hidden cat"
Problem:    'buftype' is cleared when using ":term ++hidden cat". (Marcin
            Szamotulski)
Solution:   Set the "options initialized" flag earlier. (closes #3278)
2018-08-04 16:54:11 +02:00
Bram Moolenaar 87ea64ca96 patch 8.1.0237: Ruby on Cygwin doesn't always work
Problem:    Ruby on Cygwin doesn't always work.
Solution:   Use LIBRUBY_SO if LIBRUBY_ALIASES isn't set. (Ken Takata)
2018-08-04 15:13:34 +02:00
Bram Moolenaar 82593c1a3a patch 8.1.0236: Ruby build fails when ruby_intern is missing
Problem:    Ruby build fails when ruby_intern is missing.
Solution:   Do not use ruby_intern2. (Ken Takata)
2018-08-03 22:03:17 +02:00
Kazuki Sakamoto c7d7373896 MacVim Snapshot 150
Binary targets macOS 10.8+

- Vim patch 8.1.0235
- Touch Bar support #715
- Force click support #716
- New guioption 'k' #708
- Fix CoreText renderer

Script interfaces have compatibility with these versions

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
2018-08-02 21:58:32 -07:00
Kazuki Sakamoto 1027227742 Workaround for test87 2018-08-02 21:44:16 -07:00
Kazuki Sakamoto d1e492c567 Merge remote-tracking branch 'vim/master' 2018-08-02 21:28:40 -07:00
Bram Moolenaar 3bf5e6a4c8 patch 8.1.0235: more help tags that jump to the wrong location
Problem:    More help tags that jump to the wrong location.
Solution:   Add more exceptions and a table for "expr-" tags. (Hirohito
            Higashi)
2018-08-02 22:23:57 +02:00
Bram Moolenaar 41c363a315 patch 8.1.0234: incorrect reference counting in Perl interface
Problem:    Incorrect reference counting in Perl interface.
Solution:   Call SvREFCNT_inc more often, add a test. (Damien)
2018-08-02 21:46:51 +02:00
Kazuki Sakamoto 47e77c3f43 Merge remote-tracking branch 'vim/master' 2018-08-01 22:33:23 -07:00
Bram Moolenaar ded27a1feb patch 8.1.0233: "safe" argument of call_vim_function() is always FALSE
Problem:    "safe" argument of call_vim_function() is always FALSE.
Solution:   Remove the argument.
2018-08-01 19:06:03 +02:00
Bram Moolenaar f711cb2f12 patch 8.1.0232: Ruby error does not include backtrace
Problem:    Ruby error does not include backtrace.
Solution:   Add an error backtrace. (Masataka Pocke Kuwabara, closes #3267)
2018-08-01 18:42:13 +02:00
Bram Moolenaar a5bc38b8c1 patch 8.1.0231: :help -? goes to help for -+
Problem:    :help -? goes to help for -+.
Solution:   Add -? to list of special cases. (Hirohito Higashi)
2018-08-01 18:03:02 +02:00
Bram Moolenaar 91335e5a67 patch 8.1.0230: directly checking 'buftype' value
Problem:    Directly checking 'buftype' value.
Solution:   Add the bt_normal() function. (Yegappan Lakshmanan)
2018-08-01 17:53:12 +02:00
Bram Moolenaar d2855f5454 Update runtime files. 2018-07-31 22:23:58 +02:00
Josh Petrie ab1e570cf0 Merge pull request #715 from ychin/touchbar
MBP Touchbar Support (take 2)
2018-07-30 08:33:16 -07:00
Yee Cheng Chin 515ef9f65f Make Touch Bar support robust against older macOS versions
Make sure to check MAC_OS_X_VERSION_10_12_2 so older Xcode / SDK
versions will still be able to build MacVim, albeit without Touch Bar.

Also make sure to use `NSClassFromString(@"NSTouchBar")` to check during
runtime to avoid MacVim crashing for users using older versions of macOS
when they by mistake bind a menu item with TouchBar as main menu
(nothing will show up instead).
2018-07-29 23:09:21 -07:00
Kazuki Sakamoto ea812c1f94 Merge pull request #718 from macvim-dev/fix-updates-casing
Fix casing of the "Check for Updates" command.
2018-07-29 23:00:19 -07:00
Josh Petrie 6841c28e47 Use the correct casing; fixes #697. 2018-07-29 22:58:06 -07:00
Kazuki Sakamoto dc1cfa916e Merge remote-tracking branch 'vim/master' 2018-07-29 13:55:38 -07:00
Josh Petrie 916ac4a311 Merge pull request #716 from ychin/force_click
Support Force click gesture. Can now map <ForceClick> gesture in MacVim
2018-07-29 10:21:26 -07:00
Bram Moolenaar 79c2ad50b8 patch 8.1.0229: crash when dumping profiling data
Problem:    Crash when dumping profiling data.
Solution:   Reset flag indicating that initialization was done.
2018-07-29 17:40:43 +02:00
Bram Moolenaar 92d147be95 patch 8.1.0228: dropping files is ignored while Vim is busy
Problem:    Dropping files is ignored while Vim is busy.
Solution:   Postpone the effect of dropping files until it's safe.
2018-07-29 17:35:23 +02:00
Bram Moolenaar fda95e7572 patch 8.1.0227: spaces instead of tabs in makefile
Problem:    Spaces instead of tabs in makefile.
Solution:   Use tabs and fix sorting. (Ken Takata)
2018-07-29 16:13:17 +02:00
Bram Moolenaar 1f0bfe5617 patch 8.1.0226: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate the +vreplace feature, it's not much code and quite a few
            #ifdefs.
2018-07-29 16:09:22 +02:00
Yee Cheng Chin 4f518b1996 Support Force click gesture. Can now map <ForceClick> gesture in MacVim
Can now map "<ForceClick>" similar to "<SwipeLeft/Right/Up/Down>"
gestures. Require a Mac that has a touchpad that supports Force Touch to
work.

Close #672
2018-07-29 06:55:59 -07:00
Bram Moolenaar 612cc3888b patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Problem:    Mode() does not indicate using CTRL-O from Insert mode.
Solution:   Add "niI", "niR" and "niV" to mode() result. (closes #3000)
2018-07-29 15:34:26 +02:00
Bram Moolenaar 91f84f6e11 Update runtime files. 2018-07-29 15:07:52 +02:00
Yee Cheng Chin e1bc03b773 Touch Bar add documentation, support enabled states, and system icons
Enabled states now work. E.g. a mapped Touch Bar button using "vmenu
TouchBar.DoStuff <nop>" will not show up in normal mode.

Also support specifying default Apple template icons. E.g. "an
icon=NSTouchBarListViewTemplate TouchBar.ShowList <Nop>"

Remove default TouchBar buttons as there were too many of them and most
of them are unlikely to be heavily used as there are direct Vim command
equivalent. Instead just add a single fullscreen toggle button. This can
be changed later.
2018-07-29 01:02:11 -07:00
Yee Cheng Chin 0d621891f0 MacVim Touch Bar
- addressed review feedbacks
- documentations
2018-07-28 18:21:21 -07:00
Bram Moolenaar fdd7155fab patch 8.1.0224: hang in bracketed paste mode when t_PE not encountered
Problem:    Hang in bracketed paste mode when t_PE not encountered.
Solution:   Break out of the loop when got_int is set. (suggested by Christian
            Brabandt, closes #3146)
2018-07-28 23:12:05 +02:00
Bram Moolenaar 6ab9e429da patch 8.1.0223: completing shell command finds sub-directories in $PATH
Problem:    Completing shell command finds sub-directories in $PATH.
Solution:   Remove EW_DIR when completing an item in $PATH. (Jason Franklin)
2018-07-28 19:20:13 +02:00
Bram Moolenaar 73b4abae5d patch 8.1.0222: errors are reported for "make install"
Problem:    Errors are reported for "make install".
Solution:   Skip missing language files. (Christian Brabandt, closes #3254)
2018-07-28 18:16:48 +02:00
Bram Moolenaar edd6aacb01 patch 8.1.0221: not enough testing for the Ruby interface
Problem:    Not enough testing for the Ruby interface.
Solution:   Add more tests. (Dominique Pelle, closes #3252)
2018-07-28 17:29:19 +02:00
Bram Moolenaar d84b26a03b patch 8.1.0220: Ruby converts v:true and v:false to a number
Problem:    Ruby converts v:true and v:false to a number.
Solution:   Use Qtrue and Qfalse instead. (Masataka Pocke Kuwabara,
            closes #3259)
2018-07-28 17:18:09 +02:00
Bram Moolenaar 2c8c681bfc patch 8.1.0219: expanding ## fails to escape backtick
Problem:    Expanding ## fails to escape backtick.
Solution:   Escape a backtick in a file name. (closes #3257)
2018-07-28 17:07:52 +02:00
Bram Moolenaar 95e51470f1 patch 8.1.0218: cannot add matches to another window
Problem:    Cannot add matches to another window. (Qiming Zhao)
Solution:   Add the "window" argument to matchadd() and matchaddpos().
            (closes #3260)
2018-07-28 16:55:56 +02:00
Bram Moolenaar fd249460fe patch 8.1.0217: compiler warning for variable set but not used
Problem:    Compiler warning for variable set but not used.
Solution:   Move tilde_file inside #ifdef. (Hirohito Higashi, closes #3255)
2018-07-28 16:14:30 +02:00
Bram Moolenaar 8e85db0376 patch 8.1.0216: part of file not indented properly
Problem:    Part of file not indented properly.
Solution:   Adjust the indent. (Ken Takata)
2018-07-27 23:16:51 +02:00
Bram Moolenaar d2a054910b patch 8.1.0215: no error if configure --with-x cannot configure X
Problem:    No error if configure --with-x cannot configure X.
Solution:   Check that when --with-x is used X can be configured.
2018-07-27 22:35:15 +02:00
Bram Moolenaar 83ec2a7f5f patch 8.1.0214: +autochdir feature not reported by has() or :version
Problem:    +autochdir feature not reported by has() or :version.
Solution:   Add the feature in the list.
2018-07-27 22:08:59 +02:00
Christoph Walcher 8fc72761a5 basic touchbarsupport 2018-07-26 22:05:04 -07:00
Kazuki Sakamoto 1868c4cdac Merge remote-tracking branch 'vim/master' 2018-07-26 20:49:34 -07:00
Bram Moolenaar 0a08c63da1 patch 8.1.0213: CTRL-W CR does not work properly in a quickfix window
Problem:    CTRL-W CR does not work properly in a quickfix window.
Solution:   Split the window if needed. (Jason Franklin)
2018-07-25 22:36:52 +02:00
Bram Moolenaar 53901442f3 patch 8.1.0212: preferred cursor column not set in interfaces
Problem:    Preferred cursor column not set in interfaces.
Solution:   Set w_set_curswant when setting the cursor. (David Hotham,
            closes #3060)
2018-07-25 22:02:36 +02:00
Bram Moolenaar 00136dc321 patch 8.1.0211: expanding a file name "~" results in $HOME
Problem:    Expanding a file name "~" results in $HOME. (Aidan Shafran)
Solution:   Change "~" to "./~" before expanding. (closes #3072)
2018-07-25 21:19:13 +02:00
Bram Moolenaar 6f8d2ac6f1 patch 8.1.0210: still a few K&R function declarations
Problem:    Still a few K&R function declarations.
Solution:   Use ANSI function declarations (Hirohito Higashi)
2018-07-25 19:49:45 +02:00
Kazuki Sakamoto 0c9f4fd439 Merge remote-tracking branch 'vim/master' 2018-07-24 20:27:43 -07:00
Bram Moolenaar b6c8cd8dc3 patch 8.1.0209: stderr output from Ruby messes up display
Problem:    Stderr output from Ruby messes up display.
Solution:   Turn the stderr output into a Vim message. (Masataka Pocke
            Kuwabara, closes #3238)
2018-07-24 05:41:30 +02:00
Kazuki Sakamoto 6800549d14 Merge pull request #713 from ichizok/fix/display-glyphs
Fix a display of some non-composing glyphs
2018-07-23 20:03:51 -07:00
Kazuki Sakamoto 89d1d93448 Merge remote-tracking branch 'vim/master' 2018-07-23 19:56:55 -07:00
Bram Moolenaar 7624af0294 patch 8.1.0208: file left behind after running individual test
Problem:    File left behind after running individual test.
Solution:   Delete the file.
2018-07-24 04:51:20 +02:00
Kazuki Sakamoto 2aea7468fe Merge remote-tracking branch 'vim/master' 2018-07-23 17:35:04 -07:00
Bram Moolenaar 68f1b1b37f patch 8.1.0207: need many menu translation files to cover regions
Problem:    Need many menu translation files to cover regions.
Solution:   When there is no region match, try without. (Christian Brabandt)
2018-07-23 05:10:14 +02:00
Bram Moolenaar cd96eef3a8 patch 8.1.0206: duplicate test function name
Problem:    Duplicate test function name.
Solution:   Rename both functions.
2018-07-23 04:49:23 +02:00
Bram Moolenaar 9cf4b5005f patch 8.1.0205: invalid memory access with invalid modeline
Problem:    Invalid memory access with invalid modeline.
Solution:   Pass pointer limit. Add a test. (closes #3241)
2018-07-23 04:12:03 +02:00
Bram Moolenaar 947b39e761 patch 8.1.0204: inputlist() is not tested
Problem:    inputlist() is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3240)
2018-07-22 19:36:37 +02:00
Bram Moolenaar 578333b2ec patch 8.1.0203: building with Perl 5.28 fails on Windows
Problem:    Building with Perl 5.28 fails on Windows.
Solution:   Define Perl_mg_get. (closes #3196)
2018-07-22 07:31:09 +02:00
Bram Moolenaar 6183ccbd67 patch 8.1.0202: :version always shows +packages
Problem:    :version always shows +packages. (Takuya Fujiwara)
Solution:   Add #ifdef (closes #3198) Also for has().
2018-07-22 05:08:11 +02:00
Bram Moolenaar 79a494d5e2 patch 8.1.0201: newer Python uses "importlib" instead of "imp"
Problem:    Newer Python uses "importlib" instead of "imp".
Solution:   Use "importlib" for newer Python versions. (closes #3163)
2018-07-22 04:30:21 +02:00
Bram Moolenaar a9604e6145 Update runtime files. 2018-07-21 05:56:22 +02:00
Bram Moolenaar 872e451e8c patch 8.1.0200: spellbadword() not tested
Problem:    spellbadword() not tested.
Solution:   Add a test. (Dominique Pelle, closes #3235)
2018-07-20 23:36:26 +02:00
Bram Moolenaar 66ab916935 patch 8.1.0199: spellbadword() does not check for caps error
Problem:    spellbadword() does not check for caps error. (Dominique Pelle)
Solution:   Adjust capcol when advancing.
2018-07-20 20:28:48 +02:00
Bram Moolenaar 0a6efcd27d patch 8.1.0198: there is no hint that syntax is disabled for 'redrawtime'
Problem:    There is no hint that syntax is disabled for 'redrawtime'.
Solution:   Add a message.
2018-07-20 19:56:10 +02:00
Bram Moolenaar 9e42c86648 patch 8.1.0197: Windows GUI: title for search/replace is wrong
Problem:    Windows GUI: title for search/replace is wrong.
Solution:   Remove remark about doubling backslash. (closes #3230)
2018-07-20 05:03:16 +02:00
Bram Moolenaar f63db65b24 patch 8.1.0196: terminal debugger error with .gdbinit file
Problem:    Terminal debugger error with .gdbinit file.
Solution:   Check two lines for the "new ui" response. (hint from Hirohito
            Higashi)
2018-07-19 04:13:36 +02:00
Bram Moolenaar 963c1ad5d0 patch 8.1.0195: terminal debugger commands don't always work
Problem:    Terminal debugger commands don't always work. (Dominique Pelle)
Solution:   Set 'cpo' to its default value when defining commands. (Christian
            Brabandt)
2018-07-19 02:55:01 +02:00
Bram Moolenaar 414998023f patch 8.1.0194: possibly use of NULL pointer
Problem:    Possibly use of NULL pointer. (Coverity)
Solution:   Reset the re_in_use flag earlier.
2018-07-18 06:02:09 +02:00
ichizok 17a8a7f3c0 Fix a display of some non-composing glyphs
e.g. ligatures, arabic
2018-07-17 18:25:42 +09:00
Bram Moolenaar ca4cc018ad patch 8.1.0193: terminal debugger buttons don't always work
Problem:    Terminal debugger buttons don't always work. (Dominique Pelle)
Solution:   Set 'cpo' to its default value.
2018-07-17 05:55:12 +02:00
Bram Moolenaar 0270f38e1a patch 8.1.0192: executing regexp recursively fails with a crash
Problem:    Executing regexp recursively fails with a crash.
Solution:   Move global variables into "rex".
2018-07-17 05:43:58 +02:00
Bram Moolenaar 3166afd945 patch 8.1.0191: Perl test fails in 24 line terminal
Problem:    Perl test fails in 24 line terminal.
Solution:   Create fewer windows.
2018-07-16 18:09:14 +02:00
Bram Moolenaar 18c4f1badb patch 8.1.0190: Perl refcounts are wrong
Problem:    Perl refcounts are wrong.
Solution:   Improve refcounting.  Add a test. (Damien)
2018-07-16 17:45:38 +02:00
Bram Moolenaar d90a144eda patch 8.1.0189: function defined in sandbox not tested
Problem:    Function defined in sandbox not tested.
Solution:   Add a text.
2018-07-15 20:24:31 +02:00
Bram Moolenaar b477af2260 Update runtime files. 2018-07-15 20:20:18 +02:00
Bram Moolenaar 2196bca737 patch 8.1.0188: no test for ":cscope add"
Problem:    No test for ":cscope add".
Solution:   Add a test. (Dominique Pelle, closes #3212)
2018-07-15 17:36:32 +02:00
Bram Moolenaar 7132ddc101 patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Problem:    getwininfo() and win_screenpos() return different numbers.
Solution:   Add one to "wincol" and "winrow" from getwininfo().
2018-07-15 17:01:11 +02:00
Bram Moolenaar 44a693a1bd patch 8.1.0186: test for getwininfo() fails in GUI
Problem:    Test for getwininfo() fails in GUI.
Solution:   Account for missing tabline.
2018-07-14 22:23:47 +02:00
Bram Moolenaar 1ce9a1515b patch 8.1.0185: running tests writes lua.vim even though it is not used
Problem:    Running tests writes lua.vim even though it is not used.
Solution:   Stop writing lua.vim.
2018-07-14 21:48:46 +02:00
Bram Moolenaar b6959a8e06 patch 8.1.0184: not easy to figure out the window layout
Problem:    Not easy to figure out the window layout.
Solution:   Add "wincol" and "winrow" to what getwininfo() returns.
2018-07-14 21:41:44 +02:00
Bram Moolenaar 1741367131 patch 8.1.0183: Lua API changed, breaking the build
Problem:    Lua API changed, breaking the build.
Solution:   Adjust prototype of lua_rawgeti(). (Ken Takata,
            closes #3157, closes #3144)
2018-07-14 20:49:42 +02:00
Bram Moolenaar 4fc85003c5 patch 8.1.0182: Unicode standard was updated
Problem:    Unicode standard was updated.
Solution:   Include the changes. (Christian Brabandt)
2018-07-14 19:30:36 +02:00
Bram Moolenaar a43ebe9454 patch 8.1.0181: memory leak with trailing characters in skip expression
Problem:    Memory leak with trailing characters in skip expression.
Solution:   Free the return value.
2018-07-14 17:25:01 +02:00
Bram Moolenaar d6ef5f9b3d patch 8.1.0180: static analysis errors in Lua interface
Problem:    Static analysis errors in Lua interface. (Coverity)
Solution:   Check for NULL pointers.
2018-07-13 22:08:23 +02:00
Bram Moolenaar efc81331e7 patch 8.1.0179: redundant condition for boundary check
Problem:    Redundant condition for boundary check.
Solution:   Remove the condition. (Dominique Pelle). Change FALSE to FAIL.
2018-07-13 16:31:19 +02:00
Kazuki Sakamoto 6688ed2290 Merge remote-tracking branch 'vim/master' 2018-07-12 21:29:04 -07:00
Bram Moolenaar e76c4b237d patch 8.1.0178: warning for passing pointer to non-pointer argument
Problem:    Warning for passing pointer to non-pointer argument.
Solution:   Use zero instead of NULL.
2018-07-11 22:57:54 +02:00
Bram Moolenaar 93343725b5 patch 8.1.0177: defining function in sandbox is inconsistent
Problem:    Defining function in sandbox is inconsistent, cannot use :function
            but can define a lambda.
Solution:   Allow defining a function in the sandbox, but also use the sandbox
            when executing it. (closes #3182)
2018-07-10 19:39:18 +02:00
Bram Moolenaar 18085fae74 patch 8.1.0176: overlapping string argument for strcpy()
Problem:    Overlapping string argument for strcpy(). (Coverity)
Solution:   Use STRMOVE() instead of STRCPY(). (Dominique Pelle, closes #3187)
2018-07-10 17:33:45 +02:00
Bram Moolenaar bde14d8e24 patch 8.1.0175: marks test fails in very wide window
Problem:    Marks test fails in very wide window. (Vladimir Lomov)
Solution:   Extend the text to match 'columns'. (closes #3180, closes #3181)
2018-07-10 15:22:32 +02:00
Bram Moolenaar 907dad72ef patch 8.1.0174: after paging up and down fold line is wrong
Problem:    After paging up and down fold line is wrong.
Solution:   Correct the computation of w_topline and w_botline. (Hirohito
            Higashi)
2018-07-10 15:07:15 +02:00
Kazuki Sakamoto 3ad944b0b7 Python 3.7 for Travis CI build 2018-07-09 23:44:09 -07:00
Kazuki Sakamoto 1426e4f7dc Merge remote-tracking branch 'vim/master' 2018-07-09 23:42:30 -07:00
Bram Moolenaar 6259e5769d patch 8.1.0173: compiler warning on MS-Windows
Problem:    Compiler warning on MS-Windows.
Solution:   Add type cast. (Mike Williams)
2018-07-09 20:39:17 +02:00
Kazuki Sakamoto 378032d85e Merge pull request #708 from ychin/guioptions-k
Support guioptions 'k' flag in MacVim, prevents unnecessary window re…
2018-07-08 19:15:39 -07:00
Kazuki Sakamoto 91dcb1fa63 Merge remote-tracking branch 'vim/master' 2018-07-08 19:12:27 -07:00
Bram Moolenaar c229e54a69 patch 8.1.0172: 'viminfofile' option does not behave like a file name
Problem:    'viminfofile' option does not behave like a file name.
Solution:   Add the P_EXPAND flag. (closes #3178)
2018-07-08 21:46:56 +02:00
Bram Moolenaar 875cf87894 patch 8.1.0171: typing CTRL-W n in a terminal window causes ml_get error
Problem:    Typing CTRL-W n in a terminal window causes ml_get error.
Solution:   When resizing the terminal outside of terminal_loop() make sure
            the snapshot is complete.
2018-07-08 20:49:07 +02:00
Bram Moolenaar 2338c32b53 patch 8.1.0170: invalid memory use with complicated pattern
Problem:    Invalid memory use with complicated pattern. (Andy Massimino)
Solution:   Reallocate the list of listids when needed. (closes #3175)
            Remove unnecessary function prototypes.
2018-07-08 19:07:19 +02:00
Bram Moolenaar a9defadb8f patch 8.1.0169: calling message_filtered() a bit too often
Problem:    Calling message_filtered() a bit too often.
Solution:   Only call message_filtered() when filtering is already false.
2018-07-08 18:20:24 +02:00
Bram Moolenaar 9d5185bf9d patch 8.1.0168: output of :marks is too short with multi-byte chars
Problem:    Output of :marks is too short with multi-byte chars. (Tony
            Mechelynck)
Solution:   Get more bytes from the text line.
2018-07-08 17:57:34 +02:00
Bram Moolenaar c89d4b3530 patch 8.1.0167: lock flag in new dictitem is reset in many places
Problem:    Lock flag in new dictitem is reset in many places.
Solution:   Always reset the lock flag.
2018-07-08 17:19:02 +02:00
Bram Moolenaar e0be167a80 patch 8.1.0166: using dict_add_nr_str() is clumsy
Problem:    Using dict_add_nr_str() is clumsy.
Solution:   Split into two functions. (Ozaki Kiichi, closes #3154)
2018-07-08 16:50:37 +02:00
Bram Moolenaar 4cde86c2ef patch 8.1.0165: :clist output can be very long
Problem:    :clist output can be very long.
Solution:   Support filtering :clist entries. (Yegappan Lakshmanan)
2018-07-08 16:01:08 +02:00
Yee Cheng Chin 1333bc6c20 Support guioptions 'k' flag in MacVim, prevents unnecessary window resize
Adds support for native GVim's 'k' flag. Adding/removing tabs/scrollbars
and setting 'linespace'/'columnspace' would now cause the number of
lines and columns in the buffer change to keep the window size constant,
instead of the other way round of resizing the window to keep the view
size constant. This helps prevent the window from resizing itself
unncessarily, which could be especially annoying when the window is
pinned/maximized.

Manually setting 'lines'/'columns', going to full screen, dragging the
window corner to resize would still resize the window.

Also removed misc calls within MMWindowController.m that were setting
shouldResizeVimView. Those calls were already handled by native Vim's
gui.c's gui_set_shellsize so it's redundant.

Close #617
2018-07-08 03:27:55 -07:00
Bram Moolenaar fd35811ca5 Update runtime files, add Danish translations. 2018-07-07 23:21:31 +02:00
Bram Moolenaar fe08df452a patch 8.1.0164: luaeval('vim.buffer().name') returns an error
Problem:    luaeval('vim.buffer().name') returns an error.
Solution:   Return an empty string. (Dominique Pelle, closes #3167)
2018-07-07 23:07:41 +02:00
Bram Moolenaar 2549acf794 patch 8.1.0163: insufficient testing for Tcl
Problem:    Insufficient testing for Tcl.
Solution:   Add a few more tests. (Dominique Pelle, closes #3166)
2018-07-07 22:42:01 +02:00
Bram Moolenaar 08505312fe patch 8.1.0162: Danish and German man pages are not installed
Problem:    Danish and German man pages are not installed. (Tony Mechelynck)
Solution:   Adjust the makefile
2018-07-07 22:26:54 +02:00
Bram Moolenaar 386bc82a3f patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Problem:    Buffer not updated with 'autoread' set if file was deleted.
            (Michael Naumann)
Solution:   Don't set the timestamp to zero. (closes #3165)
2018-07-07 18:34:12 +02:00
Bram Moolenaar cbbe4ab4b2 patch 8.1.0160: no Danish manual translations
Problem:    No Danish manual translations.
Solution:   Add the Danish manual translations to the file list.
2018-07-07 17:21:55 +02:00
Bram Moolenaar 6c5d104302 patch 8.1.0159: completion for user names does not work for a prefix.
Problem:    Completion for user names does not work if a prefix is also a full
            matching name. (Nazri Ramliy)
Solution:   Accept both full and partial matches. (Dominique Pelle)
2018-07-07 16:41:13 +02:00
Bram Moolenaar 1ebff3dc93 patch 8.1.0158: GUI: input() fails if CTRL-C was pressed before
Problem:    GUI: input() fails if CTRL-C was pressed before. (Michael Naumann)
Solution:   call vpeekc() to drop the CTRL-C from the input stream.
2018-07-07 16:18:13 +02:00
Bram Moolenaar e330ef42f2 patch 8.1.0157: old iTerm2 is not recognized, resulting in stray output
Problem:    Old iTerm2 is not recognized, resulting in stray output.
Solution:   Recognize the termresponse.
2018-07-06 23:11:40 +02:00
Bram Moolenaar 5d2f40792e patch 8.1.0156: MS-Windows compiler warning
Problem:    MS-Windows compiler warning.
Solution:   Add a type cast. (Mike Williams)
2018-07-06 22:52:02 +02:00
Bram Moolenaar ae728edc93 patch 8.1.0155: evim.man missing from the distribution
Problem:    Evim.man missing from the distribution.
Solution:   Add it to the list.
2018-07-05 22:58:17 +02:00
Bram Moolenaar c9fe5ab3b0 patch 8.1.0154: crash with "set smarttab shiftwidth=0 softtabstop=-1"
Problem:    Crash with "set smarttab shiftwidth=0 softtabstop=-1".
Solution:   Fall back to using 'tabstop'. (closes #3155)
2018-07-05 22:27:08 +02:00
Bram Moolenaar e85ce6ea2e patch 8.1.0153: build with SHADOWDIR fails
Problem:    Build with SHADOWDIR fails. (Elimar Riesebieter)
Solution:   Create a link for Make_all.mak. (Tony Mechelynck)
2018-07-05 17:11:24 +02:00
Bram Moolenaar f3dc235576 patch 8.1.0152: cannot easily run individual tests on MS-Windows
Problem:    Cannot easily run individual tests on MS-Windows.
Solution:   Move the list of tests to a separate file.  Add a build rule in
            the MSVC makefile.
2018-07-04 23:05:34 +02:00
Bram Moolenaar 81e2ac7bb6 patch 8.1.0151: mksession test fails on MS-Windows
Problem:    Mksession test fails on MS-Windows.
Solution:   Always use an argument for :lcd.
2018-07-04 22:44:08 +02:00
Bram Moolenaar fd34cebe9a patch 8.1.0150: insufficient test coverage for Tcl
Problem:    Insufficient test coverage for Tcl.
Solution:   Add more tests. (Dominique Pelle, closes #3140)
2018-07-04 22:36:46 +02:00
Bram Moolenaar 26d4b896a7 patch 8.1.0149: session is wrong with multiple tabs when :lcd was used
Problem:    The generated sessions file does not restore tabs properly if :lcd
            was used in one of them.
Solution:   Create the tab pages before setting the directory. (Yee Cheng
            Chin, closes #3152)
2018-07-04 22:26:28 +02:00
Bram Moolenaar 92959fa46d patch 8.1.0148: memory leak when using :tcl expr command
Problem:    Memory leak when using :tcl expr command.
Solution:   Free the result of expression evaluation. (Dominique Pelle,
            closes #3150)
2018-07-04 22:12:25 +02:00
Bram Moolenaar 3b48b11c07 patch 8.1.0147: compiler warning when building with Python 3.7
Problem:    Compiler warning when building with Python 3.7.
Solution:   #undef PySlice_GetIndicesEx before redefining it. (Ozaki Kiichi,
            closes #3153)
2018-07-04 22:03:25 +02:00
Bram Moolenaar f0447e89a5 patch 8.1.0146: when $LANG is set the compiler test may fail
Problem:    When $LANG is set the compiler test may fail.
Solution:   Unset $LANG.
2018-07-03 21:26:38 +02:00
Bram Moolenaar 851332ea9c patch 8.1.0145: test with grep is failing on MS-Windows
Problem:    Test with grep is failing on MS-Windows.
Solution:   Skip the test.
2018-07-03 19:16:00 +02:00
Bram Moolenaar b2e0c94a4d patch 8.1.0144: the :cd command does not have good test coverage
Problem:    The :cd command does not have good test coverage.
Solution:   Add more tests. (Dominique Pelle, closes #2972)
2018-07-03 18:36:27 +02:00
Bram Moolenaar 3d1d6475f9 patch 8.1.0143: matchit and matchparen don't handle E363
Problem:    Matchit and matchparen don't handle E363.
Solution:   Catch the E363 error. (Christian Brabandt)
2018-07-03 18:18:23 +02:00
Bram Moolenaar e6882bdc44 patch 8.1.0142: xterm and vt320 builtin termcap missing keypad keys
Problem:    Xterm and vt320 builtin termcap missing keypad keys.
Solution:   Add the escape sequences. (Kouichi Iwamoto, closes #2973)
2018-07-03 17:16:59 +02:00
Bram Moolenaar 531b9a3a63 patch 8.1.0141: :cexpr no longer jumps to the first error
Problem:    :cexpr no longer jumps to the first error.
Solution:   Use the quickfix list identifier. (Yegappan Lakshmanan,
            closes #3092)
2018-07-03 16:54:23 +02:00
Bram Moolenaar 6dc819b129 Updated runtime and language files. 2018-07-03 16:42:19 +02:00
Bram Moolenaar 972bfddc6b patch 8.1.0140: recording into a register has focus events
Problem:    Recording into a register has focus events. (Michael Naumann)
Solution:   Don't record K_FOCUSGAINED and K_FOCUSLOST. (closes #3143)
2018-07-03 14:48:15 +02:00
Kazuki Sakamoto 351faf929e Merge remote-tracking branch 'vim/master' 2018-07-02 23:15:52 -07:00
Kazuki Sakamoto 7956ed5684 Merge pull request #703 from Giemsa/fix/invalid_font_on_high_sierra
Fix: failed to select some fonts on high sierra
2018-07-02 23:15:19 -07:00
Kazuki Sakamoto 585d52cd01 Merge pull request #704 from tranngocthachs/fix_xcode_10b_build
Fix build on Xcode 10 beta
2018-07-02 23:13:38 -07:00
Bram Moolenaar a8a60d0c6b patch 8.1.0139: Lua tests fail on some platforms
Problem:    Lua tests fail on some platforms.
Solution:   Accept a hex number with and without "0x". (Ken Takata,
            closes #3137)
2018-07-02 22:54:36 +02:00
Bram Moolenaar 33d5ab3795 patch 8.1.0138: negative value of 'softtabstop' not used correctly
Problem:    Negative value of 'softtabstop' not used correctly.
Solution:   Use get_sts_value(). (Tom Ryder)
2018-07-02 20:51:24 +02:00
Bram Moolenaar ade5578797 patch 8.1.0137: CI does not run with TCL
Problem:    CI does not run with TCL.
Solution:   Add TCL to the travis config. (Dominique Pelle, closes #3133)
2018-07-01 21:12:55 +02:00
Bram Moolenaar 2f362bf7f9 patch 8.1.0136: Lua tests don't cover new features
Problem:    Lua tests don't cover new features.
Solution:   Add more tests. (Dominique Pelle, closes #3130)
2018-07-01 19:49:27 +02:00
Bram Moolenaar e0429681ae patch 8.1.0135: undo message delays screen update for CTRL-O u
Problem:    Undo message delays screen update for CTRL-O u.
Solution:   Add smsg_attr_keep(). (closes #3125)
2018-07-01 16:44:03 +02:00
Bram Moolenaar ca06da9243 patch 8.1.0134: Lua interface does not support funcref
Problem:    Lua interface does not support funcref.
Solution:   Add funcref support. (Luis Carvalho)
2018-07-01 15:12:05 +02:00
Bram Moolenaar ffd112edc6 Fix missing patch number. 2018-07-01 14:22:31 +02:00
Bram Moolenaar 46577b5e54 patch 8.1.0133: tagfiles() can have duplicate entries
Problem:    tagfiles() can have duplicate entries.
Solution:   Simplify the filename to make checking for duplicates work better.
            Add a test. (Dominique Pelle, closes #2979)
2018-06-30 22:40:42 +02:00
Bram Moolenaar 4ff4814b38 patch 8.1.0132: lua tests are old style
Problem:    Lua tests are old style.
Solution:   Convert to new style tests.  Improve coverage. (Dominique Pelle,
            closes #3091)
2018-06-30 21:50:25 +02:00
Bram Moolenaar 1fbfe7c48c patch 8.1.0131: :profdel is not tested
Problem:    :profdel is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3123)
2018-06-30 21:18:13 +02:00
Bram Moolenaar ad64809610 patch 8.1.0130: ":profdel func" does not work if func was called already
Problem:    ":profdel func" does not work if func was called already.
            (Dominique Pelle)
Solution:   Reset uf_profiling and add a flag to indicate initialization was
            done.
2018-06-30 18:28:03 +02:00
Bram Moolenaar 668324ef4f patch 8.1.0129: still some xterm-like terminals get a stray "p"
Problem:    Still some xterm-like terminals get a stray "p" on startup.
Solution:   Consider all terminals that reply with a version smaller than 95
            as not an xterm. (James McCoy)
2018-06-30 17:09:26 +02:00
Bram Moolenaar 304925e750 patch 8.1.0128: building with MinGW does not work out-of-the-box
Problem:    Building with MinGW does not work out-of-the-box.
Solution:   Add instructions for MSYS2.  Set default WINVER.  Add batch files
            to set $PATH for MSYS2.
2018-06-30 16:27:02 +02:00
Thach Tran 14ccd63f90 Fix #690 build on Xcode 10 beta 2018-06-29 16:25:20 -07:00
Bram Moolenaar 7c365fb190 patch 8.1.0127: build failure when disabling the session feature
Problem:    Build failure when disabling the session feature. (Pawel Slowik)
Solution:   Adjust #ifdef for vim_chdirfile().
2018-06-29 20:28:31 +02:00
Bram Moolenaar 307ac5c68e patch 8.1.0126: various problems with 'vartabstop'
Problem:    Various problems with 'vartabstop'.
Solution:   Fix memory leak.  Fix crash. Add a few more tests. (Christian
            Brabandt, closes #3076)
2018-06-28 22:23:00 +02:00
Giemsa 1a7ed927f0 Fix: failed to select some fonts on high sierra 2018-06-29 04:31:04 +09:00
Bram Moolenaar 630afe889a patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Problem:    Virtual edit replace with multi-byte fails at end of line. (Lukas
            Werling)
Solution:   use ins_char() to add the character. (Christian Brabandt,
            closes #3114)  Rename PCHAR() to PBYTE() to avoid mistakes like
            this.
2018-06-28 19:26:28 +02:00
Bram Moolenaar d8b37a53bd patch 8.1.0124: has('vcon') returns true even for non-win32 terminal
Problem:    has('vcon') returns true even for non-win32 terminal.
Solution:   Check the terminal type. (Nobuhiro Takasaki, closes #3106)
2018-06-28 15:50:28 +02:00
Bram Moolenaar b0eb14f939 patch 8.1.0123: MS-Windows: colors are wrong after setting 'notgc'
Problem:    MS-Windows: colors are wrong after setting 'notgc'.
Solution:   Only call control_console_color_rgb() for the win32 terminal.
            (Nobuhiro Takasaki, closes #3107)
2018-06-28 15:29:52 +02:00
Bram Moolenaar 0c18319872 patch 8.1.0122: translators don't always understand the maintainer message
Problem:    Translators don't always understand the maintainer message.
Solution:   Add a comment that ends up in the generated po file. (Christian
            Brabandt, closes #3037)
2018-06-28 14:54:43 +02:00
Bram Moolenaar ca4b613c69 patch 8.1.0121: crash when using ballooneval related to 'vartabstop'
Problem:    Crash when using ballooneval related to 'vartabstop'.
Solution:   Initialize balloonEval->vts to NULL. (Markus Braun)
2018-06-28 12:05:11 +02:00
Bram Moolenaar dc9e955fb0 patch 8.1.0120: buffer 'modified' set even when :sort has no changes
Problem:    Buffer 'modified' set even when :sort has no changes.
Solution:   Only set 'modified' when lines are moved. (Jason Franklin)
2018-06-28 11:28:08 +02:00
Bram Moolenaar ec12d64909 patch 8.1.0119: failing test goes unnoticed because messages is not written
Problem:    Failing test goes unnoticed because testdir/messages is not
            written.
Solution:   Set 'nomodifiable' only local to the buffer.
2018-06-27 23:12:36 +02:00
Bram Moolenaar f52f9ea8f5 patch 8.1.0118: duplicate error message for put command
Problem:    Duplicate error message for put command.
Solution:   Check return value of u_save(). (Jason Franklin)
2018-06-27 20:49:44 +02:00
Kazuki Sakamoto ea32277f0e Merge remote-tracking branch 'vim/master' 2018-06-26 21:34:02 -07:00
Bram Moolenaar bd87eb38c5 patch 8.1.0117: URL in install program still points to SourceForge
Problem:    URL in install program still points to SourceForge.
Solution:   Change it to www.vim.org. (closes #3100)
2018-06-26 23:18:45 +02:00
Kazuki Sakamoto a454795bd1 Merge remote-tracking branch 'vim/master' 2018-06-25 23:56:47 -07:00
Kazuki Sakamoto 6ff781f67e Merge pull request #700 from ichizok/fix/fetch-glyphs
Fix fetchGlyphsAndAdvances() in CoreText renderer
2018-06-25 23:56:34 -07:00
Bram Moolenaar a87b72cc31 patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Problem:    Display problem with 'vartabstop' and 'linebreak'. (Chauca
            Fuentes)
Solution:   Call tabstop_padding(). (Christian Brabandt, closes #3076)
2018-06-25 21:24:51 +02:00
ichizok eec7910d54 Fix fetchGlyphsAndAdvances() in CoreText renderer 2018-06-25 19:21:03 +09:00
Bram Moolenaar b7a5ab112a patch 8.1.0115: the matchparen plugin may throw an error
Problem:    The matchparen plugin may throw an error.
Solution:   Change the skip argument from zero to "0".
2018-06-25 00:05:59 +02:00
Bram Moolenaar 0119a59ffd patch 8.1.0114: confusing variable name
Problem:    Confusing variable name.
Solution:   Rename new_ts to new_vts_array.  Change zero to NULL.
2018-06-24 23:53:28 +02:00
Bram Moolenaar 675e8d6adb Update runtime files. 2018-06-24 20:42:01 +02:00
Bram Moolenaar 829adb7460 patch 8.1.0113: compiler warning for unused variable
Problem:    Compiler warning for unused variable. (Yegappan Lakshmanan)
Solution:   Add UNUSED. (Christian Brabandt)
2018-06-24 19:24:03 +02:00
Bram Moolenaar 3dddb09c98 patch 8.1.0112: no error when using bad arguments with searchpair()
Problem:    No error when using bad arguments with searchpair().
Solution:   Add error messages.
2018-06-24 19:01:59 +02:00
Bram Moolenaar d1d037e901 patch 8.1.0111: .po files do not use recommended names
Problem:    .po files do not use recommended names.
Solution:   Give a warning if the recommended name is not used.  Accept the
            recommended name for conversion. (Christian Brabandt, Ken Takata)
2018-06-24 18:04:50 +02:00
Bram Moolenaar fc0896093c patch 8.1.0110: file name not displayed with ":file"
Problem:    File name not displayed with ":file" when 'F' is in 'shortmess'.
Solution:   Always display the file name when there is no argument (Christian
            Brabandt, closes #3070)
2018-06-24 16:53:35 +02:00
Bram Moolenaar 7cb6eecd32 patch 8.1.0109: new po makefile missing from distribution
Problem:    New po makefile missing from distribution.
Solution:   Add it to the file list.
2018-06-24 15:56:24 +02:00
Bram Moolenaar a4a2934e59 patch 8.1.0108: no Danish translations
Problem:    No Danish translations.
Solution:   Add Danish message translations. (closes #3073)  Move list of
            languages to a common makefile.
2018-06-24 15:52:56 +02:00
Bram Moolenaar defe6424ae patch 8.1.0107: Python: getting buffer option clears message
Problem:    Python: getting buffer option clears message. (Jacob Niehus)
Solution:   Don't use aucmd_prepbuf(). (closes #3079)
2018-06-24 15:14:07 +02:00
Bram Moolenaar eee3e94669 patch 8.1.0106: build fails when HAVE_DATE_TIME is undefined
Problem:    Build fails when HAVE_DATE_TIME is undefined.
Solution:   Always define init_longVersion(). (Christian Brabandt,
            closes #3075)
2018-06-24 14:44:46 +02:00
Bram Moolenaar 04958cbaf2 patch 8.1.0105: all tab stops are the same
Problem:    All tab stops are the same.
Solution:   Add the variable tabstop feature. (Christian Brabandt,
            closes #2711)
2018-06-23 19:23:02 +02:00
Bram Moolenaar 5ec7414a1c patch 8.1.0104: can't build without the +eval feature
Problem:    Can't build without the +eval feature.
Solution:   Add #ifdef.
2018-06-23 17:14:41 +02:00
Bram Moolenaar 35fb6fbf72 patch 8.1.0103: long version string cannot be translated
Problem:    Long version string cannot be translated.
Solution:   Build the string in init_longVersion().
2018-06-23 16:12:21 +02:00
Bram Moolenaar 1f8c469fe2 patch 8.1.0102: cannot build without syntax highlighting
Problem:    Cannot build without syntax highlighting.
Solution:   Add #ifdef around using reg_do_extmatch.
2018-06-23 15:09:10 +02:00
Bram Moolenaar 81612b7a7d patch 8.1.0101: no test for getcmdwintype()
Problem:    No test for getcmdwintype().
Solution:   Add a test. (Dominique Pelle, closes #3068)
2018-06-23 14:55:03 +02:00
Bram Moolenaar 6dccc962f3 patch 8.1.0100: terminal debugger: error when setting a watch point
Problem:    Terminal debugger: error when setting a watch point.
Solution:   Don't try defining a sign for a watch point.
2018-06-23 14:36:17 +02:00
Bram Moolenaar 3c867daaf0 patch 8.1.0099: exclamation mark in error message not needed
Problem:    Exclamation mark in error message not needed.
Solution:   Remove the exclamation mark.
2018-06-23 14:34:28 +02:00
Bram Moolenaar bcf9442307 patch 8.1.0098: segfault when pattern with \z() is very slow
Problem:    Segfault when pattern with \z() is very slow.
Solution:   Check for NULL regprog.  Add "nfa_fail" to test_override() to be
            able to test this.  Fix that 'searchhl' resets called_emsg.
2018-06-23 14:21:42 +02:00
Bram Moolenaar 5efa0102de patch 8.1.0097: superfluous space before exclamation mark
Problem:    Superfluous space before exclamation mark.
Solution:   Remove the space.  Don't translate debug message.
2018-06-22 21:42:30 +02:00
Bram Moolenaar 8c55533c6f patch 8.1.0096: inconsistent use of the word autocommands
Problem:    Inconsistent use of the word autocommands.
Solution:   Don't use auto-commands or "auto commands".
2018-06-22 21:30:31 +02:00
Kazuki Sakamoto 21f99c1562 Merge remote-tracking branch 'vim/master' 2018-06-21 20:49:30 -07:00
Bram Moolenaar 39902a06d9 patch 8.1.0095: dialog for ":browse tabnew" says "new window"
Problem:    Dialog for ":browse tabnew" says "new window".
Solution:   Use "new tab page". (closes #3053)
2018-06-21 22:10:08 +02:00
Bram Moolenaar 32aaf5ae07 patch 8.1.0094: help text "usage:" is not capatalized
Problem:    Help text "usage:" is not capatalized.
Solution:   Make it "Usage:". (closes #3044)
2018-06-21 21:38:33 +02:00
Bram Moolenaar 2ed890f1f8 patch 8.1.0093: non-MS-Windows: Cannot interrupt gdb when program is running
Problem:    non-MS-Windows: Cannot interrupt gdb when program is running.
Solution:   Only use debugbreak() on MS-Windows.
2018-06-21 20:31:14 +02:00
Bram Moolenaar 71ef1ba5e9 patch 8.1.0092: prompt buffer test fails
Problem:    Prompt buffer test fails.
Solution:   Set 'nomodified' before closing the window. (Ozaki Kiichi,
            closes #3051
2018-06-21 12:07:04 +02:00
Bram Moolenaar 4551c0a9fc patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Problem:    MS-Windows: Cannot interrupt gdb when program is running.
Solution:   Add debugbreak() and use it in the terminal debugger.
            Respect 'modified' in a prompt buffer.
2018-06-20 22:38:21 +02:00
Bram Moolenaar 9b0c5c23bd patch 8.1.0090: "..." used inconsistently in a message
Problem:    "..." used inconsistently in a message.
Solution:   Define the message with " ..." once. (hint by Ken Takata)
2018-06-20 20:37:36 +02:00
Bram Moolenaar a15b0a936d patch 8.1.0089: error when ending the terminal debugger
Problem:    error when ending the terminal debugger
Solution:   Fix deleting defined signs for breakpoints.  Make the debugger
            work better on MS-Windows.
2018-06-19 22:34:46 +02:00
Bram Moolenaar 5319191a2a patch 8.1.0088: terminal test for stdout and stderr is a bit flaky
Problem:    Terminal test for stdout and stderr is a bit flaky.
Solution:   Wait for both stdout and stderr to have been processed. (Ozaki
            Kiichi, closes #2991)
2018-06-19 20:08:14 +02:00
Bram Moolenaar f9c3883b11 patch 8.1.0087: v:shell_error is always zero when using terminal for "!cmd"
Problem:    v:shell_error is always zero when using terminal for "!cmd".
Solution:   Use "exitval" of terminal-job. (Ozaki Kiichi, closes #2994)
2018-06-19 19:59:20 +02:00
Bram Moolenaar 1ceebb4efc patch 8.1.0086: no tests for libcall() and libcallnr()
Problem:    No tests for libcall() and libcallnr().
Solution:   Add tests. (Dominique Pelle, closes #2982)
2018-06-19 19:46:06 +02:00
Bram Moolenaar 5f8f2d378a patch 8.1.0085: no test for completing user name and language
Problem:    No test for completing user name and language.
Solution:   Add tests. (Dominique Pelle, closes #2978)
2018-06-19 19:09:09 +02:00
Bram Moolenaar 828c3d7083 patch 8.1.0084: user name completion does not work on MS-Windows
Problem:    User name completion does not work on MS-Windows.
Solution:   Use NetUserEnum() to get user names. (Yasuhiro Matsumoto)
2018-06-19 18:58:07 +02:00
Bram Moolenaar 8516071124 patch 8.1.0083: "is" and "as" have trouble with quoted punctuation
Problem:    "is" and "as" have trouble with quoted punctuation.
Solution:   Check for punctuation before a quote. (Jason Franklin)
2018-06-19 18:27:41 +02:00
Bram Moolenaar 1d4754f96f patch 8.1.0082: in terminal window, typing : at more prompt, inserts ':'
Problem:    In terminal window, typing : at more prompt, inserts ':' instead
            of starting another Ex command.
Solution:   Add skip_term_loop and set it when putting ':' in the typeahead
            buffer.
2018-06-19 17:49:24 +02:00
Bram Moolenaar f07f9e731e patch 8.1.0081: the terminal debugger doesn't adjust to changed 'background'
Problem:    The terminal debugger doesn't adjust to changed 'background'.
Solution:   Add an OptionSet autocommand. (Christian Brabandt)
2018-06-19 17:27:53 +02:00
Bram Moolenaar de1a83147a patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Problem:    Can't see the breakpoint number in the terminal debugger.
Solution:   Use the breakpoint number for the sign. (Christian Brabandt)
2018-06-19 16:59:54 +02:00
Bram Moolenaar 8df6e5d467 patch 8.1.0079: superfluous space in messages
Problem:    Superfluous space in messages.
Solution:   Remove the spaces. (closes #3030)
2018-06-19 14:45:37 +02:00
Bram Moolenaar d2f3a8b878 Update runtime files. 2018-06-19 14:35:59 +02:00
Bram Moolenaar c166927a32 patch 8.1.0078: "..." used inconsistently in messages
Problem:    "..." used inconsistently in messages.
Solution:   Drop the space before " ...".
2018-06-19 14:23:53 +02:00
Bram Moolenaar 5c3670718b patch 8.1.0077: header of README file is not nice
Problem:    Header of README file is not nice.
Solution:   Move text to the bottom.
2018-06-18 22:31:11 +02:00
Bram Moolenaar 0ce7413a83 patch 8.1.0076: command getting cleared with CTRL-W : in a terminal window
Problem:    Command getting cleared with CTRL-W : in a terminal window. (Jason
            Franklin)
Solution:   Call redraw_after_callback() when editing the command line.
2018-06-18 22:15:50 +02:00
Bram Moolenaar 252b7ee823 patch 8.1.0075: no Vim logo in README file
Problem:    No Vim logo in README file.
Solution:   Add one. (Árni Dagur, closes #3024)
2018-06-18 22:00:22 +02:00
Bram Moolenaar d6b01a2d38 patch 8.1.0074: crash when running quickfix tests
Problem:    Crash when running quickfix tests.
Solution:   Do not alloc a new location list when checking for the reference
            to be still valid.
2018-06-18 21:53:28 +02:00
Bram Moolenaar 0366c0161e patch 8.1.0073: crash when autocommands call setloclist()
Problem:    Crash when autocommands call setloclist(). (Dominique Pelle)
Solution:   If the quickfix list changes then don't jump to the error.
2018-06-18 20:52:13 +02:00
Kazuki Sakamoto ed3fd67cfc MacVim Snapshot 149
Binary targets macOS 10.8+

- Vim patch 8.1.0072

Script interfaces have compatibility with these versions

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.6
- Ruby 2.5
2018-06-17 15:52:28 -07:00
Kazuki Sakamoto 678963c2b8 Merge remote-tracking branch 'vim/master' 2018-06-17 15:38:13 -07:00
Bram Moolenaar dcdeaaf150 patch 8.1.0072: use of 'termwinkey' is inconsistent
Problem:    Use of 'termwinkey' is inconsistent.
Solution:   Change the documentation and the behavior. (Ken Takata)
2018-06-17 22:19:12 +02:00
Bram Moolenaar b3307b5e7e patch 8.1.0071: terminal debugger only works with the terminal feature
Problem:    Terminal debugger only works with the terminal feature.
Solution:   Make it also work with a prompt buffer.  Makes it possible to use
            on MS-Windows. Various other improvements. (closes #3012)
2018-06-17 21:34:11 +02:00
Bram Moolenaar 222cd20e26 patch 8.1.0070: missing part of the changes for prompt_setinterrupt()
Problem:    Missing part of the changes for prompt_setinterrupt().
Solution:   Add the missing changes.
2018-06-17 20:10:39 +02:00
Bram Moolenaar 0e5979a6d4 patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Problem:    Cannot handle pressing CTRL-C in a prompt buffer.
Solution:   Add prompt_setinterrupt().
2018-06-17 19:36:33 +02:00
Bram Moolenaar 2f82ca7d79 patch 8.1.0068: nasty autocommands can still cause using freed memory
Problem:    Nasty autocommands can still cause using freed memory.
Solution:   Disallow using setloclist() and setqflist() recursively.
2018-06-17 19:22:52 +02:00
Bram Moolenaar a5616b0136 patch 8.1.0067: syntax highlighting not working when re-entering a buffer
Problem:    Syntax highlighting not working when re-entering a buffer.
Solution:   Do force executing autocommands when not called recursively.
2018-06-17 19:08:30 +02:00
Bram Moolenaar c3ffc9b8d3 patch 8.1.0066: nasty autocommand causes using freed memory
Problem:    Nasty autocommand causes using freed memory. (Dominique Pelle)
Solution:   Do not force executing autocommands if the value of 'syntax' or
            'filetype' did not change.
2018-06-17 17:32:58 +02:00
Bram Moolenaar 0e6e179f55 patch 8.1.0065: balloon displayed at the wrong position
Problem:    Balloon displayed at the wrong position.
Solution:   Do not reposition the popup menu at the cursor position.
2018-06-17 17:10:59 +02:00
Bram Moolenaar 942b4541a2 patch 8.1.0064: typing CTRL-W in a prompt buffer shows mode "-- --"
Problem:    Typing CTRL-W in a prompt buffer shows mode "-- --".
Solution:   Set restart_edit to 'A' and check for it.
2018-06-17 16:23:34 +02:00
Bram Moolenaar d595a1910c patch 8.1.0063: Mac: NSStringPboardType is deprecated
Problem:    Mac: NSStringPboardType is deprecated.
Solution:   Use NSPasteboardTypeString. (Akshay Hegde, closes #3022)
2018-06-17 15:01:04 +02:00
Bram Moolenaar 491ac28d5f patch 8.1.0062: popup menu broken if a callback changes the window layout
Problem:    Popup menu broken if a callback changes the window layout. (Qiming
            Zhao)
Solution:   Recompute the popup menu position if needed.  Redraw the ruler
            even when the popup menu is displayed.
2018-06-17 14:47:55 +02:00
Bram Moolenaar 84a9308511 patch 8.1.0061: window title is wrong after resetting and setting 'title'
Problem:    Window title is wrong after resetting and setting 'title'.
Solution:   Move resetting the title into maketitle(). (Jason Franklin)
2018-06-16 22:58:15 +02:00
Bram Moolenaar 600323b4ef patch 8.1.0060: crash when autocommands delete the current buffer
Problem:    Crash when autocommands delete the current buffer. (Dominique
            Pelle)
Solution:   Check that autocommands don't change the buffer.
2018-06-16 22:16:47 +02:00
Bram Moolenaar bc5020aa4d patch 8.1.0059: displayed digraph for "ga" wrong with 'encoding' "cp1251"
Problem:    Displayed digraph for "ga" wrong with 'encoding' "cp1251".
Solution:   Convert from 'encoding' to "utf-8" if needed. (closes #3015)
2018-06-16 17:25:22 +02:00
Bram Moolenaar bfa4246768 patch 8.1.0058: display problem with margins and scrolling
Problem:    Display problem with margins and scrolling.
Solution:   Place the cursor in the right column. (Kouichi Iwamoto,
            closes #3016)
2018-06-16 16:20:52 +02:00
Bram Moolenaar 6ba3ec1bac patch 8.1.0057: popup menu displayed wrong when using autocmd
Problem:    Popup menu displayed wrong when using autocmd.
Solution:   Use aucmd_prepbuf().  Force updating status line if the popup menu
            is going to be redrawn anyway. (Christian Brabandt, closes #3009)
2018-06-16 15:32:38 +02:00
Bram Moolenaar 43dee181f5 patch 8.1.0056: crash when using :hardcopy with illegal byte
Problem:    Crash when using :hardcopy with illegal byte.
Solution:   Check for string_convert() returning NULL. (Dominique Pelle)
2018-06-16 14:44:11 +02:00
Bram Moolenaar 52d3aaeea4 patch 8.1.0055: complete test has wrong order of arguments
Problem:    Complete test has wrong order of arguments. Wrong type for
            sentinel variable.
Solution:   Swap arguments, use VAR_UNKNOWN. (Ozaki Kiichi)
2018-06-13 21:27:24 +02:00
Bram Moolenaar 5ecdf96422 patch 8.1.0054: compiler warning for using %ld for "long long"
Problem:    Compiler warning for using %ld for "long long".
Solution:   Add a type cast. (closes #3002)
2018-06-13 20:49:50 +02:00
Kazuki Sakamoto cf915c85f7 Merge remote-tracking branch 'vim/master' 2018-06-12 20:28:23 -07:00
Bram Moolenaar ffa9684150 patch 8.1.0053: first argument of 'completefunc' has inconsistent type
Problem:    The first argument given to 'completefunc' can be Number or
            String, depending on the value.
Solution:   Avoid guessing the type of an argument, use typval_T in the
            callers of call_vim_function(). (Ozaki Kiichi, closes #2993)
2018-06-12 22:05:14 +02:00
Bram Moolenaar 83f4cbd973 patch 8.1.0052: when mapping to <Nop> times out the next mapping is skipped
Problem:    When a mapping to <Nop> times out the next mapping is skipped.
Solution:   Reset "timedout" when waiting for a character. (Christian
            Brabandt, closes #2921)
2018-06-12 21:35:40 +02:00
Bram Moolenaar 79c6b51e40 patch 8.1.0051: MS-Windows: missing #endif
Problem:    MS-Windows: missing #endif.
Solution:   Add the #endif.
2018-06-12 21:11:12 +02:00
Bram Moolenaar 493359eb3b patch 8.1.0050: $VIM_TERMINAL is also set when not in a terminal window
Problem:    $VIM_TERMINAL is also set when not in a terminal window.
Solution:   Pass a flag to indicate whether the job runs in a terminal.
2018-06-12 20:25:52 +02:00
Bram Moolenaar d7a137fb0d patch 8.1.0049: shell cannot tell running in a terminal window
Problem:    Shell cannot tell running in a terminal window.
Solution:   Add the VIM_TERMINAL environment variable. (Christian Brabandt)
2018-06-12 18:05:24 +02:00
Bram Moolenaar 07ccf7ce7f patch 8.1.0048: vim_str2nr() does not handle numbers close to the maximum
Problem:    vim_str2nr() does not handle numbers close to the maximum.
Solution:   Check for overflow more precisely. (Ken Takata, closes #2746)
2018-06-12 17:25:36 +02:00
Bram Moolenaar 1983401088 patch 8.1.0047: no completion for :unlet $VAR
Problem:    No completion for :unlet $VAR.
Solution:   Add completion. (Jason Franklin)
2018-06-12 17:03:39 +02:00
Bram Moolenaar 1c3c10492a patch 8.1.0046: loading a session file fails if 'winheight' is big
Problem:    Loading a session file fails if 'winheight' is a big number.
Solution:   Set 'minwinheight' to zero at first.  Don't give an error when
            setting 'minwinheight' while 'winheight' is a big number.
            Fix using vertical splits. Fix setting 'minwinwidth'.
            (closes #2970)
2018-06-12 16:49:30 +02:00
Bram Moolenaar ae0f30b761 patch 8.1.0045: popup test isn't run completely
Problem:    Popup test isn't run completely.
Solution:   Remove "finish".  Clean up function definitions.
2018-06-12 15:22:43 +02:00
Bram Moolenaar 8903676d3d patch 8.1.0044: if a test function exists Vim this may go unnoticed
Problem:    If a test function exists Vim this may go unnoticed.
Solution:   Check for a test funtion quitting Vim.  Fix tests that did exit
            Vim.
2018-06-12 14:58:39 +02:00
Bram Moolenaar 7580849df9 patch 8.1.0043: ++bad argument of :edit does not work properly
Problem:    ++bad argument of :edit does not work properly.
Solution:   Return FAIL from get_bad_opt() only when there is no valid
            argument. (Dominique Pelle, Christian Brabandt, closes #2966,
            closes #2947)
2018-06-12 12:39:41 +02:00
Bram Moolenaar f98b845dd1 patch 8.1.0042: if omni completion opens a window Insert mode is stopped
Problem:    If omni completion opens a window Insert mode is stopped.
            (Hirohito Higashi)
Solution:   Only set stop_insert_mode in a prompt buffer window.
2018-06-10 14:39:52 +02:00
Bram Moolenaar e950f9992b patch 8.1.0041: attribute "width" missing from python window attribute list
Problem:    Attribute "width" missing from python window attribute list.
Solution:   Add the item. (Ken Takata) Order the list like the items are used
            in the WindowAttr() function.
2018-06-10 13:55:55 +02:00
Bram Moolenaar e31e256ba1 patch 8.1.0040: warnings from 64-bit compiler
Problem:    Warnings from 64-bit compiler.
Solution:   Add type casts. (Mike Williams)
2018-06-10 13:12:55 +02:00
724 changed files with 52644 additions and 17653 deletions
+28 -9
View File
@@ -4,11 +4,23 @@ dist: trusty
os:
- osx
osx_image: xcode9.3
osx_image:
- xcode7.3
- xcode8.3
- xcode9.4
- xcode10.1
compiler:
- clang
addons:
homebrew:
packages:
- lua
- ruby
- python3
update: true
env:
- MACOSX_DEPLOYMENT_TARGET=10.8
XCODEFLAGS="MACOSX_DEPLOYMENT_TARGET=10.8"
@@ -19,34 +31,40 @@ env:
vi_cv_path_plain_lua=/usr/local/bin/lua
vi_cv_dll_name_perl=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE/libperl.dylib
vi_cv_dll_name_python=/System/Library/Frameworks/Python.framework/Versions/2.7/Python
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.6/Python
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.7/Python
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
"CONFOPT='--with-features=huge --enable-multibyte --enable-terminal --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --with-ruby-command=/usr/local/bin/ruby --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
"CONFOPT='--with-features=huge --enable-multibyte --enable-terminal --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --with-ruby-command=/usr/local/opt/ruby/bin/ruby --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
DYLD_LIBRARY_PATH=/usr/local/opt/ruby/lib:$DYLD_LIBRARY_PATH # Ruby is keg-only in Homebrew, so need to manually link in the path so Vim will know where to look for the binaries.
sudo: false
before_install:
- brew update || brew update
- brew upgrade python
- brew install lua
- brew install ruby
script:
- set -e
- echo "Configuring MacVim" && echo -en "travis_fold:start:config\\r"
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure $CONFOPT --enable-fail-if-missing
- cat src/auto/config.mk
- cat src/auto/config.h
- grep -q -- "-DDYNAMIC_PERL_DLL=\\\\\"$vi_cv_dll_name_perl\\\\\"" src/auto/config.mk
- grep -q -- "-DDYNAMIC_PYTHON_DLL=\\\\\"$vi_cv_dll_name_python\\\\\"" src/auto/config.mk
- grep -q -- "-DDYNAMIC_PYTHON3_DLL=\\\\\"$vi_cv_dll_name_python3\\\\\"" src/auto/config.mk
- echo -en "travis_fold:end:config\\r"
- echo "Building MacVim" && echo -en "travis_fold:start:build\\r"
- make -j$NPROC
- echo -en "travis_fold:end:build\\r"
- echo "Testing MacVim" && echo -en "travis_fold:start:test\\r"
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "lua print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "perl VIM::Msg(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "py import sys; print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "py3 import sys; print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "ruby puts(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result;
- make test
- echo -en "travis_fold:end:test\\r"
- echo "Testing MacVim (GUI)" && echo -en "travis_fold:start:test_gui\\r"
- make -C src/testdir clean
- make -C src testgui
- echo -en "travis_fold:end:test_gui\\r"
before_deploy:
- make -C src macvim-dmg
@@ -57,6 +75,7 @@ deploy:
file: src/MacVim/build/Release/MacVim.dmg
skip_cleanup: true
on:
condition: $TRAVIS_OSX_IMAGE = xcode10.1
all_branches: true
tags: true
repo: macvim-dev/macvim
+21 -1
View File
@@ -51,4 +51,24 @@ Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
distribution with Vim.
If the maintainer does not react, contact the vim-dev maillist.
If the maintainer does not respond, contact the vim-dev maillist.
# Translations
Translating messages and runtime files is very much appreciated! These things can be translated:
* Messages in Vim, see [src/po/README.txt][1]
* Menus, see [runtime/lang/README.txt][2]
* Vim tutor, see [runtime/tutor/README.txt][3]
* Manual pages, see [runtime/doc/\*.1][4] for examples
* Desktop icon, see [runtime/vim.desktop][5] and [runtime/gvim.desktop][6]
The help files can be translated and made available separately.
See https://www.vim.org/translations.php for examples.
[1]: https://github.com/vim/vim/blob/master/src/po/README.txt
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
[5]: https://github.com/vim/vim/blob/master/runtime/vim.desktop
[6]: https://github.com/vim/vim/blob/master/runtime/gvim.desktop
+32 -6
View File
@@ -1,5 +1,5 @@
# List of distributed Vim files.
# Used by Makefile and upload.aap.
# Used by Makefile.
# source files for all source archives
SRC_ALL = \
@@ -7,6 +7,7 @@ SRC_ALL = \
.lgtm.yml \
.travis.yml \
appveyor.yml \
src/Make_all.mak \
src/appveyor.bat \
src/README.txt \
src/alloc.h \
@@ -100,9 +101,7 @@ SRC_ALL = \
src/window.c \
src/tee/tee.c \
src/xxd/xxd.c \
src/main.aap \
src/testdir/gen_opt_test.vim \
src/testdir/main.aap \
src/testdir/README.txt \
src/testdir/Make_all.mak \
src/testdir/*.in \
@@ -142,6 +141,7 @@ SRC_ALL = \
src/testdir/if_ver*.vim \
src/testdir/color_ramp.vim \
src/proto.h \
src/protodef.h \
src/proto/arabic.pro \
src/proto/beval.pro \
src/proto/blowfish.pro \
@@ -228,7 +228,7 @@ SRC_ALL = \
src/libvterm/src/parser.c \
src/libvterm/src/pen.c \
src/libvterm/src/rect.h \
src/libvterm/src/screen.c \
src/libvterm/src/termscreen.c \
src/libvterm/src/state.c \
src/libvterm/src/unicode.c \
src/libvterm/src/utf8.h \
@@ -274,6 +274,22 @@ SRC_ALL = \
src/libvterm/t/92lp1640917.test \
src/libvterm/t/harness.c \
src/libvterm/t/run-test.pl \
src/xdiff/COPYING \
src/xdiff/README.txt \
src/xdiff/xdiff.h \
src/xdiff/xdiffi.c \
src/xdiff/xdiffi.h \
src/xdiff/xemit.c \
src/xdiff/xemit.h \
src/xdiff/xhistogram.c \
src/xdiff/xinclude.h \
src/xdiff/xmacros.h \
src/xdiff/xpatience.c \
src/xdiff/xprepare.c \
src/xdiff/xprepare.h \
src/xdiff/xtypes.h \
src/xdiff/xutils.c \
src/xdiff/xutils.h \
# source files for Unix only
@@ -290,7 +306,6 @@ SRC_UNIX = \
src/INSTALLx.txt \
src/Makefile \
src/auto/configure \
src/config.aap.in \
src/config.h.in \
src/config.mk.dist \
src/config.mk.in \
@@ -412,6 +427,8 @@ SRC_DOS = \
src/msvc2008.bat \
src/msvc2010.bat \
src/msvc2015.bat \
src/msys32.bat \
src/msys64.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
@@ -609,7 +626,6 @@ RT_ALL = \
runtime/macros/matchit.vim \
runtime/macros/maze/README.txt \
runtime/macros/maze/[mM]akefile \
runtime/macros/maze/main.aap \
runtime/macros/maze/maze.c \
runtime/macros/maze/maze_5.78 \
runtime/macros/maze/maze_mac \
@@ -637,6 +653,7 @@ RT_ALL = \
runtime/tutor/tutor \
runtime/tutor/tutor.vim \
runtime/vimrc_example.vim \
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim \
runtime/pack/dist/opt/dvorak/plugin/dvorak.vim \
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
@@ -674,6 +691,11 @@ RT_SCRIPTS = \
runtime/compiler/README.txt \
runtime/indent/*.vim \
runtime/indent/README.txt \
runtime/indent/Makefile \
runtime/indent/testdir/README.txt \
runtime/indent/testdir/*.vim \
runtime/indent/testdir/*.in \
runtime/indent/testdir/*.ok \
runtime/ftplugin/*.vim \
runtime/ftplugin/logtalk.dict \
runtime/ftplugin/README.txt \
@@ -707,6 +729,7 @@ RT_NO_UNIX = \
# runtime for Amiga (also in the extra archive)
RT_AMI_DOS = \
runtime/doc/evim.man \
runtime/doc/vim.man \
runtime/doc/vimdiff.man \
runtime/doc/vimtutor.man \
@@ -847,6 +870,8 @@ IN_README_DIR = \
# generic language files
LANG_GEN = \
runtime/doc/*-da.1 \
runtime/doc/*-da.UTF-8.1 \
runtime/doc/*-de.1 \
runtime/doc/*-de.UTF-8.1 \
runtime/doc/*-fr.1 \
@@ -907,6 +932,7 @@ LANG_SRC = \
src/po/check.vim \
src/po/cleanup.vim \
src/po/Makefile \
src/po/Make_all.mak \
src/po/Make_cyg.mak \
src/po/Make_ming.mak \
src/po/Make_mvc.mak \
+78
View File
@@ -0,0 +1,78 @@
VIM LICENSE
I) There are no restrictions on distributing unmodified copies of Vim except
that they must include this license text. You can also distribute
unmodified parts of Vim, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Vim sources, plus your own usage
examples and Vim scripts.
II) It is allowed to distribute a modified (or extended) version of Vim,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Vim must be distributed in one of the following five ways:
a) If you make changes to Vim yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Vim you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Vim. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
changes it will be announced in appropriate places (most likely
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
impossible to contact the maintainer, the obligation to send him
your changes ceases. Once the maintainer has confirmed that he has
received your changes they will not have to be sent again.
b) If you have received a modified Vim that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Vim you distribute. This may be done in the form of a
context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Vim.
d) When you have a modified Vim which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Vim maintainer without fee or restriction, and
permits the Vim maintainer to include the changes in the official
version of Vim without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Vim. When the maintainer
or someone who you distributed the modified Vim to asks you (in
any way) for the changes within this period, you must make them
available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Vim, or as long
as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Vim under the GNU GPL version 2 or
any later version.
3) A message must be added, at least in the output of the ":version"
command and in the intro screen, such that the user of the modified Vim
is able to see that it was modified. When distributing as mentioned
under 2)e) adding the message is only required for as far as this does
not conflict with the license used for the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Vim, you are encouraged to use
the Vim license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL.
If the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<maintainer@vim.org>
IV) It is not allowed to remove this license from the distribution of the Vim
sources, parts of it or from a modified version. You may use this
license for previous Vim releases instead of the license that they came
with, at your option.
+1 -4
View File
@@ -1,10 +1,7 @@
Vim - the text editor - for Mac OS X
This is the official GitHub repository for MacVim, the macOS port of [vim](https://github.com/vim/vim). It is based on
[Björn Winckler's repository](https://github.com/b4winckler/macvim), which was official until he stepped down as the
maintainer of the port.
- MacVim homepage http://macvim-dev.github.io/macvim
- MacVim homepage https://macvim-dev.github.io/macvim
- Vim README https://github.com/macvim-dev/macvim/blob/master/README_vim.md
+1 -1
View File
@@ -1,4 +1,4 @@
README_zOS.txt for version 8.1 of Vim: Vi IMproved.
README_os390.txt for version 8.1 of Vim: Vi IMproved.
This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim.
+8 -6
View File
@@ -15,6 +15,7 @@ To build the installable .exe:
vimrun.exe,
install.exe,
uninstal.exe,
tee/tee.exe,
xxd/xxd.exe,
Then execute tools/rename.bat to rename the executables. (mv command is
@@ -29,14 +30,15 @@ To build the installable .exe:
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
archive).
5. Go to the OleVim directory and build OpenWithVim.exe and SendToVim.exe (or
get them from a binary archive).
6. Get a "diff.exe" program and put it in the "../.." directory (above the
"vim80" directory, it's the same for all Vim versions).
5. Get a "diff.exe" program. If you skip this the built-in diff will always
be used (which is fine for most users). If you do have your own
"diff.exe" put it in the "../.." directory (above the "vim81" directory,
it's the same for all Vim versions).
You can find one in previous Vim versions or in this archive:
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
Also put winpty32.dll and winpty-agent.exe there.
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim81"
directory). This is required for the terminal window.
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
to do this on Unix. Make sure the file is in DOS file format!
Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

+48
View File
@@ -0,0 +1,48 @@
" Author: Antony Lee <anntzer.lee@gmail.com>
" Description: Helper functions for reStructuredText syntax folding
" Last Modified: 2018-01-07
function s:CacheRstFold()
let closure = {'header_types': {}, 'max_level': 0, 'levels': {}}
function closure.Process(match) dict
let curline = getcurpos()[1]
if has_key(self.levels, curline - 1)
" For over+under-lined headers, the regex will match both at the
" overline and at the title itself; in that case, skip the second match.
return
endif
let lines = split(a:match, '\n')
let key = repeat(lines[-1][0], len(lines))
if !has_key(self.header_types, key)
let self.max_level += 1
let self.header_types[key] = self.max_level
endif
let self.levels[curline] = self.header_types[key]
endfunction
let save_cursor = getcurpos()
silent keeppatterns %s/\v^%(%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+)|%(%(([=`:.''"~^_*+#-])\3{2,}\n)?.{3,}\n([=`:.''"~^_*+#-])\4{2,})$/\=closure.Process(submatch(0))/gn
call setpos('.', save_cursor)
let b:RstFoldCache = closure.levels
endfunction
function RstFold#GetRstFold()
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
if has_key(b:RstFoldCache, v:lnum)
return '>' . b:RstFoldCache[v:lnum]
else
return '='
endif
endfunction
function RstFold#GetRstFoldText()
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
let indent = repeat(' ', b:RstFoldCache[v:foldstart] - 1)
let thisline = getline(v:foldstart)
" For over+under-lined headers, skip the overline.
let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline
return indent . text
endfunction
+33 -6
View File
@@ -1,7 +1,7 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Jun 20
" Last Change: 2018 Aug 20
let s:cpo_save = &cpo
set cpo&vim
@@ -72,8 +72,10 @@ function! ccomplete#Complete(findstart, base)
" Split item in words, keep empty word after "." or "->".
" "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
" We can't use split, because we need to skip nested [...].
" "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
let items = []
let s = 0
let arrays = 0
while 1
let e = match(base, '\.\|->\|\[', s)
if e < 0
@@ -107,6 +109,7 @@ function! ccomplete#Complete(findstart, base)
endwhile
let e += 1
call add(items, strpart(base, s, e - s))
let arrays += 1
let s = e
endif
endwhile
@@ -161,15 +164,26 @@ function! ccomplete#Complete(findstart, base)
endif
endif
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
elseif len(items) == arrays + 1
" Completing one word and it's a local array variable: build tagline
" from declaration line
let match = items[0]
let kind = 'v'
let tagline = "\t/^" . line . '$/'
let res = [{'match': match, 'tagline' : tagline, 'kind' : kind, 'info' : line}]
else
" Completing "var.", "var.something", etc.
let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
endif
endif
if len(items) == 1
if len(items) == 1 || len(items) == arrays + 1
" Only one part, no "." or "->": complete from tags file.
let tags = taglist('^' . base)
if len(items) == 1
let tags = taglist('^' . base)
else
let tags = taglist('^' . items[0] . '$')
endif
" Remove members, these can't appear without something in front.
call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
@@ -516,11 +530,24 @@ function! s:StructMembers(typename, items, all)
endif
endif
" Skip over [...] items
let idx = 0
while 1
if idx >= len(a:items)
let target = '' " No further items, matching all members
break
endif
if a:items[idx][0] != '['
let target = a:items[idx]
break
endif
let idx += 1
endwhile
" Put matching members in matches[].
let matches = []
for l in qflist
let memb = matchstr(l['text'], '[^\t]*')
if memb =~ '^' . a:items[0]
if memb =~ '^' . target
" Skip matches local to another file.
if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*'))
let item = {'match': memb, 'tagline': l['text']}
@@ -540,8 +567,8 @@ function! s:StructMembers(typename, items, all)
endfor
if len(matches) > 0
" Skip over [...] items
let idx = 1
" Skip over next [...] items
let idx += 1
while 1
if idx >= len(a:items)
return matches " No further items, return the result.
+5 -3
View File
@@ -4,7 +4,7 @@
" plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2016 Jan 11
" Last Change: 2018 Jul 02
let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
@@ -19,7 +19,6 @@ function! csscomplete#CompleteCSS(findstart, base)
while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
let start -= 1
endwhile
let b:after = line[compl_begin :]
let b:compl_context = line[0:compl_begin]
return start
endif
@@ -37,11 +36,14 @@ function! csscomplete#CompleteCSS(findstart, base)
" 5. if @ complete at-rule
" 6. if ! complete important
if exists("b:compl_context")
let line = getline('.')
let compl_begin = col('.') - 2
let after = line[compl_begin:]
let line = b:compl_context
let after = b:after
unlet! b:compl_context
else
let line = a:base
let after = ''
endif
let res = []
+2 -2
View File
@@ -126,7 +126,7 @@ endfunc
" This function checks if one of the first ten lines start with a '@'. In
" that case it is probably a change file.
" If the first line starts with # or ! it's probably a ch file.
" If a line has "main", "include", "//" ir "/*" it's probably ch.
" If a line has "main", "include", "//" or "/*" it's probably ch.
" Otherwise CHILL is assumed.
func dist#ft#FTchange()
let lnum = 1
@@ -632,7 +632,7 @@ endfunc
" Choose context, plaintex, or tex (LaTeX) based on these rules:
" 1. Check the first line of the file for "%&<format>".
" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
" 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
" 3. Default to "plain" or to g:tex_flavor, can be set in user's vimrc.
func dist#ft#FTtex()
let firstline = getline(1)
if firstline =~ '^%&\s*\a\+'
File diff suppressed because it is too large Load Diff
+69 -19
View File
@@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2016 Oct 10
" Last Change: 2018 Oct 10
"
" OPTIONS:
"
@@ -146,6 +146,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
end
try
let eventignore = &eventignore
let &eventignore = 'all'
let winheight = winheight(0)
let winnr = winnr()
@@ -216,6 +218,7 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
endif
finally
silent! exec winnr.'resize '.winheight
let &eventignore = eventignore
endtry
endfunction
" }}}
@@ -1393,23 +1396,28 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
for classstructure in classcontents
let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != ''
let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(split(classstructure.content, '\n'), 'function\s\+&\?'.method.'\>')
if doc_str != '' || return_type_hint != ''
break
endif
endfor
if doc_str != ''
if doc_str != '' || return_type_hint != ''
let docblock = phpcomplete#ParseDocBlock(doc_str)
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0 || return_type_hint != ''
if return_type_hint == ''
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if type == ''
for property in docblock.properties
if property.description =~? method
let type = property.type
break
endif
endfor
endif
if type == ''
for property in docblock.properties
if property.description =~? method
let type = property.type
break
endif
endfor
endif
else
let type = return_type_hint
end
" there's a namespace in the type, threat the type as FQCN
if type =~ '\\'
@@ -1483,7 +1491,7 @@ function! phpcomplete#GetMethodStack(line) " {{{
continue
endif
" if it's looks like a string
" if it looks like a string
if current_char == "'" || current_char == '"'
" and it is not escaped
if prev_char != '\' || (prev_char == '\' && prev_prev_char == '\')
@@ -1587,9 +1595,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif function_file != '' && filereadable(function_file)
let file_lines = readfile(function_file)
let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
let docblock = phpcomplete#ParseDocBlock(docblock_str)
if has_key(docblock.return, 'type')
let classname_candidate = docblock.return.type
let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
if type != ''
let classname_candidate = type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
@@ -1821,9 +1831,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif function_file != '' && filereadable(function_file)
let file_lines = readfile(function_file)
let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
let docblock = phpcomplete#ParseDocBlock(docblock_str)
if has_key(docblock.return, 'type')
let classname_candidate = docblock.return.type
let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
if type != ''
let classname_candidate = type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
@@ -2413,6 +2425,44 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endfunction
" }}}
function! phpcomplete#GetFunctionReturnTypeHint(sccontent, search)
let i = 0
let l = 0
let function_line_start = -1
let function_line_end = -1
let sccontent_len = len(a:sccontent)
let return_type = ''
while (i < sccontent_len)
let line = a:sccontent[i]
" search for a function declaration
if line =~? a:search
let l = i
let function_line_start = i
" now search for the first { where the function body starts
while l < sccontent_len
let line = a:sccontent[l]
if line =~? '\V{'
let function_line_end = l
break
endif
let l += 1
endwhile
break
endif
let i += 1
endwhile
" now grab the lines that holds the function declaration line
if function_line_start != -1 && function_line_end != -1
let function_line = join(a:sccontent[function_line_start :function_line_end], " ")
let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let return_type = matchstr(function_line, '\c\s*:\s*\zs'.class_name_pattern.'\ze\s*{')
endif
return return_type
endfunction
function! phpcomplete#GetTypeFromDocBlockParam(docblock_type) " {{{
if a:docblock_type !~ '|'
return a:docblock_type
@@ -2572,7 +2622,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
" find kind flags from tags or built in methods for the objects we extracted
" they can be either classes, interfaces or namespaces, no other thing is importable in php
for [key, import] in items(imports)
" if theres a \ in the name we have it's definetly not a built in thing, look for tags
" if theres a \ in the name we have it's definitely not a built in thing, look for tags
if import.name =~ '\\'
let patched_ctags_detected = 0
let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {})
+6 -5
View File
@@ -22,6 +22,7 @@ function! spellfile#LoadFile(lang)
endif
return
endif
let lang = tolower(a:lang)
" If the URL changes we try all files again.
if s:spellfile_URL != g:spellfile_URL
@@ -30,13 +31,13 @@ function! spellfile#LoadFile(lang)
endif
" I will say this only once!
if has_key(s:donedict, a:lang . &enc)
if has_key(s:donedict, lang . &enc)
if &verbose
echomsg 'spellfile#LoadFile(): Tried this language/encoding before.'
endif
return
endif
let s:donedict[a:lang . &enc] = 1
let s:donedict[lang . &enc] = 1
" Find spell directories we can write in.
let [dirlist, dirchoices] = spellfile#GetDirChoices()
@@ -57,14 +58,14 @@ function! spellfile#LoadFile(lang)
endif
endif
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
let msg = 'Cannot find spell file for "' . lang . '" in ' . &enc
let msg .= "\nDo you want me to try downloading it?"
if confirm(msg, "&Yes\n&No", 2) == 1
let enc = &encoding
if enc == 'iso-8859-15'
let enc = 'latin1'
endif
let fname = a:lang . '.' . enc . '.spl'
let fname = lang . '.' . enc . '.spl'
" Split the window, read the file into a new buffer.
" Remember the buffer number, we check it below.
@@ -95,7 +96,7 @@ function! spellfile#LoadFile(lang)
let newbufnr = winbufnr(0)
endif
let fname = a:lang . '.ascii.spl'
let fname = lang . '.ascii.spl'
echo 'Could not find it, trying ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell'
+36 -5
View File
@@ -152,10 +152,12 @@ fun! tar#Browse(tarfile)
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
let gzip_command = s:get_gzip_command(tarfile)
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
@@ -287,12 +289,14 @@ fun! tar#Read(fname,mode)
else
let tar_secure= " "
endif
if tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$'
let gzip_command = s:get_gzip_command(tarfile)
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
@@ -389,6 +393,8 @@ fun! tar#Write(fname)
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
let gzip_command = s:get_gzip_command(tarfile)
" handle compressed archives
if tarfile =~# '\.bz2'
call system("bzip2 -d -- ".shellescape(tarfile,0))
@@ -396,12 +402,12 @@ fun! tar#Write(fname)
let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz'
call system("gzip -d -- ".shellescape(tarfile,0))
call system(gzip_command . " -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".shellescape(tarfile,0))
call system(gzip_command . " -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1
@@ -581,7 +587,10 @@ fun! tar#Vimuntar(...)
" if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz'
if executable("gunzip")
let gzip_command = s:get_gzip_command(tarfile)
if executable(gzip_command)
silent exe "!" . gzip_command . " -d ".shellescape(tartail)
elseif executable("gunzip")
silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail)
@@ -619,6 +628,28 @@ fun! tar#Vimuntar(...)
" call Dret("tar#Vimuntar")
endfun
func s:get_gzip_command(file)
" Try using the "file" command to get the actual compression type, since
" there is no standard way for the naming: ".tgz", ".tbz", ".txz", etc.
" If the "file" command doesn't work fall back to just using the file name.
if a:file =~# 'z$'
let filetype = system('file ' . a:file)
if filetype =~ 'bzip2 compressed' && executable('bzip2')
return 'bzip2'
endif
if filetype =~ 'XZ compressed' && executable('xz')
return 'xz'
endif
endif
if a:file =~# 'bz2$'
return 'bzip2'
endif
if a:file =~# 'xz$'
return 'xz'
endif
return 'gzip'
endfunc
" =====================================================================
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
+67 -55
View File
@@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2013 Sep 03
" Last Change: 2018 Nov 11
"
" Additional contributors:
"
@@ -544,12 +544,16 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" add required javascript in reverse order so we can just call append again
" and again without adjusting {{{
" insert script closing tag
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids || !empty(s:settings.prevent_copy)
" insert script closing tag if needed
if s:uses_script
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
endif
" insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how
@@ -575,55 +579,61 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ '}'
\ ])
endif
"
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
if s:settings.line_ids
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
call append(style_start, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
endif
if s:settings.line_ids
call append(style_start, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " var lineElem = document.getElementById(lineNum);"
\ ])
endif
call append(style_start, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active.
@@ -648,11 +658,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ ])
endif
" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
if s:uses_script
" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
@@ -767,7 +779,7 @@ func! tohtml#GetUserSettings() "{{{
if user_settings.no_pre == 0
call tohtml#GetOption(user_settings,
\ 'expand_tabs',
\ &expandtab || &ts != 8 || user_settings.number_lines ||
\ &expandtab || &ts != 8 || &vts != '' || user_settings.number_lines ||
\ (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
else
let user_settings.expand_tabs = 1
+10 -7
View File
@@ -1,10 +1,9 @@
" Vim plugin for formatting XML
" Last Change: Thu, 22 May 2018 21:26:55 +0100
" Version: 0.1
" Author: Christian Brabandt <cb@256bit.org>
" Script: http://www.vim.org/scripts/script.php?script_id=
" License: VIM License
" GetLatestVimScripts: ???? 18 :AutoInstall: xmlformat.vim
" Last Change: Thu, 07 Dec 2018
" Version: 0.1
" Author: Christian Brabandt <cb@256bit.org>
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
" License: VIM License
" Documentation: see :h xmlformat.txt (TODO!)
" ---------------------------------------------------------------------
" Load Once: {{{1
@@ -86,7 +85,11 @@ func! s:Trim(item)
endfunc
" Check if tag is a new opening tag <tag> {{{1
func! s:StartTag(tag)
return a:tag =~? '^\s*<[^/?]'
let is_comment = s:IsComment(a:tag)
return a:tag =~? '^\s*<[^/?]' && !is_comment
endfunc
func! s:IsComment(tag)
return a:tag =~? '<!--'
endfunc
" Remove one level of indentation {{{1
func! s:DecreaseIndent()
+1 -1
View File
@@ -90,7 +90,7 @@ func! Test_check_colors()
let err['background'] = 'Should not issue :syn on'
endif
" 7) Does not define filetype specfic groups like vimCommand, htmlTag,
" 7) Does not define filetype specific groups like vimCommand, htmlTag,
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby']
for group in hi_groups
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>'
+37
View File
@@ -0,0 +1,37 @@
" Vim compiler file
" Compiler: Haskell Stack
" Maintainer: Daniel Campoverde <alx@sillybytes.net>
" Latest Revision: 2018-08-27
if exists("current_compiler")
finish
endif
let current_compiler = "stack"
let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat=
\%-G%.%#:\ build\ %.%#,
\%-G%.%#:\ configure\ %.%#,
\%-G[%.%#]%.%#,
\%-G%.%#preprocessing\ %.%#,
\%-G%.%#configuring\ %.%#,
\%-G%.%#building\ %.%#,
\%-G%.%#linking\ %.%#,
\%-G%.%#installing\ %.%#,
\%-G%.%#registering\ %.%#,
\%-G%.%#:\ copy/register%.%#,
\%-G%.%#process\ exited\ %.%#,
\%-G%.%#--builddir=%.%#,
\%-G--%.%#,
\%-G%.%#\|%.%#,
\%E%f:%l:%c:\ error:,%+Z\ \ \ \ %m,
\%E%f:%l:%c:\ error:\ %m,%-Z,
\%W%f:%l:%c:\ warning:,%+Z\ \ \ \ %m,
\%W%f:%l:%c:\ warning:\ %m,%-Z,
let &cpo = s:cpo_save
unlet s:cpo_save
+1
View File
@@ -5,6 +5,7 @@
" Last Change: 2001 May 27
aunmenu *
tlunmenu *
silent! unlet did_install_default_menus
silent! unlet did_install_syntax_menu
+1 -1
View File
@@ -319,4 +319,4 @@ There is one known minor bug,
No other bugs are known to exist.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+21 -8
View File
@@ -4,7 +4,7 @@
VIM REFERENCE MANUAL by Bram Moolenaar
Automatic commands *autocommand*
Automatic commands *autocommand* *autocommands*
For a basic explanation, see section |40.3| in the user manual.
@@ -301,6 +301,7 @@ Name triggered by ~
|FileChangedShellPost| After handling a file changed since editing started
|FileChangedRO| before making the first change to a read-only file
|DiffUpdated| after diffs have been updated
|DirChanged| after the working directory has changed
|ShellCmdPost| after executing a shell command
@@ -345,7 +346,7 @@ Name triggered by ~
when popup menu is not visible
|TextChangedP| after a change was made to the text in Insert mode
when popup menu visible
|TextYankPost| after text is yanked or deleted
|TextYankPost| after text has been yanked or deleted
|ColorSchemePre| before loading a color scheme
|ColorScheme| after loading a color scheme
@@ -656,12 +657,17 @@ FileChangedRO Before making the first change to a read-only
*E881*
If the number of lines changes saving for undo
may fail and the change will be aborted.
*DiffUpdated*
DiffUpdated After diffs have been updated. Depending on
what kind of diff is being used (internal or
external) this can be triggered on every
change or when doing |:diffupdate|.
*DirChanged*
DirChanged The working directory has changed in response
to the |:cd| or |:lcd| commands, or as a
result of the 'autochdir' option.
The pattern can be:
"window" to trigger on `:lcd
"window" to trigger on `:lcd`
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
@@ -670,7 +676,10 @@ DirChanged The working directory has changed in response
ExitPre When using `:quit`, `:wq` in a way it makes
Vim exit, or using `:qall`, just after
|QuitPre|. Can be used to close any
non-essential window.
non-essential window. Exiting may still be
cancelled if there is a modified buffer that
isn't automatically saved, use |VimLeavePre|
for really exiting.
*FileChangedShell*
FileChangedShell When Vim notices that the modification time of
a file has changed since editing started.
@@ -826,13 +835,14 @@ MenuPopup Just before showing the popup menu (under the
right mouse button). Useful for adjusting the
menu for what is under the cursor or mouse
pointer.
The pattern is matched against a single
character representing the mode:
The pattern is matched against one or two
characters representing the mode:
n Normal
v Visual
o Operator-pending
i Insert
c Command line
tl Terminal
*OptionSet*
OptionSet After setting an option. The pattern is
matched against the long option name.
@@ -856,6 +866,9 @@ OptionSet After setting an option. The pattern is
plugin. You can always use `:noa` to prevent
triggering this autocommand.
When using |:set| in the autocommand the event
is not triggered again.
*QuickFixCmdPre*
QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
@@ -1399,7 +1412,7 @@ Careful: '[ and '] change when using commands that change the buffer.
In commands which expect a file name, you can use "<afile>" for the file name
that is being read |:<afile>| (you can also use "%" for the current file
name). "<abuf>" can be used for the buffer number of the currently effective
buffer. This also works for buffers that doesn't have a name. But it doesn't
buffer. This also works for buffers that don't have a name. But it doesn't
work for files without a buffer (e.g., with ":r file").
*gzip-example*
@@ -1590,4 +1603,4 @@ This will write the file without triggering the autocommands defined by the
gzip plugin.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+26 -11
View File
@@ -177,8 +177,6 @@ gR Enter Virtual Replace mode: Each character you type
<Tab> may replace several characters at once.
Repeat the entered text [count]-1 times. See
|Virtual-Replace-mode| for more details.
{not available when compiled without the |+vreplace|
feature}
*c*
["x]c{motion} Delete {motion} text [into register x] and start
@@ -303,8 +301,6 @@ gr{char} Replace the virtual characters under the cursor with
space. See |gR| and |Virtual-Replace-mode| for more
details. As with |r| a count may be given.
{char} can be entered like with |r|.
{not available when compiled without the |+vreplace|
feature}
*digraph-arg*
The argument for Normal mode commands like |r| and |t| is a single character.
@@ -480,6 +476,10 @@ SHIFTING LINES LEFT OR RIGHT *shift-left-right*
*<*
<{motion} Shift {motion} lines one 'shiftwidth' leftwards.
If the 'vartabstop' feature is enabled, and the
'shiftwidth' option is set to zero, the amount of
indent is calculated at the first non-blank character
in the line.
*<<*
<< Shift [count] lines one 'shiftwidth' leftwards.
@@ -491,6 +491,10 @@ SHIFTING LINES LEFT OR RIGHT *shift-left-right*
*>*
>{motion} Shift {motion} lines one 'shiftwidth' rightwards.
If the 'vartabstop' feature is enabled, and the
'shiftwidth' option is set to zero, the amount of
indent is calculated at the first non-blank character
in the line.
*>>*
>> Shift [count] lines one 'shiftwidth' rightwards.
@@ -712,6 +716,7 @@ The flags that you can use for the substitute commands:
search pattern.
{not in Vi: highlighting of the match, other responses than 'y' or 'n'}
*:s_e*
[e] When the search pattern fails, do not issue an error message and, in
particular, continue in maps as if no error occurred. This is most
useful to prevent the "No match" error from breaking a mapping. Vim
@@ -723,6 +728,7 @@ The flags that you can use for the substitute commands:
Interrupted
{not in Vi}
*:s_g*
[g] Replace all occurrences in the line. Without this argument,
replacement occurs only for the first occurrence in each line. If
the 'edcompatible' option is on, Vim remembers this flag and toggles
@@ -730,26 +736,30 @@ The flags that you can use for the substitute commands:
pattern. If the 'gdefault' option is on, this flag is on by default
and the [g] argument switches it off.
*:s_i*
[i] Ignore case for the pattern. The 'ignorecase' and 'smartcase' options
are not used.
{not in Vi}
*:s_I*
[I] Don't ignore case for the pattern. The 'ignorecase' and 'smartcase'
options are not used.
{not in Vi}
*:s_n*
[n] Report the number of matches, do not actually substitute. The [c]
flag is ignored. The matches are reported as if 'report' is zero.
Useful to |count-items|.
If \= |sub-replace-expression| is used, the expression will be
evaluated in the |sandbox| at every match.
[p] Print the line containing the last substitute.
[p] Print the line containing the last substitute. *:s_p*
[#] Like [p] and prepend the line number.
[#] Like [p] and prepend the line number. *:s_#*
[l] Like [p] but print the text like |:list|.
[l] Like [p] but print the text like |:list|. *:s_l*
*:s_r*
[r] Only useful in combination with `:&` or `:s` without arguments. `:&r`
works the same way as `:~`: When the search pattern is empty, use the
previously used search pattern instead of the search pattern from the
@@ -848,7 +858,7 @@ the |substitute()| function with the following exceptions:
- magic is always set without regard to 'magic'.
- A ~ inserts a tilde literally.
- <CR> and \r inserts a carriage-return (CTRL-M).
- \<CR> does not have a special meaning. it's just one of \x.
- \<CR> does not have a special meaning. It's just one of \x.
Examples: >
:s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx"
@@ -987,6 +997,11 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
this (that's a good habit anyway).
`:retab!` may also change a sequence of spaces by
<Tab> characters, which can mess up a printf().
If the |+vartabs| feature is enabled then a list of
tab widths separated by commas may be used in place of
a single tabstop. Each value in the list represents
the width of one tabstop, except the final value which
applies to all following tabstops.
{not in Vi}
*retab-example*
@@ -1446,7 +1461,7 @@ to the name of an external program for Vim to use for text formatting. The
program.
*format-formatexpr*
The 'formatexpr' option can be set to a Vim Script function that performs
The 'formatexpr' option can be set to a Vim script function that performs
reformatting of the buffer. This should usually happen in an |ftplugin|,
since formatting is highly dependent on the type of file. It makes
sense to use an |autoload| script, so the corresponding script is only loaded
@@ -1480,7 +1495,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
You can then enable the formatting by executing: >
setlocal formatexpr=format#Format()
>
Note: this function explicitly returns non-zero when called from insert mode
(which basically means, text is inserted beyond the 'textwidth' limit). This
causes Vim to fall back to reformat the text by using the internal formatter.
@@ -1879,4 +1894,4 @@ The sorting can be interrupted, but if you interrupt it too late in the
process you may end up with duplicated lines. This also depends on the system
library function used.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+22 -2
View File
@@ -163,6 +163,9 @@ Use |ch_status()| to see if the channel could be opened.
The "close_cb" is also considered for this.
"never" All messages will be kept.
*channel-noblock*
"noblock" Same effect as |job-noblock|. Only matters for writing.
*waittime*
"waittime" The time to wait for the connection to be made in
milliseconds. A negative number waits forever.
@@ -594,6 +597,17 @@ See |job_setoptions()| and |ch_setoptions()|.
Note: when writing to a file or buffer and when
reading from a buffer NL mode is used by default.
*job-noblock*
"noblock": 1 When writing use a non-blocking write call. This
avoids getting stuck if Vim should handle other
messages in between, e.g. when a job sends back data
to Vim. It implies that when `ch_sendraw()` returns
not all data may have been written yet.
This option was added in patch 8.1.0350, test with: >
if has("patch-8.1.350")
let options['noblock'] = 1
endif
<
*job-callback*
"callback": handler Callback for something to read on any part of the
channel.
@@ -806,8 +820,14 @@ The text of the prompt can be set with the |prompt_setprompt()| function.
The user can go to Normal mode and navigate through the buffer. This can be
useful see older output or copy text.
The CTRL-W key can be used to start a window command, such as CTRL-W w to
switch to the next window. This also works in Insert mode (use Shift-CTRL-W
to delete a word). When leaving the window Insert mode will be stopped. When
coming back to the prompt window Insert mode will be restored.
Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
the cursor to the last line, after the prompt.
the cursor to the last line. "A" will move to the end of the line, "I" to the
start of the line.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+58 -15
View File
@@ -534,8 +534,45 @@ after a command causes the rest of the line to be ignored. This can be used
to add comments. Example: >
:set ai "set 'autoindent' option
It is not possible to add a comment to a shell command ":!cmd" or to the
":map" command and a few others, because they see the '"' as part of their
argument. This is mentioned where the command is explained.
":map" command and a few others (mainly commands that expect expressions)
that see the '"' as part of their argument:
:argdo
:autocmd
:bufdo
:cexpr (and the like)
:cdo (and the like)
:command
:cscope (and the like)
:debug
:display
:echo (and the like)
:elseif
:execute
:folddoopen
:folddoclosed
:for
:grep (and the like)
:help (and the like)
:if
:let
:make
:map (and the like including :abbrev commands)
:menu (and the like)
:mkspell
:normal
:ownsyntax
:popup
:promptfind (and the like)
:registers
:return
:sort
:syntax
:tabdo
:tearoff
:vimgrep (and the like)
:while
:windo
*:bar* *:\bar*
'|' can be used to separate commands, so you can give multiple commands in one
@@ -832,11 +869,12 @@ it, no matter how many backslashes.
\\# \#
Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
*:<cexpr>* *<cexpr>*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
*:<cword>* *<cword>* *:<cWORD>* *<cWORD>*
*:<cexpr>* *<cexpr>* *:<cfile>* *<cfile>*
*:<afile>* *<afile>* *:<abuf>* *<abuf>*
*:<amatch>* *<amatch>*
*:<sfile>* *<sfile>* *:<slnum>* *<slnum>*
*:<sflnum>* *<sflnum>* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
@@ -849,15 +887,16 @@ Note: these are typed literally, they are not special keys!
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
of the buffer being manipulated, or the file for a read or
write.
write. *E495*
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a
buffer).
buffer). *E496*
<amatch> When executing autocommands, is replaced with the match for
which this autocommand was executed. It differs from
<afile> only when the file name isn't used to match with
(for FileType, Syntax and SpellFileMissing events).
which this autocommand was executed. *E497*
It differs from <afile> only when the file name isn't used
to match with (for FileType, Syntax and SpellFileMissing
events).
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
When executing a function, is replaced with:
@@ -867,9 +906,12 @@ Note: these are typed literally, they are not special keys!
Note that filename-modifiers are useless when <sfile> is
used inside a function.
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*
line number. *E842*
When executing a function it's the line number relative to
the start of the function.
<sflnum> When executing a script, is replaced with the line number.
It differs from <slnum> in that <sflnum> is replaced with
the script line number in any situation. *E961*
*filename-modifiers*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
@@ -894,7 +936,8 @@ These modifiers can be given, in this order:
directory.
:. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the
current directory.
current directory, but on MS-Windows the drive is removed if
it is the current drive.
For maximum shortness, use ":~:.".
:h Head of the file name (the last component and any separators
removed). Cannot be used with :e, :r or :t.
@@ -1163,4 +1206,4 @@ The character used for the pattern indicates the type of command-line:
@ string for |input()|
- text for |:insert| or |:append|
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -172,4 +172,4 @@ Visual C++ 2005 Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
=========================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -139,4 +139,4 @@ Programming Environment.
For Sun NetBeans support see |netbeans|.
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -563,4 +563,4 @@ long 32 or 64 bit signed, can hold a pointer
Note that some compilers cannot handle long lines or strings. The C89
standard specifies a limit of 509 characters.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+11 -4
View File
@@ -39,7 +39,9 @@ The second and following arguments may also be a directory name. Vim will
then append the file name of the first argument to the directory name to find
the file.
This only works when a standard "diff" command is available. See 'diffexpr'.
By default an internal diff library will be used. When 'diffopt' or
'diffexpr' has been set an external "diff" command will be used. This only
works when such a diff program is available.
Diffs are local to the current tab page |tab-page|. You can't see diffs with
a window in another tab page. This does make it possible to have several
@@ -344,8 +346,9 @@ between file1 and file2: >
The ">" is replaced with the value of 'shellredir'.
The output of "diff" must be a normal "ed" style diff. Do NOT use a context
diff. This example explains the format that Vim expects: >
The output of "diff" must be a normal "ed" style diff or a unified diff. Do
NOT use a context diff. This example explains the format that Vim expects for
the "ed" style diff: >
1a2
> bbb
@@ -384,12 +387,16 @@ Example (this does almost the same as 'diffexpr' being empty): >
endif
silent execute "!diff -a --binary " . opt . v:fname_in . " " . v:fname_new .
\ " > " . v:fname_out
redraw!
endfunction
The "-a" argument is used to force comparing the files as text, comparing as
binaries isn't useful. The "--binary" argument makes the files read in binary
mode, so that a CTRL-Z doesn't end the text on DOS.
The `redraw!` command may not be needed, depending on whether executing a
shell command shows something on the display or not.
*E810* *E97*
Vim will do a test if the diff output looks alright. If it doesn't, you will
get an error message. Possible causes:
@@ -441,4 +448,4 @@ evaluating 'patchexpr'. This hopefully avoids that files in the current
directory are accidentally patched. Vim will also delete files starting with
v:fname_in and ending in ".rej" and ".orig".
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+9 -6
View File
@@ -111,11 +111,14 @@ this, you will have to type <BS> e again. To avoid this don't set the
You may have problems using Vim with characters which have a value above 128.
For example: You insert ue (u-umlaut) and the editor echoes \334 in Insert
mode. After leaving the Insert mode everything is fine. Note that fmt
removes all characters with a value above 128 from the text being formatted.
On some Unix systems this means you have to define the environment-variable
LC_CTYPE. If you are using csh, then put the following line in your .cshrc: >
setenv LC_CTYPE iso_8859_1
mode. After leaving the Insert mode everything is fine. On some Unix systems
this means you have to define the environment-variable LC_CTYPE. If you are
using csh, then put the following line in your .cshrc: >
setenv LC_CTYPE en_US.utf8
(or similar for a different language or country). The value must be a valid
locale on your system, i.e. on Unix-like systems it must be present in the
output of >
locale -a
==============================================================================
3. Default digraphs *digraphs-default*
@@ -1488,4 +1491,4 @@ char digraph hex dec official name ~
ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T
st st FB06 64262 LATIN SMALL LIGATURE ST
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+3 -3
View File
@@ -901,8 +901,8 @@ flag is used for the ":substitute" command to avoid an error for files where
Note: When the 'write' option is off, you are not able to write any file.
*:w* *:write*
*E502* *E503* *E504* *E505*
*E512* *E514* *E667* *E796* *E949*
*E502* *E503* *E504* *E505*
*E512* *E514* *E667* *E796* *E949*
:w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is
@@ -1747,4 +1747,4 @@ There are three different types of searching:
currently work with 'path' items that contain a URL or use the double star
with depth limiter (/usr/**2) or upward search (;) notations.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+386 -136
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.1. Last change: 2018 May 17
*eval.txt* For Vim version 8.1. Last change: 2018 Dec 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -180,10 +180,10 @@ function() or funcref(). When calling the function the Dictionary and/or
arguments will be passed to the function. Example: >
let Cb = function('Callback', ['foo'], myDict)
call Cb()
call Cb('bar')
This will invoke the function as if using: >
call myDict.Callback('foo')
call myDict.Callback('foo', 'bar')
This is very useful when passing a function around, e.g. in the arguments of
|ch_open()|.
@@ -518,7 +518,7 @@ To loop over the values use the |values()| function: >
:endfor
If you want both the key and the value use the |items()| function. It returns
a List in which each item is a List with two items, the key and the value: >
a List in which each item is a List with two items, the key and the value: >
:for [key, value] in items(mydict)
: echo key . ': ' . value
:endfor
@@ -954,6 +954,13 @@ These three can be repeated and mixed. Examples:
expr8 *expr8*
-----
This expression is either |expr9| or a sequence of the alternatives below,
in any order. E.g., these are all possible:
expr9[expr1].name
expr9.name[expr1]
expr9(expr1, ...)[expr1].name
expr8[expr1] item of String or |List| *expr-[]* *E111*
*E909* *subscript*
If expr8 is a Number or String this results in a String that contains the
@@ -1081,11 +1088,6 @@ These are INVALID:
3. empty {M}
1e40 missing .{M}
*float-pi* *float-e*
A few useful values to copy&paste: >
:let pi = 3.14159265359
:let e = 2.71828182846
Rationale:
Before floating point was introduced, the text "123.456" was interpreted as
the two numbers "123" and "456", both converted to a string and concatenated,
@@ -1094,6 +1096,15 @@ could not find it intentionally being used in Vim scripts, this backwards
incompatibility was accepted in favor of being able to use the normal notation
for floating point numbers.
*float-pi* *float-e*
A few useful values to copy&paste: >
:let pi = 3.14159265359
:let e = 2.71828182846
Or, if you don't want to write them in as floating-point literals, you can
also use functions, like the following: >
:let pi = acos(-1.0)
:let e = exp(1.0)
*floating-point-precision*
The precision and range of floating points numbers depends on what "double"
means in the library Vim was compiled with. There is no way to change this at
@@ -1431,7 +1442,9 @@ Note that this means that filetype plugins don't get a different set of script
variables for each buffer. Use local buffer variables instead |b:var|.
Predefined Vim variables: *vim-variable* *v:var* *v:*
PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:*
*E963*
Some variables can be set by the user, but the type cannot be changed.
*v:beval_col* *beval_col-variable*
v:beval_col The number of the column, over which the mouse pointer is.
@@ -2015,13 +2028,15 @@ abs({expr}) Float or Number absolute value of {expr}
acos({expr}) Float arc cosine of {expr}
add({list}, {item}) List append {item} to |List| {list}
and({expr}, {expr}) Number bitwise AND
append({lnum}, {string}) Number append {string} below line {lnum}
append({lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list
append({lnum}, {text}) Number append {text} below line {lnum}
appendbufline({expr}, {lnum}, {text})
Number append {text} below line {lnum}
in buffer {expr}
argc([{winid}]) Number number of files in the argument list
argidx() Number current index in the argument list
arglistid([{winnr} [, {tabnr}]]) Number argument list id
argv({nr}) String {nr} entry of the argument list
argv() List the argument list
argv({nr} [, {winid}]) String {nr} entry of the argument list
argv([-1, {winid}]) List the argument list
assert_beeps({cmd}) Number assert {cmd} causes a beep
assert_equal({exp}, {act} [, {msg}])
Number assert {exp} is equal to {act}
@@ -2029,7 +2044,8 @@ assert_equalfile({fname-one}, {fname-two})
Number assert file contents is equal
assert_exception({error} [, {msg}])
Number assert {error} is in v:exception
assert_fails({cmd} [, {error}]) Number assert {cmd} fails
assert_fails({cmd} [, {error} [, {msg}]])
Number assert {cmd} fails
assert_false({actual} [, {msg}])
Number assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}])
@@ -2101,16 +2117,17 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
copy({expr}) any make a shallow copy of {expr}
cos({expr}) Float cosine of {expr}
cosh({expr}) Float hyperbolic cosine of {expr}
count({list}, {expr} [, {ic} [, {start}]])
Number count how many {expr} are in {list}
count({comp}, {expr} [, {ic} [, {start}]])
Number count how many {expr} are in {comp}
cscope_connection([{num}, {dbpath} [, {prepend}]])
Number checks existence of cscope connection
cursor({lnum}, {col} [, {off}])
Number move cursor to {lnum}, {col}, {off}
cursor({list}) Number move cursor to position in {list}
debugbreak({pid}) Number interrupt process being debugged
deepcopy({expr} [, {noref}]) any make a full copy of {expr}
delete({fname} [, {flags}]) Number delete the file or directory {fname}
deletebufline({expr}, {first}[, {last}])
deletebufline({expr}, {first} [, {last}])
Number delete lines from buffer {expr}
did_filetype() Number |TRUE| if FileType autocmd event used
diff_filler({lnum}) Number diff filler lines about {lnum}
@@ -2195,7 +2212,8 @@ gettabvar({nr}, {varname} [, {def}])
any variable {varname} in tab {nr} or {def}
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
getwininfo([{winid}]) List list of windows
gettagstack([{nr}]) Dict get the tag stack of window {nr}
getwininfo([{winid}]) List list of info about each window
getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
getwinposx() Number X coord in pixels of the Vim window
getwinposy() Number Y coord in pixels of the Vim window
@@ -2296,9 +2314,9 @@ perleval({expr}) any evaluate |Perl| expression
pow({x}, {y}) Float {x} to the power of {y}
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
printf({fmt}, {expr1}...) String format text
prompt_addtext({buf}, {expr}) none add text to a prompt buffer
prompt_setprompt({buf}, {text}) none set prompt text
prompt_setcallback({buf}, {expr}) none set prompt callback function
prompt_setinterrupt({buf}, {text}) none set prompt interrupt function
prompt_setprompt({buf}, {text}) none set prompt text
pumvisible() Number whether popup menu is visible
pyeval({expr}) any evaluate |Python| expression
py3eval({expr}) any evaluate |python3| expression
@@ -2322,7 +2340,6 @@ remote_read({serverid} [, {timeout}])
remote_send({server}, {string} [, {idvar}])
String send key sequence
remote_startserver({name}) none become server {name}
String send key sequence
remove({list}, {idx} [, {end}]) any remove items {idx}-{end} from {list}
remove({dict}, {key}) any remove entry {key} from {dict}
rename({from}, {to}) Number rename (move) file from {from} to {to}
@@ -2347,8 +2364,8 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
server2client({clientid}, {string})
Number send reply string
serverlist() String get a list of available servers
setbufline({expr}, {lnum}, {line})
Number set line {lnum} to {line} in buffer
setbufline({expr}, {lnum}, {text})
Number set line {lnum} to {text} in buffer
{expr}
setbufvar({expr}, {varname}, {val})
none set {varname} in buffer {expr} to {val}
@@ -2367,12 +2384,14 @@ settabvar({nr}, {varname}, {val}) none set {varname} in tab page {nr} to {val}
settabwinvar({tabnr}, {winnr}, {varname}, {val})
none set {varname} in window {winnr} in tab
page {tabnr} to {val}
settagstack({nr}, {dict} [, {action}])
Number modify tag stack using {dict}
setwinvar({nr}, {varname}, {val}) none set {varname} in window {nr} to {val}
sha256({string}) String SHA256 checksum of {string}
shellescape({string} [, {special}])
String escape {string} for use as shell
command argument
shiftwidth() Number effective value of 'shiftwidth'
shiftwidth([{col}]) Number effective value of 'shiftwidth'
simplify({filename}) String simplify filename as much as possible
sin({expr}) Float sine of {expr}
sinh({expr}) Float hyperbolic sine of {expr}
@@ -2407,6 +2426,8 @@ submatch({nr} [, {list}]) String or List
specific match in ":s" or substitute()
substitute({expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
swapinfo({fname}) Dict information about swap file {fname}
swapname({expr}) String swap file of buffer {expr}
synID({lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
synIDattr({synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
@@ -2449,12 +2470,12 @@ term_setkill({buf}, {how}) none set signal to stop job in terminal
term_setrestore({buf}, {command}) none set command to restore terminal
term_setsize({buf}, {rows}, {cols})
none set the size of a terminal
term_start({cmd}, {options}) Job open a terminal window and run a job
term_start({cmd}, {options}) Number open a terminal window and run a job
term_wait({buf} [, {time}]) Number wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat})
none make memory allocation fail
test_autochdir() none enable 'autochdir' during startup
test_feedinput() none add key sequence to input buffer
test_feedinput({string}) none add key sequence to input buffer
test_garbagecollect_now() none free memory right now for testing
test_ignore_error({expr}) none ignore a specific error
test_null_channel() Channel null value for testing
@@ -2463,7 +2484,10 @@ test_null_job() Job null value for testing
test_null_list() List null value for testing
test_null_partial() Funcref null value for testing
test_null_string() String null value for testing
test_override({expr}, {val}) none test with Vim internal overrides
test_option_not_set({name}) none reset flag indicating option was set
test_override({expr}, {val}) none test with Vim internal overrides
test_scrollbar({which}, {value}, {dragging})
none scroll in the GUI for testing
test_settime({expr}) none set current time for testing
timer_info([{id}]) List information about timers
timer_pause({id}, {pause}) none pause or unpause a timer
@@ -2475,7 +2499,7 @@ tolower({expr}) String the String {expr} switched to lowercase
toupper({expr}) String the String {expr} switched to uppercase
tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr}
trim({text}[, {mask}]) String trim characters in {mask} from {text}
trim({text} [, {mask}]) String trim characters in {mask} from {text}
trunc({expr}) Float truncate Float {expr}
type({name}) Number type of variable {name}
undofile({name}) String undo file name for {name}
@@ -2495,6 +2519,7 @@ win_screenpos({nr}) List get screen position of window {nr}
winbufnr({nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor
winheight({nr}) Number height of window {nr}
winlayout([{tabnr}]) List layout of windows in tab {tabnr}
winline() Number window line of the cursor
winnr([{expr}]) Number number of current window
winrestcmd() String returns command to restore window sizes
@@ -2552,10 +2577,10 @@ and({expr}, {expr}) *and()*
:let flag = and(bits, 0x80)
append({lnum}, {expr}) *append()*
When {expr} is a |List|: Append each item of the |List| as a
append({lnum}, {text}) *append()*
When {text} is a |List|: Append each item of the |List| as a
text line below line {lnum} in the current buffer.
Otherwise append {expr} as one text line below line {lnum} in
Otherwise append {text} as one text line below line {lnum} in
the current buffer.
{lnum} can be zero to insert a line before the first one.
Returns 1 for failure ({lnum} out of range or out of memory),
@@ -2579,8 +2604,15 @@ appendbufline({expr}, {lnum}, {text}) *appendbufline()*
:let failed = appendbufline(13, 0, "# THE START")
<
*argc()*
argc() The result is the number of files in the argument list of the
current window. See |arglist|.
argc([{winid}])
The result is the number of files in the argument list. See
|arglist|.
If {winid} is not supplied, the argument list of the current
window is used.
If {winid} is -1, the global argument list is used.
Otherwise {winid} specifies the window of which the argument
list is used: either the window number or the window ID.
Returns -1 if the {winid} argument is invalid.
*argidx()*
argidx() The result is the current index in the argument list. 0 is
@@ -2591,7 +2623,7 @@ arglistid([{winnr} [, {tabnr}]])
Return the argument list ID. This is a number which
identifies the argument list being used. Zero is used for the
global argument list. See |arglist|.
Return -1 if the arguments are invalid.
Returns -1 if the arguments are invalid.
Without arguments use the current window.
With {winnr} only use this window in the current tab page.
@@ -2600,17 +2632,19 @@ arglistid([{winnr} [, {tabnr}]])
{winnr} can be the window number or the |window-ID|.
*argv()*
argv([{nr}]) The result is the {nr}th file in the argument list of the
current window. See |arglist|. "argv(0)" is the first one.
Example: >
argv([{nr} [, {winid}])
The result is the {nr}th file in the argument list. See
|arglist|. "argv(0)" is the first one. Example: >
:let i = 0
:while i < argc()
: let f = escape(fnameescape(argv(i)), '.')
: exe 'amenu Arg.' . f . ' :e ' . f . '<CR>'
: let i = i + 1
:endwhile
< Without the {nr} argument a |List| with the whole |arglist| is
returned.
< Without the {nr} argument, or when {nr} is -1, a |List| with
the whole |arglist| is returned.
The {winid} argument specifies the window ID, see |argc()|.
assert_beeps({cmd}) *assert_beeps()*
Run {cmd} and add an error message to |v:errors| if it does
@@ -2655,7 +2689,7 @@ assert_exception({error} [, {msg}]) *assert_exception()*
call assert_exception('E492:')
endtry
assert_fails({cmd} [, {error}]) *assert_fails()*
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error. Also see |assert-return|.
When {error} is given it must match in |v:errmsg|.
@@ -2785,15 +2819,15 @@ balloon_show({expr}) *balloon_show()*
When showing a balloon is not possible nothing happens, no
error message.
{only available when compiled with the +balloon_eval or
+balloon_eval_term feature}
{only available when compiled with the |+balloon_eval| or
|+balloon_eval_term| feature}
balloon_split({msg}) *balloon_split()*
Split {msg} into lines to be displayed in a balloon. The
splits are made for the current window size and optimize to
show debugger output.
Returns a |List| with the split lines.
{only available when compiled with the +balloon_eval_term
{only available when compiled with the |+balloon_eval_term|
feature}
*browse()*
@@ -3479,6 +3513,11 @@ cursor({list})
position within a <Tab> or after the last character.
Returns 0 when the position could be set, -1 otherwise.
debugbreak({pid}) *debugbreak()*
Specifically used to interrupt a program being debugged. It
will cause process {pid} to get a SIGTRAP. Behavior for other
processes is undefined. See |terminal-debugger|.
{only available on MS-Windows}
deepcopy({expr} [, {noref}]) *deepcopy()* *E698*
Make a copy of {expr}. For Numbers and Strings this isn't
@@ -3522,14 +3561,14 @@ delete({fname} [, {flags}]) *delete()*
To delete a line from the buffer use |:delete| or
|deletebufline()|.
deletebufline({expr}, {first}[, {last}]) *deletebufline()*
deletebufline({expr}, {first} [, {last}]) *deletebufline()*
Delete lines {first} to {last} (inclusive) from buffer {expr}.
If {last} is omitted then delete line {first} only.
On success 0 is returned, on failure 1 is returned.
For the use of {expr}, see |bufname()| above.
{first} and {last} are used like with |setline()|. Note that
{first} and {last} are used like with |getline()|. Note that
when using |line()| this refers to the current buffer. Use "$"
to refer to the last line in buffer {expr}.
@@ -3622,6 +3661,7 @@ executable({expr}) *executable()*
1 exists
0 does not exist
-1 not implemented on this system
|exepath()| can be used to get the full path of an executable.
execute({command} [, {silent}]) *execute()*
Execute an Ex command or commands and return the output as a
@@ -3781,7 +3821,10 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()*
<abuf> autocmd buffer number (as a String!)
<amatch> autocmd matched name
<sfile> sourced script file or function name
<slnum> sourced script file line number
<slnum> sourced script line number or function
line number
<sflnum> script file line number, also when in
a function
<cword> word under the cursor
<cWORD> WORD under the cursor
<client> the {clientid} of the last received
@@ -4299,7 +4342,7 @@ getbufinfo([{dict}])
endfor
<
To get buffer-local options use: >
getbufvar({bufnr}, '&')
getbufvar({bufnr}, '&option_name')
<
*getbufline()*
@@ -4480,6 +4523,8 @@ getcmdline() *getcmdline()*
Example: >
:cmap <F7> <C-\>eescape(getcmdline(), ' \')<CR>
< Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|.
Returns an empty string when entering a password or using
|inputsecret()|.
getcmdpos() *getcmdpos()*
Return the position of the cursor in the command line as a
@@ -4577,7 +4622,6 @@ getcurpos() Get the position of the cursor. This is like getpos('.'), but
getcwd([{winnr} [, {tabnr}]])
The result is a String, which is the name of the current
working directory.
Without arguments, for the current window.
With {winnr} return the local current directory of this window
in the current tab page. {winnr} can be the window number or
@@ -4712,6 +4756,10 @@ getloclist({nr} [, {what}]) *getloclist()*
If the optional {what} dictionary argument is supplied, then
returns the items listed in {what} as a dictionary. Refer to
|getqflist()| for the supported items in {what}.
If {what} contains 'filewinid', then returns the id of the
window used to display files from the location list. This
field is applicable only when called from a location list
window.
getmatches() *getmatches()*
Returns a |List| with all matches previously defined by
@@ -4928,6 +4976,69 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
:let list_is_on = gettabwinvar(1, 2, '&list')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
<
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
gettagstack([{nr}]) *gettagstack()*
The result is a Dict, which is the tag stack of window {nr}.
{nr} can be the window number or the |window-ID|.
When {nr} is not specified, the current window is used.
When window {nr} doesn't exist, an empty Dict is returned.
The returned dictionary contains the following entries:
curidx Current index in the stack. When at
top of the stack, set to (length + 1).
Index of bottom of the stack is 1.
items List of items in the stack. Each item
is a dictionary containing the
entries described below.
length Number of entries in the stack.
Each item in the stack is a dictionary with the following
entries:
bufnr buffer number of the current jump
from cursor position before the tag jump.
See |getpos()| for the format of the
returned list.
matchnr current matching tag number. Used when
multiple matching tags are found for a
name.
tagname name of the tag
See |tagstack| for more information about the tag stack.
getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a List with Dictionaries.
If {winid} is given Information about the window with that ID
is returned. If the window does not exist the result is an
empty list.
Without {winid} information about all the windows in all the
tab pages is returned.
Each List item is a Dictionary with the following entries:
bufnr number of buffer in the window
height window height (excluding winbar)
loclist 1 if showing a location list
{only with the +quickfix feature}
quickfix 1 if quickfix or location list window
{only with the +quickfix feature}
terminal 1 if a terminal window
{only with the +terminal feature}
tabnr tab page number
variables a reference to the dictionary with
window-local variables
width window width
winbar 1 if the window has a toolbar, 0
otherwise
wincol leftmost screen column of the window,
col from |win_screenpos()|
winid |window-ID|
winnr window number
winrow topmost screen column of the window,
row from |win_screenpos()|
getwinpos([{timeout}]) *getwinpos()*
The result is a list with two numbers, the result of
getwinposx() and getwinposy() combined:
@@ -4961,37 +5072,6 @@ getwinposy() The result is a Number, which is the Y coordinate in pixels of
The result will be -1 if the information is not available.
The value can be used with `:winpos`.
getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a List with Dictionaries.
If {winid} is given Information about the window with that ID
is returned. If the window does not exist the result is an
empty list.
Without {winid} information about all the windows in all the
tab pages is returned.
Each List item is a Dictionary with the following entries:
bufnr number of buffer in the window
height window height (excluding winbar)
winbar 1 if the window has a toolbar, 0
otherwise
loclist 1 if showing a location list
{only with the +quickfix feature}
quickfix 1 if quickfix or location list window
{only with the +quickfix feature}
terminal 1 if a terminal window
{only with the +terminal feature}
tabnr tab page number
variables a reference to the dictionary with
window-local variables
width window width
winid |window-ID|
winnr window number
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage.
Examples: >
@@ -5487,6 +5567,20 @@ job_start({command} [, {options}]) *job_start()*
The returned Job object can be used to get the status with
|job_status()| and stop the job with |job_stop()|.
Note that the job object will be deleted if there are no
references to it. This closes the stdin and stderr, which may
cause the job to fail with an error. To avoid this keep a
reference to the job. Thus instead of: >
call job_start('my-command')
< use: >
let myjob = job_start('my-command')
< and unlet "myjob" once the job is not needed or is past the
point where it would fail (e.g. when it prints a message on
startup). Keep in mind that variables local to a function
will cease to exist if the function returns. Use a
script-local variable if needed: >
let s:myjob = job_start('my-command')
<
{options} must be a Dictionary. It can contain many optional
items, see |job-options|.
@@ -5892,6 +5986,7 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
(|mapmode-ic|)
"sid" The script local ID, used for <sid> mappings
(|<SID>|).
"lnum" The line number in "sid", zero if unknown.
"nowait" Do not wait for other, longer mappings.
(|:map-<nowait>|).
@@ -5939,11 +6034,14 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
When {expr} is a |List| then this returns the index of the
first item where {pat} matches. Each item is used as a
String, |Lists| and |Dictionaries| are used as echoed.
Otherwise, {expr} is used as a String. The result is a
Number, which gives the index (byte offset) in {expr} where
{pat} matches.
A match at the first character or |List| item returns zero.
If there is no match -1 is returned.
For getting submatches see |matchlist()|.
Example: >
:echo match("testing", "ing") " results in 4
@@ -5990,7 +6088,7 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
the pattern. 'smartcase' is NOT used. The matching is always
done like 'magic' is set and 'cpoptions' is empty.
*matchadd()* *E798* *E799* *E801*
*matchadd()* *E798* *E799* *E801* *E957*
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
Defines a pattern to be highlighted in the current window (a
"match"). It will be highlighted with {group}. Returns an
@@ -6029,6 +6127,8 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
conceal Special character to show instead of the
match (only for |hl-Conceal| highlighted
matches, see |:syn-cchar|)
window Instead of the current window use the
window with this number or window ID.
The number of matches is not limited, as it is the case with
the |:match| commands.
@@ -6196,32 +6296,38 @@ mode([expr]) Return a string that indicates the current mode.
a non-empty String (|non-zero-arg|), then the full mode is
returned, otherwise only the first letter is returned.
n Normal, Terminal-Normal
no Operator-pending
v Visual by character
V Visual by line
CTRL-V Visual blockwise
s Select by character
S Select by line
CTRL-S Select blockwise
i Insert
ic Insert mode completion |compl-generic|
ix Insert mode |i_CTRL-X| completion
R Replace |R|
Rc Replace mode completion |compl-generic|
Rv Virtual Replace |gR|
Rx Replace mode |i_CTRL-X| completion
c Command-line editing
cv Vim Ex mode |gQ|
ce Normal Ex mode |Q|
r Hit-enter prompt
rm The -- more -- prompt
r? A |:confirm| query of some sort
! Shell or external command is executing
t Terminal-Job mode: keys go to the job
n Normal, Terminal-Normal
no Operator-pending
niI Normal using |i_CTRL-O| in |Insert-mode|
niR Normal using |i_CTRL-O| in |Replace-mode|
niV Normal using |i_CTRL-O| in |Virtual-Replace-mode|
v Visual by character
V Visual by line
CTRL-V Visual blockwise
s Select by character
S Select by line
CTRL-S Select blockwise
i Insert
ic Insert mode completion |compl-generic|
ix Insert mode |i_CTRL-X| completion
R Replace |R|
Rc Replace mode completion |compl-generic|
Rv Virtual Replace |gR|
Rx Replace mode |i_CTRL-X| completion
c Command-line editing
cv Vim Ex mode |gQ|
ce Normal Ex mode |Q|
r Hit-enter prompt
rm The -- more -- prompt
r? A |:confirm| query of some sort
! Shell or external command is executing
t Terminal-Job mode: keys go to the job
This is useful in the 'statusline' option or when used
with |remote_expr()| In most other places it always returns
"c" or "n".
Note that in the future more modes and more specific modes may
be added. It's better not to compare the whole string but only
the leading character(s).
Also see |visualmode()|.
mzeval({expr}) *mzeval()*
@@ -6506,17 +6612,11 @@ printf({fmt}, {expr1} ...) *printf()*
arguments an error is given. Up to 18 arguments can be used.
prompt_setprompt({buf}, {text}) *prompt_setprompt()*
Set prompt for buffer {buf} to {text}. You most likely want
{text} to end in a space.
The result is only visible if {buf} has 'buftype' set to
"prompt". Example: >
call prompt_setprompt(bufnr(''), 'command: ')
prompt_setcallback({buf}, {expr}) *prompt_setcallback()*
Set prompt callback for buffer {buf} to {expr}. This has only
Set prompt callback for buffer {buf} to {expr}. When {expr}
is an empty string the callback is removed. This has only
effect if {buf} has 'buftype' set to "prompt".
The callback is invoked when pressing Enter. The current
buffer will always be the prompt buffer. A new line for a
prompt is added before invoking the callback, thus the prompt
@@ -6541,6 +6641,22 @@ prompt_setcallback({buf}, {expr}) *prompt_setcallback()*
endif
endfunc
prompt_setinterrupt({buf}, {expr}) *prompt_setinterrupt()*
Set a callback for buffer {buf} to {expr}. When {expr} is an
empty string the callback is removed. This has only effect if
{buf} has 'buftype' set to "prompt".
This callback will be invoked when pressing CTRL-C in Insert
mode. Without setting a callback Vim will exit Insert mode,
as in any buffer.
prompt_setprompt({buf}, {text}) *prompt_setprompt()*
Set prompt for buffer {buf} to {text}. You most likely want
{text} to end in a space.
The result is only visible if {buf} has 'buftype' set to
"prompt". Example: >
call prompt_setprompt(bufnr(''), 'command: ')
pumvisible() *pumvisible()*
Returns non-zero when the popup menu is visible, zero
@@ -7022,6 +7138,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
When evaluating {skip} causes an error the search is aborted
and -1 returned.
{skip} can be a string, a lambda, a funcref or a partial.
Anything else makes the function fail.
For {stopline} and {timeout} see |search()|.
@@ -7454,6 +7571,37 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
:call settabwinvar(3, 2, "myvar", "foobar")
< This function is not available in the |sandbox|.
settagstack({nr}, {dict} [, {action}]) *settagstack()*
Modify the tag stack of the window {nr} using {dict}.
{nr} can be the window number or the |window-ID|.
For a list of supported items in {dict}, refer to
|gettagstack()|
*E962*
If {action} is not present or is set to 'r', then the tag
stack is replaced. If {action} is set to 'a', then new entries
from {dict} are pushed onto the tag stack.
Returns zero for success, -1 for failure.
Examples:
Set current index of the tag stack to 4: >
call settagstack(1005, {'curidx' : 4})
< Empty the tag stack of window 3: >
call settagstack(3, {'items' : []})
< Push a new item onto the tag stack: >
let pos = [bufnr('myfile.txt'), 10, 1, 0]
let newtag = [{'tagname' : 'mytag', 'from' : pos}]
call settagstack(2, {'items' : newtag}, 'a')
< Save and restore the tag stack: >
let stack = gettagstack(1003)
" do something else
call settagstack(1003, stack)
unlet stack
<
setwinvar({nr}, {varname}, {val}) *setwinvar()*
Like |settabwinvar()| for the current tab page.
Examples: >
@@ -7496,11 +7644,17 @@ shellescape({string} [, {special}]) *shellescape()*
< See also |::S|.
shiftwidth() *shiftwidth()*
shiftwidth([{col}]) *shiftwidth()*
Returns the effective value of 'shiftwidth'. This is the
'shiftwidth' value unless it is zero, in which case it is the
'tabstop' value. This function was introduced with patch
7.3.694 in 2012, everybody should have it by now.
7.3.694 in 2012, everybody should have it by now (however it
did not allow for the optional {col} argument until 8.1.542).
When there is one argument {col} this is used as column number
for which to return the 'shiftwidth' value. This matters for the
'vartabstop' feature. If the 'vartabstop' setting is enabled and
no {col} argument is given, column 1 will be assumed.
simplify({filename}) *simplify()*
@@ -7697,7 +7851,8 @@ str2float({expr}) *str2float()*
as when using a floating point number in an expression, see
|floating-point-format|. But it's a bit more permissive.
E.g., "1e40" is accepted, while in an expression you need to
write "1.0e40".
write "1.0e40". The hexadecimal form "0x123" is also
accepted, but not others, like binary or octal.
Text after the number is silently ignored.
The decimal point is always '.', no matter what the locale is
set to. A comma ends the number: "12,345.67" is converted to
@@ -7955,6 +8110,32 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
|submatch()| returns. Example: >
:echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g')
swapinfo({fname}) *swapinfo()*
The result is a dictionary, which holds information about the
swapfile {fname}. The available fields are:
version Vim version
user user name
host host name
fname original file name
pid PID of the Vim process that created the swap
file
mtime last modification time in seconds
inode Optional: INODE number of the file
dirty 1 if file was modified, 0 if not
Note that "user" and "host" are truncated to at most 39 bytes.
In case of failure an "error" item is added with the reason:
Cannot open file: file not found or in accessible
Cannot read file: cannot read first block
Not a swap file: does not contain correct block ID
Magic number mismatch: Info in first block is invalid
swapname({expr}) *swapname()*
The result is the swap file path of the buffer {expr}.
For the use of {expr}, see |bufname()| above.
If buffer {expr} is the current buffer, the result is equal to
|:swapname| (unless no swap file).
If buffer {expr} has no swap file, returns an empty string.
synID({lnum}, {col}, {trans}) *synID()*
The result is a Number, which is the syntax ID at the position
{lnum} and {col} in the current window.
@@ -8036,7 +8217,7 @@ synconcealed({lnum}, {col}) *synconcealed()*
concealable region if there are two consecutive regions
with the same replacement character. For an example, if
the text is "123456" and both "23" and "45" are concealed
and replace by the character "X", then:
and replaced by the character "X", then:
call returns ~
synconcealed(lnum, 1) [0, '', 0]
synconcealed(lnum, 2) [1, 'X', 1]
@@ -8264,7 +8445,7 @@ term_dumpdiff({filename}, {filename} [, {options}])
The top part of the buffer contains the contents of the first
file, the bottom part of the buffer contains the contents of
the second file. The middle part shows the differences.
The parts are separated by a line of dashes.
The parts are separated by a line of equals.
If the {options} argument is present, it must be a Dict with
these possible members:
@@ -8309,7 +8490,9 @@ term_dumpwrite({buf}, {filename} [, {options}])
Dump the contents of the terminal screen of {buf} in the file
{filename}. This uses a format that can be used with
|term_dumpload()| and |term_dumpdiff()|.
If {filename} already exists an error is given. *E953*
If the job in the terminal already finished an error is given:
*E958*
If {filename} already exists an error is given: *E953*
Also see |terminal-diff|.
{options} is a dictionary with these optional entries:
@@ -8355,8 +8538,8 @@ term_getcursor({buf}) *term_getcursor()*
"dict" can have these members:
"visible" one when the cursor is visible, zero when it
is hidden.
"blink" one when the cursor is visible, zero when it
is hidden.
"blink" one when the cursor is blinking, zero when it
is not blinking.
"shape" 1 for a block cursor, 2 for underline and 3
for a vertical bar.
@@ -8388,7 +8571,7 @@ term_getscrolled({buf}) *term_getscrolled()*
used for |term_getline()| and |getline()|, so that: >
term_getline(buf, N)
< is equal to: >
`getline(N + term_getscrolled(buf))
getline(N + term_getscrolled(buf))
< (if that line exists).
{buf} is used as with |term_getsize()|.
@@ -8546,9 +8729,8 @@ term_start({cmd}, {options}) *term_start()*
|job-options|. However, not all options can be used. These
are supported:
all timeout options
"stoponexit"
"callback", "out_cb", "err_cb"
"exit_cb", "close_cb"
"stoponexit", "cwd", "env"
"callback", "out_cb", "err_cb", "exit_cb", "close_cb"
"in_io", "in_top", "in_bot", "in_name", "in_buf"
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
@@ -8563,7 +8745,9 @@ term_start({cmd}, {options}) *term_start()*
instead of using 'termwinsize'
"term_cols" horizontal size to use for the terminal,
instead of using 'termwinsize'
"vertical" split the window vertically
"vertical" split the window vertically; note that
other window position can be defined with
command modifiers, such as |:belowright|.
"curwin" use the current window, do not split the
window; fails if the current buffer
cannot be |abandon|ed
@@ -8650,6 +8834,15 @@ test_null_partial() *test_null_partial()*
test_null_string() *test_null_string()*
Return a String that is null. Only useful for testing.
test_option_not_set({name}) *test_option_not_set()*
Reset the flag that indicates option {name} was set. Thus it
looks like it still has the default value. Use like this: >
set ambiwidth=double
call test_option_not_set('ambiwidth')
< Now the 'ambiwidth' option behaves like it was never changed,
even though the value is "double".
Only to be used for testing!
test_override({name}, {val}) *test_override()*
Overrides certain parts of Vims internal processing to be able
to run tests. Only to be used for testing Vim!
@@ -8659,8 +8852,11 @@ test_override({name}, {val}) *test_override()*
name effect when {val} is non-zero ~
redraw disable the redrawing() function
redraw_flag ignore the RedrawingDisabled flag
char_avail disable the char_avail() function
starting reset the "starting" variable, see below
nfa_fail makes the NFA regexp engine fail to force a
fallback to the old engine
ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like
@@ -8673,6 +8869,23 @@ test_override({name}, {val}) *test_override()*
< The value of "starting" is saved. It is restored by: >
call test_override('starting', 0)
test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
Pretend using scrollbar {which} to move it to position
{value}. {which} can be:
left Left scrollbar of the current window
right Right scrollbar of the current window
hor Horizontal scrollbar
For the vertical scrollbars {value} can be 1 to the
line-count of the buffer. For the horizontal scrollbar the
{value} can be between 1 and the maximum line length, assuming
'wrap' is not set.
When {dragging} is non-zero it's like dragging the scrollbar,
otherwise it's like clicking in the scrollbar.
Only works when the {which} scrollbar actually exists,
obviously only when using the GUI.
test_settime({expr}) *test_settime()*
Set the time Vim uses internally. Currently only used for
timestamps in the history, as they are used in viminfo, and
@@ -8788,7 +9001,7 @@ tr({src}, {fromstr}, {tostr}) *tr()*
echo tr("<blob>", "<>", "{}")
< returns "{blob}"
trim({text}[, {mask}]) *trim()*
trim({text} [, {mask}]) *trim()*
Return {text} as a String where any character in {mask} is
removed from the beginning and end of {text}.
If {mask} is not given, {mask} is all characters up to 0x20,
@@ -8988,7 +9201,7 @@ win_getid([{win} [, {tab}]]) *win_getid()*
Get the |window-ID| for the specified window.
When {win} is missing use the current window.
With {win} this is the window number. The top window has
number 1. Use `win_getid(winnr())` for the current window.
number 1.
Without {tab} use the current tab, otherwise the tab with
number {tab}. The first tab has number one.
Return zero if the window cannot be found.
@@ -9010,7 +9223,7 @@ win_id2win({expr}) *win_id2win()*
win_screenpos({nr}) *win_screenpos()*
Return the screen position of window {nr} as a list with two
numbers: [row, col]. The first window always has position
[1, 1].
[1, 1], unless there is a tabline, then it is [2, 1].
{nr} can be the window number or the |window-ID|.
Return [0, 0] if the window cannot be found in the current
tabpage.
@@ -9039,6 +9252,35 @@ winheight({nr}) *winheight()*
This excludes any window toolbar line.
Examples: >
:echo "The current window has " . winheight(0) . " lines."
<
winlayout([{tabnr}]) *winlayout()*
The result is a nested List containing the layout of windows
in a tabpage.
Without {tabnr} use the current tabpage, otherwise the tabpage
with number {tabnr}. If the tabpage {tabnr} is not found,
returns an empty list.
For a leaf window, it returns:
['leaf', {winid}]
For horizontally split windows, which form a column, it
returns:
['col', [{nested list of windows}]]
For vertically split windows, which form a row, it returns:
['row', [{nested list of windows}]]
Example: >
" Only one window in the tab page
:echo winlayout()
['leaf', 1000]
" Two horizontally split windows
:echo winlayout()
['col', [['leaf', 1000], ['leaf', 1001]]]
" Three horizontally split windows, with two
" vertically split windows in the middle window
:echo winlayout(2)
['col', [['leaf', 1002], ['row', ['leaf', 1003],
['leaf', 1001]]], ['leaf', 1000]]
<
*winline()*
winline() The result is a Number, which is the screen line of the cursor
@@ -9222,6 +9464,7 @@ amiga Amiga version of Vim.
arabic Compiled with Arabic support |Arabic|.
arp Compiled with ARP support (Amiga).
autocmd Compiled with autocommand support. |autocommand|
autochdir Compiled with support for 'autochdir'
autoservername Automatically enable |clientserver|
balloon_eval Compiled with |balloon-eval| support.
balloon_multiline GUI supports multiline balloons.
@@ -9374,6 +9617,7 @@ tgetent Compiled with tgetent support, able to use a termcap
timers Compiled with |timer_start()| support.
title Compiled with window title support |'title'|.
toolbar Compiled with support for |gui-toolbar|.
touchbar Compiled with support for Touch Bar in MacVim.
transparency Compiled with 'transparency' support.
ttyin input is a terminal (tty)
ttyout output is a terminal (tty)
@@ -9396,11 +9640,12 @@ vtp Compiled for vcon support |+vtp| (check vcon to find
out if it works in the current console).
wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option.
win16 old version for MS-Windows 3.1 (always False)
win32 Win32 version of Vim (MS-Windows 95 and later, 32 or
64 bits)
win32unix Win32 version of Vim, using Unix files (Cygwin)
win64 Win64 version of Vim (MS-Windows 64 bit).
win95 Win32 version for MS-Windows 95/98/ME.
win95 Win32 version for MS-Windows 95/98/ME (always False)
winaltkeys Compiled with 'winaltkeys' option.
windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
@@ -9507,9 +9752,13 @@ See |:verbose-cmd| for more information.
deleted if there are no more references to it.
*E127* *E122*
When a function by this name already exists and [!] is
not used an error message is given. When [!] is used,
an existing function is silently replaced. Unless it
is currently being executed, that is an error.
not used an error message is given. There is one
exception: When sourcing a script again, a function
that was previously defined in that script will be
silently replaced.
When [!] is used, an existing function is silently
replaced. Unless it is currently being executed, that
is an error.
NOTE: Use ! wisely. If used without care it can cause
an existing function to be replaced unexpectedly,
which is hard to debug.
@@ -11542,7 +11791,7 @@ The sandbox is also used for the |:sandbox| command.
These items are not allowed in the sandbox:
- changing the buffer text
- defining or changing mapping, autocommands, functions, user commands
- defining or changing mapping, autocommands, user commands
- setting certain options (see |option-summary|)
- setting certain v: variables (see |v:var|) *E794*
- executing a shell command
@@ -11564,6 +11813,7 @@ location. Insecure in this context are:
- sourcing a .vimrc or .exrc in the current directory
- while executing in the sandbox
- value coming from a modeline
- executing a function that was defined in the sandbox
Note that when in the sandbox and saving an option value and restoring it, the
option will still be marked as it was set in the sandbox.
@@ -11606,4 +11856,4 @@ without the |+eval| feature.
Find more information in the file src/testdir/README.txt.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+3 -6
View File
@@ -25,11 +25,9 @@ MS-Windows のメモ帳のような動作です。
.PP
引数や Vim についての詳細は vim(1) を参照してください。
.PP
オプション 'insertmode' が設定され、テキストを直接、入力できるようになりま
す。
オプション 'insertmode' が設定され、テキストを直接、入力できるようになります。
.br
コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定され
ます。
コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定されます。
CTRL-X が切り取り、CTRL-C がコピー、CTRL-V がペーストです。
標準の CTRL-V の操作は CTRL-Q に割り当てられます。
.SH オプション
@@ -41,8 +39,7 @@ eVim の初期化スクリプト。
.SH 別名
evim は "gumbies のための Vim" とも呼ばれています。
evim を使っているあなたはきっと、頭にハンカチをかぶっているのです。
(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっ
ている。)
(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっている。)
.SH 関連項目
vim(1)
.SH 著者
+52
View File
@@ -0,0 +1,52 @@
EVIM(1) EVIM(1)
NAME
evim - easy Vim, edit a file with Vim and setup for modeless editing
SYNOPSIS
evim [options] [file ..]
eview
DESCRIPTION
eVim starts Vim and sets options to make it behave like a modeless edi-
tor. This is still Vim but used as a point-and-click editor. This
feels a lot like using Notepad on MS-Windows. eVim will always run in
the GUI, to enable the use of menus and toolbar.
Only to be used for people who really can't work with Vim in the normal
way. Editing will be much less efficient.
eview is the same, but starts in read-only mode. It works just like
evim -R.
See vim(1) for details about Vim, options, etc.
The 'insertmode' option is set to be able to type text directly.
Mappings are setup to make Copy and Paste work with the MS-Windows
keys. CTRL-X cuts text, CTRL-C copies text and CTRL-V pastes text.
Use CTRL-Q to obtain the original meaning of CTRL-V.
OPTIONS
See vim(1).
FILES
/usr/local/lib/vim/evim.vim
The script loaded to initialize eVim.
AKA
Also Known As "Vim for gumbies". When using evim you are expected to
take a handkerchief, make a knot in each corner and wear it on your
head.
SEE ALSO
vim(1)
AUTHOR
Most of Vim was made by Bram Moolenaar, with a lot of help from others.
See the Help/Credits menu.
2002 February 16 EVIM(1)
+1 -1
View File
@@ -266,4 +266,4 @@ changes made in the current line.
For more information about the bugs refer to rileft.txt.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+24 -4
View File
@@ -320,8 +320,8 @@ then Vim will load all plugins in these directories and below:
Note that the last one is the value of $VIMRUNTIME which has been expanded.
Note that when using a plugin manager or |packages| many directories will be
added to 'runtimepath'. These plugins earch require their own directory,
don't put them directly in ~/.vim/plugin.
added to 'runtimepath'. These plugins each require their own directory, don't
put them directly in ~/.vim/plugin.
What if it looks like your plugin is not being loaded? You can find out what
happens when Vim starts up by using the |-V| argument: >
@@ -638,11 +638,31 @@ By default the following options are set, in accordance with PEP8: >
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
To disable this behaviour, set the following variable in your vimrc: >
To disable this behavior, set the following variable in your vimrc: >
let g:python_recommended_style = 0
R MARKDOWN *ft-rmd-plugin*
By default ftplugin/html.vim is not sourced. If you want it sourced, add to
your |vimrc|: >
let rmd_include_html = 1
The 'formatexpr' option is set dynamically with different values for R code
and for Markdown code. If you prefer that 'formatexpr' is not set, add to your
|vimrc|: >
let rmd_dynamic_comments = 0
R RESTRUCTURED TEXT *ft-rrst-plugin*
The 'formatexpr' option is set dynamically with different values for R code
and for ReStructured text. If you prefer that 'formatexpr' is not set, add to
your |vimrc|: >
let rrst_dynamic_comments = 0
RPM SPEC *ft-spec-plugin*
Since the text for this plugin is rather long it has been put in a separate
@@ -695,4 +715,4 @@ The mappings can be disabled with: >
<
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -601,4 +601,4 @@ used. Otherwise the values from the window where the buffer was edited last
are used.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -249,7 +249,7 @@ g:decada.Make_Command string
External command used for |g:decada.Make()| (|'makeprg'|).
*g:decada.Error_Format*
g:decada.Error_Format| string
g:decada.Error_Format string
Error format (|'errorformat'|).
==============================================================================
+4 -2
View File
@@ -1,4 +1,6 @@
*ft_rust.txt* Filetype plugin for Rust
*ft_rust.txt* For Vim version 8.1. Last change: 2017 Nov 02
This is documentation for the Rust filetype plugin.
==============================================================================
CONTENTS *rust*
@@ -234,4 +236,4 @@ It also has a few other mappings:
Note: This binding is only available in MacVim.
==============================================================================
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -777,4 +777,4 @@ Setting the filetype back to Perl sets all the usual "perl" related items back
as they were.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+31 -13
View File
@@ -547,15 +547,16 @@ floating menus that do not appear on the main menu bar.
5.2 Creating New Menus *creating-menus*
*:me* *:menu* *:noreme* *:noremenu*
*:am* *:amenu* *:an* *:anoremenu*
*:nme* *:nmenu* *:nnoreme* *:nnoremenu*
*:ome* *:omenu* *:onoreme* *:onoremenu*
*:vme* *:vmenu* *:vnoreme* *:vnoremenu*
*:xme* *:xmenu* *:xnoreme* *:xnoremenu*
*:sme* *:smenu* *:snoreme* *:snoremenu*
*:ime* *:imenu* *:inoreme* *:inoremenu*
*:cme* *:cmenu* *:cnoreme* *:cnoremenu*
*:me* *:menu* *:noreme* *:noremenu*
*:am* *:amenu* *:an* *:anoremenu*
*:nme* *:nmenu* *:nnoreme* *:nnoremenu*
*:ome* *:omenu* *:onoreme* *:onoremenu*
*:vme* *:vmenu* *:vnoreme* *:vnoremenu*
*:xme* *:xmenu* *:xnoreme* *:xnoremenu*
*:sme* *:smenu* *:snoreme* *:snoremenu*
*:ime* *:imenu* *:inoreme* *:inoremenu*
*:cme* *:cmenu* *:cnoreme* *:cnoremenu*
*:tlm* *:tlmenu* *:tln* *:tlnoremenu*
*E330* *E327* *E331* *E336* *E333*
*E328* *E329* *E337* *E792*
To create a new menu item, use the ":menu" commands. They are mostly like
@@ -571,6 +572,10 @@ the mouse button down on this will pop up a menu containing the item
"Big Changes", which is a sub-menu containing the item "Delete All Spaces",
which when selected, performs the operation.
To create a menu for terminal mode, use |:tlmenu| instead of |:tmenu| unlike
key mapping (|:tmap|). This is because |:tmenu| is already used for defining
tooltips for menus. See |terminal-typing|.
Special characters in a menu name:
& The next character is the shortcut key. Make sure each
@@ -589,9 +594,9 @@ With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
this menu can be used. The second part is shown as "Open :e". The ":e"
is right aligned, and the "O" is underlined, to indicate it is the shortcut.
The ":amenu" command can be used to define menu entries for all modes at once.
To make the command work correctly, a character is automatically inserted for
some modes:
The ":amenu" command can be used to define menu entries for all modes at once,
except for Terminal mode. To make the command work correctly, a character is
automatically inserted for some modes:
mode inserted appended ~
Normal nothing nothing
Visual <C-C> <C-\><C-G>
@@ -866,6 +871,16 @@ be used to complete the name of the menu item.
insert-mode menu Eg: >
:emenu File.Exit
:[range]em[enu] {mode} {menu} Like above, but execute the menu for {mode}:
'n': |:nmenu| Normal mode
'v': |:vmenu| Visual mode
's': |:smenu| Select mode
'o': |:omenu| Operator-pending mode
't': |:tlmenu| Terminal mode
'i': |:imenu| Insert mode
'c': |:cmenu| Cmdline mode
If the console-mode vim has been compiled with WANT_MENU defined, you can
use :emenu to access useful menu items you may have got used to from GUI
mode. See 'wildmenu' for an option that works well with this. See
@@ -886,6 +901,7 @@ using the last visual selection.
*:sunme* *:sunmenu*
*:iunme* *:iunmenu*
*:cunme* *:cunmenu*
*:tlu* *:tlunmenu*
To delete a menu item or a whole submenu, use the unmenu commands, which are
analogous to the unmap commands. Eg: >
:unmenu! Edit.Paste
@@ -952,6 +968,8 @@ See section |42.4| in the user manual.
:tu[nmenu] {menupath} Remove a tip for a menu or tool.
{only in X11 and Win32 GUI}
Note: To create menus for terminal mode, use |:tlmenu| instead.
When a tip is defined for a menu item, it appears in the command-line area
when the mouse is over that item, much like a standard Windows menu hint in
the status bar. (Except when Vim is in Command-line mode, when of course
@@ -1079,4 +1097,4 @@ careful!
For the Win32 GUI the external commands are executed in a separate window.
See |gui-shell-win32|.
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+119 -71
View File
@@ -12,14 +12,15 @@ The MacVim Graphical User Interface *macvim* *gui-macvim*
4. Special colors |macvim-colors|
5. Menus |macvim-menus|
6. Toolbar |macvim-toolbar|
7. Dialogs |macvim-dialogs|
8. System services |macvim-services|
9. mvim:// URL handler |macvim-url-handler|
10. Keyboard shortcuts |macvim-shortcuts|
11. Trackpad gestures |macvim-gestures|
12. International |macvim-international|
13. Known bugs/missing features |macvim-todo|
14. Hints |macvim-hints|
7. Touch Bar |macvim-touchbar|
8. Dialogs |macvim-dialogs|
9. System services |macvim-services|
10. mvim:// URL handler |macvim-url-handler|
11. Keyboard shortcuts |macvim-shortcuts|
12. Trackpad gestures |macvim-gestures|
13. International |macvim-international|
14. Known bugs/missing features |macvim-todo|
15. Hints |macvim-hints|
Other relevant documentation:
|gui.txt| For generic items of the GUI.
@@ -29,7 +30,7 @@ Other relevant documentation:
==============================================================================
1. MacVim differences *macvim-differences*
One of the goals of MacVim is to make Vim behave like a proper Mac OS X
One of the goals of MacVim is to make Vim behave like a proper macOS
application. For this reason MacVim behaves slightly different from other GUI
ports of Vim. Most of the modifications are provided in the system gvimrc
file; you can quickly open this file and look at it yourself by typing: >
@@ -64,8 +65,8 @@ file at all. In this situation, you will need to set both 'encoding' and
the file is read into memory, the original bytes are left untouched.
*macvim-shift-movement*
Text editors on Mac OS X lets the user hold down shift+movement key to extend
the selection. Also, pressing a printable key whilst selecting replaces the
Text editors on macOS lets the user hold down shift+movement key to extend the
selection. Also, pressing a printable key whilst selecting replaces the
current selection with that character. MacVim can emulate this kind of
behaviour (by providing key bindings and by setting 'keymodel' and
'selectmode' to non-default values) although it is not enabled by default. To
@@ -119,15 +120,22 @@ These are the non-standard commands that MacVim supports:
|:macaction| |:macmenu|
*macvim-find*
Whenever you search for something in Vim (e.g. using "/") the search query is
copied to the OS X "Find Pasteboard". The idea is that if you search for
something and switch to another application, then you can hit <D-g> (or <D-G>)
to repeat the search in the new app. The same feature works if you search in
some app, switch to MacVim and hit <D-g>.
Whenever you search for something in Vim (e.g. using "/"), or hit <D-e> when
you have text selected, the search query is copied to the macOS "Find
Pasteboard". The idea is that if you search for something and switch to
another application, then you can hit <D-g> (or <D-G>) to repeat the search in
the new app. The same feature works if you search in some app, switch to
MacVim and hit <D-g>.
If you would like to turn off sharing Vim's search query to the macOS Find
Pasteboard, you can set |MMShareFindPboard| to "NO". Even when that's set,
<D-g> will still use the OS Find Pasteboard for searching (use |n| instead if
that's not what you want), and <D-e> ("Edit -> Use Selection for Find") will
still share the search pattern to Find Pasteboard.
Note that the command |n| is not the same as <D-g>. The former will repeat
the last search made in Vim, whereas the latter searches for the string on the
OS X Find Pasteboard using the action findNext: (see |:macaction|).
macOS Find Pasteboard using the action findNext: (see |:macaction|).
The <D-g> key equivalent is a great way to bring a search from one window to
another in MacVim. Simply search for something in one window (using "/") then
@@ -155,7 +163,7 @@ up the "Open with" menu. You can also drag and drop files onto the Dock icon
to open them in tabs in a new window, or you can drop them in an already open
window to open the files in tabs in that specific window (it is possible to
have files open in e.g. splits by changing the "Open files from applications"
option in the General preference pane). Finally, you can use Mac OS X System
option in the General preference pane). Finally, you can use macOS System
Services to open files in MacVim, see |macvim-services|.
Use |mvim| script to start MacVim from Terminal.
@@ -205,9 +213,9 @@ history as the window you just closed (however the next window you open will).
For these reasons Quickstart is disabled by default.
*odbeditor* *external-editor*
MacVim can act as an 'external editor' for Mac OS X applications that support
the ODB Editor Protocol (or the 'external editor' protocol). Each application
has different ways of configuring this option, check the application's
MacVim can act as an 'external editor' for macOS applications that support the
ODB Editor Protocol (or the 'external editor' protocol). Each application has
different ways of configuring this option, check the application's
documentation. Once configured properly MacVim can be used to open files in
such an application.
@@ -230,32 +238,32 @@ circumstances. These options can still be changed with the "defaults" command
by opening Terminal and typing >
defaults write org.vim.MacVim KEY VALUE
Check the man page on "defaults" for more information on this command as well
as general information regarding Mac OS X user defaults.
as general information regarding macOS user defaults.
Here is a list of relevant dictionary entries:
KEY VALUE ~
MMCellWidthMultiplier width of a normal glyph in em units [float]
MMDialogsTrackPwd open/save dialogs track the Vim pwd [bool]
MMFullScreenFadeTime fade delay for non-native fullscreen [float]
MMLoginShellArgument login shell parameter [string]
MMLoginShellCommand which shell to use to launch Vim [string]
MMNoFontSubstitution disable automatic font substitution [bool]
MMNoTitleBarWindow hide title bar [bool]
MMShareFindPboard share search text to Find Pasteboard [bool]
MMShowAddTabButton enable "add tab" button on tabline [bool]
MMTabMaxWidth maximum width of a tab [int]
MMTabMinWidth minimum width of a tab [int]
MMTabOptimumWidth default width of a tab [int]
MMTextInsetBottom text area offset in pixels [int]
MMTextInsetLeft text area offset in pixels [int]
MMTextInsetRight text area offset in pixels [int]
MMTextInsetTop text area offset in pixels [int]
MMTexturedWindow use brushed metal window (Tiger only) [bool]
MMTranslateCtrlClick interpret ctrl-click as right-click [bool]
MMUseMouseTime use mousetime to detect multiple clicks [bool]
MMVerticalSplit files open in vertical splits [bool]
MMZoomBoth zoom button maximizes both directions [bool]
*MMCellWidthMultiplier* width of a normal glyph in em units [float]
*MMDialogsTrackPwd* open/save dialogs track the Vim pwd [bool]
*MMFullScreenFadeTime* fade delay for non-native fullscreen [float]
*MMLoginShellArgument* login shell parameter [string]
*MMLoginShellCommand* which shell to use to launch Vim [string]
*MMNoFontSubstitution* disable automatic font substitution [bool]
*MMNoTitleBarWindow* hide title bar [bool]
*MMShareFindPboard* share search text to Find Pasteboard [bool]
*MMShowAddTabButton* enable "add tab" button on tabline [bool]
*MMTabMaxWidth* maximum width of a tab [int]
*MMTabMinWidth* minimum width of a tab [int]
*MMTabOptimumWidth* default width of a tab [int]
*MMTextInsetBottom* text area offset in pixels [int]
*MMTextInsetLeft* text area offset in pixels [int]
*MMTextInsetRight* text area offset in pixels [int]
*MMTextInsetTop* text area offset in pixels [int]
*MMTexturedWindow* use brushed metal window (Tiger only) [bool]
*MMTranslateCtrlClick* interpret ctrl-click as right-click [bool]
*MMUseMouseTime* use mousetime to detect multiple clicks [bool]
*MMVerticalSplit* files open in vertical splits [bool]
*MMZoomBoth* zoom button maximizes both directions [bool]
As an example, if you have more than one mouse button and would wish to free
up Ctrl-click so you can bind it to something else, then the appropriate
@@ -336,18 +344,18 @@ highlight color when a window becomes inactive.
==============================================================================
5. Menus *macvim-menus*
Menus in Mac OS X behave slightly different from other platforms. For that
Menus in macOS behave slightly different from other platforms. For that
reason two new commands have been added to Vim. To understand what these
commands do you must first understand how menus work on OS X.
commands do you must first understand how menus work on macOS.
Each entry in a menu is called a "menu item". With each menu item is
associated: a title, a key equivalent and an action message. When a menu is
displayed the title is shown on the left and the key equivalent (if any) is
shown on the right. Key equivalents enable you to access a menu item using
the keyboard instead of having to use the mouse. When a menu item is clicked
it will send it's associated action message. Actions can be used to instruct
it will send its associated action message. Actions can be used to instruct
MacVim to paste some text (paste:), open a new window (newWindow:), etc.
Certain actions are standard throughout OS X which is why MacVim must be able
Certain actions are standard throughout macOS which is why MacVim must be able
to set these for each menu item. (E.g. the menu item "Edit.Paste" must be
bound to the action "paste:" otherwise pasting won't work in dialogs since
that is the action that instructs them to paste something.)
@@ -439,6 +447,8 @@ Action Description ~
fileOpen: Show "File Open" dialog
findNext: Search forward using the "Find Pasteboard"
findPrevious: Search backward using the "Find Pasteboard"
useSelectionForFind: Search the selected text and share to "Find
Pasteboard"
fontSizeDown: Decrease font size
fontSizeUp: Increase font size
hide: Hide MacVim
@@ -467,19 +477,47 @@ empty space which will shink or expand so that the items to the right of it
are right-aligned. A space (flexspace) will be created for any toolbar item
whose name begins with "-space" ("-flexspace") and ends with "-"
Toolbar icons should be tiff, png or icns, of dimension 32x32 or 24x24 pixels.
The larger size is used when 'tbis' is "medium" or "large", otherwise the
smaller size is used (which is the default). If the icon file only contains
one dimension then Mac OS X will scale the icon to the appropriate dimension
if necessary. To avoid this, use a file format which supports multiple
resolutions (such as icns) and provide both 32x32 and 24x24 versions of the
icon.
Toolbar icons should be tiff, png, icns, or heic, of dimension 32x32 or 24x24
pixels. The larger size is used when 'tbis' is "medium" or "large", otherwise
the smaller size is used (which is the default). If the icon file only
contains one dimension then macOS will scale the icon to the appropriate
dimension if necessary. To avoid this, use a file format which supports
multiple resolutions (such as icns) and provide both 32x32 and 24x24 versions
of the icon.
Note: Only a subset of the builtin toolbar items presently have icons. If no
icon can be found a warning triangle is displayed instead.
==============================================================================
7. Dialogs *macvim-dialogs*
7. Touch Bar *macvim-touchbar*
Touch Bar in MacVim works similar to the toolbar (see |macvim-toolbar|). The
difference is that you use the special menu "TouchBar" instead of "ToolBar": >
:an TouchBar.Hello :echo "Hello"<CR>
The separators work similar to how toolbars work: >
:an TouchBar.-Sep- <Nop>
:an TouchBar.-space1- <Nop>
:an TouchBar.-flexspace2- <Nop>
The first example is a Vim separator (see |menu-separator|) and injects a
space between two buttons. The second creates a smaller space than a normal
separator and are specified by names that begin with "-space" and ends with
"-". The third creates a flexible empty space which will shrink or expand so
that items after it will be right-aligned, and is specified by names that
begin with "-flexspace" and ends with "-".
You can specify icons for Touch Bar buttons the same way for toolbar icons.
Touch Bar icons should ideally be 36x36 pixels, and no larger than 44x44
pixels. You can also use default template icons provided by Apple by using
their template names. An example: >
:an icon=NSTouchBarListViewTemplate TouchBar.ShowList <Nop>
This feature only works on Mac devices that come with Touch Bars. On the ones
that don't, nothing will show up.
==============================================================================
8. Dialogs *macvim-dialogs*
Dialogs can be controlled with the keyboard in two ways. By default each
button in a dialog is bound to a key. The button that is highlighted by blue
@@ -498,13 +536,12 @@ select the current button. The current button is indicated with a blue
outline.
==============================================================================
8. System services *macvim-services*
9. System services *macvim-services*
MacVim supports two system services. These can be accessed from the MacVim
submenu in the Services menu or by right-clicking a selection. For services
to work, MacVim.app should be located in the /Applications folder. (You might
have to logout and then login again before Mac OS X detects the MacVim
services.)
have to logout and then login again before macOS detects the MacVim services.)
These are the currently supported services:
* New MacVim Buffer With Selection: Create a new buffer and paste the
@@ -516,7 +553,7 @@ The services respect the "Open files from applications" setting in the general
preferences.
==============================================================================
9. mvim:// URL handler *mvim://* *macvim-url-handler*
10. mvim:// URL handler *mvim://* *macvim-url-handler*
MacVim supports a custom URL handler for "mvim://" URLs. The handler is
supposed to be compatible to TextMate's URL scheme as documented at >
@@ -537,7 +574,7 @@ will open the file /etc/profile on line 20 when clicked in a web browser.
Note that url has to be a file:// url pointing to an existing local file.
==============================================================================
10. Keyboard shortcuts *macvim-shortcuts*
11. Keyboard shortcuts *macvim-shortcuts*
Most keyboard shortcuts in MacVim are bound to menu items and can be
discovered by looking through the menus (see |macvim-menus| on how to create
@@ -611,13 +648,13 @@ sometimes be slightly involved. Here are all the things you need to consider:
- Bindings to <D-..> are case sensitive: <D-d> is not the same as <D-D>. If
you want to map something to Cmd+Shift+d, then you need to use <D-D>, not
<D-S-d> or <D-S-D>.
- Some command key shortcuts are reserved by Mac OS X and cannot be mapped to
- Some command key shortcuts are reserved by macOS and cannot be mapped to
(e.g. <D-Tab>). However, some of these shortcuts can be freed up in the
System Preferences under Keyboard (e.g. Cmd+Space).
- A few command key mappings are set up by MacVim, see |cmd-movement|.
==============================================================================
11. Trackpad gestures *macvim-gestures*
12. Trackpad gestures *macvim-gestures*
MacVim supports trackpad swipe gestures. By default this can be used to
navigate back/forward in the help (try it!).
@@ -633,6 +670,10 @@ Each gesture generates one of the following Vim pseudo keys:
Generated when swiping three fingers across the trackpad in a
vertical direction. (Not supported by the Apple Magic Mouse.)
*<ForceClick>*
Generated when doing a Force click by pressing hard on a trackpad.
(Only supported on trackpads that support Force Touch.)
You can map these keys like with any other key using the |:map| family of
commands. For example, the following commands map left/right swipe to change
to the previous/next tab in normal mode: >
@@ -648,13 +689,13 @@ As another example, here is how to switch buffers by swiping left/right: >
See the section on |key-mapping| for more help on how to map keys.
==============================================================================
12. International *macvim-international*
13. International *macvim-international*
When editing non-English text it may be convenient to keep separate keyboard
layouts for normal and insert mode. This is supported via the 'imd' option on
Mac OS X 10.5 or later (on 10.4 the 'imd' option support is not as useful as
it only switches between Roman and non-Roman input sources and it has been
known not to work very reliably).
macOS 10.5 or later (on 10.4 the 'imd' option support is not as useful as it
only switches between Roman and non-Roman input sources and it has been known
not to work very reliably).
For example: When 'noimd' is enabled (i.e. IM is enabled) the input source is
saved when toggling between normal and insert mode, so you can use a US layout
@@ -669,11 +710,14 @@ wrong layout when going back to normal mode, then select the layout you want
to use in normal mode and type ":set imd" followed by ":set noimd".
==============================================================================
13. Known bugs/missing features *macvim-todo*
14. Known bugs/missing features *macvim-todo*
This list is by no means exhaustive, it only enumerates some of the more
prominent bugs/missing features.
- Under macOS Mojave (10.14), the default renderer (Core Text renderer) has
some performance issues and scrolling is not as smooth as previous macOS
versions (10.13 or below).
- Localized menus are not supported. Choosing anything but "English" in the
"International" pane of "System Prefences" may break the menus (and
toolbar).
@@ -685,15 +729,19 @@ prominent bugs/missing features.
then opened in Preview where it may be printed.
- The toolbar looks ugly and is not very useful.
If you find new bugs then please post your findings to the vim_mac mailing
list: *vim_mac_group* >
Other bugs and issues are tracked on Github. If you find new bugs then please
file an issue there: >
https://github.com/macvim-dev/macvim/issues
There is also a vim_mac mailing list. You can also post your findings of bugs
and issues there as well: *vim_mac_group* >
http://groups.google.com/group/vim_mac
This is also the best place for making feature requests as well as for asking
general questions about MacVim.
==============================================================================
14. Hints *macvim-hints*
15. Hints *macvim-hints*
In this section some general (not necessarily MacVim specific) hints are
given.
@@ -805,4 +853,4 @@ page.
Solution: ~
Post your question on the |vim_mac| mailing list and wait for an answer.
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+2 -2
View File
@@ -442,7 +442,7 @@ with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
XPM support *w32-xpm-support*
Gvim can be build on MS-Windows with support for XPM files. |+xpm_w32|
GVim can be build on MS-Windows with support for XPM files. |+xpm_w32|
See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: >
@@ -451,4 +451,4 @@ To try out if XPM support works do this: >
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
<
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+17 -3
View File
@@ -385,8 +385,8 @@ you might have to use the file ~/.gtkrc-2.0 instead, depending on your
distribution.
For GTK+ 3, an effect similar to the above can be obtained by adding the
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
$HOME/.config/gtk-3.0/gtk.css):
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (see the next
section):
For GTK+ 3 < 3.20: >
@@ -417,6 +417,10 @@ stable support for GTK+ CSS:
GTK+ uses CSS for styling and layout of widgets. In this subsection, we'll
have a quick look at GTK+ CSS through simple, illustrative examples.
You can usually edit the config with: >
vim $HOME/.config/gtk-3.0/gtk.css
Example 1. Empty Space Adjustment ~
By default, the toolbar and the tabline of the GTK+ 3 GUI are somewhat larger
@@ -501,6 +505,16 @@ unexpectedly less attractive or even deteriorates their usability. Keep this
in mind always when you try improving a theme.
Example 3. border color ~
To eliminate borders when maximized: >
@define-color bg_color #1B2B34;
#vim-main-window {
background-color: @bg_color;
}
Using Vim as a GTK+ plugin ~
*gui-gtk-socketid*
When the GTK+ version of Vim starts up normally, it creates its own top level
@@ -730,4 +744,4 @@ and use CLIPBOARD ("+) for cut/copy/paste operations. You thus have access to
both by choosing to use either of the "* or "+ registers.
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -109,4 +109,4 @@ Send comments, patches and suggestions to:
SungHyun Nam <goweol@gmail.com>
Chi-Deok Hwang <...>
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -139,4 +139,4 @@ The result is that all Hebrew characters are displayed as ~x. To solve this
problem, set isprint=@,128-255.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -226,4 +226,4 @@ will try to find help for it. Especially for options in single quotes, e.g.
'compatible'.
------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
vim:tw=78:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -370,4 +370,4 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -93,4 +93,4 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|2html.vim| convert a colored file to HTML
|less| use Vim like less or more with syntax highlighting
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -484,4 +484,4 @@ For a cscope version for Win32 see (seems abandoned):
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+9 -8
View File
@@ -125,9 +125,9 @@ Vim evaluation and command execution, and others.
Non-numeric keys are not used to initialize
the list. See also |lua-eval| for conversion
rules. Example: >
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.list(t)')
:" [3.141593, 0], 'say' is ignored
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.list(t)')
:" [3.141593, v:false], 'say' is ignored
<
vim.dict([arg]) Returns an empty dictionary or, if "arg" is a
Lua table, returns a dict d such that d[k] =
@@ -136,13 +136,14 @@ Vim evaluation and command execution, and others.
strings. Keys that are not strings are not
used to initialize the dictionary. See also
|lua-eval| for conversion rules. Example: >
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.dict(t)')
:" {'say': 'hi'}, numeric keys ignored
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.dict(t)')
:" {'1': 3.141593, '2': v:false,
:" 'say': 'hi'}
<
vim.funcref({name}) Returns a Funcref to function {name} (see
|Funcref|). It is equivalent to Vim's
"function". NOT IMPLEMENTED YET
function().
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
@@ -166,7 +167,7 @@ Vim evaluation and command execution, and others.
or window, respectively. Examples: >
:lua l = vim.list()
:lua print(type(l), vim.type(l))
:" userdata list
:" list
<
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
Examples: >
+1 -1
View File
@@ -312,4 +312,4 @@ MzScheme's raco command:
raco pkg install cext-lib # raco ctool command
<
======================================================================
vim:tw=78:ts=8:sts=4:ft=help:norl:
vim:tw=78:ts=8:noet:sts=4:ft=help:norl:
+1 -1
View File
@@ -202,4 +202,4 @@ In Vim >
[.Net remarks provided by Dave Fishburn and Brian Sturk]
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+4 -3
View File
@@ -44,8 +44,9 @@ The Perl patches for Vim were made by:
Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
Matt Gerassimof
Perl for MS-Windows can be found at: http://www.perl.com/
The ActiveState one should work.
Perl for MS-Windows (and other platforms) can be found at:
http://www.perl.org/
The ActiveState one should work, Strawberry Perl is a good alternative.
==============================================================================
3. Using the Perl interface *perl-using*
@@ -303,4 +304,4 @@ version of the shared library must match the Perl version Vim was compiled
with.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+23 -7
View File
@@ -60,9 +60,10 @@ Example: >
endfunction
To see what version of Python you have: >
:python import sys
:python print(sys.version)
There is no need to import sys, it's done by default.
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
@@ -81,6 +82,18 @@ Examples:
>
:pydo return "%s\t%d" % (line[::-1], len(line))
:pydo if line: return "%4d: %s" % (linenr, line)
<
One can use `:pydo` in possible conjunction with `:py` to filter a range using
python. For example: >
:py3 << EOF
needle = vim.eval('@a')
replacement = vim.eval('@b')
def py_vim_string_replace(str):
return str.replace(needle, replacement)
EOF
:'<,'>py3do return py_vim_string_replace(line)
<
*:pyfile* *:pyf*
:[range]pyf[ile] {file}
@@ -98,7 +111,6 @@ Python commands cannot be used in the |sandbox|.
To pass arguments you need to set sys.argv[] explicitly. Example: >
:python import sys
:python sys.argv = ["foo", "bar"]
:pyfile myscript.py
@@ -168,11 +180,15 @@ vim.eval(str) *python-eval*
- a dictionary if the Vim expression evaluates to a Vim dictionary
Dictionaries and lists are recursively expanded.
Examples: >
:" value of the 'textwidth' option
:py text_width = vim.eval("&tw")
:py str = vim.eval("12+12") # NB result is a string! Use
# string.atoi() to convert to
# a number.
:
:" contents of the 'a' register
:py a_reg = vim.eval("@a")
:
:" Result is a string! Use string.atoi() to convert to a number.
:py str = vim.eval("12+12")
:
:py tagList = vim.eval('taglist("eval_expr")')
< The latter will return a python list of python dicts, for instance:
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
@@ -924,4 +940,4 @@ If you have more than one version of Python 3, you need to link python3 to the
one you prefer, before running configure.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+3 -2
View File
@@ -145,7 +145,7 @@ self[{n}] Returns the buffer object for the number {n}. The first number
Methods:
name Returns the name of the buffer.
name Returns the full name of the buffer.
number Returns the number of the buffer.
count Returns the number of lines.
length Returns the number of lines.
@@ -181,6 +181,7 @@ height = {n} Sets the window height to {n}.
width Returns the width of the window.
width = {n} Sets the window width to {n}.
cursor Returns a [row, col] array for the cursor position.
First line number is 1 and first column number is 0.
cursor = [{row}, {col}]
Sets the cursor position to {row} and {col}.
@@ -233,4 +234,4 @@ version of the shared library must match the Ruby version Vim was compiled
with.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -8,4 +8,4 @@
The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out
sync to before that.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -544,4 +544,4 @@ of DYNAMIC_TCL_DLL file what was specified at compile time. The version of
the shared library must match the Tcl version Vim was compiled with.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+23 -12
View File
@@ -588,8 +588,9 @@ The basics for using flexible indenting are explained in section |30.3| of the
user manual.
If you want to write your own indent file, it must set the 'indentexpr'
option. Setting the 'indentkeys' option is often useful. See the
$VIMRUNTIME/indent directory for examples.
option. Setting the 'indentkeys' option is often useful.
See the $VIMRUNTIME/indent/README.txt file for hints.
See the $VIMRUNTIME/indent directory for examples.
REMARKS ABOUT SPECIFIC INDENT FILES ~
@@ -602,14 +603,14 @@ the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
If the current vim does not include |searchpairpos()|, the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
Set maximum scan distance of |searchpairpos()|. Larger values trade
performance for correctness when dealing with very long forms. A value of 0
will scan without limits.
>
" Default
let g:clojure_maxlines = 100
@@ -935,11 +936,16 @@ given are the defaults. Note that the variables are set to an expression, so
that you can change the value of 'shiftwidth' later.
Indent after an open paren: >
let g:pyindent_open_paren = '&sw * 2'
let g:pyindent_open_paren = 'shiftwidth() * 2'
Indent after a nested paren: >
let g:pyindent_nested_paren = '&sw'
let g:pyindent_nested_paren = 'shiftwidth()'
Indent for a continuation line: >
let g:pyindent_continue = '&sw * 2'
let g:pyindent_continue = 'shiftwidth() * 2'
The method uses |searchpair()| to look back for unclosed parenthesis. This
can sometimes be slow, thus it timeouts after 150 msec. If you notice the
indenting isn't correct, you can set a larger timeout in msec: >
let g:pyindent_searchpair_timeout = 500
R *ft-r-indent*
@@ -978,6 +984,11 @@ Below is an example of indentation with and without this option enabled:
paste(x) paste(x)
} }
<
The code will be indented after lines that match the pattern
`'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`. If you want indentation after
lines that match a different pattern, you should set the appropriate value of
`r_indent_op_pattern` in your |vimrc|.
SHELL *ft-sh-indent*
@@ -1028,7 +1039,7 @@ Furthermore, setting the variable b:verilog_indent_width to change the
indenting width (default is 'shiftwidth'): >
let b:verilog_indent_width = 4
let b:verilog_indent_width = &sw * 2
let b:verilog_indent_width = shiftwidth() * 2
In addition, you can turn the verbose mode for debug issue: >
@@ -1151,9 +1162,9 @@ VIM *ft-vim-indent*
For indenting Vim scripts there is one variable that specifies the amount of
indent for a continuation line, a line that starts with a backslash: >
:let g:vim_indent_cont = &sw * 3
:let g:vim_indent_cont = shiftwidth() * 3
Three times shiftwidth is the default value.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+4 -1
View File
@@ -1585,6 +1585,9 @@ tag command action ~
|:tjump| :tj[ump] like ":tselect", but jump directly when there
is only one match
|:tlast| :tl[ast] jump to last matching tag
|:tlmenu| :tlm[enu] add menu for Terminal-Job mode
|:tlnoremenu| :tln[oremenu] like ":noremenu" but for Terminal-Job mode
|:tlunmenu| :tlu[nmenu] remove menu for Terminal-Job mode
|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|:tmenu| :tm[enu] define menu tooltip
@@ -1659,4 +1662,4 @@ tag command action ~
|:~| :~ repeat last ":substitute"
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+10 -10
View File
@@ -434,11 +434,11 @@ An example for using CTRL-G U: >
This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): >
Also entering a text like (with the "(" mapping from above):
Lorem ipsum (dolor
will be repeatable by the |.|to the expected
will be repeatable by using |.| to the expected
Lorem ipsum (dolor)
@@ -1051,13 +1051,13 @@ The function must return the column where the completion starts. It must be a
number between zero and the cursor column "col('.')". This involves looking
at the characters just before the cursor and including those characters that
could be part of the completed item. The text between this column and the
cursor column will be replaced with the matches.
cursor column will be replaced with the matches. If the returned value is
larger than the cursor column, the cursor column is used.
Special return values:
-1 If no completion can be done, the completion will be cancelled with an
error message.
-2 To cancel silently and stay in completion mode.
-3 To cancel silently and leave completion mode.
Negative return values:
-2 To cancel silently and stay in completion mode.
-3 To cancel silently and leave completion mode.
Another negative value: completion starts at the cursor column
On the second invocation the arguments are:
a:findstart 0
@@ -1535,7 +1535,7 @@ phpFunctions.
If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of
autoload\syntaxcomplete.vim) to add items. Looking at the output from
autoload/syntaxcomplete.vim) to add items. Looking at the output from
":syntax list" while editing a PHP file I can see some of these entries: >
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
@@ -2005,4 +2005,4 @@ self explanatory. Using the long or the short version depends on the
[READ ERRORS] not all of the file could be read
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+4 -4
View File
@@ -595,9 +595,9 @@ Virtual Replace mode Virtual Replace mode is similar to Replace mode, but
If the 'showmode' option is on "-- VREPLACE --" is
shown at the bottom of the window.
Insert Normal mode Entered when CTRL-O given in Insert mode. This is
like Normal mode, but after executing one command Vim
returns to Insert mode.
Insert Normal mode Entered when CTRL-O is typed in Insert mode (see
|i_CTRL-O|). This is like Normal mode, but after
executing one command Vim returns to Insert mode.
If the 'showmode' option is on "-- (insert) --" is
shown at the bottom of the window.
@@ -906,4 +906,4 @@ buffer lines logical lines window lines screen lines ~
6. ~
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+31 -16
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.1. Last change: 2018 May 13
*map.txt* For Vim version 8.1. Last change: 2018 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -371,8 +371,9 @@ job running in the terminal. See |terminal-typing|.
*omap-info*
Operator-pending mappings can be used to define a movement command that can be
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
and "d{" like "dw".
used with any operator. Simple example: >
:omap { w
makes "y{" work like "yw" and "d{" like "dw".
To ignore the starting cursor position and select different text, you can have
the omap start Visual mode to select the text to be operated upon. Example
@@ -383,9 +384,11 @@ Normal mode commands find the first '(' character and select the first word
before it. That usually is the function name.
To enter a mapping for Normal and Visual mode, but not Operator-pending mode,
first define it for all three modes, then unmap it for Operator-pending mode:
first define it for all three modes, then unmap it for
Operator-pending mode: >
:map xx something-difficult
:ounmap xx
Likewise for a mapping for Visual and Operator-pending mode or Normal and
Operator-pending mode.
@@ -1220,6 +1223,10 @@ See |:verbose-cmd| for more information.
attributes (see below) are {attr}. If the command
already exists, an error is reported, unless a ! is
specified, in which case the command is redefined.
There is one exception: When sourcing a script again,
a command that was previously defined in that script
will be silently replaced.
:delc[ommand] {cmd} *:delc* *:delcommand* *E184*
Delete the user-defined command {cmd}.
@@ -1227,7 +1234,8 @@ See |:verbose-cmd| for more information.
:comc[lear] *:comc* *:comclear*
Delete all user-defined commands.
Command attributes
Command attributes ~
User-defined commands are treated by Vim just like any other Ex commands. They
can have arguments, or have a range specified. Arguments are subject to
@@ -1238,8 +1246,9 @@ There are a number of attributes, split into four categories: argument
handling, completion behavior, range handling, and special cases. The
attributes are described below, by category.
Argument handling *E175* *E176* *:command-nargs*
Argument handling ~
*E175* *E176* *:command-nargs*
By default, a user defined command will take no arguments (and an error is
reported if any are supplied). However, it is possible to specify that the
command can take arguments, using the -nargs attribute. Valid cases are:
@@ -1268,8 +1277,10 @@ defined, not where it is invoked! Example:
Executing script2.vim will result in "None" being echoed. Not what you
intended! Calling a function may be an alternative.
Completion behavior *:command-completion* *E179*
*E180* *E181* *:command-complete*
Completion behavior ~
*:command-completion* *E179* *E180* *E181*
*:command-complete*
By default, the arguments of user defined commands do not undergo completion.
However, by specifying one or the other of the following attributes, argument
completion can be enabled:
@@ -1314,9 +1325,9 @@ completion can be enabled:
Note: That some completion methods might expand environment variables.
Custom completion *:command-completion-custom*
*:command-completion-customlist*
*E467* *E468*
Custom completion ~
*:command-completion-custom*
*:command-completion-customlist* *E467* *E468*
It is possible to define customized completion schemes via the "custom,{func}"
or the "customlist,{func}" completion argument. The {func} part should be a
function with the following signature: >
@@ -1361,8 +1372,8 @@ the 'path' option: >
This example does not work for file names with spaces!
Range handling *E177* *E178* *:command-range*
*:command-count*
Range handling ~
*E177* *E178* *:command-range* *:command-count*
By default, user-defined commands do not accept a line number range. However,
it is possible to specify that the command does take a range (the -range
attribute), or that it takes an arbitrary count value, either in the line
@@ -1396,8 +1407,11 @@ Possible values are:
-addr=loaded_buffers Range for loaded buffers
-addr=windows Range for windows
-addr=tabs Range for tab pages
-addr=other other kind of range
Special cases *:command-bang* *:command-bar*
Special cases ~
*:command-bang* *:command-bar*
*:command-register* *:command-buffer*
There are some special cases as well:
@@ -1415,7 +1429,8 @@ replacement text separately.
Note that these arguments can be abbreviated, but that is a deprecated
feature. Use the full name for new scripts.
Replacement text
Replacement text ~
The replacement text for a user defined command is scanned for special escape
sequences, using <...> notation. Escape sequences are replaced with values
@@ -1552,4 +1567,4 @@ local to the script and use mappings local to the script. When the user
invokes the user command, it will run in the context of the script it was
defined in. This matters if |<SID>| is used in a command.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -1467,4 +1467,4 @@ Contributions specifically for the multi-byte features by:
Taro Muraoka <koron@tka.att.ne.jp>
Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -866,4 +866,4 @@ The |g<| command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter
prompt.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+5 -3
View File
@@ -102,8 +102,10 @@ Or:
This also contains tools xgettext, msgformat and others.
libintl.dll should be placed in same directory with (g)vim.exe, or some
place where PATH environment value describe. Vim also finds libintl-8.dll.
libintl.dll should be placed in same directory as (g)vim.exe, or one of the
directories listed in the PATH environment value. Vim also looks for the
alternate names "libintl-8.dll" and "intl.dll".
Message files (vim.mo) have to be placed in "$VIMRUNTIME/lang/xx/LC_MESSAGES",
where "xx" is the abbreviation of the language (mostly two letters).
@@ -210,4 +212,4 @@ a message adapt to language preferences of the user, >
:endif
<
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+10 -9
View File
@@ -1019,12 +1019,13 @@ These commands are not marks themselves, but jump to a mark:
==============================================================================
8. Jumps *jump-motions*
A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n",
"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and
the commands that start editing a new file. If you make the cursor "jump"
with one of these commands, the position of the cursor before the jump is
A "jump" is a command that normally moves the cursor several lines away. If
you make the cursor "jump" the position of the cursor before the jump is
remembered. You can return to that position with the "''" and "``" command,
unless the line containing that position was changed or deleted.
unless the line containing that position was changed or deleted. The
following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N",
"%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the
commands that start editing a new file.
*CTRL-O*
CTRL-O Go to [count] Older cursor position in jump list
@@ -1163,7 +1164,7 @@ remembered.
*:changes*
:changes Print the change list. A ">" character indicates the
current position. Just after a change it is below the
newest entry, indicating that "g;" takes you to the
newest entry, indicating that `g;` takes you to the
newest entry position. The first column indicates the
count needed to take you to this position. Example:
@@ -1173,8 +1174,8 @@ remembered.
1 14 54 the latest changed line
>
The "3g;" command takes you to line 9. Then the
output of ":changes is:
The `3g;` command takes you to line 9. Then the
output of `:changes` is:
change line col text ~
> 0 9 8 bla bla bla
@@ -1340,4 +1341,4 @@ L To line [count] from bottom of window (default: Last
position is in a status line, that window is made the
active window and the cursor is not moved. {not in Vi}
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+3 -3
View File
@@ -409,9 +409,9 @@ defineAnnoType typeNum typeName tooltip glyphFile fg bg
Vim will define a sign for the annotation.
When color is a number, this is the "#rrggbb" Red, Green and
Blue values of the color (see |gui-colors|) and the
highlighting is only defined for GVim.
highlighting is only defined for gVim.
When color is a name, this color is defined both for Vim
running in a color terminal and for GVim.
running in a color terminal and for gVim.
When both "fg" and "bg" are "none" no line highlighting is
used (new in version 2.1).
When "glyphFile" is empty, no text sign is used (new in
@@ -1007,4 +1007,4 @@ Expert tab MIME Type property. NetBeans is MIME oriented and the External
Editor will only open MIME types specified in this property.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+181 -58
View File
@@ -120,10 +120,10 @@ and the following arguments will be ignored.
When 'verbose' is non-zero, displaying an option value will also tell where it
was last set. Example: >
:verbose set shiftwidth cindent?
< shiftwidth=4 ~
Last set from modeline ~
cindent ~
Last set from /usr/local/share/vim/vim60/ftplugin/c.vim ~
< shiftwidth=4 ~
Last set from modeline line 1 ~
cindent ~
Last set from /usr/local/share/vim/vim60/ftplugin/c.vim line 30 ~
This is only done when specific option values are requested, not for ":verbose
set all" or ":verbose set" without an argument.
When the option was set by hand there is no "Last set" message.
@@ -132,7 +132,7 @@ autocommand, the script in which it was defined is reported.
Note that an option may also have been set as a side effect of setting
'compatible'.
A few special texts:
Last set from modeline ~
Last set from modeline line 1 ~
Option was set in a |modeline|.
Last set from --cmd argument ~
Option was set with command line argument |--cmd| or +.
@@ -835,7 +835,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
When a file has been detected to have been changed outside of Vim and
it has not been changed inside of Vim, automatically read it again.
When the file has been deleted this is not done. |timestamp|
When the file has been deleted this is not done, so you have the text
from before it was deleted. When it appears again then it is read.
|timestamp|
If this option has a local value, use this command to switch back to
using the global value: >
:set autoread<
@@ -849,6 +851,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.
Note that for some commands the 'autowrite' option is not used, see
'autowriteall' for that.
Some buffers will not be written, specifically when 'buftype' is
"nowrite", "nofile", "terminal" or "prompt".
*'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
'autowriteall' 'awa' boolean (default off)
@@ -1057,6 +1061,14 @@ A jump table for the options with a short description can be found at |Q_op|.
name, precede it with a backslash.
- To include a comma in a directory name precede it with a backslash.
- A directory name may end in an '/'.
- For Unix and Win32, if a directory ends in two path separators "//",
the backup file name will be built from the complete path to the
file with all path separators changed to percent '%' signs. This
will ensure file name uniqueness in the backup directory.
On Win32, it is also possible to end with "\\". However, When a
separating comma is following, you must use "//", since "\\" will
include the comma in the file name. Therefore it is recommended to
use '//', instead of '\\'.
- Environment variables are expanded |:set_env|.
- Careful with '\' characters, type one before a space, type two to
get one in the option (see |option-backslash|), for example: >
@@ -1639,10 +1651,10 @@ A jump table for the options with a short description can be found at |Q_op|.
area extended, Vim tries to become the owner of the
windowing system's global selection or put the
selected text on the clipboard used by the selection
register "*. See |guioptions_a| and |quotestar| for
details. When the GUI is active, the 'a' flag in
'guioptions' is used, when the GUI is not active, this
"autoselect" flag is used.
register "*. See |'go-a'| and |quotestar| for details.
When the GUI is active, the 'a' flag in 'guioptions'
is used, when the GUI is not active, this "autoselect"
flag is used.
Also applies to the modeless selection.
*clipboard-autoselectplus*
@@ -2010,8 +2022,8 @@ A jump table for the options with a short description can be found at |Q_op|.
displayed. E.g., when moving vertically it may change column.
'conceallevel' 'cole' *'conceallevel'* *'cole'*
number (default 0)
*'conceallevel'* *'cole'*
'conceallevel' 'cole' number (default 0)
local to window
{not in Vi}
{not available when compiled without the |+conceal|
@@ -2108,10 +2120,10 @@ A jump table for the options with a short description can be found at |Q_op|.
See also |map_bar|.
*cpo-B*
B A backslash has no special meaning in mappings,
abbreviations and the "to" part of the menu commands.
Remove this flag to be able to use a backslash like a
CTRL-V. For example, the command ":map X \<Esc>"
results in X being mapped to:
abbreviations, user commands and the "to" part of the
menu commands. Remove this flag to be able to use a
backslash like a CTRL-V. For example, the command
":map X \<Esc>" results in X being mapped to:
'B' included: "\^[" (^[ is a real <Esc>)
'B' excluded: "<Esc>" (5 characters)
('<' excluded in both cases)
@@ -2620,13 +2632,13 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{not available when compiled without the |+diff|
feature}
Expression which is evaluated to obtain an ed-style diff file from two
versions of a file. See |diff-diffexpr|.
Expression which is evaluated to obtain a diff file (either ed-style
or unified-style) from two versions of a file. See |diff-diffexpr|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'dip'* *'diffopt'*
'diffopt' 'dip' string (default "filler")
'diffopt' 'dip' string (default "internal,filler")
global
{not in Vi}
{not available when compiled without the |+diff|
@@ -2645,6 +2657,15 @@ A jump table for the options with a short description can be found at |Q_op|.
When omitted a context of six lines is used.
See |fold-diff|.
iblank Ignore changes where lines are all blank. Adds
the "-B" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
of the "diff" command for what this does
exactly.
NOTE: the diff windows will get out of sync,
because no differences between blank lines are
taken into account.
icase Ignore changes in case of text. "a" and "A"
are considered the same. Adds the "-i" flag
to the "diff" command if 'diffexpr' is empty.
@@ -2656,6 +2677,18 @@ A jump table for the options with a short description can be found at |Q_op|.
exactly. It should ignore adding trailing
white space, but not leading white space.
iwhiteall Ignore all white space changes. Adds
the "-w" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
of the "diff" command for what this does
exactly.
iwhiteeol Ignore white space changes at end of line.
Adds the "-Z" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
of the "diff" command for what this does
exactly.
horizontal Start diff mode with horizontal splits (unless
explicitly specified otherwise).
@@ -2668,11 +2701,31 @@ A jump table for the options with a short description can be found at |Q_op|.
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
starting diff mode. Without this 2 is used.
Examples: >
internal Use the internal diff library. This is
ignored when 'diffexpr' is set. *E960*
When running out of memory when writing a
buffer this item will be ignored for diffs
involving that buffer. Set the 'verbose'
option to see when this happens.
:set diffopt=filler,context:4
indent-heuristic
Use the indent heuristic for the internal
diff library.
algorithm:{text} Use the specified diff algorithm with the
internal diff engine. Currently supported
algorithms are:
myers the default algorithm
minimal spend extra time to generate the
smallest possible diff
patience patience diff algorithm
histogram histogram diff algorithm
Examples: >
:set diffopt=internal,filler,context:4
:set diffopt=
:set diffopt=filler,foldcolumn:3
:set diffopt=internal,filler,foldcolumn:3
:set diffopt-=internal " do NOT use the internal diff parser
<
*'digraph'* *'dg'* *'nodigraph'* *'nodg'*
'digraph' 'dg' boolean (default off)
@@ -2701,12 +2754,14 @@ A jump table for the options with a short description can be found at |Q_op|.
- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
put the swap file relative to where the edited file is. The leading
"." is replaced with the path name of the edited file.
- For Unix and Win32, if a directory ends in two path separators "//"
or "\\", the swap file name will be built from the complete path to
the file with all path separators substituted to percent '%' signs.
This will ensure file name uniqueness in the preserve directory.
On Win32, when a separating comma is following, you must use "//",
since "\\" will include the comma in the file name.
- For Unix and Win32, if a directory ends in two path separators "//",
the swap file name will be built from the complete path to the file
with all path separators substituted to percent '%' signs. This will
ensure file name uniqueness in the preserve directory.
On Win32, it is also possible to end with "\\". However, When a
separating comma is following, you must use "//", since "\\" will
include the comma in the file name. Therefore it is recommended to
use '//', instead of '\\'.
- Spaces after the comma are ignored, other spaces are considered part
of the directory name. To have a space at the start of a directory
name, precede it with a backslash.
@@ -3961,8 +4016,8 @@ A jump table for the options with a short description can be found at |Q_op|.
screen.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows, "t" is
removed in |defaults.vim|),
'guioptions' 'go' string (default "egmrLtT" (MS-Windows,
"t" is removed in |defaults.vim|),
"aegimrLtT" (GTK, Motif and Athena),
)
global
@@ -3982,7 +4037,7 @@ A jump table for the options with a short description can be found at |Q_op|.
terminal to list the command output.
The terminal window will be positioned at the bottom, and grow
upwards as needed.
*guioptions_a* *'go-a'*
*'go-a'*
'a' Autoselect: If present, then whenever VISUAL mode is started,
or the Visual area extended, Vim tries to become the owner of
the windowing system's global selection. This means that the
@@ -4484,7 +4539,7 @@ A jump table for the options with a short description can be found at |Q_op|.
methods. Use 'imdisable' to disable XIM then.
You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
via external command if vim is not compiled with the |+xim|,
via external command if Vim is not compiled with the |+xim|,
|+multi_byte_ime| or |global-ime|.
*'imsearch'* *'ims'*
@@ -4591,7 +4646,18 @@ A jump table for the options with a short description can be found at |Q_op|.
so far, matches. The matched string is highlighted. If the pattern
is invalid or not found, nothing is shown. The screen will be updated
often, this is only useful on fast terminals.
Note that the match will be shown, but the cursor will return to its
Also applies to the pattern in commands: >
:global
:lvimgrep
:lvimgrepadd
:smagic
:snomagic
:sort
:substitute
:vglobal
:vimgrep
:vimgrepadd
< Note that the match will be shown, but the cursor will return to its
original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the
cursor to the match.
@@ -4604,9 +4670,9 @@ A jump table for the options with a short description can be found at |Q_op|.
The highlighting can be set with the 'i' flag in 'highlight'.
When 'hlsearch' is on, all matched strings are highlighted too while
typing a search command. See also: 'hlsearch'.
If you don't want turn 'hlsearch' on, but want to highlight all matches
while searching, you can turn on and off 'hlsearch' with autocmd.
Example: >
If you don't want to turn 'hlsearch' on, but want to highlight all
matches while searching, you can turn on and off 'hlsearch' with
autocmd. Example: >
augroup vimrc-incsearch-highlight
autocmd!
autocmd CmdlineEnter /,\? :set hlsearch
@@ -4776,7 +4842,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Identifiers are used in recognizing environment variables and after a
match of the 'define' option. It is also used for "\i" in a
|pattern|. See 'isfname' for a description of the format of this
option.
option. For '@' only characters up to 255 are used.
Careful: If you change this option, it might break expanding
environment variables. E.g., when '/' is included and Vim tries to
expand "$HOME/.viminfo". Maybe you should change 'iskeyword' instead.
@@ -4790,8 +4856,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Keywords are used in searching and recognizing with many commands:
"w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See
'isfname' for a description of the format of this option. For C
programs you could use "a-z,A-Z,48-57,_,.,-,>".
'isfname' for a description of the format of this option. For '@'
characters above 255 check the "word" character class.
For C programs you could use "a-z,A-Z,48-57,_,.,-,>".
For a help file it is set to all non-blank printable characters except
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
command).
@@ -5394,7 +5461,10 @@ A jump table for the options with a short description can be found at |Q_op|.
Running into the limit often means that the pattern is very
inefficient or too complex. This may already happen with the pattern
"\(.\)*" on a very long line. ".*" works much better.
Vim may run out of memory before hitting the 'maxmempattern' limit.
Might also happen on redraw, when syntax rules try to match a complex
text structure.
Vim may run out of memory before hitting the 'maxmempattern' limit, in
which case you get an "Out of memory" error instead.
*'maxmemtot'* *'mmt'*
'maxmemtot' 'mmt' number (default between 2048 and 10240 (system
@@ -5537,7 +5607,7 @@ A jump table for the options with a short description can be found at |Q_op|.
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt
Normally you would enable the mouse in all four modes with: >
Normally you would enable the mouse in all five modes with: >
:set mouse=a
< When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.
@@ -6059,7 +6129,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'printencoding'* *'penc'*
'printencoding' 'penc' String (default empty, except for some systems)
'printencoding' 'penc' string (default empty, except for some systems)
global
{not in Vi}
{only available when compiled with the |+printer|
@@ -6068,7 +6138,7 @@ A jump table for the options with a short description can be found at |Q_op|.
See |penc-option|.
*'printexpr'* *'pexpr'*
'printexpr' 'pexpr' String (default: see below)
'printexpr' 'pexpr' string (default: see below)
global
{not in Vi}
{only available when compiled with the |+printer|
@@ -6796,7 +6866,8 @@ A jump table for the options with a short description can be found at |Q_op|.
tabpages all tab pages; without this only the current tab page
is restored, so that you can make a session for each
tab page separately
terminal include terminal windows where the command can be restored
terminal include terminal windows where the command can be
restored
unix with Unix end-of-line format (single <NL>), even when
on Windows or DOS
winpos position of the whole Vim window
@@ -6832,7 +6903,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Example with escaped space (Vim will do this when initializing the
option from $SHELL): >
:set shell=/bin/with\\\ space/sh
< The resulting value of 'shell' is "/bin/with\ space/sh", two
< The resulting value of 'shell' is "/bin/with\ space/sh", two
backslashes are consumed by `:set`.
Under MS-Windows, when the executable ends in ".com" it must be
@@ -7333,6 +7404,10 @@ A jump table for the options with a short description can be found at |Q_op|.
set.
NOTE: This option is set to 0 when 'compatible' is set.
If Vim is compiled with the |+vartabs| feature then the value of
'softtabstop' will be ignored if |'varsofttabstop'| is set to
anything other than an empty string.
*'spell'* *'nospell'*
'spell' boolean (default off)
local to window
@@ -7425,8 +7500,8 @@ A jump table for the options with a short description can be found at |Q_op|.
After this option has been set successfully, Vim will source the files
"spell/LANG.vim" in 'runtimepath'. "LANG" is the value of 'spelllang'
up to the first comma, dot or underscore.
Also see |set-spc-auto|.
up to the first character that is not an ASCII letter or number and
not a dash. Also see |set-spc-auto|.
*'spellsuggest'* *'sps'*
@@ -7654,7 +7729,7 @@ A jump table for the options with a short description can be found at |Q_op|.
line is displayed. The current buffer and current window will be set
temporarily to that of the window (and buffer) whose statusline is
currently being drawn. The expression will evaluate in this context.
The variable "actual_curbuf" is set to the 'bufnr()' number of the
The variable "g:actual_curbuf" is set to the `bufnr()` number of the
real current buffer.
The 'statusline' option will be evaluated in the |sandbox| if set from
@@ -7884,6 +7959,10 @@ A jump table for the options with a short description can be found at |Q_op|.
though. Otherwise aligned comments will be wrong when 'tabstop' is
changed.
If Vim is compiled with the |+vartabs| feature then the value of
'tabstop' will be ignored if |'vartabstop'| is set to anything other
than an empty string.
*'tagbsearch'* *'tbs'* *'notagbsearch'* *'notbs'*
'tagbsearch' 'tbs' boolean (default on)
global
@@ -8205,13 +8284,18 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
{not in Vi}
List of file names, separated by commas, that are used to lookup words
for thesaurus completion commands |i_CTRL-X_CTRL-T|. Each line in
the file should contain words with similar meaning, separated by
non-keyword characters (white space is preferred). Maximum line
length is 510 bytes.
To obtain a file to be used here, check out this ftp site:
[Sorry this link doesn't work anymore, do you know the right one?]
ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file.
for thesaurus completion commands |i_CTRL-X_CTRL-T|.
Each line in the file should contain words with similar meaning,
separated by non-keyword characters (white space is preferred).
Maximum line length is 510 bytes.
An English word list was added to this github issue:
https://github.com/vim/vim/issues/629#issuecomment-443293282
Unpack thesaurus_pkg.zip, put the thesaurus.txt file somewhere, e.g.
~/.vim/thesaurus/english.txt, and the 'thesaurus' option to this file
name.
To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file
name. See |option-backslash| about using backslashes.
@@ -8527,8 +8611,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs.
The "xterm2" value will be set if the xterm version is reported to be
from 95 to 276. The "sgr" value will be set if the xterm version is
277 or higher and when Vim detects Mac Terminal.app or iTerm2.
from 95 to 276. The "sgr" value will be set if Vim detects Mac
Terminal.app, iTerm2 or mintty, and when the xterm version is 277 or
higher.
If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
automatically, set t_RV to an empty string: >
:set t_RV=
@@ -8643,6 +8728,44 @@ A jump table for the options with a short description can be found at |Q_op|.
written to disk (see |crash-recovery|). Also used for the
|CursorHold| autocommand event.
*'varsofttabstop'* *'vsts'*
'varsofttabstop' 'vsts' string (default "")
local to buffer
{only available when compiled with the |+vartabs|
feature}
{not in Vi}
A list of the number of spaces that a <Tab> counts for while editing,
such as inserting a <Tab> or using <BS>. It "feels" like variable-
width <Tab>s are being inserted, while in fact a mixture of spaces
and <Tab>s is used. Tab widths are separated with commas, with the
final value applying to all subsequent tabs.
For example, when editing assembly language files where statements
start in the 9th column and comments in the 41st, it may be useful
to use the following: >
:set varsofttabstop=8,32,8
< This will set soft tabstops with 8 and 8 + 32 spaces, and 8 more
for every column thereafter.
Note that the value of |'softtabstop'| will be ignored while
'varsofttabstop' is set.
*'vartabstop'* *'vts'*
'vartabstop' 'vts' string (default "")
local to buffer
{only available when compiled with the |+vartabs|
feature}
{not in Vi}
A list of the number of spaces that a <Tab> in the file counts for,
separated by commas. Each value corresponds to one tab, with the
final value applying to all subsequent tabs. For example: >
:set vartabstop=4,20,10,8
< This will make the first tab 4 spaces wide, the second 20 spaces,
the third 10 spaces, and all following tabs 8 spaces.
Note that the value of |'tabstop'| will be ignored while 'vartabstop'
is set.
*'verbose'* *'vbs'*
'verbose' 'vbs' number (default 0)
global
@@ -9328,4 +9451,4 @@ A jump table for the options with a short description can be found at |Q_op|.
screen. When non-zero, characters are sent to the terminal one by
one. For MS-DOS pcterm this does not work. For debugging purposes.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+5 -5
View File
@@ -83,10 +83,10 @@ There is no solution for this yet.
ctags out there, that does it right, but we can't be sure. So this seems to
be a permanent restriction.
- The cscope interface (|cscope|) doesn't work for the version of cscope
that we use on our mainframe. We have a copy of version 15.0b12, and it
causes Vim to hang when using the "cscope add" command. I'm guessing that
the binary format of the cscope database isn't quite what Vim is expecting.
- The cscope interface (|cscope|) doesn't work for the version of cscope that
we use on our mainframe. We have a copy of version 15.0b12, and it causes
Vim to hang when using the "cscope add" command. I'm guessing that the
binary format of the cscope database isn't quite what Vim is expecting.
I've tried to port the current version of cscope (15.3) to z/OS, without
much success. If anyone is interested in trying, drop me a line if you
make any progress.
@@ -131,4 +131,4 @@ Also look at:
------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -144,4 +144,4 @@ Installation ~
;End VIM
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+2 -2
View File
@@ -144,7 +144,7 @@ The default value for $VIM is set at compile time and can be determined with >
:version
The normal value is /boot/home/config/share/vim. If you don't like it you can
set the Vim environment variable to override this, or set 'helpfile' in your
set the VIM environment variable to override this, or set 'helpfile' in your
.vimrc: >
:if version >= 500
@@ -317,4 +317,4 @@ it is about 1191K.
<rhialto@polder.ubc.kun.nl>
http://polder.ubc.kun.nl/~rhialto/be
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -295,4 +295,4 @@ When starting up, Vim checks for the presence of "sh" anywhere in the 'shell'
option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or
'shellxquote' options will be set as described above.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -183,4 +183,4 @@ the system clipboard, the darwin feature should be disabled to prevent Vim
from hanging at runtime.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -36,4 +36,4 @@ Send bug reports to
Jens M. Felderhoff, e-mail: <jmf@infko.uni-koblenz.de>
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -12,4 +12,4 @@ work, there is not enough memory. The DOS32 version (using DJGPP) might still
work on older systems.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -10,4 +10,4 @@ This file used to contain the particularities for the OS/2 version of Vim.
The OS/2 support was removed in patch 7.4.1008.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -135,4 +135,4 @@ Todo:
- Replace usage of fork() with spawn() when launching external
programs.
vim:tw=78:sw=4:ts=8:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -9,4 +9,4 @@ The RISC OS support has been removed from Vim with patch 7.3.187.
If you would like to use Vim on RISC OS get the files from before that patch.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -57,4 +57,4 @@ For real color terminals the ":highlight" command can be used.
The file "tools/vim132" is a shell script that can be used to put Vim in 132
column mode on a vt100 and lookalikes.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -952,4 +952,4 @@ of OS_VMS.TXT:
Bruce Hunsaker <BNHunsaker@chq.byu.edu>
Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+2 -2
View File
@@ -169,7 +169,7 @@ you will need to get a version older than that.
==============================================================================
6. Running under Windows 3.1 *win32-win3.1*
*win32s* *windows-3.1* *gui-w32s*
*win32s* *windows-3.1* *gui-w32s* *win16*
There was a special version of gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363.
@@ -303,4 +303,4 @@ A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico.
vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+9 -1
View File
@@ -293,6 +293,14 @@ the "#" is under your left hand middle finger (search to the left and up) and
the "*" is under your right hand middle finger (search to the right and down).
(this depends on your keyboard layout though).
*E956*
In very rare cases a regular expression is used recursively. This can happen
when executing a pattern takes a long time and when checking for messages on
channels a callback is invoked that also uses a pattern or an autocommand is
triggered. In most cases this should be fine, but if a pattern is in use when
it's used again it fails. Usually this means there is something wrong with
the pattern.
==============================================================================
2. The definition of a pattern *search-pattern* *pattern* *[pattern]*
*regular-expression* *regexp* *Pattern*
@@ -1409,4 +1417,4 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -479,4 +479,4 @@ v2 May 14, 2003 : extracts name of item to be obtained from the
and they became numbers. Fixes comparison.
==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
vim:tw=78:ts=8:noet:ft=help:fdm=marker
+1 -1
View File
@@ -40,4 +40,4 @@ compression. Thus editing the patchmode file will not give you the automatic
decompression. You have to rename the file if you want this.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -118,4 +118,4 @@ Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*
==============================================================================
vim:tw=78:ts=8:ft=help
vim:tw=78:ts=8:noet:ft=help
+1 -1
View File
@@ -4267,4 +4267,4 @@ netrw:
==============================================================================
Modelines: {{{1
vim:tw=78:ts=8:ft=help:norl:fdm=marker
vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker
+1 -1
View File
@@ -57,4 +57,4 @@ comments. This is unrelated to the matchparen highlighting, they use a
different mechanism.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -108,4 +108,4 @@ If you don't like the release updating feature and don't want to answer
Good luck!!
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -148,4 +148,4 @@ Copyright 2005-2012: *tar-copyright*
v1 (original) * Michael Toren (see http://michael.toren.net/code/)
==============================================================================
vim:tw=78:ts=8:ft=help
vim:tw=78:ts=8:noet:ft=help
+1 -1
View File
@@ -273,4 +273,4 @@ WINDOWS *vimball-windows*
==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
vim:tw=78:ts=8:noet:ft=help:fdm=marker
+1 -1
View File
@@ -149,4 +149,4 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
vim:tw=78:ts=8:noet:ft=help:fdm=marker
+3 -1
View File
@@ -46,6 +46,8 @@ Note: If you have problems printing with |:hardcopy|, an alternative is to use
'printexpr' through |v:cmdarg|. Otherwise [arguments]
is ignored. 'printoptions' can be used to specify
paper size, duplex, etc.
Note: If you want PDF, there are tools such as
"ps2pdf" that can convert the PostScript to PDF.
:[range]ha[rdcopy][!] >{filename}
As above, but write the resulting PostScript in file
@@ -752,4 +754,4 @@ to adjust the number of lines before a formfeed character to prevent
accidental blank pages.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+27 -7
View File
@@ -46,7 +46,7 @@ compiler (see |errorformat| below).
*quickfix-ID*
Each quickfix list has a unique identifier called the quickfix ID and this
number will not change within a Vim session. The getqflist() function can be
number will not change within a Vim session. The |getqflist()| function can be
used to get the identifier assigned to a list. There is also a quickfix list
number which may change whenever more than ten lists are added to a quickfix
stack.
@@ -68,7 +68,7 @@ the location list is destroyed.
Every quickfix and location list has a read-only changedtick variable that
tracks the total number of changes made to the list. Every time the quickfix
list is modified, this count is incremented. This can be used to perform an
action only when the list has changed. The getqflist() and getloclist()
action only when the list has changed. The |getqflist()| and |getloclist()|
functions can be used to query the current value of changedtick. You cannot
change the changedtick variable.
@@ -298,6 +298,10 @@ processing a quickfix or location list command, it will be aborted.
from the last error backwards, -1 being the last error.
The 'switchbuf' settings are respected when jumping
to a buffer.
The |:filter| command can be used to display only the
quickfix entries matching a supplied pattern. The
pattern is matched against the filename, module name,
pattern and text of the entry.
:cl[ist] +{count} List the current and next {count} valid errors. This
is similar to ":clist from from+count", where "from"
@@ -598,7 +602,7 @@ present). Examples: >
echo getloclist(2, {'winid' : 1}).winid
<
*getqflist-examples*
The getqflist() and getloclist() functions can be used to get the various
The |getqflist()| and |getloclist()| functions can be used to get the various
attributes of a quickfix and location list respectively. Some examples for
using these functions are below:
>
@@ -655,7 +659,7 @@ using these functions are below:
:echo getloclist(3, {'winid' : 0}).winid
<
*setqflist-examples*
The setqflist() and setloclist() functions can be used to set the various
The |setqflist()| and |setloclist()| functions can be used to set the various
attributes of a quickfix and location list respectively. Some examples for
using these functions are below:
>
@@ -894,7 +898,7 @@ commands can be combined to create a NewGrep command: >
'smartcase' is not used.
If {pattern} is empty (e.g. // is specified), the last
used search pattern is used. |last-pattern|
:{count}vim[grep] ...
When a number is put before the command this is used
as the maximum number of matches to find. Use
":1vimgrep pattern file" to find only the first.
@@ -1287,7 +1291,7 @@ to the file.
Changing directory
The following uppercase conversion characters specify the type of special
format strings. At most one of them may be given as a prefix at the begin
format strings. At most one of them may be given as a prefix at the beginning
of a single comma-separated format pattern.
Some compilers produce messages that consist of directory names that have to
be prepended to each file name read by %f (example: GNU make). The following
@@ -1547,6 +1551,22 @@ The backslashes before the pipe character are required to avoid it to be
recognized as a command separator. The backslash before each space is
required for the set command.
*cfilter-plugin* *Cfilter* *Lfilter*
If you have too many matching messages, you can use the cfilter plugin to
reduce the number of entries. Load the plugin with: >
packadd cfilter
Then you can use these command: >
:Cfilter[!] /{pat}/
:Lfilter[!] /{pat}/
:Cfilter creates a new quickfix list from entries matching {pat} in the
current quickfix list. Both the file name and the text of the entries are
matched against {pat}. If ! is supplied, then entries not matching {pat} are
used.
:Lfilter does the same as :Cfilter but operates on the current location list.
=============================================================================
8. The directory stack *quickfix-directory-stack*
@@ -1790,4 +1810,4 @@ start of the file about how to use it. (This script is deprecated, see
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+3 -1
View File
@@ -965,6 +965,8 @@ Short explanation of each option: *option-list*
'undoreload' 'ur' max nr of lines to save for undo on a buffer reload
'updatecount' 'uc' after this many characters flush swap file
'updatetime' 'ut' after this many milliseconds flush swap file
'varsofttabstop' 'vsts' a list of number of spaces when typing <Tab>
'vartabstop' 'vts' a list of number of spaces for <Tab>s
'verbose' 'vbs' give informative messages
'verbosefile' 'vfile' file to write messages in
'viewdir' 'vdir' directory where to store files with :mkview
@@ -1453,4 +1455,4 @@ Context-sensitive completion on the command-line:
|zN| zN fold normal set 'foldenable'
|zi| zi invert 'foldenable'
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+1 -1
View File
@@ -272,4 +272,4 @@ In summary:
|____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) `
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+4 -1
View File
@@ -28,6 +28,9 @@ You can see the name of the current swap file being used with the command:
:sw[apname] *:sw* *:swapname*
Or you can use the |swapname()| function, which also allows for seeing the
swap file name of other buffers.
The name of the swap file is normally the same as the file you are editing,
with the extension ".swp".
- On Unix, a '.' is prepended to swap file names in the same directory as the
@@ -234,4 +237,4 @@ Note that after recovery the key of the swap file will be used for the text
file. Thus if you write the text file, you need to use that new key.
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:noet:ft=help:norl:
+2 -2
View File
@@ -64,7 +64,7 @@ The following command line arguments are available:
--servername {name} Become the server {name}. When used together
with one of the --remote commands: connect to
server {name} instead of the default (see
below).
below). The name used will be uppercase.
*--remote-send*
--remote-send {keys} Send {keys} to server and exit. The {keys}
are not mapped. Special key names are
@@ -224,4 +224,4 @@ across a network).
Note: Client mode always works, but server mode only works when the GUI is
started.
vim:tw=78:sw=4:ts=8:ft=help:norl:
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

Some files were not shown because too many files have changed in this diff Show More