Pourquoi Vim pour Debian est-il compilé sans presse-papiers?

20

Je suis curieux de savoir pourquoi le paquet Debian par défaut pour vim (celui que vous obtenez normalement sudo apt-get install vim) n'est pas compilé avec le support du presse-papiers?

Ni le standard -clipboardni le -Xterm-clipboardactivé, pourquoi ?

Il pourrait y avoir une raison pour ne pas inclure -Xterm-clipboard sur les installations Debian sans X-server installé, mais le standard -clipboard?

Toute idée de la raison pour laquelle cela est utile serait utile.

( Clarification: je sais que je peux compiler Vim avec ces drapeaux, je veux juste savoir pourquoi ils ne sont pas activés par défaut. )

Gustav Blomqvist
la source
Que fournit le presse-papiers sinon X? xterm-clipboard est une chose différente; c'est pour les tampons fournis par xterm (voir, par exemple, askubuntu.com/a/541730/158442 ).
muru
mais xterm-clipboard est également une fonctionnalité fournie par le serveur X
Christian Brabandt
2
@muru, il n'existe pas de tampon de type xterm. Ce que vous voulez dire, ce sont des tampons de coupe X, qui est une fonctionnalité du serveur X fournissant certains moyens de communication interprocessus entre les clients X, l'un étant généralement appelé Presse-papiers (Ctrl-V, CTRL-X, Ctrl-V dans les clients de bureau habituels). ) et l'autre étant le collage au milieu de la souris de tout ce qui a été sélectionné avec la souris précédemment. Bien que cela s'appelle xterm_clipboard, cela n'a rien à voir avec xterm.
Christian Brabandt du
2
@ChristianBrabandt hein, j'ai toujours pensé que ce tampon de coupe était quelque chose de xterm, comme le tampon de collage de l'écran, et cette fonctionnalité supportait de tels tampons. Merci d'avoir corrigé!
muru
1
Le smartass en moi vous dirait d'installer Neovim car il dispense à peu près tous les drapeaux de compilation en faveur de simplement essayer les choses au moment de l'exécution. Par exemple, le presse-papiers utilise xsel / xclip au lieu de se lier à un tas de bibliothèques X.
Encore un autre utilisateur

Réponses:

24

La description du paquet contient

Ce paquet contient une version de vim compilée avec un ensemble de fonctionnalités plutôt standard. Ce package ne fournit pas de version graphique de Vim. Voir les autres packages vim- * si vous avez besoin de plus (ou moins).

Je pense que cela a été fait, car l'utilisation du presse-papiers impliquerait une liaison avec les bibliothèques X, ce qui signifie que vous ne pouvez pas installer vim sans installer également un tas de dépendances X que vous ne souhaitez généralement pas dans un environnement serveur (ou minimal).

Cela signifie que si vous voulez la fonctionnalité du presse-papiers, vous devez par exemple installer le package vim-gtk(qui malgré son nom contient également un vim non-gui).

Pour une raison similaire, le package vim-noxexiste. Il ne dépend pas du serveur X, mais a besoin de bibliothèques supplémentaires comme liblua, libperl, libpython et installe donc ces dépendances supplémentaires (dont vous n'avez probablement pas besoin non plus dans un environnement de serveur), mais pas de bibliothèques X (comme celles GTK ou X11 nécessaire pour l'interface graphique et le presse-papiers).

Christian Brabandt
la source
Ahh, je pensais que vous pouviez copier-coller sur une installation non graphique de Linux. C'est pourquoi je pensais que le drapeau -clipboardétait pour Vim d'accéder au registre de copier-coller du système. (Vous pouvez utiliser X-Copy mais je voulais dire par sourd)
Gustav Blomqvist
1
@GustavBlomqvist: Vous pouvez, en utilisant les presse-papiers de ligne de commande standard, c'est-à-dire sélectionner du texte, cliquer au milieu pour coller et utiliser des liaisons GPM.
Arafangion
2

VIM est destiné à être un éditeur portable qui "fonctionne tout simplement" sur tous les systèmes. En ayant la version par défaut utiliser la fonctionnalité de presse-papiers, il devra se lier avec les bibliothèques X11, et une version distincte de VIM devra être compilée pour le bureau par rapport au serveur (pas de X11 / xorg préinstallé). C'est pourquoi les packages vimet vim-gtksont fournis.

Si vous voulez compiler la version en ligne de commande de VIM (je l'utilise avec Guake / yakuake tout le temps), voici le script de construction / installation pour les systèmes basés sur Debian.

# Get the compile-dependencies of vim
sudo apt-get -y build-dep vim
# Install the "checkinstall" tool so the "make install" step is
# wrapped and the result is a .deb file that can be removed later by
# your package manager rather than having to hunt down every file deployed
# by "make install", which might not be possible if it overwrites existing
# system files.
sudo apt-get -y install checkinstall
# Install python dev
sudo apt-get -y install python-dev
# Install xorg dev
sudo apt-get -y install xorg-dev
# Install git
sudo apt-get -y install git
# Get the source
git clone https://github.com/vim/vim.git vim_source
# Remove ./configure cache in case we have to run this twice due to permissions
# related issues.
rm vim_source/src/auto/config.cache
# Compile it
cd vim_source
make clean
./configure \
    --enable-perlinterp=dynamic \
    --enable-pythoninterp=dynamic \
    --enable-rubyinterp=dynamic \
    --enable-cscope \
    --enable-gui=auto \
    --enable-gtk2-check \
    --enable-gnome-check \
    --with-features=normal \
    --with-x \
    --with-compiledby="DevNull <darkstar@/dev/null>" \
    --with-python-config-dir=/usr/lib/python2.7/config-$(uname -m)-linux-gnu
# Build quickly (8 parallel jobs, hope your system doesn't get overwhelmed)
make -j8
# Need root to install
sudo checkinstall
Nuage
la source