ทำไม Vim for Debian จึงถูกคอมไพล์โดยไม่มีคลิปบอร์ด


20

ฉันอยากรู้ว่าทำไมแพคเกจ Debian เริ่มต้นสำหรับกลุ่ม (ที่คุณได้รับตามปกติsudo apt-get install vim) ไม่ได้รับการคอมไพล์ด้วยการสนับสนุนคลิปบอร์ด?

ทั้งปกติ-clipboardหรือ-Xterm-clipboardมีการใช้งานว่าทำไม ?

อาจมีเหตุผลที่จะไม่รวม -Xterm-clipboard ในการติดตั้ง Debian โดยไม่ต้องติดตั้ง X-server แต่เป็นปกติ-clipboardหรือไม่

ความเข้าใจใด ๆ ว่าทำไมสิ่งนี้จึงเป็นประโยชน์

(ความชัดเจน: ฉันรู้ว่าฉันสามารถคอมไพล์ Vim ด้วยการตั้งค่าสถานะเหล่านี้ได้ฉันต้องการทราบว่าเพราะเหตุใดจึงไม่เปิดใช้งานโดยค่าเริ่มต้น )


มีคลิปบอร์ดอะไรถ้าไม่ใช่ X xterm-clipboard นั้นแตกต่างกัน นั่นคือสำหรับบัฟเฟอร์ที่ xterm มีให้ (ดูตัวอย่างเช่นAskubuntu.com/a/541730/158442 )
muru

แต่ xterm-clipboard ก็เป็นฟีเจอร์ที่ X server ให้ไว้ด้วย
Christian Brabandt

2
@muru ไม่มีสิ่งใดที่เหมือนกับบัฟเฟอร์ xterm สิ่งที่คุณหมายถึงคือ X cut buffer ซึ่งเป็นคุณสมบัติของ X Server ที่ให้วิธีการสื่อสารระหว่างกระบวนการระหว่างไคลเอนต์ X โดยทั่วไปมักจะเรียกว่าคลิปบอร์ด (Ctrl-V, CTRL-X, Ctrl-V ในไคลเอนต์เดสก์ทอปปกติ ) และอีกอันหนึ่งคือการวางเมาส์กลางของสิ่งที่เลือกด้วยเมาส์ก่อนหน้านี้ แม้ว่าสิ่งนี้เรียกว่า xterm_clipboard แต่ก็ไม่มีอะไรเกี่ยวข้องกับ xterm
Christian Brabandt

2
@ChristianBrabandt ฮะฉันคิดเสมอว่า cut buffer นี้เป็นบางอย่างจาก xterm เช่น paste buffer ของหน้าจอและคุณสมบัตินี้รองรับบัฟเฟอร์ดังกล่าว ขอบคุณสำหรับการแก้ไข!
muru

1
Smartass ในตัวฉันจะบอกให้คุณติดตั้ง Neovim เพราะมันแจกจ่ายธงที่เรียบเรียงทั้งหมดให้กับการลองสิ่งต่าง ๆ ที่รันไทม์ ตัวอย่างเช่นคลิปบอร์ดใช้ xsel / xclip แทนที่จะเชื่อมโยงกับไลบรารี X จำนวนมาก
ยังมีผู้ใช้อื่น

คำตอบ:


24

รายละเอียดแพคเกจประกอบด้วย

แพ็กเกจนี้มีเวอร์ชันของ vim ที่คอมไพล์ด้วยชุดของคุณลักษณะที่ค่อนข้างเป็นมาตรฐาน แพ็คเกจนี้ไม่ได้จัดให้เป็นเวอร์ชั่น GUI ของ Vim ดูแพ็คเกจ vim- * อื่น ๆ หากคุณต้องการมากกว่า (หรือน้อยกว่า)

ฉันเชื่อว่าสิ่งนี้เกิดขึ้นเพราะการใช้คลิปบอร์ดจะเกี่ยวข้องกับการเชื่อมโยงกับไลบรารี X ซึ่งหมายความว่าคุณไม่สามารถติดตั้งเสียงเรียกเข้าได้หากไม่ได้ติดตั้งการพึ่งพา X จำนวนมากซึ่งโดยปกติคุณไม่ต้องการในสภาพแวดล้อมเซิร์ฟเวอร์

ซึ่งหมายความว่าหากคุณต้องการฟีเจอร์คลิปบอร์ดคุณควรติดตั้งเช่นแพ็คเกจvim-gtk(ซึ่งแม้จะมีชื่อของมันก็ยังมีไฟล์ที่ไม่ใช่ gui)

ด้วยเหตุผลที่คล้ายกันแพคเกจที่vim-noxมีอยู่ มันไม่ได้ขึ้นอยู่กับเซิร์ฟเวอร์ X แต่ต้องการไลบรารีเพิ่มเติมเช่น liblua, libperl, libpython และติดตั้งการพึ่งพาเพิ่มเติมเหล่านั้น (ซึ่งคุณอาจไม่ต้องการในสภาพแวดล้อมเซิร์ฟเวอร์) แต่ไม่มีไลบรารี X (เช่น GTK หรือ X11 จำเป็นสำหรับ GUI และคลิปบอร์ด)


ฉันคิดว่าคุณสามารถคัดลอกวางในการติดตั้ง GUI ที่ไม่ใช่ Linux นั่นเป็นเหตุผลที่ฉันคิดว่าการตั้งค่าสถานะ-clipboardสำหรับ Vim คือการลงทะเบียน copy-paste ของระบบ (คุณสามารถใช้ X-Copy ได้ แต่ฉันหมายถึงหูหนวก)
Gustav Blomqvist

1
@GustavBlomqvist: คุณสามารถทำได้โดยใช้คลิปบอร์ดบรรทัดคำสั่งปกติเช่นเลือกข้อความคลิกกลางเพื่อวางและใช้การผูก GPM
Arafangion

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.