I can't assign the index 0 to all the black in the canvas, right?
I'm confused. Isn't that not what you have? You have a black index for that part that changes, and a different black index for all the parts that don't, right?
If you did want to make all the black in the canvas a certain index, you can ignore the index component and use a color replace. (using an RGB color for the "to replace" field and an index for the "replace with" field.)
Note that the entire image reappears when the one index is edited.
As opposed to this where you don't ignore indexed:
Note that just one index reappears when the one index is edited. (Well, two indices, but the initially white one isn't visible on the canvas in the gif)
If you just want to swap indexes, you can do this:
Which is admittedly kind of a hack, but still.
Basically x-swap is the above, swap is the above+click remap.
And if you want to change the transparent index, it's sprite, properties. You can click and drag from the current color to eyedrop or click and set it regularly.
But I might still be missing a "trick" in your image since I can't see the whole palette.
Is it that you have exactly one pink index, but you're somehow able to have only some of that pink change after the swap?
Or is it that you're using exactly one black index (in the image, not your palette obviously), but you're somehow able to have only some of that black change after the swap?
Or is it something else? In other words, I can totally set up a situation like that gif in Aseprite, but whether it actually matches your workflow I'm still not sure. Edit: It's also possible I'm dumb and you're showing what you don't want, and the edit color thing is what you were looking for. Well, let me know.
Trying Grafx2's palette editor, the things it has that Aseprite can't do seem to be merge (talked about earlier), swapping multiple palettes at once (due to the swap above being a hack), gray, neg, and the histogram.
Edit2: Actually one caveat. If you do the color replace like this, it seems to change the transparent index as well if it has the RGB value. If you don't want that, you can make it something that doesn't match the other indices. Since Aseprite can display the transparent color as checkerboard (or a solid color that doesn't match the actual RGB value of the index at all), you may as well change it. It's one color change vs. many for this use.