2013-04-24 60 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