读入缓冲区之后,会触发 BufReadPost 自动命令。因此原则上可以在触发后执行任意复杂的命令。调试好了之后写在 vimrc 里就可以每次自动执行了。
如果不懂自动命令或者 vimrc,请追问。
比如:
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
可以在读入缓冲区之后,尝试跳到你最后一次编辑该缓冲区的位置上去。
你的需求这里的主要是如何确定你要定位的是哪行。
至于打开折叠,用 zv 就可以了。如果跳到的行有折叠,zv 自动打开相应的折叠,使当前行可见。如果没有折叠,zv 什么都不做。所以可以无条件在跳转指令后面接一个。