如何在vim中为视觉线性模式添加地图领导者映射?

时间:2014-12-09 03:17:49

标签: vim

我在制作此映射时遇到了一些麻烦:

if exists(":Tabularize")
  "rails routes file alignment in visual mode
  vmap <Leader>ar :Tabularize /'[^']*'\|=>/l1l0<CR>
endif

当我采购我的vimrc然后:

  1. 使用vim的Visual linewise mode(V)
  2. 选择多行
  3. \ar
  4. 视觉选择丢失,返回正常模式,文本保持不变。
  5. 我已经测试了Tabularize命令并且它有效。我现在想要将它映射到领导者组合,但它不能通过映射工作。只有我真的在vim的CLI中输入整个命令。

    注意:我经历了一系列地图领导者问题,但没有一个解决我的特定问题。

1 个答案:

答案 0 :(得分:5)

问题是您需要在映射中使用<bar>而不是|,因为|分隔了vim命令。

xnoremap <leader>ar :Tabularize /'[^']*'\<bar>=>/l1l0<cr>

其他一些想法:

  • 除非您使用noremap<Plug>映射,否则您应该使用<SID>
  • 您正在使用v模式,该模式同时映射可视模式和选择模式。最好使用xnoremap代替
  • 您可能有兴趣知道:Tabularize会将与您的模式匹配的所有相邻行与一个范围对齐
  • :AddTabularPattern可用于命名模式。将:AddTabularPattern routes /'[^']*'\<bar>=>/l1l0添加到~/.vim/after/plugin/tabular.vim。现在你可以做:Tabularize routes