Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Vim] Oublier la position dans un fichier déjà édité

0 views
Skip to first unread message

Olivier Miakinen

unread,
Feb 2, 2017, 7:15:27 AM2/2/17
to
Bonjour,

Lorsque je réouvre avec vim un fichier déjà édité précédemment,
il me positionne sur la ligne où j'étais avant de quitter. Pour
des raisons que je pourrai expliquer si cela vous intéresse, je
voudrais éviter ce comportement, soit de façon globale, soit
(si possible) pour certains types de fichiers, et que réouvrir
un fichier me positionne tout bêtement à la ligne numéro 1.

J'ai l'impression que ça doit se résoudre avec un « :set viminfo »
mais je n'y comprends pas grand chose (et ne trouver que des docs
en anglais ne m'aide pas à savoir où chercher rapidement).

--
Olivier Miakinen

pfercour

unread,
Feb 2, 2017, 12:22:03 PM2/2/17
to
Bonjour

> Lorsque je réouvre avec vim un fichier déjà édité précédemment,
> il me positionne sur la ligne où j'étais avant de quitter. Pour
> des raisons que je pourrai expliquer si cela vous intéresse, je
> voudrais éviter ce comportement, soit de façon globale, soit
> (si possible) pour certains types de fichiers, et que réouvrir
> un fichier me positionne tout bêtement à la ligne numéro 1.

Dans mon Vim.rc j'ai les lignes suivantes :
" 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

Donc comme précisé en recommentant ces lignes ce comportement
global disparait.

Par contre pour ne le faire que pour certains fichiers,
là j'ai pas le niveau.
Mais je suis certain qu'une regex ;-) et quelques coup de sed et grep
doivent permettre de t'organiser cela aux petits oignons...
Et là pour le coup ton niveau doit te permettre ce style de manip !
Pas le mien, je me contente de tenter de comprendre tes superbes
explications sur f.c.l.regexp. Merci d'ailleurs !


Mes deux centimes, de franc bien sûr ;-)

Philippe Armingaud

Olivier Miakinen

unread,
Feb 2, 2017, 12:52:22 PM2/2/17
to
Le 02/02/2017 18:18, pfercour m'a répondu :
>
> Dans mon Vim.rc j'ai les lignes suivantes :
> " 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

J'ai un .vimrc que j'ai créé et qui ne contient que ce que j'y ai
mis moi-même, en revanche je vois ceci dans /etc/vimrc :
=====================================================================
" Only do this part when compiled with support for autocommands
if has("autocmd")
augroup redhat
" In text files, always limit the width of text to 78 characters
autocmd BufRead *.txt set tw=78
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
augroup END
endif
=====================================================================

Je ne peux malheureusement pas mettre en commentaire ce qui est dans
/etc/vimrc car je ne suis pas l'administrateur de cette machine, alors
il va falloir que je mette l'antidote dans mon ~/.vimrc, mais grâce à
toi je sais maintenant où chercher (mots-clés autocmd et BufReadPost) :
<http://vimdoc.sourceforge.net/htmldoc/autocmd.html>.

Il me reste à comprendre les line("'\"") et exe "normal! g'\"".

> Donc comme précisé en recommentant ces lignes ce comportement
> global disparait.
>
> Par contre pour ne le faire que pour certains fichiers,
> là j'ai pas le niveau.

Je parierais que remplacer l'* dans « BufReadPost * » par une
description des fichiers en question, en l'occurrence « Result.* »
pour moi, devrait faire l'affaire.

> [...]
>
> Mes deux centimes, de franc bien sûr ;-)

:-)


--
Olivier Miakinen

Olivier Miakinen

unread,
Feb 2, 2017, 1:02:47 PM2/2/17
to
Le 02/02/2017 18:52, je répondais à pfercour :
>
> Je ne peux malheureusement pas mettre en commentaire ce qui est dans
> /etc/vimrc car je ne suis pas l'administrateur de cette machine, alors
> il va falloir que je mette l'antidote dans mon ~/.vimrc, mais grâce à
> toi je sais maintenant où chercher (mots-clés autocmd et BufReadPost) :
> <http://vimdoc.sourceforge.net/htmldoc/autocmd.html>.

et :
>
> Je parierais que remplacer l'* dans « BufReadPost * » par une
> description des fichiers en question, en l'occurrence « Result.* »
> pour moi, devrait faire l'affaire.

Bingo !

La solution est ici :
<http://stackoverflow.com/questions/2393671/vim-restores-cursor-position-exclude-special-files>
<cit.>
autocmd BufReadPost COMMIT_EDITMSG
\ exe "normal! gg"
</cit.>

Et j'ai donc mis dans mon .vimrc :
autocmd BufReadPost Result.* exe "normal! gg"



--
Olivier Miakinen
0 new messages