How to Copy and Paste in Emacs
Emacs, or GNU Emacs, is one of many popular text editors on Linux and other computer platforms. Along with vi or vim, these Linux text editors offer many advanced features that can improve the efficiency and abilities of the editor far beyond simple typing. Also, these text editors can be run in a console without a graphical user interface.
Unfortunately, along with the additional features come a great deal of complexity. Suddenly, simple tasks like copying and pasting are no longer clear and obvious. In these text editors, keyboard shortcuts have largely replaced menus and mouse functions. So for those not used to working in a console or terminal, the Emacs learning curve can be especially steep.
If you just want to know how to copy and paste and then get on with your life, the short answer below provides exactly what you need. But if you are curious about the mechanics of Emacs and the deal with all of this "killing" and "yanking", read on for a bit more detail.
The Short Answer - Copy and Paste
1. Move cursor to beginning of text and set a mark:
2a. Move cursor to end of desired text and cut (kill):
2b. If only copying, immediately paste (yank)***:
3. Move cursor to new location and paste (yank):
*** Note: If you know you will only be copying, 2a. and 2b. can be combined into:
[alt-w] OR [Esc][w]
Helpful Emacs Resources
The Long Answer - Copy and Paste
Emacs doesn't technically have the commands copy and paste that have become popularized by other text editors. Instead, the Emacs text editor uses something called the "kill ring" to save removed text, and gives an option to "yank" it back into the current or any other document. The combined kill and yank process can effectively mimic copy and paste in Emacs, but it offers some additional features as well.
Killing Vs. Deleting
Killing text and deleting text both remove it from the given text file. However, they vary in how the text can be used afterwards. Killing generally occurs when any large, non-trivial amount of text is removed. As opposed to deleting which occurs most commonly with single characters or white space. Killing text will automatically store it in the kill ring, allowing the text to later be yanked back into the current or any other buffer. Deleting is generally a permanent operation with the exception of being able to undo.
There are many many Emacs commands for killing various amounts of text such as words, sentences, lines, and regions. The [ctrl-w] mentioned above kills a region as defined by a starting mark. Other useful commands include:
Kill Rest of Line
Kill Whole Line
Kill Rest of Sentence
Once text has been moved to the kill ring, it can be yanked back into any buffer or file. Emacs doesn't just store the most recently killed text, but a large number of blocks as defined by the variable kill-ring-max. The short answer above used [ctrl-y] to yank the most recent text back from the kill ring. If you want to yank a previously killed piece of text, first use [ctrl-y] to yank the most recent text, then repeatedly use [alt-y] to swap out the other text in the kill ring. To view the entire kill ring history, the Emacs command [ctrl-h] v kill-ring will show all killed text.
Other Linux Hubs
- Emacs The E just might stand for everything
Emacs is a text editor. While in today's computer world of word processors and very sophisticated document editors, Emacs might seem like obsolete terminal-based technology, when it was originally written,...
- Linux Shell Scripting -A Beginner's handbook [Part -...
Chapter 1: Introduction: Quick Introduction to Linux Prologue This Linux Shell Scripting Tutorial is designed for people who wish to learn the fundamentals of shell scripting/programming. It also contains an...