在我的.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但这不起作用。当然,如果没有这些条件,快捷键就能发挥作用。
发布于 2018-10-18 18:50:44
你需要做两件事:
<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 BufReadhttps://stackoverflow.com/questions/52880237
复制相似问题