我已将<Home>
映射到^
,以便将光标移动到该行的第一个非空字符(跳过缩进)。
我想对<End>
执行相同操作,但我也想跳过允许我轻松移动代码的活动部分的注释:
// A line of C:
if (foo == bar) { // Comment
^ ^ ^ ^
| '^' or <Home> <End> '$' or <C-End>
|
'0' or <C-Home>
这是<Home>
noremap <Home> ^
inoremap <silent> <Home> <C-c>^i
inoremap <C-Home> <C-c>0i
nnoremap <C-Home> 0
" Use `$` to move physically at the end of the line
" (Virtualedit must be enabled)
nmap <C-End> $
现在我正在寻找<End>
的解决方案。
有什么想法吗?
P.S。随意改变我的问题的标题,我不知道怎么用更好的方式说出来......
答案 0 :(得分:1)
对于普通模式和插入模式移动,您可以通过可选搜索注释的开头跟进$
跳转到最后。如果不匹配,使用search()
可以防止发出哔哔声和错误消息,并且不会破坏您当前的搜索:
nnoremap <silent> <End> $:call search('\S\s*/[/*]', 'bcW')<CR>