annotate runtime/doc/diff.txt @ 34264:cce6b834635c v9.1.0071

patch 9.1.0071: Need a diff() Vim script function Commit: https://github.com/vim/vim/commit/fa37835b8c0ed0f83952978fca4c332335ca7c46 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Thu Feb 1 22:05:27 2024 +0100 patch 9.1.0071: Need a diff() Vim script function Problem: Need a diff() Vim script function Solution: Add the diff() Vim script function using the xdiff internal diff library, add support for "unified" and "indices" mode. (Yegappan Lakshmanan) fixes: #4241 closes: #12321 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 01 Feb 2024 22:30:03 +0100
parents 4635e43f2c6f
children 7ccaadd7cf0b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34264
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
1 *diff.txt* For Vim version 9.1. Last change: 2024 Feb 01
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 *diff* *vimdiff* *gvimdiff* *diff-mode*
9955
f52b263fb3f0 commit https://github.com/vim/vim/commit/015efc32c1add6269099364835ddf85ff257b3c6
Christian Brabandt <cb@256bit.org>
parents: 7228
diff changeset
8 This file describes the |+diff| feature: Showing differences between two to
f52b263fb3f0 commit https://github.com/vim/vim/commit/015efc32c1add6269099364835ddf85ff257b3c6
Christian Brabandt <cb@256bit.org>
parents: 7228
diff changeset
9 eight versions of the same file.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 The basics are explained in section |08.7| of the user manual.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12
12559
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
13 1. Starting diff mode |start-vimdiff|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 2. Viewing diffs |view-diffs|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 3. Jumping to diffs |jumpto-diffs|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 4. Copying diffs |copy-diffs|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 5. Diff options |diff-options|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 ==============================================================================
12559
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
20 1. Starting diff mode *start-vimdiff*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 The easiest way to start editing in diff mode is with the "vimdiff" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 This starts Vim as usual, and additionally sets up for viewing the differences
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 between the arguments. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 vimdiff file1 file2 [file3 [file4]]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 This is equivalent to: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 vim -d file1 file2 [file3 [file4]]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 You may also use "gvimdiff" or "vim -d -g". The GUI is started then.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 You may also use "viewdiff" or "gviewdiff". Vim starts in readonly mode then.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 "r" may be prepended for restricted mode (see |-Z|).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 The second and following arguments may also be a directory name. Vim will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 then append the file name of the first argument to the directory name to find
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 the file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39
14696
195e8b1fcbbf patch 8.1.0360: using an external diff program is slow and inflexible
Christian Brabandt <cb@256bit.org>
parents: 14519
diff changeset
40 By default an internal diff library will be used. When 'diffopt' or
195e8b1fcbbf patch 8.1.0360: using an external diff program is slow and inflexible
Christian Brabandt <cb@256bit.org>
parents: 14519
diff changeset
41 'diffexpr' has been set an external "diff" command will be used. This only
195e8b1fcbbf patch 8.1.0360: using an external diff program is slow and inflexible
Christian Brabandt <cb@256bit.org>
parents: 14519
diff changeset
42 works when such a diff program is available.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 639
diff changeset
44 Diffs are local to the current tab page |tab-page|. You can't see diffs with
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 639
diff changeset
45 a window in another tab page. This does make it possible to have several
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 639
diff changeset
46 diffs at the same time, each in their own tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 639
diff changeset
47
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 What happens is that Vim opens a window for each of the files. This is like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 using the |-O| argument. This uses vertical splits. If you prefer horizontal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 splits add the |-o| argument: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
52 vimdiff -o file1 file2 [file3 [file4]]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53
766
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
54 If you always prefer horizontal splits include "horizontal" in 'diffopt'.
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
55
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 In each of the edited files these options are set:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 'diff' on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 'scrollbind' on
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
60 'cursorbind' on
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 'scrollopt' includes "hor"
23895
e313b6ee2d9c patch 8.2.2490: 'wrap' option is always reset when starting diff mode
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
62 'wrap' off, or leave as-is if 'diffopt' includes "followwrap"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 'foldmethod' "diff"
766
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
64 'foldcolumn' value from 'diffopt', default is 2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 These options are set local to the window. When editing another file they are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 reset to the global value.
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
68 The options can still be overruled from a modeline when re-editing the file.
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
69 However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
70 set.
18594
e9a47bcf7b94 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 17571
diff changeset
71 See `:diffoff` for an easy way to revert the options.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 The differences shown are actually the differences in the buffer. Thus if you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 make changes after loading a file, these will be included in the displayed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 diffs. You might have to do ":diffupdate" now and then, not all changes are
18594
e9a47bcf7b94 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 17571
diff changeset
76 immediately taken into account, especially when using an external diff command.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 In your .vimrc file you could do something special when Vim was started in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 diff mode. You could use a construct like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 if &diff
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 setup for diff mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 setup for non-diff mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 While already in Vim you can start diff mode in three ways.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 *E98*
3830
04592728474a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3750
diff changeset
90 :diffs[plit] {filename} *:diffs* *:diffsplit*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 Open a new window on the file {filename}. The options are set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 as for "vimdiff" for the current and the newly opened window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 Also see 'diffexpr'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 *:difft* *:diffthis*
3830
04592728474a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3750
diff changeset
96 :difft[his] Make the current window part of the diff windows. This sets
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
97 the options like for "vimdiff".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98
5929
16d26051085a Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5362
diff changeset
99 :diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 Use the current buffer, patch it with the diff found in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 {patchfile} and open a buffer on the result. The options are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 set as for "vimdiff".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 {patchfile} can be in any format that the "patch" program
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 understands or 'patchexpr' can handle.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 Note that {patchfile} should only contain a diff for one file,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 the current file. If {patchfile} contains diffs for other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 files as well, the results are unpredictable. Vim changes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 directory to /tmp to avoid files in the current directory
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 accidentally being patched. But it may still result in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 various ".rej" files to be created. And when absolute path
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 names are present these files may get patched anyway.
32294
b2e8663e6dcc Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 32004
diff changeset
112 Using the "patch" command is not allowed in |restricted-mode|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 To make these commands use a vertical split, prepend |:vertical|. Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 :vert diffsplit main.c~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 :vert diffpatch /tmp/diff
766
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
118
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
119 If you always prefer a vertical split include "vertical" in 'diffopt'.
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
120
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 *E96*
9955
f52b263fb3f0 commit https://github.com/vim/vim/commit/015efc32c1add6269099364835ddf85ff257b3c6
Christian Brabandt <cb@256bit.org>
parents: 7228
diff changeset
122 There can be up to eight buffers with 'diff' set.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 Since the option values are remembered with the buffer, you can edit another
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 file for a moment and come back to the same file and be in diff mode again.
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
126
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
127 *:diffo* *:diffoff*
5362
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
128 :diffo[ff] Switch off diff mode for the current window. Resets related
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
129 options also when 'diff' was not set.
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
130
3830
04592728474a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3750
diff changeset
131 :diffo[ff]! Switch off diff mode for the current window and in all windows
5362
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
132 in the current tab page where 'diff' is set. Resetting
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
133 related options only happens in a window that has 'diff' set,
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
134 if the current window does not have 'diff' set then no options
ab1508486b12 Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
135 in it are changed.
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
136 Hidden buffers are also removed from the list of diff'ed
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
137 buffers.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6583
diff changeset
139 The `:diffoff` command resets the relevant options to the values they had when
31885
cc751d944b7e Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
140 using `:diffsplit`, `:diffpatch`, `:diffthis`. or starting Vim in diff mode.
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6583
diff changeset
141 When using `:diffoff` twice the last saved values are restored.
5161
f7add3891e95 Updated runtime files. Fix NL translations.
Bram Moolenaar <bram@vim.org>
parents: 5146
diff changeset
142 Otherwise they are set to their default value:
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
143
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
144 'diff' off
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
145 'scrollbind' off
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
146 'cursorbind' off
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
147 'scrollopt' without "hor"
23895
e313b6ee2d9c patch 8.2.2490: 'wrap' option is always reset when starting diff mode
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
148 'wrap' on, or leave as-is if 'diffopt' includes "followwrap"
16
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
149 'foldmethod' "manual"
3ba373b54370 updated for version 7.0008
vimboss
parents: 7
diff changeset
150 'foldcolumn' 0
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30634
diff changeset
152 'foldenable' will most-likely be reset to off. That is when 'foldmethod' is
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30634
diff changeset
153 is restored to "manual". The folds themselves are not cleared but they should
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30634
diff changeset
154 not show up, resetting 'foldenable' is the best way to do that.
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30634
diff changeset
155
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 2. Viewing diffs *view-diffs*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 The effect is that the diff windows show the same text, with the differences
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 highlighted. When scrolling the text, the 'scrollbind' option will make the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 text in other windows to be scrolled as well. With vertical splits the text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 should be aligned properly.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 The alignment of text will go wrong when:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 - 'wrap' is on, some lines will be wrapped and occupy two or more screen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 - folds are open in one window but not another
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 - 'scrollbind' is off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 - changes have been made to the text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 - "filler" is not present in 'diffopt', deleted/inserted lines makes the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 alignment go wrong
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 All the buffers edited in a window where the 'diff' option is set will join in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 the diff. This is also possible for hidden buffers. They must have been
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
175 edited in a window first for this to be possible. To get rid of the hidden
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
176 buffers use `:diffoff!`.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
178 *:DiffOrig* *diff-original-file*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 Since 'diff' is a window-local option, it's possible to view the same buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 in diff mode in one window and "normal" in another window. It is also
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
181 possible to view the changes you have made to a buffer since the file was
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
182 loaded. Since Vim doesn't allow having two buffers for the same file, you
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
183 need another buffer. This command is useful: >
2788
0877b8d6370e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
184 command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
32004
a9b5ffbc0428 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31885
diff changeset
185 \ | diffthis | wincmd p | diffthis
16023
dc766e1b0c95 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14696
diff changeset
186 (this is in |defaults.vim|). Use ":DiffOrig" to see the differences between
dc766e1b0c95 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14696
diff changeset
187 the current buffer and the file it was loaded from.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 A buffer that is unloaded cannot be used for the diff. But it does work for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 hidden buffers. You can use ":hide" to close a window without unloading the
195
49748afd794b updated for version 7.0058
vimboss
parents: 20
diff changeset
191 buffer. If you don't want a buffer to remain used for the diff do ":set
49748afd794b updated for version 7.0058
vimboss
parents: 20
diff changeset
192 nodiff" before hiding it.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193
16944
d23afa4d8b63 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
194 *:dif* *:diff* *:diffupdate*
7228
873eae260c97 commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents: 6918
diff changeset
195 :dif[fupdate][!] Update the diff highlighting and folds.
270
a20218704019 updated for version 7.0072
vimboss
parents: 195
diff changeset
196
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 Vim attempts to keep the differences updated when you make changes to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 text. This mostly takes care of inserted and deleted lines. Changes within a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 line and more complicated changes do not cause the differences to be updated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 To force the differences to be updated use: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 :diffupdate
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203
3524
d8ce4a2eb44e updated for version 7.3.523
Bram Moolenaar <bram@vim.org>
parents: 2788
diff changeset
204 If the ! is included Vim will check if the file was changed externally and
d8ce4a2eb44e updated for version 7.3.523
Bram Moolenaar <bram@vim.org>
parents: 2788
diff changeset
205 needs to be reloaded. It will prompt for each changed file, like `:checktime`
d8ce4a2eb44e updated for version 7.3.523
Bram Moolenaar <bram@vim.org>
parents: 2788
diff changeset
206 was used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 Vim will show filler lines for lines that are missing in one window but are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 present in another. These lines were inserted in another file or deleted in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 this file. Removing "filler" from the 'diffopt' option will make Vim not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 display these filler lines.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 Folds are used to hide the text that wasn't changed. See |folding| for all
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 the commands that can be used with folds.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 The context of lines above a difference that are not included in the fold can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 be set with the 'diffopt' option. For example, to set the context to three
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 lines: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 :set diffopt=filler,context:3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 The diffs are highlighted with these groups:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 |hl-DiffAdd| DiffAdd Added (inserted) lines. These lines exist in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 this buffer but not in another.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 |hl-DiffChange| DiffChange Changed lines.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 |hl-DiffText| DiffText Changed text inside a Changed line. Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 finds the first character that is different,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 and the last character that is different
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 (searching from the end of the line). The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 text in between is highlighted. This means
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 that parts in the middle that are still the
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
235 same are highlighted anyway. The 'diffopt'
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
236 flags "iwhite" and "icase" are used here.
4098
058f26a834c4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
237 |hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 because they don't really exist in this
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 3. Jumping to diffs *jumpto-diffs*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 Two commands can be used to jump to diffs:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 *[c*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 [c Jump backwards to the previous start of a change.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 When a count is used, do it that many times.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 *]c*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 ]c Jump forwards to the next start of a change.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 When a count is used, do it that many times.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 It is an error if there is no change for the cursor to move to.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 4. Diff copying *copy-diffs* *E99* *E100* *E101* *E102* *E103*
532
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 270
diff changeset
256 *merge*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 There are two commands to copy text from one buffer to another. The result is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 that the buffers will be equal within the specified range.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 *:diffg* *:diffget*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 :[range]diffg[et] [bufspec]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 Modify the current buffer to undo difference with another
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
263 buffer. If [bufspec] is given, that buffer is used. If
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
264 [bufspec] refers to the current buffer then nothing happens.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 Otherwise this only works if there is one other buffer in diff
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 See below for [range].
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
269 *:diffpu* *:diffput* *E793*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 :[range]diffpu[t] [bufspec]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 Modify another buffer to undo difference with the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 buffer. Just like ":diffget" but the other buffer is modified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 instead of the current one.
532
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 270
diff changeset
274 When [bufspec] is omitted and there is more than one other
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 270
diff changeset
275 buffer in diff mode where 'modifiable' is set this fails.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 See below for [range].
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 *do*
6336
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
279 [count]do Same as ":diffget" without range. The "o" stands for "obtain"
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
280 ("dg" can't be used, it could be the start of "dgg"!). Note:
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
281 this doesn't work in Visual mode.
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
282 If you give a [count], it is used as the [bufspec] argument
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
283 for ":diffget".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 *dp*
6336
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
286 [count]dp Same as ":diffput" without range. Note: this doesn't work in
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
287 Visual mode.
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
288 If you give a [count], it is used as the [bufspec] argument
4abac79c0b7a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5929
diff changeset
289 for ":diffput".
2596
fae782ef63dd Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
290
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 When no [range] is given, the diff at the cursor position or just above it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 affected. When [range] is used, Vim tries to only put or get the specified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 lines. When there are deleted lines, this may not always be possible.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 There can be deleted lines below the last line of the buffer. When the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 is on the last line in the buffer and there is no diff above this line, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 ":diffget" and "do" commands will obtain lines from the other buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 To be able to get those lines from another buffer in a [range] it's allowed to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 use the last line number plus one. This command gets all diffs from the other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 buffer: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 :1,$+1diffget
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 Note that deleted lines are displayed, but not counted as text lines. You
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 can't move the cursor into them. To fill the deleted lines with the lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 from another buffer use ":diffget" on the line below them.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
309 *E787*
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
310 When the buffer that is about to be modified is read-only and the autocommand
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
311 that is triggered by |FileChangedRO| changes buffers the command will fail.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
312 The autocommand must not change buffers.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 The [bufspec] argument above can be a buffer number, a pattern for a buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 name or a part of a buffer name. Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 :diffget Use the other buffer which is in diff mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 :diffget 3 Use buffer 3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 :diffget v2 Use the buffer which matches "v2" and is in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 diff mode (e.g., "file.c.v2")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 5. Diff options *diff-options*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 Also see |'diffopt'| and the "diff" item of |'fillchars'|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326
6583
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
327 *diff-slow* *diff_translations*
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
328 For very long lines, the diff syntax highlighting might be slow, especially
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
329 since it tries to match all different kind of localisations. To disable
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
330 localisations and speed up the syntax highlighting, set the global variable
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
331 g:diff_translations to zero: >
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
332
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
333 let g:diff_translations = 0
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
334 <
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
335 After setting this variable, reload the syntax script: >
6583
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
336
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
337 set syntax=diff
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
338 <
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6336
diff changeset
339
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 FINDING THE DIFFERENCES *diff-diffexpr*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342
27321
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
343 The 'diffexpr' option can be set to use something else than the internal diff
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
344 support or the standard "diff" program to compare two files and find the
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
345 differences. *E959*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 When 'diffexpr' is empty, Vim uses this command to find the differences
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 between file1 and file2: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 diff file1 file2 > outfile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 The ">" is replaced with the value of 'shellredir'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353
24751
e69e7133c9cf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23931
diff changeset
354 The output of "diff" must be a normal "ed" style diff or a unified diff. A
e69e7133c9cf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23931
diff changeset
355 context diff will NOT work. For a unified diff no context lines can be used.
e69e7133c9cf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23931
diff changeset
356 Using "diff -u" will NOT work, use "diff -U0".
e69e7133c9cf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23931
diff changeset
357
e69e7133c9cf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23931
diff changeset
358 This example explains the format that Vim expects for the "ed" style diff: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 1a2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 > bbb
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 4d4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363 < 111
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 7c7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 < GGG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 ---
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 > ggg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 The "1a2" item appends the line "bbb".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 The "4d4" item deletes the line "111".
3750
536aa8b0c934 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3526
diff changeset
371 The "7c7" item replaces the line "GGG" with "ggg".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
373 When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 format mentioned. These variables are set to the file names used:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 v:fname_in original file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 v:fname_new new version of the same file
27321
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
378 v:fname_out where to write the resulting diff file
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 Additionally, 'diffexpr' should take care of "icase" and "iwhite" in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 'diffopt' option. 'diffexpr' cannot change the value of 'lines' and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 'columns'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383
30598
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
384 The advantage of using a function call without arguments is that it is faster,
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
385 see |expr-option-function|.
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
386
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387 Example (this does almost the same as 'diffexpr' being empty): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 set diffexpr=MyDiff()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 function MyDiff()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 let opt = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 if &diffopt =~ "icase"
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
393 let opt = opt .. "-i "
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 if &diffopt =~ "iwhite"
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
396 let opt = opt .. "-b "
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 endif
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
398 silent execute "!diff -a --binary " .. opt .. v:fname_in .. " " .. v:fname_new ..
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
399 \ " > " .. v:fname_out
14519
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
400 redraw!
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 The "-a" argument is used to force comparing the files as text, comparing as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 binaries isn't useful. The "--binary" argument makes the files read in binary
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 mode, so that a CTRL-Z doesn't end the text on DOS.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406
14519
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
407 The `redraw!` command may not be needed, depending on whether executing a
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
408 shell command shows something on the display or not.
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
409
26743
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
410 If the 'diffexpr' expression starts with s: or |<SID>|, then it is replaced
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
411 with the script ID (|local-function|). Example: >
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
412 set diffexpr=s:MyDiffExpr()
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
413 set diffexpr=<SID>SomeDiffExpr()
27321
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
414 Otherwise, the expression is evaluated in the context of the script where the
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
415 option was set, thus script-local items are available.
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
416
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
417 *E810* *E97*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 Vim will do a test if the diff output looks alright. If it doesn't, you will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 get an error message. Possible causes:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 - The "diff" program cannot be executed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 - The "diff" program doesn't produce normal "ed" style diffs (see above).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 - The 'shell' and associated options are not set correctly. Try if filtering
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 works with a command like ":!sort".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 - You are using 'diffexpr' and it doesn't work.
639
c79d4df4686e updated for version 7.0185
vimboss
parents: 532
diff changeset
425 If it's not clear what the problem is set the 'verbose' option to one or more
c79d4df4686e updated for version 7.0185
vimboss
parents: 532
diff changeset
426 to see more messages.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427
2642
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2596
diff changeset
428 The self-installing Vim for MS-Windows includes a diff program. If you don't
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2596
diff changeset
429 have it you might want to download a diff.exe. For example from
2662
916c90b37ea9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
430 http://gnuwin32.sourceforge.net/packages/diffutils.htm.
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 16
diff changeset
431
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 USING PATCHES *diff-patchexpr*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 The 'patchexpr' option can be set to use something else than the standard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 "patch" program.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 When 'patchexpr' is empty, Vim will call the "patch" program like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 patch -o outfile origfile < patchfile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 This should work fine with most versions of the "patch" program. Note that a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 CR in the middle of a line may cause problems, it is seen as a line break.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 If the default doesn't work for you, set the 'patchexpr' to an expression that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 will have the same effect. These variables are set to the file names used:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448 v:fname_in original file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 v:fname_diff patch file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 v:fname_out resulting patched file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451
30598
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
452 The advantage of using a function call without arguments is that it is faster,
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
453 see |expr-option-function|.
37aa9fd2ed72 patch 9.0.0634: evaluating "expr" options has more overhead than needed
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
454
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 Example (this does the same as 'patchexpr' being empty): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456
766
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
457 set patchexpr=MyPatch()
f0d0d3d3a1e2 updated for version 7.0225
vimboss
parents: 758
diff changeset
458 function MyPatch()
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
459 :call system("patch -o " .. v:fname_out .. " " .. v:fname_in ..
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27321
diff changeset
460 \ " < " .. v:fname_diff)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 Make sure that using the "patch" program doesn't have unwanted side effects.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 For example, watch out for additionally generated files, which should be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 deleted. It should just patch the file and nothing else.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 Vim will change directory to "/tmp" or another temp directory before
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 evaluating 'patchexpr'. This hopefully avoids that files in the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 directory are accidentally patched. Vim will also delete files starting with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 v:fname_in and ending in ".rej" and ".orig".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470
26743
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
471 If the 'patchexpr' expression starts with s: or |<SID>|, then it is replaced
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
472 with the script ID (|local-function|). Example: >
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
473 set patchexpr=s:MyPatchExpr()
c2c40cefc17b patch 8.2.3900: it is not easy to use a script-local function for an option
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
474 set patchexpr=<SID>SomePatchExpr()
27321
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
475 Otherwise, the expression is evaluated in the context of the script where the
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
476 option was set, thus script-local items are available.
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
477
3649b5a6b1b6 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26743
diff changeset
478
34264
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
479 DIFF FUNCTION EXAMPLES *diff-func-examples*
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
480
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
481 Some examples for using the |diff()| function to compute the diff indices
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
482 between two Lists of strings are below.
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
483 >
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
484 " some lines are changed
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
485 :echo diff(['abc', 'def', 'ghi'], ['abx', 'rrr', 'xhi'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
486 [{'from_idx': 0, 'from_count': 3, 'to_idx': 0, 'to_count': 3}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
487
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
488 " few lines added at the beginning
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
489 :echo diff(['ghi'], ['abc', 'def', 'ghi'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
490 [{'from_idx': 0, 'from_count': 0, 'to_idx': 0, 'to_count': 2}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
491
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
492 " few lines removed from the beginning
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
493 :echo diff(['abc', 'def', 'ghi'], ['ghi'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
494 [{'from_idx': 0, 'from_count': 2, 'to_idx': 0, 'to_count': 0}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
495
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
496 " few lines added in the middle
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
497 :echo diff(['abc', 'jkl'], ['abc', 'def', 'ghi', 'jkl'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
498 [{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
499
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
500 " few lines removed in the middle
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
501 :echo diff(['abc', 'def', 'ghi', 'jkl'], ['abc', 'jkl'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
502 [{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
503
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
504 " few lines added at the end
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
505 :echo diff(['abc'], ['abc', 'def', 'ghi'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
506 [{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
507
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
508 " few lines removed from the end
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
509 :echo diff(['abc', 'def', 'ghi'], ['abc'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
510 [{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
511
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
512 " disjointed changes
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
513 :echo diff(['ab', 'def', 'ghi', 'jkl'], ['abc', 'def', 'ghi', 'jk'], {'output': 'indices'})
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
514 [{'from_idx': 0, 'from_count': 1, 'to_idx': 0, 'to_count': 1},
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
515 {'from_idx': 3, 'from_count': 1, 'to_idx': 3, 'to_count': 1}]
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
516 <
cce6b834635c patch 9.1.0071: Need a diff() Vim script function
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
517
14421
2f7e67dd088c Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
518 vim:tw=78:ts=8:noet:ft=help:norl: