我希望将EasyClip vim插件的以下功能合并到ideavim插件中:
dd - 删除该行,不要更改剪贴板
D - 从光标删除到行尾但不更改剪贴板
dD - 删除除换行符之外的行内容(即将其设为空白)并且不要更改剪贴板
x - 删除光标下的字符,不要更改剪贴板
s - 删除光标下的字符,然后进入插入模式,不要更改剪贴板
S - 删除光标下的行,然后进入插入模式,不要更改剪贴板
c - 在给定区域的顶部输入插入模式,不要更改剪贴板
cc - 在当前行的顶部输入插入模式,不要更改剪贴板
C - 从光标到行尾输入插入模式,不要更改剪贴板
我怎么能这样做?
答案 0 :(得分:0)
EasyClip只是将键序列重新映射到相同的功能,但重定向到“黑洞寄存器”_
。
在那里存在映射https://github.com/svermeulen/vim-easyclip/blob/21b6dcd7bb25697263156473d6eb9ec0420b97ee/autoload/EasyClip/BlackHole.vim#L22-L52列中的第一项是源键,第二项是目标,第三项是模式列表。 n
表示普通模型,对应nnoremap命令,x
表示可视模式,对应xnoremap。例如,['S', '"_S', 'nx']
将在两个命令中翻译:
nnoremap S "_S
xnoremap S "_S
您可以手动将这些映射添加到~/.ideavimrc
。
完整的映射列表是:
nnoremap d "_d
xnoremap d "_d
nnoremap dd "_dd
nnoremap dD 0"_d$
nnoremap D "_D
xnoremap D "_D
nnoremap x "_x
xnoremap x "_x
nnoremap c "_c
xnoremap c "_c
nnoremap cc "_S
nnoremap C "_C
xnoremap C "_C
nnoremap s "_s
xnoremap s "_s
nnoremap S "_S
xnoremap S "_S
选择模式也是there are mappings:
snoremap H <c-o>"_cH
snoremap I <c-o>"_cI
snoremap J <c-o>"_cJ
snoremap K <c-o>"_cK
snoremap L <c-o>"_cL
snoremap M <c-o>"_cM
snoremap N <c-o>"_cN
snoremap O <c-o>"_cO
snoremap P <c-o>"_cP
snoremap Q <c-o>"_cQ
snoremap R <c-o>"_cR
snoremap S <c-o>"_cS
snoremap T <c-o>"_cT
snoremap U <c-o>"_cU
snoremap V <c-o>"_cV
snoremap W <c-o>"_cW
snoremap X <c-o>"_cX
snoremap Y <c-o>"_cY
snoremap Z <c-o>"_cZ
snoremap [ <c-o>"_c[
snoremap \ <c-o>"_c\
snoremap ] <c-o>"_c]
snoremap ^ <c-o>"_c^
snoremap _ <c-o>"_c_
snoremap ` <c-o>"_c`
snoremap a <c-o>"_ca
snoremap b <c-o>"_cb
snoremap c <c-o>"_cc
snoremap d <c-o>"_cd
snoremap e <c-o>"_ce
snoremap f <c-o>"_cf
snoremap g <c-o>"_cg
snoremap h <c-o>"_ch
snoremap i <c-o>"_ci
snoremap j <c-o>"_cj
snoremap k <c-o>"_ck
snoremap l <c-o>"_cl
snoremap m <c-o>"_cm
snoremap n <c-o>"_cn
snoremap o <c-o>"_co
snoremap p <c-o>"_cp
snoremap q <c-o>"_cq
snoremap r <c-o>"_cr
snoremap s <c-o>"_cs
snoremap t <c-o>"_ct
snoremap u <c-o>"_cu
snoremap v <c-o>"_cv
snoremap w <c-o>"_cw
snoremap x <c-o>"_cx
snoremap y <c-o>"_cy
snoremap z <c-o>"_cz
snoremap { <c-o>"_c{
snoremap } <c-o>"_c}
snoremap <bs> <c-o>"_c
snoremap <space> <c-o>"_c<space>
snoremap \| <c-o>"_c|
不幸的是,视觉模式下的映射不起作用。我不知道为什么,也许问题出在IdeaVim插件中。
答案 1 :(得分:0)
只是补充@pochemuto 的回答:现在视觉模式映射似乎起作用了。这是我正在使用的配置 - 请注意,我还添加了 m
命令,这也是我首先使用 vim-easyclip 的原因。
nnoremap d "_d
xnoremap d "_d
nnoremap dd "_dd
nnoremap D "_D
xnoremap D "_D
nnoremap x "_x
xnoremap x "_x
nnoremap m d
nnoremap mm dd
xnoremap m d