Я пытаюсь исправить поведение Backspace в vim на одной из платформ, которые я использую. Я получил название этой платформы (назовите ее bad_platform) из системной команды get_platform . Следуя совету :help fixdelete и совмещая его со знанием того, как выполнять системные команды, я добавил в свой .vimrc следующее:
let platform_name = system("get_platform")
if platform_name == "bad_platform"
  set t_kb=^?
  fixdel
endif
Это не сработало. Чтобы выяснить почему, я открыл сессию Vim и сделал :echom platform_name . Это дало результат bad_platform^@ , где ^@ - это, я думаю, символ NULL, а не буквально два символа, которые вы получаете, набрав shift-6 shift-2.
К сожалению, это представляет проблему. Я не могу изменить его на == "bad_platform^@" , потому что когда источник .vimrc получен, кажется, что ^@ интерпретируется как символ конца строки. Это означает, что добавление let platform_name = substitute(platform_name,"\^@","","") до if также не работает.
Как я могу справиться с этим? Заранее спасибо.
