Выделение

и другие vi-подобные редакторы

Модератор: /dev/random

SergMarkov15
Сообщения: 117

Выделение

Сообщение SergMarkov15 »

После выделении мышкой в gvim далее при пролистывании текста колесиком мышки или перемещении скролбара выделение расширяется до места перемещения. Это как то лечится ?
Вопрос второй, не пинать сразу :-), не пользуюсь буферами, только табами, gvim изначально настроен на открытие всего и вся в табах, но добиться чтобы при перемешении по буферам открывался именно нужный таб, а не заменялось содержимое таба существующего так и не удалось.
Что имеется в виду - есть перемещение по табам с маппингами, но хотелось бы иметь и что то вроде меню "Buffers", которое бы открывало нужный таб. Существуюшее меню буфер в табе заменяет выбранным из меню
Насколько понял за это отвечает в menu.vim
вот это
func! s:BMFilename(name, num)
if isdirectory(a:name)
return
endif
let munge = <SID>BMMunge(a:name, a:num)
let hash = <SID>BMHash(munge)
if s:bmenu_short == 0
let name = 'an ' . g:bmenu_priority . '.' . hash . ' &Buffers.' . munge
else
let name = 'an ' . g:bmenu_priority . '.' . hash . '.' . hash . ' &Buffers.' . <SID>BMHash2(munge) . munge
endif
" set 'cpo' to include the <CR>
let cpo_save = &cpo
set cpo&vim
exe name . ' :confirm b' . a:num . '<CR>'
let &cpo = cpo_save
endfunc

но подстановка gt ничего не дает
Можно как тот его раскурочить ?
В vimrc есть set swb=usetab, но это похоже ни на что не влияет
PS gvim используется не для программирования, а для обработки больших структурированных текстов, они хоть и большие, но надобности в сотне буферов, автодополнениях итп попросту нет.
menubufexplorer не предлагать :-)
Спасибо сказали:
SergMarkov15
Сообщения: 117

Re: Выделение

Сообщение SergMarkov15 »

C переключением табов решается через вызов bufexplorer в новом табе
Но сам bufexplorer надо тогда немного изменить
function! s:BEClose(mode)
" Get only the listed buffers.
let listed = filter(copy(s:MRUList), "buflisted(v:val)")

" If we needed to split the main window, close the split one.
" if (s:splitMode)
if (s:splitMode != "" && a:mode == "quit")
exec "wincmd c"
endif

if len(listed) == 0
exe "enew"
else
for b in reverse(listed[0:1])
exec "keepjumps silent b ".b
endfor
endif
exe ':tabc'
endfunction

С выделением проблема..
Спасибо сказали: