We have a Renumber() action and a RenumberDialog() action. The dialog is also accessible via the menu:

edit/change multiple objects/renumber symbols.

The dialog shows and explains all arguments to the Renumber() action. The action takes all selected symbols (or all symbols on the sheet) and starts renumbering them from the specified base number (1 by default). It tries to assign numbers per prefix (i.e. counting separately for R's, C's, U's, and whatever non-numeric name prefixes you used) but it also makes sure it does not assign a name that is already in use on the sheet by a symbol you are not renaming.

There is a sort argument that tells how symbols-to-be-renumbered should be sorted before renumbering. This affects how the numbering goes, e.g. left-to-right or right-to-left.

The typical use cases:

Unlike "fix unnamed" feature, the renumber plugin really renames your symbols on the drawing (in the concrete model).

Note: at the moment the action works on sheet basis. Later we may extend this to project basis (so that naming collisions are avoided not only within the sheet, but within the project). We may also introduce more sorting methods, those are cheap to implement.

Note: this is all in a plugin, and is not part of the official cschem specification. I consider this an optional feature; some users may want to have it differently. They can implement their idea in an user script. They can even disable the renumber plugin and implement an user script with the same actions to replace it!