Sistema atualizado - o vim começa a lembrar as posições do cursor - livrar-se disso


1

No Debian 8, o vim estava abrindo arquivos como eu esperava, colocando o cursor na primeira coluna da primeira linha. Agora no Debian 9, provavelmente uma nova versão do vim, "lembra" a última posição do cursor de um nome de arquivo. Isso é extremamente irritante git commit, porque coloca o cursor em algum lugar nos comentários, mesmo que o arquivo de mensagens de confirmação não tenha qualquer relação com o arquivo de mensagens de confirmação aberto anteriormente.

Como posso desativar esse "recurso", fazendo com que o vim coloque o cursor no início do arquivo quando eu abri-lo?


$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 13 2017 00:56:16)
Included patches: 1-197, 322
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
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      

Respostas:


1

A opção que você está procurando é 'viminfo'. Desvinculá-lo para filtypes específicos em ~/.vim/ftplugin ou globalmente .vimrc:

set noviminfo

Obrigado, como eu configuraria isso apenas para arquivos nomeados COMMIT_EDITMSG?
0__

@ 0__: algo como o seguinte em .vimrc: autocmd BufReadPost COMMIT_EDITMSG setlocal noviminfo.
Thor

0

Parece que você tem um BufReadPost autocmd que está sendo definido pelo sistema vimrc. Verifique fazendo :verbose autocmd BufReadPost * e procure por uma linha semelhante a esta:

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

A linha imediatamente seguinte deve informar qual arquivo de inicialização definiu.

Se é o sistema vimrc, e se você tem o seu próprio ~/.vimrc isso não deve estar acontecendo, a menos que o seu esteja explicitamente fornecendo o sistema vimrc.


Obrigado, ele diz "Último conjunto de /usr/share/vim/vim80/defaults.vim"
0__

Novamente, esse arquivo não deve ser carregado automaticamente se você tiver um ~/.vimrc. Você tem um? Em caso afirmativo, ele está carregando explicitamente um sistema vimrc?
Heptite

Não, eu não tenho esse arquivo. Mas eu não quero perder padrões de outra forma úteis. Então, como eu criaria ~/.vimrc de modo que ele carregue os padrões e, em seguida, apenas sobrescreve noviminfo para um determinado nome de arquivo ( COMMIT_EDITMSG )
0__

Você não quer sobrescrever o noviminfo (eu diria que a outra resposta à sua pergunta está incorreta). Eu apenas copiava as partes do defaults.vim que você quer para o seu ~/.vimrc, excluindo aqueles que você não possui. Eventualmente, você provavelmente quer o seu próprio vimrc, então é melhor agora que depois.
Heptite
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.