我很好奇为什么Vim的默认Debian软件包(通常由sudo apt-get install vim获得的软件包)没有使用剪贴板支持进行编译?

常规-clipboard-Xterm-clipboard均未启用,为什么?

可能有理由在未安装X服务器的Debian安装中不包括-Xterm-clipboard,而是常规的-clipboard吗?

深入了解为什么这样做会有所帮助。默认情况下。)

评论

是什么提供剪贴板(如果不是X)? xterm-clipboard是另一回事;用于xterm提供的缓冲区(例如,请参见askubuntu.com/a/541730/158442)。

但是xterm-clipboard也是X服务器提供的功能

@muru不存在类似xterm的缓冲区。 X剪切缓冲区是X Server的一项功能,它提供了X客户端之间的进程间通信方式,通常称为剪贴板(在常规桌面客户端中为Ctrl-V,CTRL-X,Ctrl-V ),另一种是鼠标中键粘贴之前用鼠标选择的任何内容。尽管这称为xterm_clipboard,但与xterm无关。

@ChristianBrabandt嗯,我一直认为这个剪切缓冲区是xterm的东西,例如屏幕的粘贴缓冲区,并且此功能支持此类缓冲区。感谢您的纠正!

我身上的smartass会告诉您安装Neovim,因为它几乎放弃了所有编译标志,而只希望在运行时尝试一下。例如,剪贴板使用xsel / xclip而不是针对大量X库进行链接。

#1 楼

软件包描述包含


该软件包包含一个vim版本,该版本带有一组相当标准的功能。该软件包不提供Vim的GUI
版本。如果需要更多(或更少),请参见其他vim- *软件包。意味着,如果没有在服务器(或最小)环境中通常不希望安装的X依赖项,就无法安装vim。

这意味着,如果要使用剪贴板功能,您可以应该安装例如软件包vim-gtk(尽管它的名字也包含非gui vim)。出于类似的原因,存在软件包vim-nox。它不依赖X服务器,但是需要其他库,例如liblua,libperl,libpython,因此确实安装了这些其他依赖项(在服务器环境中您可能也不需要),但是没有X库(例如GTK或X11的库) gui和剪贴板所需的。)

评论


啊,我想您可以在非GUI安装的Linux上复制粘贴。这就是为什么我认为标志-clipboard是让Vim访问系统复制粘贴寄存器的原因。 (您可以使用X-Copy,但我的意思是愚蠢的)

–古斯塔夫·布洛姆奎斯特(Gustav Blomqvist)
17年9月14日在19:58

@GustavBlomqvist:您可以通过使用常规命令行剪贴板,即选择文本,单击鼠标中键进行粘贴以及使用GPM绑定。

– Arafangion
17/09/15在5:16



#2 楼

VIM旨在成为可在所有系统上“正常工作”的便携式编辑器。通过使默认版本使用剪贴板功能,它将需要针对X11库进行链接,并且需要针对台式机与服务器(没有预安装的X11 / xorg)构建单独的VIM版本。这就是为什么提供vimvim-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