DoCmd.NavigateTo "acNavigationCategoryModifiedDate"
DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.RunCommand acCmdWindowHide
Чтобы команда DoCmd.RunCommand acCmdWindowHide
успешно закрыла панель навигации, панель навигации должна иметь фокус. Но чтобы окно доступа имело фокус, элемент управления внутри окна должен иметь фокус. Оказывается, команда NavigateTo
никогда не поместит фокус в текстовое поле Поиск, поэтому, если результаты поиска пустые и нечего выбирать, то фокус не изменится на панель навигации (даже хотя технически выбранная группа панели навигации могла быть обновлена.)
Если вы поиграете с панелью навигации достаточно долго, вы обнаружите, что результаты поиска навигации и текстовое поле сбрасываются при переключении между навигацией наивысшего уровня категории. Поэтому мой предложенный код ... он меняется между двумя категориями навигации, так что результаты поиска очищаются во время этого действия, так что окно навигации в конечном итоге получает фокус, когда один из его перечисленных объектов, наконец, получает фокус.
(Действительно, использование команды NavigateTo
в этом случае - просто глупый трюк, чтобы сосредоточиться на панели навигации. Это просто еще один вопиющий недостаток интерфейса доступа - отсутствие прямых команд / объектов для управления панелью навигации .)
Интересно, что подсветки синтаксиса в VIM не поддерживают применение синтаксиса к идентификаторам или именам функций - по крайней мере, не подсветка синтаксиса для C и C ++. Таким образом, даже если вы сделаете:
:hi Function guifg=red
или
:hi Identifier guifg=red
, это не придаст этому цвету. Мне кажется, что это не что иное, как ключевые слова и константы для этих языков.
Здесь кто-то начал расширять файл синтаксиса cpp для поддержки имен методов. Я полагаю, это начало. http://vim.wikia.com/wiki/Highlighting_of_method_names_in_the_definition
Используйте плагин для vim, например Taglist , или настройте ctags
] или cscope
интеграция с vim ( здесь руководство для vim / cscope.)
Единственное решение - использовать встроенную базу данных ctags. Поэтому создайте его с помощью утилиты ctags . Затем установите переменную 'tags' и поместите следующее в
~/.vim/after/syntax/c.vim
function! s:highlight()
let list = taglist('.*')
for item in list
let kind = item.kind
if kind == 'f' || kind == 'c'
let name = item.name
exec 'syntax keyword Identifier '.name
endif
endfor
endfunction
call s:highlight()
. Я должен предупредить вас, что это может работать очень медленно в очень большой базе данных ctags.
Также есть одно решение в vim .org, но я не пробовал это. Дайте мне знать, если это работает для вас.
У меня была такая же проблема, когда я начал использовать vim. Решение простое, вам просто нужно отредактировать файл синтаксиса c, используемый vim, вот как это сделать:
Когда вы начинаете редактировать файл C или C ++, vim читает файл синтаксиса c по умолчанию, расположенный в
$VIMRUNTIME/syntax/c.vim
( Где $ VIMRUNTIME - это то место, где вы установили vim. Вы можете узнать его значение по умолчанию, открыв vim и используя команду ": echo $ VIMRUNTIME").
Вы можете просто перезаписать этот файл или создать свой собственный синтаксис C файл (который будет загружен vim вместо файла по умолчанию) в этом месте:
$HOME/.vim/syntax/c.vim (for UNIX)
$HOME/vimfiles/syntax/c.vim (for PC or OS/2)
(я никогда не использовал Mac, поэтому я не знаю, какой из них будет работать для вас. Вы можете узнать больше в справке vim, ": помогите vimfiles ")
Теперь самое интересное. Скопируйте значение по умолчанию «$ VIMRUNTIME / syntax / c.vim» syn match cCustomParen "(" содержит = cParen, cCppParen syn match cCustomFunc "\ w \ + \ s * (" содержит = cCustomParen syn match cCustomScope "::" син совпадение cCustomClass "\ w \ + \ s * ::" содержит = cCustomScope привет def ссылка cCustomFunc функция Привет def ссылка cCustomClass Функция
Вот и все! Теперь имена функций и классов будут выделены цветом, определенным в выделении «Function» («: hi Function»). Если вы хотите настроить цвета, вы можете изменить последние две строки выше на что-то вроде этого:
hi def cCustomFunc gui=bold guifg=yellowgreen
hi def cCustomClass gui=reverse guifg=#00FF00
или вы можете оставить файл синтаксиса C в покое и определить цвета в вашем файле vimrc (": help vimrc"):
hi cCustomFunc gui=bold guifg=yellowgreen
hi cCustomClass gui=reverse guifg=#00FF00
(Обратите внимание на отсутствие ключевого слова def, перейдите к «: help highlight-default» для подробной информации). Доступные параметры для команды ": hi" см. ": Help: highlight".
Вы можете найти полный файл c.vim для Vim 7.2 по этой ссылке (Примечание: используйте его, только если у вас есть неизмененные Vim, версия 7.2):
И обязательный скриншот:
Сергей, изменение первой строки с
syn match cCustomParen "(" contains=cParen,cCppParen
на
syn match cCustomParen "(" contains=cParen contains=cCppParen
, похоже, исправило это для меня.
Попробуйте использовать этот плагин http://www.vim.org/scripts/script.php?script_id=2646 Он делает все ctags выделяются очень эффективно для вас