Mengapa Vim untuk Debian dikompilasi tanpa clipboard?

20

Saya ingin tahu mengapa paket Debian default untuk vim (yang biasanya Anda dapatkan sudo apt-get install vim) tidak dikompilasi dengan dukungan clipboard?

Baik yang biasa -clipboardatau -Xterm-clipboardyang diaktifkan, mengapa ?

Mungkin ada alasan untuk tidak menyertakan -Xterm-clipboard pada instalasi Debian tanpa X-server diinstal, tetapi biasa -clipboard?

Setiap wawasan tentang mengapa ini akan sangat membantu.

( Klarifikasi: Saya tahu saya bisa mengkompilasi Vim dengan flag-flag ini, saya hanya ingin tahu mengapa mereka tidak diaktifkan secara default. )

Gustav Blomqvist
sumber
Apa yang menyediakan clipboard jika tidak X? xterm-clipboard adalah hal yang berbeda; itu untuk buffer yang disediakan xterm (lihat, misalnya, askubuntu.com/a/541730/158442 ).
muru
tetapi xterm-clipboard juga merupakan fitur yang disediakan oleh server X
Christian Brabandt
2
@muru tidak ada yang namanya buffer seperti xterm. Apa yang Anda maksud adalah X cut buffer, yang merupakan fitur dari X Server yang menyediakan beberapa sarana komunikasi antar-proses antara klien X, yang biasanya disebut Clipboard (Ctrl-V, CTRL-X, Ctrl-V pada klien desktop biasa ) dan yang lainnya adalah menyisipkan mouse tengah apa pun yang dipilih dengan mouse sebelumnya. Meskipun ini disebut xterm_clipboard, itu tidak ada hubungannya dengan xterm.
Christian Brabandt
2
@ChristianBrabandt ya, saya selalu berpikir buffer cut ini adalah sesuatu dari xterm, seperti buffer layar, dan fitur ini mendukung buffer seperti itu. Terima kasih sudah mengoreksi!
muru
1
Smartass di dalam saya akan memberitahu Anda untuk menginstal Neovim karena mengeluarkan dengan hampir semua flag kompilasi yang mendukung hanya mencoba hal-hal saat runtime. Misalnya, clipboard menggunakan xsel / xclip alih-alih menautkan ke sekelompok perpustakaan X.
Yet Another User

Jawaban:

24

The deskripsi paket berisi

Paket ini berisi versi vim yang dikompilasi dengan serangkaian fitur yang agak standar. Paket ini tidak menyediakan versi GUI Vim. Lihat paket vim- * lainnya jika Anda membutuhkan lebih banyak (atau kurang).

Saya percaya ini dibuat, karena menggunakan clipboard akan melibatkan penautan terhadap pustaka X, yang berarti, Anda tidak dapat menginstal vim tanpa juga menginstal sekelompok dependensi X yang biasanya tidak Anda inginkan di lingkungan server (atau minimal).

Ini berarti, jika Anda menginginkan fitur clipboard, Anda harus menginstal mis. Paket vim-gtk(yang walaupun namanya juga berisi non-gui vim).

Untuk alasan yang sama, paket itu vim-noxada. Itu tidak tergantung pada server X, tetapi membutuhkan perpustakaan tambahan seperti liblua, libperl, libpython dan karena itu menginstal dependensi tambahan tersebut (yang Anda juga mungkin tidak perlu di lingkungan server), tetapi tidak ada perpustakaan X (seperti GTK atau X11 yang dibutuhkan untuk gui dan clipboard).

Christian Brabandt
sumber
Ahh saya pikir Anda bisa menyalin-tempel pada instalasi Linux non GUI. Itu sebabnya saya pikir bendera -clipboarditu untuk Vim untuk mengakses sistem copy-paste register. (Anda dapat menggunakan X-Copy tapi saya maksud dengan deafult)
Gustav Blomqvist
1
@GustavBlomqvist: Anda dapat, dengan menggunakan clipboard baris perintah biasa, yaitu, memilih teks, klik tengah untuk menempel, dan menggunakan binding GPM.
Arafangion
2

VIM dimaksudkan untuk menjadi editor portabel yang "hanya berfungsi" pada semua sistem. Dengan memiliki versi default menggunakan fungsionalitas clipboard, itu perlu menghubungkan ke perpustakaan X11, dan versi terpisah VIM perlu dikompilasi untuk desktop versus server (tidak ada X11 / xorg pra-instal build). Inilah sebabnya mengapa vimdan vim-gtkpaket disediakan.

Jika Anda ingin mengkompilasi versi VIM command-line (saya menggunakannya dengan Guake / yakuake sepanjang waktu), inilah skrip build / install untuk sistem berbasis 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
Awan
sumber