vim ne se souvient pas de la dernière position

74

Mon Ubuntu LTS 12.04 a l'éditeur vim. Si j'ouvre un fichier, passe à un paragraphe et rouvre vim, le curseur passe toujours au début du fichier.

Ce n'est pas le comportement attendu. Comment le vim peut se souvenir de la dernière position de lecture après la fermeture d’un fichier?

J'ai aussi essayé vi , mais le résultat est le même.

    
posée Lunar Mushrooms 28.11.2012 - 14:07
la source

6 réponses

94

Résolu:

/ etc / vim / vimrc

contient déjà la fonctionnalité nécessaire. Juste besoin de le décommenter:

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

(En fait, vous pouvez également vous référer à /usr/share/vim/vim73/vimrc_example.vim)

    
réponse donnée Lunar Mushrooms 03.12.2012 - 10:08
la source
56

J'ai eu ce même problème et il s'est avéré que le fichier .viminfo dans mon répertoire personnel ne possédait pas le bon propriétaire. Il appartenait à root: root.

Une fois la propriété du fichier corrigée en la modifiant moi-même, le souvenir de la position du fichier a recommencé à fonctionner pour moi

    
réponse donnée TikiTavi 26.11.2013 - 16:36
la source
5

Je pense que cette publication sur le wiki peut fournir une solution. Je ne crois pas que la restauration de la position soit le comportement attendu. lien

    
réponse donnée GaryBishop 28.11.2012 - 14:36
la source
1

Il existe un plug-in appelé vim-lastplace (je suis l'auteur) qui ouvrira vos fichiers là où vous les avez laissés. . Il améliore les suggestions ci-dessus en ignorant les messages de validation car vous modifiez généralement un nouveau message et souhaitez démarrer en haut du fichier de messages de validation.

    
réponse donnée Greg Dietsche 17.01.2016 - 04:20
la source
0

Dans mon cas, vi était un lien symbolique: /usr/bin/vi -> /etc/alternatives/vi -> /usr/bin/vim.tiny . Ce dernier n'a pas de véritable fonctionnalité vim. L'installation du paquet 'vim' (en utilisant synaptic ou apt-get) a fait de ce lien symbolique vers /usr/bin/vim.basic , ce qui a résolu le problème.

    
réponse donnée Bruno Haible 11.02.2017 - 21:57
la source
-1

Il y a une erreur dans la solution Lunar Mushrooms. Voici la correction:

if has("autocmd")
  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g'\"" |
    \ endif

endif
    
réponse donnée Arnaud 29.09.2015 - 05:01
la source

Lire d'autres questions sur les étiquettes