Por que o Vim for Debian é compilado sem a área de transferência?

20

Estou curioso para saber por que o pacote Debian padrão para o vim (o que você normalmente encontra sudo apt-get install vim) não é compilado com o suporte da área de transferência?

Nem o regular -clipboardou -Xterm-clipboardestá ativado, por quê ?

Pode haver razões para não incluir -Xterm-clipboard nas instalações da Debian sem o X-server instalado, mas o normal -clipboard?

Qualquer insight sobre o motivo seria útil.

( Esclarecimento: eu sei que posso compilar o Vim com esses sinalizadores, só quero saber por que eles não estão ativados por padrão. )

Gustav Blomqvist
fonte
O que fornece a área de transferência, se não o X? xterm-clipboard é uma coisa diferente; isto é para os buffers que o xterm fornece (consulte, por exemplo, askubuntu.com/a/541730/158442 ).
muru 14/09/17
mas xterm-clipboard também é um recurso fornecido pelo servidor X
Christian Brabandt
2
@muru não existe um buffer semelhante ao xterm. O que você quer dizer com buffers de corte X, que é um recurso do X Server que fornece alguns meios de comunicação entre processos entre clientes X, um geralmente chamado de Área de transferência (Ctrl-V, CTRL-X, Ctrl-V nos clientes comuns de desktop ) e o outro sendo colar do meio do mouse, o que foi selecionado anteriormente com o mouse. Embora isso seja chamado xterm_clipboard, não tem nada a ver com o xterm.
Christian Brabandt
2
@ChristianBrabandt hein, eu sempre achei que esse buffer de corte era algo do xterm, como o buffer de colagem da tela, e esse recurso suporta esses buffers. Obrigado por corrigir!
muru 14/09/17
1
O smartass em mim diria para você instalar o Neovim, uma vez que dispensa praticamente todos os sinalizadores de compilação em favor de apenas tentar as coisas em tempo de execução. Por exemplo, a área de transferência usa xsel / xclip em vez de vincular-se a várias bibliotecas X.
Outro usuário

Respostas:

24

A descrição do pacote contém

Este pacote contém uma versão do vim compilada com um conjunto de recursos bastante padrão. Este pacote não fornece uma versão GUI do Vim. Veja os outros pacotes vim- * se precisar de mais (ou menos).

Acredito que isso foi feito, porque o uso da área de transferência envolveria a vinculação às bibliotecas do X, o que significa que você não poderia instalar o vim sem instalar também um monte de dependências do X que você normalmente não deseja em um ambiente de servidor (ou mínimo).

Isto significa que, se você deseja o recurso de área de transferência, deve instalar, por exemplo, o pacote vim-gtk(que apesar do nome também contém um não-gui vim).

Por uma razão semelhante, o pacote vim-noxexiste. Ele não depende do servidor X, mas precisa de bibliotecas adicionais como liblua, libperl, libpython e, portanto, instala essas dependências adicionais (das quais você provavelmente também não precisa em um ambiente de servidor), mas nenhuma biblioteca X (como as do GTK ou X11 necessário para o gui e a área de transferência).

Christian Brabandt
fonte
Ahh, pensei que você poderia copiar e colar em uma instalação não-GUI do Linux. Por isso, pensei que a bandeira -clipboardera para o Vim acessar o registro de copiar e colar do sistema. (Você pode usar o X-Copy, mas eu quis dizer com deafult)
Gustav Blomqvist
1
@GustavBlomqvist: Você pode, usando as pranchetas comuns da linha de comando, ou seja, selecionar texto, clicar com o botão do meio para colar e usar as ligações do GPM.
Arafangion
2

O VIM pretende ser um editor portátil que "simplesmente funcione" em todos os sistemas. Ao fazer com que a versão padrão use a funcionalidade da área de transferência, ele precisará vincular-se às bibliotecas do X11, e uma versão separada do VIM precisará ser compilada para compilação de desktop versus servidor (sem X11 / xorg pré-instalado). É por isso que os pacotes vime vim-gtksão fornecidos.

Se você deseja compilar a versão de linha de comando do VIM (eu a uso com Guake / yakuake o tempo todo), aqui está o script de compilação / instalação para sistemas baseados em 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
Nuvem
fonte