更新系统 - vim 开始记住光标位置 - 摆脱它

更新系统 - vim 开始记住光标位置 - 摆脱它

在 Debian 8 中,vim 按照我的预期打开文件,将光标放在第一行的第一列。现在在 Debian 9(可能是较新的 vim 版本)中,它会“记住”文件名的最后一个光标位置。这在 中非常烦人git commit,因为它会将光标放在注释中的某个位置,即使提交消息文件与先前打开的提交消息文件毫无关系。

我怎样才能禁用此“功能”,让 vim 在打开文件时将光标放在文件的开头?


$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 13 2017 00:56:16)
Included patches: 1-197, 322
Modified by [email protected]
Compiled by [email protected]
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     +gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
-clientserver    +insert_expand   +packages        -toolbar
-clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        -perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      -python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      -lua             +rightleft       +writebackup
+diff            +menu            -ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      -mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        +mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax          
+farsi           +mouse_netterm   +tag_binary      

答案1

您要查找的选项是。当您想要禁用此功能时,'viminfofile'请将其设置为,例如:NONE

set viminfofile=NONE

或者针对特定文件进行设置:

autocmd BufReadPost COMMIT_EDITMSG setlocal viminfofile=NONE

答案2

听起来你有一个BufReadPost由系统 vimrc 定义的自动命令。通过执行操作进行检查:verbose autocmd BufReadPost *,并查找类似以下内容的行:

if line("'\"") > 0 && line ("'\"") <= line("$") |   exe "normal! g'\"" | endif

紧接着它的行应该告诉您哪个启动文件定义了它。

如果它是系统 vimrc,并且如果您有自己的,~/.vimrc则不应该发生这种情况,除非您明确地获取系统 vimrc。

相关内容