Vim中如何插入n次重复符号直到跟上一行对齐?


最近在使用Vim编写一些小的脚本,在写注释的时候,想采用这样的方式分隔:
"----------------------------------------------------------
"-------------This is Comments ----------------------------
"----------------------------------------------------------
我知道可以采用ni- <esc> 实现插入n个"-"号的功能,但是中间那一行需要手动输入。因为Comments的内容长度未知,每次都需要手动输入,有时还会出现对不齐的情况。不知道是否有办法在输入完Comments后,自动插入足够的"-"号跟上一行对齐呢?
在输入完Comments后,希望可以自动插入足够的*号跟上一行对齐 </esc>

vi gvim vim

Cloness 10 years, 4 months ago

呃~,可不可先写三行星号,跳到中间,再按R?

asfor answered 10 years, 4 months ago

直接做的方法我不了解,但有另一个方法能实现你的需求,而且也不麻烦:

1.每次多插入一些符号
2.使用块选择,将多余的符号一次性删除

makino answered 10 years, 4 months ago

.号的使用。。

最爱水手服 answered 10 years, 4 months ago

把这个加到你的 vimrc 里:


 inoremap <expr> <C-r>* repeat('*', strdisplaywidth(getline(line('.')-1))-strdisplaywidth(getline('.')))

然后需要使用星号与上一行对齐的时候按 <C-r>*

另一个解决方案是,写文字部分之前把上一行全星号复制下来,然后在需要写文字的地方按 gR 进入 虚拟替换模式 ,这样就不用数星号了。

嘔吐物黙れ answered 10 years, 4 months ago

Your Answer