# Utiliser vim comme pager pour les pages de man

**URL:** <https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156>\
**Category:** Support Debian\
**Tags:** less, vim\
**Created:** [Mars 27, 2026, 2:53 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156 "2026-03-27T02:53:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![fauve](https://www.debian-fr.org/user_avatar/www.debian-fr.org/fauve/32/14813_2.png) [@fauve](https://www.debian-fr.org/u/fauve)\
**Post date:** [Mars 27, 2026, 2:53 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/1 "2026-03-27T02:53:36Z")

</div>

Bonjour,

Contexte  
Je viens de mettre à jour depuis Bookworm à Trixie. Sous Bookworm, j’utilisais déjà Vim comme pager avec :

```auto
/bin/sh -c "col -b | vim -c 'set ft=man ts=8 nomod nolist nonu noma' -c 'nnoremap q ZZ' -"
```

Et sous Bookworm, ça foctionnait bien, le rendu bon, avec même de la coloration syntaxique.

Le problème  
Depuis mon passage à Trixie, me donne un résultat fort étrange avec des 1m, 2m, 3m, à l’endroit des commandes Troff, au lieux de les interpréter comme il faut.

Voici à quoi ça ressemble :

```auto
4mLS24m(1) Commandes de l'utilisateur 4mLS24m(1)

 1mNOM0m
        ls - Afficher le contenu de répertoires

 1mSYNOPSIS0m
        1mls 22m[4mOPTION24m]... [4mFICHIER24m]...

 1mDESCRIPTION0m
        Afficher les informations des 4mFICHIER24ms (du répertoire courant par défaut). Les entrées sont triées alphabétiquement si aucune des options 1m-cftuvSUX 22mou 1m--sort 22mn'est indiquée.

        Les paramètres obligatoires pour les options de forme longue le sont aussi pour les options de forme courte.

        1m-a22m, 1m--all0m
               inclure les entrées débutant par « . »

        1m-A22m, 1m--almost-all0m
               omettre les fichiers « . » et « .. »

```

Question  
Comment donc ré-obtenir un rendu correcte des pages de man en utilisant Vim comme pager ? Ça marchait pourtant bien sous Bookworm, il n’y a pas de raison que ça ne le soit pas sous Trixie.

Merci par anticipation.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Mars 28, 2026, 8:46 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/2 "2026-03-28T08:46:27Z")

</div>

Ce sont des codes couleurs ANSI.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mars 28, 2026, 9:29 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/3 "2026-03-28T09:29:35Z")

</div>

En effet…  
Et l’utilisation du binaire `col` et de l’option `-b` devrait résoudre ce problème.  
C’est un détail que j’ai découvert récemment, mais qui est connu depuis longtemps apparemment, et très bien expliqué ( les infos sont en anglais) :

- [Pipe man into col -b to get rid of ^H | Sebastiano Tronto](https://sebastiano.tronto.net/blog/2022-09-05-man-col/)
- [Anatomy of a Terminal Emulator :: Aram Drevekenin - Terminal Developer & Creator of Zellij](https://poor.dev/terminal-anatomy/)

Dès que tu te sers d’un pager différent à celui de man, qui est capable de comprendre les différents code ANSI, (échappements, couleurs), il te faut trouver un moyen de les lire correctement avec le binaire qui te sert de pager ; `col` semble être la réponse 😉

Le manpage sous OpenBSD explique ceci :

```
**-c** Copy the manual page to the standard output instead of using
             less(1) to paginate it. This is done by default if the standard
             output is not a terminal device.

             When using **-c** , most terminal devices are unable to show the
             markup. To print the output of **man** to the terminal with markup
             but without using a pager, pipe it to ul(1). To remove the
             markup, pipe the output to col(1) **-b** instead.
```

le même manpage sous Debian ne le mentionne même pas (_ou alors, je suis aveugle_).

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Mars 28, 2026, 2:55 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/4 "2026-03-28T14:55:59Z")

</div>

> [@fauve](#):
>
> `-c 'set ft=man ts=8 nomod nolist nonu noma' -c 'nnoremap q ZZ'`

Pourquoi ne pas mettre ces réglages dans /etc/vimrc ou /home//.vimrc ?

---

<div class="post-metadata">

**Author:** ![fauve](https://www.debian-fr.org/user_avatar/www.debian-fr.org/fauve/32/14813_2.png) [@fauve](https://www.debian-fr.org/u/fauve)\
**Post date:** [Mars 28, 2026, 8:56 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/5 "2026-03-28T20:56:40Z")

</div>

> [@PengouinPdt](#):
>
> Et l’utilisation du binaire `col` et de l’option `-b` devrait résoudre ce problème.

Fort bien. Mais alors, et comme le mentionne mon message original, Vim est déjà pipé avec col, et même plus précisément avec l’option `-b`. Que faire alors ?

> [@josephtux](#):
>
> Pourquoi ne pas mettre ces réglages dans /etc/vimrc ou /home//.vimrc ?

Car dans le cas particulier où vim est utilisé comme manpager, et seulement dans ce cas particulier là, je voudrais avoir ces options-là. De toute façon là n’est pas la question, que ce soit à même le `vimrc` ou donné en option le résultat est le même.

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Mars 29, 2026, 1:51 UTC](https://www.debian-fr.org/t/utiliser-vim-comme-pager-pour-les-pages-de-man/92156/6 "2026-03-29T13:51:40Z")

</div>

@fauve  
Je ne comprends pas ce que tu veux faire avec cette commande ‹&nbsp;`/bin/sh -c`&nbsp;›.

```auto
/bin/sh -c "col -b | vim -c 'set ft=man ts=8 nomod nolist nonu noma' -c 'nnoremap q ZZ' -"
Vim : Lecture de stdin...

```

On trouve l’origine des traces ressemblantes à ce que tu fais en remontant en **2012** , plus clair, en définissant la variable **$MANPAGER** : [Using Vim as $MANPAGER - Zameer Manji](https://zameermanji.com/blog/2012/12/30/using-vim-as-manpager/)

Je n’utilise pas vim et ne vois pas l’intérêt d’utiliser vim comme pager de man, **man** étant déjà largement outillé pour faire à peu près tout, et le pager ‹&nbsp; **less** &nbsp;› étant très largement optionné.  
Ce que tu cherches en finalité, en résultat (que tu ne précises pas) correspond peut-être à ceci:

```auto
export MANPAGER='env MAN_PN=1 vim --not-a-term -M +MANPAGER -'
man cp

```

> [@fauve](#):
>
> Depuis mon passage à Trixie, me donne un résultat fort étrange avec des 1m, 2m, 3m, à l’endroit des commandes Troff, au lieux de les interpréter comme il faut.

Il faut probablement décortiquer ceci: [terminal - Documentation on LESS\_TERMCAP\_\* variables? - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/108699/documentation-on-less-termcap-variables)

> **Termcap** is a library that **Less** uses to access the terminal.  
> Termcap is largely obsolete, having been replaced by Terminfo, but **Terminfo** offers a Termcap compatibility interface to applications.  
> **Less** is content with the Termcap interface and uses that.
> 
> _Colors in Man on modern GNU systems_  
> If you have Linux or other GNU system with **Groff ≥1.23** , configuring Less has no effect on man pages, because **Groff directly emits terminal escape sequences instead of letting Less do the translation**. (Groff is the part of Man that formats a man page for display on a terminal or in print.)

A moins de justifier clairement l’absolue nécessité d’usage de vim comme pager de man, je vois 2 options:  
1- soit utiliser ‹&nbsp; **vis** &nbsp;›, comme suggéré dans ce sujet parallèle: [Utiliser vim comme pager pour les pages de man / Debian-facile](https://debian-facile.org/viewtopic.php?pid=441777#p441777)  
2- ou s’il s’agit simplement d’avoir man en couleur, utiliser ce genre de procédé plus fiable que vim:

```auto
function _colorman() {
  env \
    LESS_TERMCAP_mb=$'\e[1;35m' \
    LESS_TERMCAP_md=$'\e[1;34m' \
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[7;40m' \
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[1;33m' \
    LESS_TERMCAP_mr=$(tput rev) \
    LESS_TERMCAP_mh=$(tput dim) \
    LESS_TERMCAP_ZN=$(tput ssubm) \
    LESS_TERMCAP_ZV=$(tput rsubm) \
    LESS_TERMCAP_ZO=$(tput ssupm) \
    LESS_TERMCAP_ZW=$(tput rsupm) \
    GROFF_NO_SGR=1 \
      "$@"
}
alias man="LANG=C _colorman man"
man cp

```

Mon avis, moins il y a de quincaillerie inutile, plus c’est fiable.
