跨越终端中多个 vim 实例访问剪切板内容

发布于 2025-02-26 10:43:16 字数 3756 浏览 3 评论 0

Vim (Vi IMproved) 是一款在程序员之间非常受欢迎的文本编辑器。它在执行不同的快捷命令操作上有它自己的特长。

从 Vim 访问剪切板

比如,要拷贝高亮的文本,我们使用‘ y ’命令,并用‘x’来剪切。但是, vim (不是 gVim ) 剪切板的内容默认情况下是不能被其他的 vim 实例访问的。

Vim 版本信息中使用‘ + ’表示启用了系统剪切板。你可以运行‘ vim ­­–version ’,如果你看不到像“ +xterm_clipboard ”而是显示“­ xterm_clipboard “,那么会使用内部剪切板,其将不能被其它的 vim 实例访问。

安装 gvim 和 parcellite

为了访问 vim 剪切板的内容,你需要安装 gvim 包。 gVim 是 vim 编辑器的 GUI 模式,它的剪切板选项默认启用。

# yum install -y gvim

然后,使用 RPMForge 仓库 安装 parcellite 包。Parcellite 是一款轻量级,小巧而免费的 Linux 剪切板管理工具。

# yum install -y parcellite

一旦安装后,运行下面的命令。这里的参数‘ & ’是使 parcellite 以后台进程运行。

# parcellite &

检查选项已经在 gvim 中启用。

# gvim --version

确保“ +xterm_clipboard ”选项显示在下面的输出中。

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr  5 2012 10:12:08)
Included patches: 1-411
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic 
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand 
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm 
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte 
+multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript 
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind 
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax 
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup 
+X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save

打开用户的.bashrc 文件。

# vim ~/.bashrc

加入别名并保存文件(按下‘ i ’来插入行并按下 ESC ,接着运行 :wq 来保存并退出)。

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vim='gvim -v'
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

这个 alias 是内置的用于将一些命令绕到其他命令上。这样每次当 vim 命令运行时,相应的别名会启动默认带剪切板的 gVim。

现在,用类似的方式编辑你的‘ .vimrc ’文件(以防你没有 .vimrc 文件,生成这样一个文件然后再回来)。

# vim ~/.vimrc

追加下面这行并保存文件。

autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")

现在在 vim 中打开任何文件并高亮部分文本(使用'v'命令) 并按下'y'。尝试在 vim 外面的任何地方粘帖(关不关 vim 都行),你就发现 vim 里面复制的内容被粘帖出来了。

附:生成 .vimrc 文件

运行下面的命令来生成 .vimrc 文件(如果你已做了就跳过这部分)。

# cd   [返回到你的主目录]       
# vim .vimrc

在 vim 中在按下 ESC 键后运行下面的命令(在 vim 中,每个命令是在按下 ESC 键后也就是带你进入命令模式后运行的)。

:r $VIMRUNTIME/vimrc_example.vim 
:w

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

吻泪

暂无简介

文章
评论
27 人气
更多

推荐作者

闻呓

文章 0 评论 0

深府石板幽径

文章 0 评论 0

mabiao

文章 0 评论 0

枕花眠

文章 0 评论 0

qq_CrTt6n

文章 0 评论 0

红颜悴

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文