微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在vim的实例中移动一个缓冲区

这可能吗?

从概念上来说,一个解决scheme应该适用于很多可能的configuration,从两个vim实例运行在一个tmux窗口的窗格中的不同的虚拟terminal,到单独的不同地理区域的独立terminal上的一个或两个terminal,换句话说,vim是由两个独立的shell进程托pipe的,无论如何它们已经在tmux下了)。

这个案例促使我思考这个问题:

我有两个tmux面板都打开vim,我想用Vim yank /粘贴来复制文件

使用手册页获取结构定义

在Perl的后台运行工作,无需等待退货

使用awk处理多个文件

Linux:定义包括其他别名的别名

PHP中查找2个unix时间戳之间的天数

但是只有当它们都在Vim的同一个实例中运行时,它才会起作用,所以我不得不:

使用tmux的复制/粘贴function来获取内容(这是有点繁琐和挑剔),或

使用terminal(PuTTY,iTerm2)的复制/粘贴function来获取内容(同样繁琐,但不受networking延迟影响,但是这只能用于一定大小的文本有效载荷才能复制此方法由于terminal不知道文件当前不可见部分的内容,所以根本不工作),或者

丢失Vim缓冲区历史logging/上下文,以及可能的shell历史/上下文重新打开文件手动在其中一个Vim实例在一个分裂缓冲区或选项卡,然后closures其他terminal上下文(远不止1大型有效载荷繁琐,但更多小有效载荷)。

这是一个PITA,如果我有先见之明,可以切换到已经运行vim的合适的terminal来打开我的文件,但工作stream和习惯的命运很less与本来便利的匹配。

所以问题是,是否存在一个直接构build(shell)脚本的命令或可能性,允许我在独立运行的vim实例中join缓冲区? 我很难让Google充分回答。

在没有足够的答案的情况下(或者如果确定性地确定Vim不具备在其实例中完成缓冲区转移的function),上述方法3的良好实现(可绑定到键)是可以接受的。

同时,我会回头去定制我的vimconfiguration,强制自己尽可能less地使用vim。

我将如何获得在bash当前的鼠标坐标?

我怎样才能把一个指针放在pipe道上?

如何在Python中读取/ dev / random

合并CSV文件:附加而不是合并

为什么我不能用Bash For-Loop使用Unix Nohup?

不,Vim不能在多个实例之间共享一个会话。 这是如何设计的,它不提供任何会话共享功能注册,即时映射/设置,命令历史记录等都是Vim会话本地的,你不能对此做任何实际的事情。

但是你的标题有点误导:你写了“buffer”,但是看起来你只是在从一个Vim实例拷贝/粘贴(涉及“register”,而不是“buffers”)之后。 是对的吗? 如果是这样,为什么不简单地让自己一个剪贴板支持正确的构建?

在实例之间复制/拖延就像"+y在一个”和"+p在另一个"+p一样简单。

显然,如果你的Vim实例在不同的系统上,这将不起作用。 在这种情况下,源Vim中的"+y和目标Vim中的系统提供的粘贴(可能使用:set paste )是最常见的解决方案。

如果您在Mac上,请安装MacVim,并将随附的mvim shell脚本移到路径中的某处。 您可以使用mvim -v 在终端中使用MacVim可执行文件

如果您使用的是Linux,请从软件包管理器安装vim-gnome软件包。

如果你在Windows上,安装最新的“没有奶油的Vim”。

但是整个事情对我来说就像一个XY问题。 使用Vim内置的:e[dit]命令可能是最好的解决方案,看起来是你的根本问题:编辑许多不同shell的许多文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐