Problem summary
Imagine, you have 2 shopping lists:
- 1 huge one with hundreds of entries - list A, copied into buffer A
- 1 containing dozens of entries - list B, copied into buffer B
Then:
75% of the entries of list B are already part of list A, but the other rest of list B not—and you don't have a clue or overview which specific entries of list B are the new ones compared to list A.
You want to extend list A by list B, so that the "new list A" contains all entries of list A and B without any doppler—so, each entry just 1 time.
To make a simple example:
List A: List B: What you want—"new list A":
* Tomato * Garlic * Tomato
* Leek * Tomato * Leek
* Garlic * Cherries * Garlic
* Lentils * Leek * Lentils
* Banana * Banana
* Almond milk * Almond milk
* Cherries
Question
How can that be done as efficient as possible?
Info:
- I'm not able to program.
- I'm very new to the emacs command "ediff", yet.
- I'm relatively new to emacs, using it just for 1 year on a daily basis so far.
- I'm getting familiar with using keyboard macros, and keyboard marcos built of a series of keyboard macros—like keyboard macro D(A + 7xB + 3xC)
Details on research:
I've already researched on it using web search engines and starting to turn to the emacs command "ediff".
What I've tried:
I tried M-x ediff-buffers
, but the outcome wasn't very useful:
Both buffers were compared automatically, but not in a smart way; comparison wasn't content sensitive, but line by line, so it said "line 1, 2, 3,... are not the same", when I needed it to say "Cherries is different".
Next thing I've tried was M-x ediff-buffers3
for merging, but it had the same problem:
It just let me choose, if for example line 2 of buffer A or buffer B will be used for the merge version, when I wanted emacs to automatically figure out what entries of list B are the new ones for list A and then merging list A only with these new entries.
I see the possibility of taking list B and manually take each entry of it—one by one—and search for it in list A. This way I would figure out by what entries of list B the list A needs to be extended, but that's an arse full of work.
There gotta has to be a more efficient way with any emacs commands.
ediff-buffers
. It doesn't compare lines. Say exactly what you're doing with it.