Чому Vim для Debian складено без буфера обміну?


20

Мені цікаво, чому пакет Debian за замовчуванням для vim (той, який ви зазвичай отримуєте sudo apt-get install vim) не компілюється з підтримкою буфера обміну?

Ні регулярні, -clipboardні -Xterm-clipboardвключені, чому ?

Може бути причина не включати -Xterm-буфер обміну в установки Debian без встановленого X-сервера, але звичайний -clipboard?

Будь-яке розуміння того, чому це, було б корисним.

( Уточнення: я знаю, що я можу компілювати Vim з цими прапорами, я просто хочу знати, чому вони не включені за замовчуванням. )


Що забезпечує буфер обміну, якщо не X? xterm-буфер обміну - різна річ; тобто для буферів, які надає xterm (див., наприклад, askubuntu.com/a/541730/158442 ).
муру

але xterm-буфер обміну також є функцією, наданою сервером X
Крістіан Брабандт

2
@muru не існує такого поняття, як буфер, подібний xterm. Ви маєте на увазі буфери X cut, що є особливістю сервера X, що забезпечує деякі засоби міжпроцесорної комунікації між клієнтами X, один з яких зазвичай називається буфер обміну (Ctrl-V, CTRL-X, Ctrl-V у звичайних настільних клієнтів ), а інша - це обклеювання середньої миші того, що було вибрано мишею раніше. Хоча це називається xterm_clipboard, це не має нічого спільного з xterm.
Крістіан Брабандт

2
@ChristianBrabandt так, я завжди думав, що цей вирізаний буфер є чимось із xterm, як буфер вставки екрану, і ця функція підтримує такі буфери. Дякуємо за виправлення!
муру

1
Розумник у мені сказав би вам встановити Neovim, оскільки він не відпускає майже всі прапорці компіляції на користь просто спробувати речі під час виконання. Наприклад, буфер обміну використовує xsel / xclip замість посилання на купу X бібліотек.
Ще інший користувач,

Відповіді:


24

Опис упаковки містить

Цей пакет містить версію vim, складену з досить стандартним набором функцій. Цей пакет не надає GUI-версію Vim. Перегляньте інші пакети vim- *, якщо вам потрібно більше (або менше).

Я вважаю, що це було зроблено, оскільки використання буфера обміну передбачало б посилання на бібліотеки X, а це означає, що ви не можете встановити vim, не встановивши ще кути залежностей X, яких зазвичай не потрібно в серверному (або мінімальному) середовищі.

Це означає, що якщо ви хочете функцію буфера обміну, вам слід встановити, наприклад, пакет vim-gtk(який, незважаючи на свою назву, також містить vim-gui vim).

З аналогічної причини пакет vim-noxіснує. Він не залежить від сервера X, але потребує додаткових бібліотек, таких як liblua, libperl, libpython, і тому встановлює ті додаткові залежності (які вам також, мабуть, не потрібні в серверному середовищі), але немає X-бібліотек (як GTK або X11) потрібні для гуї та буфера обміну).


А-а-а, я думав, ви можете скопіювати та вставити на Linux неінсталяційний інтерфейс. Ось чому я подумав, що прапор -clipboardVim має доступ до системного реєстру копіювальних вставок. (Ви можете використовувати X-Copy, але я маю на увазі глухий)
Густав Бломквіст

1
@GustavBlomqvist: Ви можете, використовуючи буфер обміну звичайного командного рядка, тобто вибирати текст, клацнути середнім клацанням та вставляти прив’язки GPM.
Арафангіон

2

VIM призначений для портативного редактора, який "просто працює" у всіх системах. Оскільки версія за замовчуванням використовує функцію буфера обміну, її потрібно буде зв’язати з бібліотеками X11, і окрему версію VIM потрібно буде скласти для настільних комп’ютерів та серверів (без попередньо встановлених X11 / xorg). Ось чому vimі vim-gtkпакети надаються.

Якщо ви хочете скомпілювати версію VIM командного рядка (я її постійно використовую з Guake / yakuake), ось сценарій збирання / встановлення для систем на базі 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.