首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过共享文件进行vim复制和粘贴

通过共享文件进行vim复制和粘贴
EN

Stack Overflow用户
提问于 2017-08-23 04:46:16
回答 3查看 152关注 0票数 6

如何增强vim的拖拽和粘贴,所以当我拖拽时,vim将内容写到一个文件中。当我粘贴时,它使用文件中的内容。我想有一个系统范围的文件,作为一个全局缓冲区。

上下文:我在远程服务器(通过ssh)上的不同tmux拆分中运行vim。我想无缝地复制和粘贴vims之间的tmux拆分。我尝试了一堆插件,但它们都不起作用,因此问题来了。

EN

回答 3

Stack Overflow用户

发布于 2017-08-27 01:35:46

我相信vim允许你这样做:

单击文件A

  • :wv中的某些内容,然后按enter

  • 进入文件B

  • :rv,然后按enter

  • Hit p粘贴(现在)全局剪贴板

的内容

无论它们是否在不同的tmux窗格中运行,这应该可以在不同的vim会话中工作。

票数 1
EN

Stack Overflow用户

发布于 2018-01-14 22:51:05

您需要了解以下内容:

  • map-operator因为选择是一个运算符:挂起的运动command
  • readfile()r导致w

是命令,很好用,但对于scripts

  • visualmode()来说不是用来获得选择

共享文件是硬编码的/tmp/yank.txt

代码语言:javascript
运行
复制
function! Yank(type, ...)
  " Invoked from Visual mode, use gv command.
  if a:0
    silent exe "normal! gvy"
  elseif a:type == 'line'
    silent exe "normal! '[V']y"
  else
    silent exe "normal! `[v`]y"
  endif

  call writefile([@@], '/tmp/yank.txt')
endfunction


function! Paste(is_back)
  let @t = join(readfile('/tmp/yank.txt'), '')
  if a:is_back
    normal! "tP
  else
    normal! "tp
  endif
endfunction


nnoremap y :set opfunc=Yank<CR>g@
nmap Y Vy
vnoremap y :call Yank(visualmode(), 1)<CR>
vnoremap Y :call Yank(visualmode(), 1)<CR>


nnoremap p :call Paste(0)<CR>
nnoremap P :call Paste(1)<CR>
票数 1
EN

Stack Overflow用户

发布于 2018-09-17 21:21:05

yankring插件将美国队保存在一个文件中。然后,您可以粘贴之前通过p<C-n>p<C-p>复制的任何文本。

如果这个不能做到这一点,你至少可以尝试对它进行反向工程以满足你的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45826678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档