我有一长串不同的大学名称。我正在尝试通过整理具有某些唯一关键字的行来构建同义词表;也就是说,在文件中,我将确定哈佛是这里的关键字:
Harvard Business School|
Harvard College|
Harvard School of Divinity|
并将它们粘贴到另一个文件中
Harvard Business School|Harvard College|Harvard School of Divinity|
我一直在通过搜索光标下的单词来做到这一点,将带有该单词的行拉入寄存器,将寄存器粘贴到另一个文件中,然后使用连接命令“J”将这些行连接在一起:
[ clear register 'a' ]
0"ay0
[ move cursor to 'Harvard" and yank lines with keyword into register a ]
:g/\<<CTRL-R><CTRL-W>\>/y A
[ move to other screen and paste ]
"ap
[ join lines ]
JJJJJ
这工作得很好,但我希望它被简化。具体来说,我想知道如何从寄存器中删除换行符,这样我就不必在最后一步中使用 JJJJ 手动加入行。我想搜索包含光标下单词的所有行,将它们复制到“a”寄存器中,从“a”寄存器中删除换行符,然后粘贴“a”寄存器的内容。
有任何想法吗?
编辑:
我知道:
我需要知道的:
最佳答案
直接使用寄存器中的文本进行操作 a
你可以使用这个命令:
:let @a=substitute(strtrans(@a),'\^@',' ','g')
然后当你粘贴寄存器
a
时你应该得到你想要的结果早在。
关于regex - 从vim中的寄存器中删除换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228079/