LINUX.ORG.RU

Повесить хук

 


0

1

Привет.
Как в вимрц выполнить набор команд для определённого типа файла (ну там байндинг повесить, например)? Что вроде emacs’ого (add-hook ’c-mode-hook ’(lambda () (print «hello c»))). Т.е. когда открываем any.c, то выполняется c_mode_hook_fn(). Я может плохо искал, но так и не понял.

★★

Если именно хук, то так (augroup, чтобы полностью его переопределить при повторном чтении .vimrc):

augroup CModeHookFn
    autocmd!
    autocmd FileType c call c_mode_hook_fn()
augroup End

Но ещё можно просто поместить нужный код в ~/.vim/after/ftplugin/c.vim.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Спасибо, теперь разберусь.
В вимрц очень лаконичные и интуитивно понятные конструкции ))

pavlick ★★
() автор топика
Последнее исправление: pavlick (всего исправлений: 1)
Ответ на: комментарий от xaizek

А при каких обстоятельствах может случиться повторное чтение? Я тут экспериментировал, не увидел выполнение хуков несколько раз (переключение файлов, повторное открытие, …)

"augroup CModeHookFn
      autocmd!
      autocmd FileType cpp echom "c++_file!!!!!!!"
      autocmd FileType cpp nnoremap <buffer> <F6> :echom "qqqqqqqqqqqqqqq"
"augroup End
pavlick ★★
() автор топика
Ответ на: комментарий от pavlick

У многих в .vimrc есть что-то подобное:

" automatically reread Vim's configuration after writing it
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.