2012-05-21 9 views
2

расположение моей клавиатуре (в 2-я строка):Как сопоставить {Ctrl 0, -, =} ключи в vim?

` ... -=Backspace

Я хочу отобразить вызовы функций в Ctrl + , -, =.

Это функция, которую я создал:

" it doesn't work 
nnoremap <C-=> :call IncFontSize(+1)<CR> 

" it works 
nnoremap <C--> :call IncFontSize(-1)<CR> 

" it doesn't work 
nnoremap <C-0> :call IncFontSize(0)<CR> 

fun! IncFontSize(inc) 
    if !exists('+guifont') 
     return 
    endif 
    let s:defaultfont = 'Ubuntu Mono 12' 
    if a:inc==0 || empty(&guifont) 
     let &guifont = s:defaultfont 
     return 
    endif 
    let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)+'.a:inc, '') 
endfun 

Как я могу отобразить вызовы функций этих клавиш?

ответ

7

Обратите внимание, как в режиме командной строки, Ctrl - _ приводит ^_, но Ctrl - и Ctrl - = выход ничего.

Благодаря тому, как ввод с клавиатуры обрабатываются внутри, дифференцируя это, а также многие другие комбинации клавиш (например, Ctrl + Письмо против Ctrl + Сдвиг + письмо), к сожалению ISN Возможно, сегодня даже в GVIM. Это известная точка боли и тема различных обсуждений на vim_dev и #vim IRC-канале.

Некоторые люди (прежде всего Пол ЛевНерд Эванс) хотят исправить это (даже для консоли Vim в терминалах, которые поддерживают это), и предложили различные предложения, ср. link

Но на сегодняшний день никаких пятен или добровольцев еще не вышли, хотя многие из них выразили желание иметь это в будущем выпуске Vim 8 major.