Perché Vim per Debian è compilato senza appunti?


20

Sono curioso di sapere perché il pacchetto Debian predefinito per vim (quello che normalmente ottieni sudo apt-get install vim) non è compilato con il supporto degli appunti?

Né il normale -clipboardo -Xterm-clipboardè abilitato, perché ?

Ci potrebbe essere motivo per non includere -Xterm-clipboard su installazioni Debian senza X-server installato, ma il normale -clipboard?

Qualsiasi approfondimento sul perché questo sarebbe utile.

( Chiarimento: so di poter compilare Vim con questi flag, voglio solo sapere perché non sono abilitati per impostazione predefinita. )


Cosa fornisce gli Appunti se non X? xterm-appunti è una cosa diversa; vale a dire per i buffer forniti da xterm (consultare, ad esempio, askubuntu.com/a/541730/158442 ).
muru,

ma xterm-clipboard è anche una funzionalità fornita dal server X
Christian Brabandt,

2
@muru non esiste un buffer simile a xterm. Quello che vuoi dire sono X cut buffer, che è una caratteristica di X Server che fornisce alcuni mezzi di comunicazione tra processi tra client X, uno di solito chiamato Appunti (Ctrl-V, CTRL-X, Ctrl-V nei soliti client desktop ) e l'altro essendo incollare il mouse centrale di tutto ciò che è stato selezionato con il mouse in precedenza. Anche se questo si chiama xterm_clipboard non ha nulla a che fare con xterm.
Christian Brabandt,

2
@ChristianBrabandt huh, ho sempre pensato che questo buffer di taglio fosse qualcosa di xterm, come il buffer di incollamento dello schermo, e questa funzione supportava tali buffer. Grazie per la correzione!
muru,

1
La smartass in me ti direbbe di installare Neovim dal momento che elimina praticamente tutte le flag di compilazione a favore del solo provare cose in fase di esecuzione. Ad esempio, gli Appunti usano xsel / xclip invece di collegarsi a un gruppo di librerie X.
Ancora un altro utente il

Risposte:


24

La descrizione del pacchetto contiene

Questo pacchetto contiene una versione di vim compilata con un set di funzionalità piuttosto standard. Questo pacchetto non fornisce una versione GUI di Vim. Vedi gli altri pacchetti vim- * se hai bisogno di più (o meno).

Credo che sia stato fatto, perché l'uso degli Appunti comporterebbe il collegamento con le librerie X, il che significa che non è possibile installare Vim senza installare anche un mucchio di dipendenze X che di solito non si desidera in un ambiente server (o minimo).

Ciò significa che, se si desidera la funzione Appunti, è necessario installare ad esempio il pacchetto vim-gtk(che nonostante il suo nome contiene anche un vim non-gui).

Per un motivo simile, il pacchetto vim-noxesiste. Non dipende dal server X, ma necessita di librerie aggiuntive come liblua, libperl, libpython e quindi installa quelle dipendenze aggiuntive (che probabilmente non sono necessarie in un ambiente server), ma nessuna libreria X (come GTK o X11 necessario per la gui e gli appunti).


Ahh pensavo che potessi copiare e incollare su un'installazione non GUI di Linux. Ecco perché ho pensato che la bandiera -clipboardfosse per Vim per accedere al registro copia-incolla del sistema. (Puoi usare X-Copy ma intendevo per sordo)
Gustav Blomqvist

1
@GustavBlomqvist: è possibile, utilizzando i normali appunti della riga di comando, ovvero selezionare il testo, fare clic con il pulsante centrale per incollare e utilizzare i collegamenti GPM.
Arafangion,

2

VIM è pensato per essere un editor portatile che "funziona" su tutti i sistemi. Avendo la versione predefinita che utilizza la funzionalità Appunti, dovrà collegarsi alle librerie X11 e una versione separata di VIM dovrà essere compilata per build desktop rispetto a server (senza X11 / xorg preinstallato). Questo è il motivo per cui vengono forniti i pacchetti vime vim-gtk.

Se vuoi compilare la versione da riga di comando di VIM (la uso sempre con Guake / yakuake), ecco lo script build / install per sistemi basati su 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.