It's not clear to me why Emacs hangs in what you describe, or what you mean by that.
But I think you're talking about accidentally defining a large region of text, and then killing or copying that, and that it is that killing or copying that you want to avoid.
If that's the case, then this may help: wimpy-del.el
. It's what I bind to C-w
, in place of kill-region
. It's a silly little thing I picked up somewhere eons ago, but I've become used to it and like it.
Here's the doc string:
Kill the text between BEG
and END
, putting it in the kill ring.
(Interactively, uses the region.)
If the previous command was a completion, just remove the completion.
Else, if the region is > wimpy-delete-size
, you must confirm the kill.
Pretty simple, really. Mostly it just asks you to confirm killing if the region size is greater than the value of variable wimpy-delete-size
.
(The part about previous command being a "completion" isn't very relevant nowadays. That refers to the use of standard Emacs library completion.el
, which is useful but which hardly anyone is even aware of anymore, even though it's still part of Emacs.)