在neovim中,如何在编辑器实例之间共享寄存器?


9

我知道vim划分了客户端/服务器,允许不同vim客户端之间共享寄存器,但是您如何在neovim中实现相同的目的?它不支持客户端/服务器标志。我看到了这个问题,但我的目标是专门共享寄存器,而不是模仿其余的客户端/服务器。是像neovim remote这样的唯一方法,还是我可以做的更简单的事情?

Answers:


2

林雷是对的;并且neovim帮助说明将此作为该功能的特定用例

可以使用两个命令来手动读取和写入ShaDa文件。这可用于在两个正在运行的Vim程序之间交换寄存器:首先在一个程序中键入“:wsh”,然后在另一个程序中键入“:rsh”。


4

不了解clientserver功能,我想到的最简单的方法是在拉动或粘贴时默认情况下使用系统剪贴板,这可以通过以下方式完成:

set clipboard=unnamedplus

根据您的操作系统和环境,您可能需要进行其他调整才能使其无缝运行。


另外,您也许可以利用该viminfo文件(或:h shada在neovim上):

ShaDa文件用于存储:

  • 命令行历史记录。
  • 搜索字符串的历史记录。
  • 输入行历史记录。
  • 非空寄存器的内容。
  • 标记几个文件。
  • 文件标记,指向文件中的位置。
  • 最后搜索/替换模式(“ n”和“&”)。
  • 缓冲区列表。
  • 全局变量。


0

抱歉,因为我不知道我在哪里找到了:

" share data between nvim instances (registers etc)
augroup SHADA
    autocmd!
    autocmd CursorHold,TextYankPost,FocusGained,FocusLost *
                \ if exists(':rshada') | rshada | wshada | endif
augroup END
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.