gpt4 book ai didi

python - 为什么在 .vim 文件中编写 Python 时 "\n"会变成 "^@"?

转载 作者:太空狗 更新时间:2023-10-29 22:22:56 26 4
gpt4 key购买 nike

例如,这是我的函数:

function! Test()
python << EOF
import vim
str = "\n\n"
vim.command("let rs = append(line('$'), '%s')"%str)
EOF
endfunction

当我 :call Test() 时,我看到的是“^@^@”。
为什么会发生这种情况以及如何使用原点 '\n' ?

最佳答案

两件事:Vim 在内部将 null 字节(即 CTRL-@ )存储为 <NL> == CTRL-J出于实现原因(文本存储为 C 字符串,以 null 结尾)。

另外,append()函数仅在将文本行的 List 作为第二个参数传递时插入多行。单个字符串将作为一行插入,并且(由于翻译),换行符将显示为CTRL-@。 .

因此,您需要通过构建 Python 列表或使用 split() 来传递一个列表。将单个字符串转换为列表的 Vim 函数:

function! Test()
python << EOF
import vim
str = "\n"
vim.command("let rs = append(line('$'), split('%s', '\\n', 1))"%str)
EOF
endfunction

关于python - 为什么在 .vim 文件中编写 Python 时 "\n"会变成 "^@"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791232/

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