当年好菜啊,Ctrl-o嘛,哈哈~
———————————————-
额,搜啊搜没结果,还是看文档自己搞
ctrl + alt + left 上一个光标位置
ctrl + alt + right 下一个光标位置
刚写完,bug未知
"上一个光标位置
command -nargs=0 GotoPreviousPos :call GotoPreviousPos()
function GotoPreviousPos()
if exists( "b:blue_previous_pos" ) && len( b:blue_previous_pos ) > 1 && b:blue_current_pos >= 0
let b:blue_current_pos = b:blue_current_pos - 1
call setpos( "." , b:blue_previous_pos[ b:blue_current_pos ] )
endif
endfunction
"下一个光标位置
command -nargs=0 GotoNextPos :call GotoNextPos()
function GotoNextPos()
if exists( "b:blue_previous_pos" ) && len( b:blue_previous_pos ) > b:blue_current_pos + 1
let b:blue_current_pos = b:blue_current_pos + 1
call setpos( "." , b:blue_previous_pos[ b:blue_current_pos ] )
endif
endfunction
"记录光标位置
function RecordPreviousPos()
let s:pos = getpos(".")
if !exists( "b:blue_previous_pos" )
let b:blue_previous_pos = []
let b:blue_current_pos = 0
endif
if ( len( b:blue_previous_pos ) > 500 )
unlet b:blue_previous_pos[0]
endif
if len( b:blue_previous_pos ) > 0 && b:blue_current_pos != len( b:blue_previous_pos ) - 1
call remove( b:blue_previous_pos , -1 )
endif
call add( b:blue_previous_pos , s:pos )
let b:blue_current_pos = len( b:blue_previous_pos ) - 1
endfunction
autocmd CursorMovedI * call RecordPreviousPos()
:imap <C-A-Left> <Esc>:GotoPreviousPos<CR>i
:imap <C-A-Right> <Esc>:GotoNextPos<CR>i
:map <C-A-Left> :GotoPreviousPos<CR>
:map <C-A-Right> :GotoNextPos<CR>