在 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。