Vim, le copié-collé ne fonctionne pas

Je viens d’installer un serveur sous debian buster (sans interface graphique, donc) que j’administre à partir de mon poste de travail sous ubuntu 18.04 LTS via ssh.

Sous ubuntu, le “select” “paste” avec la souris marche très bien avec vim dans une fenêtre du terminal mais pas sous debian buster.

J’ai lu que pour obtenir ce fonctionnement, il suffisait d’ajouter la ligne “set mouse-=a” au fichier ~/.vimrc.

Certes…

Sauf que si je fais un “sudo vim /etc/vim/vimrc”, bah…, ça marche plus.

D’où l’idée de rendre cette modification valide pour tous les comptes de la machine (dont root) sans aller se coller un ~/.vimrc partout au risque d’en oublier.

Bonne nouvelle, le fichier /etc/vim/vimrc se termine par :

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

Donc, je crée un fichier /etc/vim/vimrc.local dans lequel je mets la ligne set mouse-=a

Eh ben, ça marche pô.

Tout ça parce que au dernier moment (et en particulier après avoir récupéré le fichier /etc/vim/vimrc.local) ce c… de vim va chercher une configuration par défaut dans le fichier /usr/share/vim/vim81/defaults.vim si le user n’a pas de fichier ~/.vimrc et que, bien entendu (on se demande pourtant bien pourquoi), ce fichier contient la directive set mouse=a qui vient écraser le set mouse-=a contenu dans le fichier /etc/vim/vim.local

Et comme je suppose qu’à chaque mise à jour de vim, le fichier /usr/share/vim/vim81/defaults.vim sera remplacé par celui contenu dans le package, impossible de faire quelque chose de pérenne.

C’était mon billet d’humeur du jour.

Amicalement.

Jean-Marie

message supprimé

C’est quoi ce forum où on ne peut même pas mettre le titre qu’on veut !? :wink: :grinning: :grinning: :grinning:

Amicalement.

Jean-Marie

Un fil de discussion qui pourrait t’intéresser :

Où ça ? où ça ?
Avec ‘==’ vraiment ?
Voici le fichier que j’utilise

fp2@debpacha:~$ cat .vimrc
colorscheme morning
syntax on
set mouse=a
fp2@debpacha:~$ 

D’autre part

fp2@debpacha:~$ sudo cat ~root/.vimrc
cat: /root/.vimrc: Aucun fichier ou dossier de ce type
fp2@debpacha:~$ 

Je vous conseille d’installer sur votre serveur Debian le paquet tmux ainsi que keychain. Si vous installez et configurez keychain aussi sur votre poste client Ubuntu, vous pourrez lancer des commandes sur le serveur sans mot de passe et de cette manière :
si au moment de la connexion la phrase de passe est demandée, c’est que c’est une nouvelle connexion (serveur redémarré par exemple).
sinon, vous lancez

tmux list-sessions

Si la réponse est positive

tmux attach -t 0

et sinon tmux et vous créez vos fenêtres.

De cette manière, vous avez toujours la possibilité d’ouvrir une autre fenêtre tmux si le besoin se fait sentir. La sélection dans une fenêtre tmux texte (non vim) est très intuitive et copiée dans le presse-papier par ShiftCtrlC dans le cas d’un terminal /usr/bin/xfce4-terminalpar exemple.
Si dans un terminal local ou distant vous tapez vim fichier et si vous passez en mode insertion, la combinaison de touches ShitCtrlV va insérer le contenu du presse parier dans le tampon vim.

Bref, beaucoup de bruit pour pas grand chose, extrait de help set dans vim

                                                *:set-args* *E487* *E521*
:se[t] {option}={value}         or
:se[t] {option}:{value}

Avant de partir dans un délire sur la configuration vim, dites-nous d’où sort cette syntaxe avec ‘==’ .

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Avant donc que d’écrire, apprenez à penser »
Boileau De L’Art poétique (Chant I)

Avant de partir dans un délire sur la configuration vim, dites-nous d’où sort cette syntaxe avec ‘==’ .

De ta tête, parce que je n’ai jamais écrit ça.

Et puis, pour accéder à mon serveur à partir de mon poste de travail sous ubuntu, j’utilise ssh. Ça fonctionne très bien et il ne me demande jamais de mot de passe, y compris après un reboot dans la mesure où j’ai une authentification par clé publique/privée.

@ MicP

J’aime bien la solution 1) de la première réponse. Je crois que je vais faire ça.

Amicalement.

Jean-Marie

[mode troll]
Bah aller, c’est pas grave, ça touche juste vim.
Tant que mon emacs fonctionne…
[/mode troll]

C’est pas faux… :smiley: :smiley: :smiley:

Amicalement.

Jean-Marie

Donc, la solution est un fichier /etc/vim/vimrc.local contenant :

let g:skip_defaults_vim = 1
set mouse-=a

Merci à tous.

Amicalement.

Jean-Marie

Je m’excuse de répondre tardivement.
Je connais bien vim (que j’utilise beaucoup). Les anciennes version permettaient d’avoir un accès direct au buffers “presse-papier” et “sélection active” du système qui étaient appelés comme un registre de vim. Mais depuis la version 8 (je crois) cet accès direct a été supprimé (sans doute pour des raisons de sécurité) et c’est indiqué dans les spécifications de vim. Est-ce que cela a un impact sur le comportement du copié-collé ? Je dirai oui si le copié a été fait ailleurs que dans vim.

1 J'aime