¿Por qué se compila Vim para Debian sin portapapeles?

20

Tengo curiosidad por saber por qué el paquete de Debian predeterminado para vim (el que normalmente utiliza sudo apt-get install vim) no está compilado con soporte para portapapeles.

Ni la normal -clipboardni la -Xterm-clipboardhabilitada, ¿por qué ?

Puede haber alguna razón para no incluir -Xterm-clipboard en las instalaciones de Debian sin X-server instalado, pero ¿lo normal -clipboard?

Cualquier idea de por qué esto sería útil.

( Aclaración: sé que puedo compilar Vim con estos indicadores, solo quiero saber por qué no están habilitados de forma predeterminada ) .

Gustav Blomqvist
fuente
¿Qué proporciona el portapapeles si no es X? xterm-portapapeles es una cosa diferente; eso es para los buffers que proporciona xterm (ver, por ejemplo, askubuntu.com/a/541730/158442 ).
muru
pero xterm-portapapeles también es una característica proporcionada por el servidor X
Christian Brabandt
2
@muru no existe tal cosa como un búfer similar a xterm. Lo que quiere decir son memorias intermedias de corte X, que es una característica del servidor X que proporciona algunos medios de comunicación entre procesos entre clientes X, uno que generalmente se llama Portapapeles (Ctrl-V, CTRL-X, Ctrl-V en los clientes de escritorio habituales) ) y el otro es el mouse medio pegando lo que se haya seleccionado con el mouse anteriormente. Aunque esto se llama xterm_clipboard, no tiene nada que ver con xterm.
Christian Brabandt
2
@ChristianBrabandt eh, siempre pensé que este búfer de corte era algo de xterm, como el búfer de pegado de la pantalla, y esta función era compatible con dichos búferes. Gracias por corregir!
muru
1
La inteligencia en mí le diría que instale Neovim, ya que prescinde de casi todas las banderas de compilación a favor de probar cosas en tiempo de ejecución. Por ejemplo, el portapapeles usa xsel / xclip en lugar de enlazar con un montón de bibliotecas X.
Yet Another User

Respuestas:

24

La descripción del paquete contiene

Este paquete contiene una versión de vim compilada con un conjunto de características bastante estándar. Este paquete no proporciona una versión GUI de Vim. Vea los otros paquetes vim- * si necesita más (o menos).

Creo que esto se hizo porque usar el portapapeles implicaría vincular contra bibliotecas X, lo que significa que no podría instalar vim sin también instalar un montón de dependencias X que generalmente no desea en un entorno de servidor (o mínimo).

Esto significa que, si desea la función del portapapeles, debe instalar, por ejemplo, el paquete vim-gtk(que a pesar de su nombre también contiene un vim no gui).

Por una razón similar, el paquete vim-noxexiste. No depende del servidor X, pero necesita bibliotecas adicionales como liblua, libperl, libpython y, por lo tanto, instala esas dependencias adicionales (que probablemente tampoco necesite en un entorno de servidor), pero no necesita bibliotecas X (como GTK o X11). necesario para la interfaz gráfica de usuario y el portapapeles).

Christian Brabandt
fuente
Ah, pensé que podría copiar y pegar en una instalación de Linux que no sea GUI. Es por eso que pensé que la bandera -clipboardera para que Vim acceda al registro de copiar y pegar del sistema. (Puedes usar X-Copy pero me refería a sordo)
Gustav Blomqvist
1
@GustavBlomqvist: puede usar los portapapeles de la línea de comando normal, es decir, seleccionar texto, hacer clic con el botón central para pegar y usar enlaces GPM.
Arafangion
2

VIM está destinado a ser un editor portátil que "simplemente funciona" en todos los sistemas. Al hacer que la versión predeterminada use la funcionalidad del portapapeles, tendrá que vincularse con las bibliotecas X11, y se deberá compilar una versión separada de VIM para compilaciones de escritorio versus servidor (no X11 / xorg preinstalado). Es por eso que se proporcionan los paquetes vimy vim-gtk.

Si desea compilar la versión de línea de comandos de VIM (la uso con Guake / yakuake todo el tiempo), aquí está el script de compilación / instalación para sistemas basados ​​en 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
Nube
fuente