我正在尝试在我使用的平台之一上修复 vim 的 Backspace 行为。我bad_platform从系统的get_platform命令中得到了这个平台的名称(称之为)。按照 中的建议:help fixdelete,并将其与如何执行系统命令的知识相结合,我将以下内容添加到我的 .vimrc 中:
let platform_name = system("get_platform")
if platform_name == "bad_platform"
set t_kb=^?
fixdel
endif
Run Code Online (Sandbox Code Playgroud)
这没有用。为了找出原因,我打开了一个 Vim 会话并执行了:echom platform_name. 这给出了结果bad_platform^@,^@我猜 NULL 字符在哪里,而不是从字面上键入“shift-6 shift-2”得到的两个字符。
不幸的是,这带来了一个问题。我无法将其更改为== "bad_platform^@",因为在获取 .vimrc 时,它似乎^@被解释为行尾字符。这意味着let platform_name = substitute(platform_name,"\^@","","")在 之前添加if也不起作用。
我该如何处理?提前致谢。