我有一长串不同的大学名称。我正在尝试通过将行与某些唯一关键字进行比较来构建同义词表;也就是说,在文件中,我将确定哈佛是这里的关键字:
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”寄存器的内容。
有任何想法吗?
编辑:我知道:
- 如何全局搜索替换,例如%s/\n//g
- 如何在缓冲区中搜索和替换 'foo' 从单词到寄存器的内容,例如:%s/foo/a/g
- 如何在缓冲区中搜索寄存器的内容并替换为 'foo',例如:%s/a/bar/g
我需要知道的:
- 如何从注册“a”到注册“b”中搜索“foo”并将其替换为“bar”
- 如何从注册“a”中搜索“foo”并将其替换为“bar”以注册“a”