114 votes

vim ne se souvient pas de la dernière position

Mon Ubuntu LTS 12.04 possède l'éditeur vim. Si j'ouvre un fichier, que je me déplace vers un paragraphe et que je rouvre vim, le curseur va toujours au début du fichier.

Ce n'est pas le comportement attendu. Comment vim peut-il se souvenir de la dernière position de lecture après avoir fermé un fichier ?

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

0voto

Bruno Haible Points 1

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éritables caractéristiques de vim. L'installation du paquet 'vim' (en utilisant synaptic ou apt-get) a fait en sorte que ce lien symbolique pointe sur /usr/bin/vim.basic et cela a réglé le problème.

0voto

Chai Ang Points 151

Dans mon cas, j'avais copié mon .vimrc depuis une autre machine.

C'était la ligne incriminée.

set viminfo='10,\"100,:20,%,n~/.viminfo

Mon problème était que parce que j'utilise différents systèmes, c'est-à-dire cygwin, wsl2, linux etc.... Je l'avais copié à partir d'une installation cygwin et il ressemblait à quelque chose comme ceci

set viminfo='10,\"100,:20,%,n/mnt/c/cygwin/.viminfo

ce qui n'est évidemment pas correct pour mon installation linux. Je l'ai modifié pour qu'il ressemble au premier exemple ci-dessus, ce qui a réglé mon problème.

-1voto

Arnaud Points 101

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X