是否有一种方法可以在Vim中删除一行末尾的换行符,以便下一行被追加到当前行?
例如:
Evaluator<T>():
_bestPos(){
}
我想把这些都放在一行上,而不是复制和粘贴到前面的一行中。似乎我应该能够将光标放到每行的末尾,按下一个键,然后让下一行跳转到光标所在的同一行上。
最终结果:
Evaluator<T>(): _bestPos(){ }
这在Vim中可行吗?
是否有一种方法可以在Vim中删除一行末尾的换行符,以便下一行被追加到当前行?
例如:
Evaluator<T>():
_bestPos(){
}
我想把这些都放在一行上,而不是复制和粘贴到前面的一行中。似乎我应该能够将光标放到每行的末尾,按下一个键,然后让下一行跳转到光标所在的同一行上。
最终结果:
Evaluator<T>(): _bestPos(){ }
这在Vim中可行吗?
当前回答
<CURSOR>Evaluator<T>():
_bestPos(){
}
第一行光标
现在,在正常模式做
shift+v
2j
shift+j
or
V2jJ
:正常V2jJ
其他回答
J删除额外的前导空格(如果有的话),用一个空格连接行。(有些例外:在/[.!?$/,可以插入两个空格;在/^\s*)/之前,不插入空格。)
如果您不想要这种行为,gJ只需删除换行符,并且根本不使用空格进行任何巧妙的处理。
这可能取决于你的设置,但我通常使用A<delete>
其中A是附加在行的末尾。它可能需要不兼容模式:)
set backspace=indent,eol,start
在您的.vimrc中,将允许您在插入模式中使用退格和删除\n(换行符)。
set whichwrap+=<,>,h,l,[,]
将允许您在正常模式下用X删除之前的LF(当在col 1时)。
问题是不可见的多个字符0A (\n)可能会累积。 假设你想从第100行清理到最后:
输入ESC和:(终端指挥官)
:110,$s/^\n//
在vim脚本中:
execute '110,$s/^\n//'
说明:从110到最后 搜索以new line开头的行(为空) 然后移除它们
当然可以。Vim将\n字符识别为换行符,因此只需搜索和替换即可。 命令模式类型:
:%s/\n/