我可以在两个不同的终端中的两个 vim 会话之间复制文本吗?我使用 mobaxterm,在标记要复制的文本时无法滚动。
我该怎么做?使用多执行选项在 2 个不同的终端(SSH 会话)上编辑 2 个文件,并复制比我在终端上看到的更多的文本。我无法在任何 vim 模式下突出显示它以将其复制到我的笔记本电脑记事本或其他终端 SSH 会话窗口。
答案1
在 vim 中,你可以使用r
命令从其他地方读取文件或命令。因此,在这种情况下我会这样做:
- 将您想要复制的内容转储到文件中,可以通过重定向命令的输出来实现,或者它已经是一个文件,因此只需保存它即可。
- 在另一个终端中打开 vim,然后转到要粘贴的文件
- 使用
:tabe
命令模式打开新选项卡 - 用于
:r /path/to/file
将你在 (1) 中创建的文件的内容读入缓冲区 - 然后像平常一样使用 yank/paste,或者在命令模式下使用 ctrl-V 来执行可视选择块并将其yank。
请注意,您也可以传递命令:r
,但您必须转义一些字符,因此:r! date +\%s
将获取当前的 unix 时间并将其插入到文件中。
更多关于众所周知的Grok Vim邮政。
您还可以使用 打开行号等操作:set number
,然后从文件中读取特定行::r! sed -n 147,227p /path/to/foo/foo.c
或者,使用相对编号 ( ) 的行号:set relativenumber
来轻松显示要提取多少行y
。这样,您只需执行操作37y
,然后将p
其提取到您想要的位置即可。