iD editor - is there a "copy tags" feature?

There’s a “copy” option (which actually seems to mean “duplicate”)

(and it only seems to be available intermittently)

but there seems to be no “copy tags” option?

If you switch to the raw tags view in the editing pane you can select and copy all the tags at once.

Isn’t that the definition of copying :slightly_smiling_face:

So that’s:

Create the node to copy to.
Click on something random in the list of features so that the node has some tags on it (it doesn’t seem to work unless you do)

Click on the node to copy from.
Scroll down and press the text button:

Click in the field, control A, control C

Click on the thing to copy to

Click in the field and then control V

That’s about 8 actions I think. Compare with Potlatch which is “click on the thing to copy from, click on the thing to copy to, press ‘r’”.

Pretty much. Josm has the same feature as potlatch (shift+R) to copy tags (requires the utilsplugin2 plugin). iD has never been known for having efficient workflows.

this one will be remembered and does not need to be repeated

if you copy crossing node with all its tags I would just copy crossing node

that allows you to do: paste free floating node, grab it and move onto road

The initial reason I was trying to copy tags was that when creating driveways like this “copy” does indeed create a duplicate way, but it doesn’t auto-join to either the road or the footpath, so you need to grab and move each end again manually. Also as I noted above it only works intermittently.

or more specifically, when entire feature is within current viewpoint

From experience, you don’t need entire feature, but around 3/4. And, as you can’t zoom out too much in ID, you can’t change geometry of large features with ID.

I am pretty sure you can. Do you mean that rotation etc features operating on the entire object are disabled when only part is shown?

Yes, only “Reverse” is available

And if you try a keyboard shortcut, there is a warning
Trying to move whole object, using M shortcut

But you can move a node.

It’s not really that bad. If you go the other way round, you have:

Change the Tags box to “text” (only once needed)

  • Click the node you want to copy.
  • Click into the Tags box and wipe the mouse diagonally from down right to left top, marking the whole text (I find this more convenient than going on with ctrl. A), then press ctrl. C
  • Create the new node with a double click (first click to create it, second click to mark it) - by doing so you will directly get an empty Tags box, no need to choose any fake tag first.
  • Click into the empty Tags box and press crtl. V

By doing so you can reduce the actions from 8 to 4 (plus the first step which is only necessary once).

Note that you can zoom out with your browser, not just the map.

Alternatively “We’re going to need a bigger … screen!”

See also Add "copy tags" keyboard shortcut · Issue #11674 · openstreetmap/iD · GitHub (that proposed to add copy tags but in place that would add extra complexity without cutting down much on number of operations needed - and I closed it recently as rejected) and Add "copy tags" keyboard shortcut · Issue #11674 · openstreetmap/iD · GitHub specifically

Isn’t that the only part that is missing currently? I don’t immediately see why we’d need a special Copy Tags operation, when the tags are already implicitly included in the existing copy buffer as part of the copied feature. If we were to add a new operation Paste Tags, it could just take the tags from there and merge it onto the current feature. So the workflow would be just:

  1. select first feature
  2. right click → copy (or Ctrl C)
  3. select second feature
  4. right click → paste tags (or something like Ctrl Shift V)

though AFAIK there is no issue at Issues · openstreetmap/iD · GitHub for such “paste tags” feature.

Ideally when opened it would propose specifically how it should behave (should it be just shortcut? button? If button then where? How it should behave when some tags are already present? Should it replace existing ones? Only conflicting ones? Maybe warn user? If warn - how?)

Or maybe #11674 as proposed would be actually substantial improvement?