Как заново связать ctrl-space в vim, работающем в Windows Terminal Preview? - PullRequest
0 голосов
/ 26 октября 2019

Таким образом, кажется, что ctrl-space неправильно переводится в ctrl- @ терминалом Windows, и мне было интересно, есть ли какое-нибудь решение для этого? Я видел ответы на эту похожую проблему для других терминалов, но они не работают.

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Это принципиальное ограничение работы большинства терминалов Unix. Клавиши управления отображаются на ограниченный набор символов, поэтому Ctrl- @, Ctrl-Space и Ctrl-`все отображаются на одно и то же и работают одинаково. Это происходит в эмуляторах терминала и VT, работающих на реальных системах Linux.

Возможно, что другие эмуляторы терминала имеют опцию для этого, но терминал Windows пытается эмулировать тип терминала xterm-256color, которыйреализует поведение, которое вы заметили. Даже если другие эмуляторы терминала поддерживают его, это не означает, что программы, работающие в них, поддерживают;они могут получить такую ​​последовательность и не знать, что с ней делать, особенно если для TERM задан тип терминала, который не поддерживает это различие.

Согласно средству отслеживания проблем Windows Terminal , они знают об этом, и есть вероятность, что они могут передать эти ключи в будущем, используя некоторые специфичные для xterm последовательности, но в настоящее время это не работает. Я не уверен, что даже если бы они реализовали его, он работал бы так, как вы ожидаете в Vim, хотя это возможно.

Вы можете либо переназначить Ctrl- @, если вы не используете существующую функциональностьили просто используйте другую клавишу.

0 голосов
/ 28 октября 2019

Autohotkey - хорошая компания для vim в Windows. Он может сопоставить ctrl-space с любыми другими ключами и отправить их в vim, запустив сценарии.

https://www.autohotkey.com/docs/Hotkeys.htm#Intro

AHK, как (не проверено)

^Space::
send {Ctrl}g
return

Затем в vimrc

nnoremap <c-g> ...
...