vim – 无论是否为/或,让’n’始终向前搜索用于搜索
发布时间:2020-12-16 01:08:23 所属栏目:安全 来源:网络整理
导读:我几乎总是用/搜索Vim,然后继续向前搜索n和向后搜索N.有时候,我使用?跳到我目前所在线上方几行的一个项目,在这种情况下,如果我想向前搜索相同的项目,我必须使用N代替n,这是一个恼人的心理减速带. 所以我的问题是:是否有可能让n总是向前走,N向后走? 附:文
我几乎总是用/搜索Vim,然后继续向前搜索n和向后搜索N.有时候,我使用?跳到我目前所在线上方几行的一个项目,在这种情况下,如果我想向前搜索相同的项目,我必须使用N代替n,这是一个恼人的心理减速带.
所以我的问题是:是否有可能让n总是向前走,N向后走? 附:文档似乎暗示它是不可能的,因为n只是“重复最新的”/“或”?“[计数]次”,但谁知道.
这是从
vim邮件列表上的
ZyX’s post中获取的.
noremap <expr> n 'Nn'[v:searchforward] noremap <expr> N 'nN'[v:searchforward] 它通过将’Nn’索引为两个元素的列表,将n映射到基于变量v:searchforward的原始N或n.这只能起作用,因为映射是非递归的.如果它是递归的,那么它会称之为自我,你将处于无限循环中. 当v:searchforward == 1(向前搜索)时,映射相当于 noremap <expr> n n noremap <expr> N N 当v:searchfoward == 0(向后搜索)时,映射相当于 noremap <expr> n N noremap <expr> N n 此映射适用于Normal,Visual和Operator pending模式. 我可能会这样写. (虽然我不确定这是否更清楚) noremap <expr> n (v:searchforward ? 'n' : 'N') noremap <expr> N (v:searchforward ? 'N' : 'n') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |