1

我有一个非常奇怪的问题,在尝试了整个早上之后我都无法解决。

这是我的功能和映射:

nnoremap ,zz :call SwapAW("2-2","5")<CR>
nnoremap ,zc :call SwapAW("2-2","5")<CR> 


function! SwapAW(keyw,number)
  let li = line('.')
  let co = col('.')  

 exe "call cursor(li,co)" 
 let linew= line('.')
 let conew= col('.')
 echo linew conew
endfunction

,zc --> 向右移动光标
,zz --> 光标停留在原处

我更改了所有内容,但无法找出为什么光标在这两种情况下都不会停留在原位。
我将 pe 映射从 ,zc 更改为 ,zd 并将 ,zz 更改为 ,zw (也尝试过其他人)并将leaderkey从更改,\,并尝试交换两条映射线。没有什么变化。发生了什么?我做错了什么?

提前致谢。

4

1 回答 1

4

您的映射中有一个尾随<Space>字符(在 之后)。函数调用之后移动光标。,zc<CR>

对于映射,必须小心隐藏字符。<Space>因此,当您实际需要包含一个特殊形式时,建议(有时,例如在映射的开头,有必要)按字面意思编写特殊形式。


我的ShowTrailingWhitespace 插件将突出显示那些尾随空格和制表符,因为许多代码指南不赞成它们。插件页面还包含指向替代品的链接。

于 2012-12-12T14:37:01.170 回答