Краткий ответ: нет. Это C ++, статически скомпилированный язык, где имена членов структуры преобразуются компилятором в смещения памяти. Он не динамичен, как PHP или Python, где среда выполнения связана со всеми ссылками на переменные.
Некоторые терминалы отправляют <NL>
, когда <C-Enter>
нажимается. Это эквивалентно отправке <C-J>
.
Для обнаружения, что терминал делает с <Shift-Enter>
, <Ctrl-Enter>
и <Enter>
, переходят к терминалу, тип <Ctrl-V>
(подобный предложению sykora для энергии), и вводят в последовательности, которой Вы интересуетесь.
Используя терминал гнома, я получаю следующее:
<Enter> : ^M
<S-Enter> : ^M
<C-Enter> : <NL>
Рассмотрение man ascii
указывает, что ^M
дает эти <CR>
последовательность.
ответ - то, что это зависит от терминала, и существует простой способ проверить.
Gvim выполняет своего собственного менеджера для обработки нажатия клавиши и так может взять все различные сочетания клавиш. Vim уверен в определенном терминале для передачи конкретного нажатия клавиши, таким образом, keyhandling только так хорош или варьировался, как терминал.
Один способ, которым можно узнать, можно ли сделать то, что Вы хотите сделать, состоит в том, чтобы использовать ключ для обнаружения то, что вставляется. например, Тип:
:<C-V><C-Enter>
т.е. на самом деле вводят в комбинации, которую Вы хотите нажать, введя Управление комбинацией - Против После этого делают то же самое для входит, т.е.
:<C-V><Enter>
, Если они приводят к тому же коду, тогда терминал интерпретирует оба сочетания клавиш как тот же код клавиши, и Вы не можете связать их, не смешивая с терминалом.
В моем терминале (urxvt), Управление - Входит, Shift-Enter и Входит (отдельно), все производят символ ^M, подразумевая, что я не могу отобразиться один, не отображая другой. То же идет для Вкладки Управления и Управления-I, и Пространства Управления и Control-@
РЕДАКТИРОВАНИЕ: Используйте C-Q вместо C-V для Windows.