How can I delete a line without putting it into my default buffer?
Example:
line that will be copied.
line that I want to be substitued with the previou
the following mappings will produce:
nnoremap x "_x
nnoremap d "_d
nnoremap D "_D
vnoremap d "_d
nnoremap <leader>d ""d
nnoremap <leader>D ""D
vnoremap <leader>d ""d
Also, it is a nice practice to have the "leader" key set to comma, e.g:
let mapleader = ","
let g:mapleader = ","
these 2 snippets will make ",d" be your new cut command.
If you would like to use these mappings togther with a shared system clipboard configuration, see further details at https://github.com/pazams/d-is-for-delete
Use the "black hole register", "_
to really delete something: "_d
.
Use "_dP
to paste something and keep it available for further pasting.
For the second question, you could use <C-o>dw
. <C-o>
is used to execute a normal command without leaving the insert mode.
You can setup your own mappings to save typing, of course. I have these:
nnoremap <leader>d "_d
xnoremap <leader>d "_d
xnoremap <leader>p "_dP
That's one of the things I disliked about vim... I ended up mapping dd
to the black hole register in my .vimrc and life has been good since:
nnoremap d "_d
vnoremap d "_d
You can use "_d
to prevent things from overwriting your yanked text. You can store yanked or deleted text in whatever register you want with "
, and _
is the 'black hole' register, where you send stuff that you don't care about.
For more information you can type :help "_
or :help deleting
yy
Vx
p
When in visual mode, x
will delete the selection, so if you want to delete a whole line, first press V
to select the line in visual mode and then press x
to delete the selection.
The black hole register "_
will do the trick, but there is a better solution:
When you enter the line back with the p
command you are pasting the contents of the (volatile) default register ""
, which has been overwritten by dd
. But you still can paste from the (non volatile) yank register "0
, which won't be overwritten by the delete command dd
.
So these are the commands you want to use as per your example:
yy
dd
"0p