vim:我可以从vim复制文本并仅使用键盘将其粘贴到shell提示符下吗?

时间:2014-03-03 02:27:13

标签: vim terminal copy-paste

我在Ubuntu 12.04终端上使用vim 7.3。

在vim中编辑文件时,我可以在可视模式下选择一些文本,然后使用"+y将其拖入系统剪贴板。然后我可以将文本粘贴到另一个Ubuntu终端(使用shift-ctrl-v)。

但是,如果我只能访问一个Ubuntu终端,我必须暂时离开vim,使用:shell转到Ubuntu命令提示符。之后,我发现系统剪贴板中不再存在被拉动的文本,我无法将其粘贴到命令提示符中。

使用:shell(仅使用键盘)后,有什么方法可以保留系统剪贴板中的拉动文本?谢谢你的任何建议。

2 个答案:

答案 0 :(得分:2)

解决方法可能是使用terminal multiplexer tmux来进行远程ssh会话。

使用tmux,您可以在同一个连接上打开更多窗格(或拆分),您可以在窗格(拆分)中使用vim,在另一个窗格中使用shell。

使用tmux,您可以将文本从窗格(拆分)复制到另一个窗格。 使用标准快捷键 Ctrl + b ,工作流程就是这个

  1. vim窗格中输入tmux的复制模式模式 Ctrl + b [
  2. 使用 Ctrl + space
  3. 突出显示要复制的文本
  4. 选择完成后,使用 Alt + w
  5. 将文本复制到tmux剪贴板
  6. 切换到tmux中的控制台窗格(两个窗格类似于 Ctrl + b 1
  7. 使用 Ctrl + b ]
  8. 将文本粘贴到shell提示符中

    您可以通过浏览手册或使用 Ctrl + b 在tmux中查看所有tmux shortcuts

    tslimevimuxvim-slime等插件可让您在tmux内与vim会话进行互动,例如发送部分文字

答案 1 :(得分:1)

以下适用于Fedora和vim7.3中的gnome-terminal。

  • 选择所需的文本,例如使用可视模式。
  • 按Ctrl-Shift-c
  • 然后输入ESC,然后输入:shell
  • 进入shell后按Ctrl-Shift-v

如果您在复制时也获取换行符,则在粘贴时将作为shell命令执行。

这样做的一个副作用是:通过执行:shell如果你有vim配置保存.swp文件,当前目录中会有一个,当你下次编辑原始文件时,你需要处理vim抱怨找到一个交换文件。