Приведенная ниже функция может не выполнять то, что вам нужно, и я ее не проверял, но она должна дать вам некоторые идеи.
Основная идея заключается в том, что функция читает тип файла текущего буфера (вы можете проверить это, набрав :echo &ft
), а затем задает путь к соответствующему списку читов. Если он существует, этот путь затем открывается (только для чтения и не модифицируется) в разделенном окне. Затем вы можете вызывать эту функцию любым способом, например, сопоставив ее с клавишей {F5}, как показано.
Я не уверен насчет возможностей переключения (это действительно проще, чем просто закрытие разделенного окна?), Но вы могли бы взглянуть на функцию bufloaded (), которая возвращает информацию о том, доступен ли в данный момент файл или нет.
function! Load_Cheat_Sheet()
let l:ft = &ft
if l:ft == 'html'
let l:path = 'path/to/html/cheat/sheet'
elseif l:ft == 'c'
let l:path = 'path/to/c/cheat/sheet'
elseif l:ft == 'tex'
let l:path = 'path/to/tex/cheat/sheet'
endif
if l:path != '' && filereadable(l:path)
execute ':split +setlocal\ noma\ ro ' l:path
endif
endfunction
map <F5> :call Load_Cheat_Sheet()<CR>
Надеюсь, это поможет. Просто кричите, если что-то неясно, или вы хотите знать больше.