Warum wird Vim für Debian ohne Zwischenablage kompiliert?

20

Ich bin neugierig, warum das Standard-Debian-Paket für vim (das, das Sie normalerweise bekommen sudo apt-get install vim) nicht mit Zwischenablage-Unterstützung kompiliert ist.

Weder der reguläre -clipboardnoch der -Xterm-clipboardaktivierte, warum ?

Es könnte einen Grund geben, -Xterm-Zwischenablage in Debian-Installationen ohne installierten X-Server nicht einzuschließen, aber die regulären -clipboard?

Jeder Einblick, warum dies so ist, wäre hilfreich.

( Klarstellung: Ich weiß, dass ich Vim mit diesen Flags kompilieren kann. Ich möchte nur wissen, warum sie nicht standardmäßig aktiviert sind. )

Gustav Blomqvist
quelle
Was bietet die Zwischenablage, wenn nicht X? xterm-clipboard ist etwas anderes; Dies gilt für die von xterm bereitgestellten Puffer (siehe z. B. askubuntu.com/a/541730/158442 ).
Muru
xterm-clipboard wird aber auch vom X-Server bereitgestellt
Christian Brabandt
2
@muru Es gibt keinen xterm-ähnlichen Puffer. Was Sie meinen, sind X-Cut-Puffer, eine Funktion des X-Servers, die eine Möglichkeit für die prozessübergreifende Kommunikation zwischen X-Clients bietet. Eine davon wird normalerweise als Zwischenablage bezeichnet (Strg-V, Strg-X, Strg-V in den üblichen Desktop-Clients) ) und das andere ist das Einfügen mit der mittleren Maus von allem, was zuvor mit der Maus ausgewählt wurde. Obwohl dies xterm_clipboard heißt, hat es nichts mit xterm zu tun.
Christian Brabandt
2
@ChristianBrabandt huh, ich dachte immer, dass dieser ausgeschnittene Puffer etwas von xterm ist, wie der Einfügepuffer von screen, und diese Funktion unterstützt solche Puffer. Danke für die Korrektur!
Muru
1
Der Smartass in mir würde dir sagen, dass du Neovim installieren sollst, da so gut wie alle Kompilierungsflags entfallen, um nur Dinge zur Laufzeit auszuprobieren. In der Zwischenablage wird beispielsweise xsel / xclip verwendet, anstatt eine Reihe von X-Bibliotheken zu verknüpfen.
Noch ein Benutzer

Antworten:

24

Die Paketbeschreibung enthält

Dieses Paket enthält eine Version von vim, die mit einer Reihe von Standardfunktionen kompiliert wurde. Dieses Paket enthält keine GUI-Version von Vim. Sehen Sie sich die anderen vim- * Pakete an, wenn Sie mehr (oder weniger) benötigen.

Ich glaube, das wurde gemacht, weil das Verwenden der Zwischenablage das Verknüpfen mit X-Bibliotheken beinhalten würde, was bedeutet, dass Sie vim nicht installieren könnten, ohne auch eine Reihe von X-Abhängigkeiten zu installieren, die Sie normalerweise in einer Server- (oder Minimal-) Umgebung nicht möchten.

Das heißt, wenn Sie die Zwischenablage-Funktion wünschen, sollten Sie zB das Paket installieren vim-gtk(das trotz seines Namens auch ein Nicht-GUI-VIM enthält).

Aus einem ähnlichen Grund existiert das Paket vim-nox. Es hängt nicht vom X-Server ab, sondern benötigt zusätzliche Bibliotheken wie liblua, libperl, libpython und installiert daher diese zusätzlichen Abhängigkeiten (die Sie wahrscheinlich auch in einer Serverumgebung nicht benötigen), aber keine X-Bibliotheken (wie GTK- oder X11-Bibliotheken) benötigt für die GUI und die Zwischenablage).

Christian Brabandt
quelle
Ahh, ich dachte, Sie könnten auf einer Nicht-GUI-Installation von Linux kopieren und einfügen. Deshalb dachte ich, dass die Flagge -clipboardfür Vim war, um auf das System-Copy-Paste-Register zuzugreifen. (Sie können X-Copy verwenden, aber ich meine taub)
Gustav Blomqvist
1
@GustavBlomqvist: Sie können mithilfe der normalen Befehlszeilen-Zwischenablagen Text auswählen, mit der mittleren Maustaste zum Einfügen klicken und GPM-Bindungen verwenden.
Arafangion
2

VIM soll ein portabler Editor sein, der auf allen Systemen "nur funktioniert". Wenn die Standardversion die Funktionen der Zwischenablage verwendet, muss eine Verknüpfung mit X11-Bibliotheken hergestellt werden, und eine separate Version von VIM muss für Builds von Desktop versus Server (keine vorinstallierten X11 / xorg-Versionen) kompiliert werden. Aus diesem Grund werden die Pakete vimund vim-gtkbereitgestellt.

Wenn Sie die Befehlszeilenversion von VIM kompilieren möchten (ich verwende sie die ganze Zeit mit Guake / yakuake), ist hier das Build / Install-Skript für Debian-basierte Systeme.

# 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
Wolke
quelle