是否有vim命令可与一个操作员交换两个字?
例如,我想我有这个街区是否有vim命令可与一个操作员交换两个字?,vim,Vim,例如,我想我有这个街区 if( first > second) { } 我想用一个操作符来交换这些词 if( second > first) { } 如何自然地使用vim命令?等待一种更自然的方法,这个怎么样 :map <f7> <esc>dbwPwdwbbPl<esc> :映射dbwPwdwbbPl 将光标放在上如果您想手动执行此操作,可以执行以下操作(首先将光标放在上): 这是相对直观的,但不可否认,相当复杂 您可能会将其映射到一些易于
if( first > second)
{
}
我想用一个操作符来交换这些词
if( second > first)
{
}
如何自然地使用vim命令?等待一种更自然的方法,这个怎么样
:map <f7> <esc>dbwPwdwbbPl<esc>
:映射dbwPwdwbbPl
将光标放在
上如果您想手动执行此操作,可以执行以下操作(首先将光标放在上
):
这是相对直观的,但不可否认,相当复杂
您可能会将其映射到一些易于键入的组合键:
nnoremap <key> yiwwwviwpbbbviwp
我有一个插件,允许我以这种方式更改单词
在第一个单词处按cxiw
,然后跳转到第二个单词并按
此解决方案使用以下功能:
function! Swap()
normal di)
let a=split(@")
let @b=a[2]." ".a[1]." ".a[0]
normal %"bp
endfunction
可以映射到gs
,例如:
nnoremap <silent> gs :call Swap()<cr>
nnoremap-gs:callswap()
这种方法的一个缺点是它比基于mappigs的解决方案更复杂。它的优点是,它将光标放在括号内的任何位置(…)
实际上有3个单词,包括
,在第5步中看起来是“bbb”。
function! Swap()
normal di)
let a=split(@")
let @b=a[2]." ".a[1]." ".a[0]
normal %"bp
endfunction
nnoremap <silent> gs :call Swap()<cr>