2013-04-24 61 views
0

我試圖重新映射VIM中的*運算符。我試過nnoremap <*>nnoremap <S-8>無濟於事。我一直無法找到關於如何正確執行此操作的任何說明。我如何重新映射我的*,或任何數字鍵/數字鍵特殊字符?如何重新映射VIM中的數字鍵和數字鍵特殊字符

因爲你們中的許多人無疑會想知道爲什麼有人想要這樣做,所以我可以讓我的*操作符像正常一樣行爲,除非不自動前進到光標下的單詞的下一個出現處(請參見部分Highlight Matches Without Moving )。

編輯:

完整的命令我工作是這樣的:

nnoremap <*> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>

*重新映射的*<shift + 8>

回答

1

擺脫<>適合我。

nnoremap * :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR> 
+0

就是這樣!謝謝 – 2013-04-24 18:28:46

+2

@Freedom_Ben查看':h key-notation'。在那裏沒有列出的所有東西都需要在不包圍'<…>'的情況下使用。還要注意,vim使用字節隊列來表示鍵入的鍵,並且永遠不會收到像'Shift' +'8'這樣的東西:從來沒有使用過修飾符的東西。 ''鍵是ASCII表中的一個字節控制字符,位於0x01和0x1F之間,''是' ...',而''是內部轉義序列,以0x80字節開始(在終端中,它們首先被接收爲類似' [11〜',但後來改變了)。 ''另外是'A'。你可以直接使用它。 – ZyX 2013-04-25 04:25:09

+0

@ZyX,感謝您的真棒解釋!這大大澄清了事情。如果您想將其作爲附加答案發布,我會將其投票。我認爲這對將來訪問這個問題的人來說也是非常有幫助的。 – 2013-04-25 16:04:11

-1

功能嘗試nnoremap <F7> <*>。它將重新映射* F7

+0

我嘗試了幾種方法的建議,它似乎並沒有工作。你能提供一個更完整的例子嗎?我已將全部命令添加到該問題中。 – 2013-04-24 17:58:20

+0

這將重新映射''三個符號:'<','*'和'>'。 – ZyX 2013-04-25 04:18:15