gws*_*gws 7 clipboard vim gnu-screen
我想用 vim 的命令拉取文本,并将其放在屏幕的剪贴板中,稍后可以通过 ^A] 将其粘贴到不同的应用程序中。vim 需要进行复制(不是屏幕的复制模式),因为我有更多的文本,一次无法在屏幕上显示。
其他问题的答案已经解决了这个问题,但它们主要依赖于使用 vim 的接口 + 和 * 到 X 剪贴板,这不适用于远程启动的应用程序或不存在 X 会话的情况下开始。我正在通过 PuTTY 工作,但这是偶然的,因为我只想在屏幕之间转移而不是 [必须] 到本地。
最好的事情是在 vim 中存在一个连接到屏幕的魔法缓冲区,但我会听取解决方法:)
如果一些额外的击键不会打扰你,我看不出有什么问题。
GNU Screen 的复制粘贴寄存器 ( .
) 可以直接从文件读取/写入文件:<C-a><
并且<C-a>>
是默认热键,/tmp/screen-exchange
是默认文件,但我更喜欢特定于用户的而不是系统范围的,所以我会设置一些东西像这样.screenrc
:
setenv BUFFERFILE "$HOME/.buffer"
bufferfile "$BUFFERFILE"
Run Code Online (Sandbox Code Playgroud)
Vim 没有开箱即用的这样的命令,但是创建它们并将它们映射到任何你想要的东西并不困难,例如<leader><
和<leader>>
分别:
if exists("$BUFFERFILE")
nnoremap <silent><leader>< :let @" = join(readfile($BUFFERFILE), "\n")<CR>
nnoremap <silent><leader>> :call writefile( split(@", "\n"), $BUFFERFILE )<CR>
endif
Run Code Online (Sandbox Code Playgroud)
但是,如果他们确实打扰您,事情会变得更加复杂 - 据了解,您必须:
在 GNU Screen 中重新映射两个快捷方式:虽然粘贴一个很明显:
bind ] eval readbuf "paste ."
Run Code Online (Sandbox Code Playgroud)
猛拉一个——<Return>
或者<Space>
在特殊的复制模式下对我来说是一个困难。
归档时间: |
|
查看次数: |
1469 次 |
最近记录: |