Below example, first line is shorter than the other lines.
I want to insert \ to all lines at the highlighted place.
If I press CtrlC, jjj(select all lines) , Shifti, \, only first line changed.
Notice: Don't want to use :s substitute command.
Vi and Vim Stack Exchange is a question and answer site for people using the vi and Vim families of text editors. It only takes a minute to sign up.
Sign up to join this communityIt could be done with virtualedit=ALL
:
set virtualedit=all
A\<ESC>
set virtualedit=block
See the screen:
virtualedit=block
. Start visual block mode at the end of the first line. Then move down to the last line. Finally move to the right as far as you want. Then enter A\<ESC>
. No need to change virtualedit setting.
A\<ESC>
works but I\<ESC>
(with capital i) doesn't. Unlike in the visual block without virtual edit.
May 24, 2020 at 14:03
The short answer is: In Visual Block mode select lines to their ends ($
) and use A
to append some text at the end of each line.
The longer answer:
gg
to go the beginning of the first line.CTRL-V
(or the proper alternative CTRL-Q
in e.g. gVim) to start blockwise visual selection.jjj$
select all four lines down (jjj
) and to the right until their individual ends ($
).A
start appending some text ('\
' in your case).ESC
In fact this is not exactly your desired result, but functually equal and achievable with a minimum effort and time:
short line \
very long line \
very very long line \
short line \
A
to append in each line instead of the current line only.
This is a nice technique. Thanks Maxim Kim.
This description may be helpful. All codes are literal key entries except:
To insert (spaces that end with char: #) on a vertical line, with cursor anywhere on the first line:
:set ve=all . enable full screen block cursor access
$ . cursor to top right position for vertical line start
C-v . enable select (vertical line) mode
8j . move cursor down 8 lines (selects a vertical line)
s#ESC . substitute # char in highlighted area, actuate by escape key
:set ve= . restore default mode (mine is unset, could be: block)
notes: can also append a char or word using an uppercase key append: A, or use insert: I
:h v_b_A
if you want to have them aligned after the physical line end, you might need to:set virtualedit