簡體   English   中英

如何在Vim中為可視逐行模式添加導圖映射?

[英]How to add a map leader mapping for visual linewise mode in vim?

我在使此映射工作時遇到了一些麻煩:

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

當我獲取vimrc時,然后:

  1. 使用vim的可視逐行模式(V)選擇幾行
  2. \\ar
  3. 視覺選擇丟失,返回到普通模式,文本保持不變。

我已經測試過Tabularize命令,它可以正常工作。 現在,我想將其映射到領導者組合,但是它不能通過映射工作。 僅當我實際上在vim的CLI中輸入了整個命令時。

注意:我經歷了許多地圖負責人問題,但沒有一個解決我的特定問題的方法。

問題是您需要使用<bar>而不是| 在您的映射中| 分隔vim命令。

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

其他一些想法:

  • 除非使用<Plug><SID>映射,否則您可能應該使用noremap
  • 您正在使用v模式,該模式同時映射可視模式和選擇模式。 最好使用xnoremap代替
  • 您可能想知道:Tabularize會將與您的模式匹配的所有相鄰線對齊,但不超出范圍
  • :AddTabularPattern可用於命名模式。 添加:AddTabularPattern routes /'[^']*'\\<bar>=>/l1l0到您的~/.vim/after/plugin/tabular.vim 現在您可以:Tabularize routes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM