Macos 写入缓冲区时,Vim将光标返回到文件中的同一点
光标正在反弹到文件的顶部,但在写入缓冲区时,应该返回到文件中的同一点? 有人能看出我错在哪里吗Macos 写入缓冲区时,Vim将光标返回到文件中的同一点,macos,vim,Macos,Vim,光标正在反弹到文件的顶部,但在写入缓冲区时,应该返回到文件中的同一点? 有人能看出我错在哪里吗 function! ResCur() if line("'\"") <= line("$") normal! g`" return 1 endif endfunction augroup resCur autocmd! autocmd BufWriteCmd * call ResCur() augroup END 函数!Res
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWriteCmd * call ResCur()
augroup END
函数!ResCur()
如果行(“\”)我可能应该引用:
如何配置Vim以在上次编辑的位置打开文件
Vim存储每个位置上次编辑位置的光标位置
“”寄存器中的缓冲区。您可以在应用程序中使用以下autocmd
.vimrc或.gvimrc文件以在上次编辑的位置打开文件:
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g'\"" | endif
触发调用的事件是问题所在。BufWriteCmd更多地用于修改写入操作的行为。但您希望更改文件加载到缓冲区的方式。在本例中,BufReadPost是一个队列,每当将现有文件加载到新缓冲区时,它都会排队。要检查是否设置了“``标记,可以使用docau BufReadPost*if line(“\”)>1&&line(“\”)中的示例
:help '"
:help last-position-jump