Re: "gv" selection after cut-n-paste is buggy
select multilines
cut by using "x", or "d", or whatever, then move cursor, paste with "p", then "gv", it select the wrong part
expected result: the text that was paste should be selected
You are not logged in. Please login or register.
select multilines
cut by using "x", or "d", or whatever, then move cursor, paste with "p", then "gv", it select the wrong part
expected result: the text that was paste should be selected
gv is supposed to select the last visual range. It is not expected to do what you describe. In my vim (7.0 for win32), gv doesn't select the just-pasted text.
Do you, or does anyone else, have an explanation as to why it does so in your system?
It's puzzling.
- Jon
oops, i was wrong. but however, selecting the same range of text after text is change does not make any sense.
if (1) {
<indent>abc; (before cut)
<indent>def;
}
else {
<indent>if (abc) {
<indent><indent>abc; (paste here)
<indent><indent>def;
<indent>}
}
see, i want to cut abc;def abofe and paste it below, and then want to select the pasted text, use > to add indent. it would be nice for gv tos elect the pasted text, not the previous text range
this is more useful for an programmer's editor (like vs) than a common editor like vim
is there any vi-er or vim-er know how to do it in vi/vim?
mOo,
When I want to do what you've described, I usually just do the following:
* <Shift-V> to enter Visual Line mode, select the block I wish to copy/cut
* Hit y/d to yank/delete and copy the selection
* Move the cursor to the target line
* Hit p to paste the selection, <Shift-V> to select the line I just pasted, < or > to indent/unindent as required
After the first indent/unindent, you can use . to repeat it if you need to add/remove more than one level of indentation. So really, I think I'm doing exactly what you've said, except I use <Shift-V> to select the pasted text, not gv.
Other ways you can do it:
* Paste using ]p so that it's auto-reindented
* Type >'] after pasting to reindent, as the '] mark is set to the end of the paste
* Use =iB or =i{ to reformat the "inner block" where you are (all the code between braces)
And probably more I can't think of right now!
- Jon
Currently installed 3 official extensions. Copyright © 2003–2009 PunBB.
[ Generated in 0.026 seconds, 11 queries executed ]