簡體   English   中英

Vim映射有什么問題?

[英]What's wrong with this Vim mapping?

在用於初始化某些與TeX相關設置的函數中,我定義了以下映射:

vmap <buffer> ucm :s/^\% //<CR>:nohlsearch<CR>

我希望它可以使我輕松取消視覺選擇的行的注釋。 類似的:

vmap <buffer> cm :s/^/\% /<CR>:nohlsearch<CR>

在評論方面做得很好。 同樣,使用#而不是%的其他語言的類似映射也可以正常工作。 最后的那些看起來像這樣:

vmap <buffer> cm :s/^/# /<CR>:nohlsearch<CR>
vmap <buffer> ucm :s/^# //<CR>:nohlsearch<CR>

V 10 j cm V 10 k ucm的序列應該使代碼完整無缺。

所以現在:我在做什么錯?

您正在添加不必要的內容。

:s/^/% <CR>

:s/^% /<CR>

應該分別用於評論和取消評論。

第三個/用於添加選項,例如/c表示“確認”, /g表示“全局”。 如果您不使用這些選項,則根本不需要此/

在“ uncomment”替換中,您轉義了%%本身對於Vim的正則表達式味道沒有特殊意義。 如果Vim逃逸了,不僅Vim肯定不會與之匹配,而且\\%<something>用於一堆原子,例如\\%d 因此您的模式失敗了,因為Vim偶然發現您的\\%期望原子的其余部分並“一無所獲”。

暫無
暫無

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

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