Dlaczego Vim for Debian jest kompilowany bez schowka?

20

Zastanawiam się, dlaczego domyślny pakiet Debiana dla vima (ten, z którego zwykle korzystasz sudo apt-get install vim) nie jest skompilowany z obsługą schowka?

Ani zwykły, -clipboardani -Xterm-clipboardwłączony, dlaczego ?

Może istnieć powód, aby nie dołączać -Xterm-schowek na instalacjach Debiana bez zainstalowanego serwera X, ale zwykły -clipboard?

Każdy wgląd w to, dlaczego jest to pomocne.

( Wyjaśnienie: Wiem, że mogę skompilować Vima z tymi flagami, chcę tylko wiedzieć, dlaczego nie są one domyślnie włączone ).

Gustav Blomqvist
źródło
Co zapewnia schowek, jeśli nie X? xterm-schowek to inna rzecz; dotyczy to buforów udostępnianych przez xterm (patrz na przykład askubuntu.com/a/541730/158442 ).
muru
ale schowek xterm jest również funkcją zapewnianą przez serwer X
Christian Brabandt
2
@muru nie istnieje coś takiego jak bufor typu xterm. Masz na myśli bufory cięcia X, które są funkcją X Servera zapewniającą pewne środki komunikacji między procesami między klientami X, przy czym jeden zwykle nazywany jest Schowkiem (Ctrl-V, CTRL-X, Ctrl-V w zwykłych klientach stacjonarnych ), a druga to wklejanie środkowej myszy wszystkiego, co zostało wcześniej wybrane myszą. Chociaż nazywa się to xterm_clipboard, nie ma to nic wspólnego z xterm.
Christian Brabandt
2
@ChristianBrabandt huh, zawsze myślałem, że ten bufor cięcia jest czymś z Xtermu, jak bufor wklejania ekranu, i ta funkcja obsługuje takie bufory. Dzięki za poprawienie!
muru
1
Smartass powiedziałby mi, żebyś zainstalował Neovima, ponieważ rezygnuje z prawie wszystkich flag kompilacji na rzecz po prostu wypróbowywania rzeczy w czasie wykonywania. Na przykład schowek używa xsel / xclip zamiast łączenia się z kilkoma bibliotekami X.
Yet Another User

Odpowiedzi:

24

Opis Pakiet zawiera

Ten pakiet zawiera wersję vima skompilowaną z raczej standardowym zestawem funkcji. Ten pakiet nie zawiera wersji graficznej Vima dla GUI. Zobacz inne pakiety vim- *, jeśli potrzebujesz więcej (lub mniej).

Sądzę, że tak się stało, ponieważ korzystanie ze schowka wymagałoby łączenia się z bibliotekami X, co oznacza, że ​​nie można zainstalować vima bez instalacji kilku zależności X, których zwykle nie chce się w środowisku serwerowym (lub minimalnym).

Oznacza to, że jeśli chcesz funkcji schowka, powinieneś zainstalować np. Pakiet vim-gtk(który pomimo nazwy zawiera także vim-gui).

Z podobnego powodu pakiet vim-noxistnieje. Nie zależy od serwera X, ale potrzebuje dodatkowych bibliotek, takich jak liblua, libperl, libpython, i dlatego instaluje te dodatkowe zależności (których prawdopodobnie również nie potrzebujesz w środowisku serwera), ale nie ma bibliotek X (takich jak GTK lub X11 potrzebne do GUI i schowka).

Christian Brabandt
źródło
Ahh Myślałam, że mógłby skopiować i wkleić na nie GUI zainstalować Linuksa. Właśnie dlatego myślałem, że flaga -clipboardma umożliwić Vimowi dostęp do rejestru systemowego kopiuj-wklej. (Możesz używać X-Copy, ale miałem na myśli niesłyszących)
Gustav Blomqvist
1
@GustavBlomqvist: Możesz, używając zwykłych schowków wiersza poleceń, tj. Zaznaczać tekst, środkowe kliknięcie, aby wkleić, i używając powiązań GPM.
Arafangion
2

VIM ma być przenośnym edytorem, który „po prostu działa” na wszystkich systemach. Ponieważ domyślna wersja korzysta z funkcji schowka, będzie musiała połączyć się z bibliotekami X11, a osobna wersja VIM będzie musiała zostać skompilowana dla kompilacji komputer stacjonarny kontra serwer (bez preinstalowanego X11 / xorg). Właśnie dlatego dostarczane są pakiety vimi vim-gtk.

Jeśli chcesz skompilować wersję VIM z wiersza poleceń (używam go cały czas z Guake / yakuake), oto skrypt kompilacji / instalacji dla systemów opartych na Debianie.

# 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
Chmura
źródło