Вам нужно сделать 2 вещи:
- Использовать локальные сопоставления буфера, добавив
<buffer>
- Установите эти сопоставления только для определенных имен файлов, возможно, через
:autocmd
Отображения будут выглядеть следующим образом:
nnoremap <buffer> <leader>t :!clear; bundle exec rspec % --fail-fast<cr>
nnoremap <buffer> <leader>t :!clear; bundle exec ruby -w -Itest %<cr>
Теперь вам нужно загрузить эти отображения для конкретных FileType
или имен файлов:
augroup RubyTestMappings
autocmd!
autocmd BufNewFile,BufRead *_spec.rb nnoremap <buffer> <leader>t :!clear; bundle exec rspec % --fail-fast<cr>
autocmd BufNewFile,BufRead *_test.rb nnoremap <buffer> <leader>t :!clear; bundle exec ruby -w -Itest %<cr>
augroup END
Другой вариант - поместить эти сопоставления в ~/.vim/after/ftplugin/ruby.vim
примерно так:
if @% =~ '*_spec.rb'
nnoremap <buffer> <leader>t :!clear; bundle exec rspec % --fail-fast<cr>
endif
if @% =~ '*_test.rb'
nnoremap <buffer> <leader>t :!clear; bundle exec ruby -w -Itest %<cr>
endif
Для получения дополнительной помощи см .:
:h :map-local
:h :autocmd
:h BufNewFile
:h BufRead