Vimでは "_ をつけてから削除系のコマンドを打つと、削除したものがクリップボード的なものに入らない。つまり「切り取り」ではなく完全な「削除」になる。とても便利。
だがEmacsでこれをやる方法がわからず、地味に困っていたので調べた。ついでにVimについても書く。

何がしたいのか

foo を bar で置き換えたいとする。(置換コマンドを打てというのはなしで。)
fooを普通に削除(Vimでdiw、EmacsでM-dみたいに)して、barを貼り付けようとしても、クリップボード的なものにはたったいま削除したfooが入ってしまっているので、貼り付けられない。「削除」と言いつつ、知る限りのコマンドはすべて「切り取り」でしかないから。
fooを削除するとき、クリップボード的なものにこれを入れないようにしたい。

Vim

レジスタについて

普通 ddci" など削除系コマンドを打つと、削除した内容がクリップボード的なもの(レジスタ)に入っていく。レジスタの指定をするときはダブルクオーテーションを前につける。
レジスタは0+などいろいろあり、たとえば3のレジスタに入っている内容を貼り付けたいなら"3pのように、ダブルクオーテーション + レジスタのあとに貼り付けコマンドを打てばいい。逆に"3ddのように削除内容を入れるレジスタを指定することもできる。これは削除系(dとかcとか)だけでなくヤンクyでも同じ。
レジスタの内容は:di:regで確認できる。

解決法: _レジスタを使うといい

特殊なレジスタとして_がある。Vimで:h "_とコマンドを打てばこのレジスタのヘルプが見れる。そこには"Black hole register"と書いてある。このレジスタを指定して削除系のコマンドを打てば、レジスタには残らない。ただの削除が行えるということだ。"_ddとすれば行の削除、"_di{とすれば{}内の削除が、レジスタを汚さずにできる。

これを使えば、上のような例の場合、fooを"_diwで消せばレジスタに残らないので、pでbarが貼り付けられる。

まあdiwで削除しても"0pとすればbarが貼り付けられるが。

Emacs

キルリングについて

Emacsでのクリップボード的なものはキルリングという。C-yのあとにM-yを何度も押すと、キルリングの内容が新しいものから次々に出てきて、過去にコピー・削除したものを貼り付けられる。(M-x helm-show-kill-ringを使えばもっと便利。helm入れてたら使えるはず。)

解決法: リージョン指定してBackspaceすればいい

これはEmacs: how to delete text without kill ring? - Stack Overflowに書いてある。Vimのように、どの削除コマンドにも応用できる方法はないようだ。
削除したいリージョンを選択してからDeleteキーなりBackspaceキーを押せば、キルリングを汚さずに、ただの削除ができる。
これは変数delete-active-regiontになっているとき(デフォルト)、BackspaceやDeleteがそのリージョン全体に対してBackspaceやDeleteの働きをするためのようだ(Backspaceなどはキルリングを汚さず、ただの削除をするので)。リージョン選択後にM-x delete-regionでもいける。

参考