Я пытаюсь исправить поведение 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
также не работает.
Как я могу справиться с этим? Заранее спасибо.