I copy some code from one part of one file to another part in vim, I find that, there are line numbers in each line and the format is gone, how to set correct format as origin ?
like this:
40 root /opt/release/current/public;
67 41 passenger_enabled on;
68 42
Have a look at the pastetoggle option sometimes set to F11.
As an alternative you could always write the section you want to copy into a temporary file (
ma
, goto end line then use:'a,.w tempfile
) then read it into the second file.For further investigation you might want to look at the autoindent option.
If you have line numbers, I'm quite sure you are not using Vim's yank/put operations (these will never copy the linenumbers, foldcolumn, icons etc) because in terms of the edit buffer, they don't exist.
My guess is you are working in a terminal emulator and using the mouse to copy stuff to the clipboard, which possibly selects the 'extraneous' room of the screen (including virtual spaces at the end, line numbers, fold markers etc)
You might have luck setting
in order to get the behaviour of the mouse like you expect it. Otherwise, do the selection with V
<movement>...
y (y
foryank
, which corresponds to 'copy')Then on the destination use p (put at cursor), or P (put before cursor)
Let me know if that helped or you need more info
On Windows VIM GUI:
:set nu
and then hold down Ctrl-Shift while highlighting the desired text with the mouse. This yanks the line numbers into the buffer.I mapped the below command to a key.
It strips the whitespace around the copied line numbers.
It ignores the line text and any blank lines behind.