gpt4 book ai didi

vim - 如何在 Vim 中用换行符替换字符

转载 作者:行者123 更新时间:2023-12-03 03:51:10 27 4
gpt4 key购买 nike

我正在尝试用新行替换当前文件中的每个 ,:

:%s/,/\n/g 

但它插入了看起来像 ^@ 的内容,而不是实际的换行符。该文件不处于 DOS 模式或任何模式。

我应该做什么?

如果您像我一样好奇,请检查问题 Why is \r a newline for Vim? 也是如此。

最佳答案

使用\r而不是\n

\n 替换会在文本中插入一个空字符。要获取换行符,请使用 \r。但是,当搜索换行符时,您仍然会使用\n。这种不对称是由于 \n\r do slightly different things :

\n 匹配行尾(换行符),而 \r 匹配回车符。另一方面,在替换中 \n 插入空字符,而 \r 插入换行符(更准确地说,它被视为输入 CR )。这是一个小型的非交互式示例,使用 Vim 命令行功能来说明这一点(换句话说,您可以将以下内容复制并粘贴到终端中来运行它)。 xxd 显示结果文件的十六进制转储。

echo bar > test
(echo 'Before:'; xxd test) > output.txt
vim test '+s/b/\n/' '+s/a/\r/' +wq
(echo 'After:'; xxd test) >> output.txt
more output.txt
Before:
0000000: 6261 720a bar.
After:
0000000: 000a 720a ..r.

换句话说,\n已将字节0x00插入到文本中; \r 已插入字节 0x0a。

关于vim - 如何在 Vim 中用换行符替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com