如何增强vim的拖拽和粘贴,所以当我拖拽时,vim将内容写到一个文件中。当我粘贴时,它使用文件中的内容。我想有一个系统范围的文件,作为一个全局缓冲区。
上下文:我在远程服务器(通过ssh)上的不同tmux拆分中运行vim。我想无缝地复制和粘贴vims之间的tmux拆分。我尝试了一堆插件,但它们都不起作用,因此问题来了。
发布于 2017-08-27 01:35:46
我相信vim允许你这样做:
单击文件A
:wv中的某些内容,然后按enter
:rv,然后按enter
p粘贴(现在)全局剪贴板的内容
无论它们是否在不同的tmux窗格中运行,这应该可以在不同的vim会话中工作。
发布于 2018-01-14 22:51:05
您需要了解以下内容:
map-operator因为选择是一个运算符:挂起的运动commandreadfile()和r导致w或是命令,很好用,但对于scripts
visualmode()来说不是用来获得选择的
共享文件是硬编码的/tmp/yank.txt
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>发布于 2018-09-17 21:21:05
yankring插件将美国队保存在一个文件中。然后,您可以粘贴之前通过p<C-n>或p<C-p>复制的任何文本。
如果这个不能做到这一点,你至少可以尝试对它进行反向工程以满足你的需求。
https://stackoverflow.com/questions/45826678
复制相似问题