使映射适用于所有文本对象的更简单方法?

时间:2019-03-06 01:10:35

标签: ideavim

我已经习惯在Vim中使用https://www.vim.org/scripts/script.php?script_id=2703来替换文本对象,现在我正在在IdeaVim中重新创建某些功能。

我正在vimrc中使用这些映射:

nmap Ö <Plug>ReplaceWithRegisterOperator$
nmap öö <Plug>ReplaceWithRegisterLine
xmap ö <Plug>ReplaceWithRegisterVisual
nmap ö <Plug>ReplaceWithRegisterOperator

前三行很容易在我的.ideavimrc中重新创建,像这样:

nnoremap Ö "_Dp
nnoremap öö "_ddP
vnoremap ö "_dP

但这真的是使ö在正常模式下与每个文本对象一起工作的最佳方法吗?

nnoremap öiw "_diwP
nnoremap öaw "_dawP
nnoremap öIw "_dIwP
nnoremap öAw "_dAwP
nnoremap öis "_disP
nnoremap öas "_dasP
nnoremap öip "_dipP
nnoremap öap "_dapP
nnoremap öib "_dibP
nnoremap öab "_dabP
nnoremap öiB "_diBP
nnoremap öaB "_daBP
nnoremap öi( "_di(P
nnoremap öi) "_di)P
nnoremap öa( "_da(P
nnoremap öa) "_da)P
nnoremap öi[ "_di[P
nnoremap öi] "_di]P
nnoremap öa[ "_da[P
nnoremap öa] "_da]P
nnoremap öi{ "_di{P
nnoremap öi} "_di}P
nnoremap öa{ "_da{P
nnoremap öa} "_da}P
nnoremap öi< "_di<P
nnoremap öi> "_di>P
nnoremap öa< "_da<P
nnoremap öa> "_da>P
nnoremap öi" "_di"P
nnoremap öa" "_da"P
nnoremap öi' "_di'P
nnoremap öa' "_da'P
nnoremap öi` "_di`P
nnoremap öa` "_da`P
nnoremap öit "_ditP
nnoremap öat "_datP

这些映射确实有效,但是我想知道是否会有更干净,更简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用:map-operator映射自定义运算符,但是IdeaVim尚不支持此功能。

如果愿意,您可以创建一个issue