在我的.vimrc文件中,
" Rspec Shortcuts
nnoremap <leader>t :!clear; bundle exec rspec % --fail-fast<cr>
" Minitest Shortcuts
nnoremap <leader>t :!clear; bundle exec ruby -w -Itest %<cr>
我想使这些快捷方式以文件名为条件。
我尝试过这样设置条件:
if @% =~ '*_spec.rb'
nnoremap <leader>t :!clear; bundle exec rspec % --fail-fast<cr>
endif
if @% =~ '*_test.rb'
nnoremap <leader>t :!clear; bundle exec ruby -w -Itest %<cr>
endif
但是没有用。 如果没有条件,快捷键当然是有效的。
答案 0 :(得分:2)
您需要做两件事:
<PackageReference/>
<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