如何在Vim中复制到剪贴板?

论坛 期权论坛     
选择匿名的用户   2021-6-2 17:39   353   0
<p> 是否可以直接从<a href="http://www.javaxxz.com/thread-368216-1-1.html">Vim</a>复制到剪贴板? <code>yy</code>只复制东西给Vim的内部缓冲区。 我想复制到操作系统的剪贴板。 在Vim中有没有这样的命令,或者你只能在Vim中猛拉东西? </p>
<hr>
<h3>#1楼</h3>
<p> 在vimrc文件中,您可以指定自动使用系统剪贴板进行复制和粘贴。 </p>
<p> 在Windows上设置: </p>
<pre class="blockcode"><code>set <a href="http://www.javaxxz.com/thread-380814-1-1.html">clipboard</a>&#61;unnamed
</code></pre>
<p> 在Linux上设置(vim 7.3.74&#43;): </p>
<pre class="blockcode"><code>set clipboard&#61;unnamedplus
</code></pre>
<p> 注意:您可能需要使用最新版本的Vim才能使用这些版本。 </p>
<p> <a href="https://stackoom.com/question/Gcex/%E5%A6%82%E4%BD%95%E5%9C%A8Vim%E4%B8%AD%E5%A4%8D%E5%88%B6%E5%88%B0%E5%89%AA%E8%B4%B4%E6%9D%BF">http://vim.wikia.com/wiki/Accessing_the_system_clipboard</a> </p>
<hr>
<h3>#2楼</h3>
<p> 在Mac <strong>OSX上</strong> </p>
<ul><li><p> 复制所选部分:直观地选择文本(在正常模式下键入<code>v</code>或<code>V</code> )并键入<code>:w !pbcopy</code> </p></li><li><p> 复制整个文件<code>:%w !pbcopy</code> </p></li><li><p> 从剪贴板粘贴<code>:r !pbpaste</code> </p></li></ul>
<p> 在<em>大多数</em> <strong>Linux</strong> Distros上,您可以替换: </p>
<ul><li> <code>pbcopy</code>上面<code>xclip -i -sel c</code>或<code>xsel -i -b</code> </li><li> <code>pbpaste</code>使用<code>xclip -o -sel -c</code> <code>xsel -o -b</code> <code>xclip -o -sel -c</code>或<code>xsel -o -b</code> <br> - <strong>注意:</strong> <em>如果您的发行版上没有预安装这些工具( <code>xsel</code>和<code>xclip</code> ),您可以在回购中找到它们</em> </li></ul>
<hr>
<h3>#3楼</h3>
<p> &#64;Jacob Dalton在评论中提到了这一点,但似乎没有人在答案中提到vim必须使用剪贴板支持编译,以便提供此处提到的任何建议。 默认情况下我没有在Mac OS X上配置我的方式,我不得不重建vim。 使用此命令查明是否有<code>vim --version | grep &#39;clipboard&#39;</code> <code>vim --version | grep &#39;clipboard&#39;</code> 。 <code>&#43;clipboard</code>意味着你很好,这里的建议对你<code>-clipboard</code> ,而<code>-clipboard</code>意味着你必须重新编译和重建vim。 </p>
<hr>
<h3>#4楼</h3>
<p> 我在.vimrc中写了一个简单的行来进行复制工作。 希望这有助于某人。 不幸的是,我的vim没有安装剪贴板支持,所以这些建议都不适合我。 基本上,将此行粘贴到.vimrc中: </p>
<pre class="blockcode"><code>map &lt;C-c&gt; y:e ~/clipsongzboard&lt;CR&gt;P:w !pbcopy&lt;CR&gt;&lt;CR&gt;:bdelete!&lt;CR&gt;
</code></pre>
<p> 如果您想阅读有关此功能的详细信息,可以在<a href="https://stackoom.com/question/Gcex/%E5%A6%82%E4%BD%95%E5%9C%A8Vim%E4%B8%AD%E5%A4%8D%E5%88%B6%E5%88%B0%E5%89%AA%E8%B4%B4%E6%9D%BF">我的博客</a>上阅读此内容 </p>
<hr>
<h3>#5楼</h3>
<p> 总结并让新手更容易, </p>
<p> 要复制当前行,请在命令模式下键入: </p>
<pre class="blockcode"><code>&#34;*yy
</code></pre>
<p> 要复制整个文件/缓冲区,请在命令模式下首先通过<code>gg</code>转到开头,然后键入 </p>
<pre class="blockcode"><code>&#34;*yG
</code></pre>
<p> 如上所述,这需要<code>&#43;clipboard</code> <code>vim --version</code> ,这表明剪贴板支持的可用性, <code>-clipboard</code>意味着没有。 </p>
<hr>
<h3>#6楼</h3>
<p> 如果您的vim恰好在没有<code>&#43;xterm_clipboard</code>选项的情况下进行编译,就像默认情况下在Debian中编译而我猜Ubuntu,您可以选择管道选择或整个缓冲区来处理桌面剪贴板的外部程序。 对于<code>xclip</code> (您可能需要先安装),命令将为<code>:w !xclip -sel clip</code> </p>
<hr>
<h3>#7楼</h3>
<p>我的解决方案是安装包含剪贴板选项的附加vim: </p>
<pre class="blockcode"><code>sudo apt-get install vim-gnome
</code></pre>
<hr>
<h3>#8楼</h3>
<p> 也许有人会发现它很有用。 我想保持独立于X剪贴板,并且仍然能够在两个运行的vims之间复制和粘贴一些文本。 这个小代码将所选文本保存在temp.txt文件中以进行复制。 将下面的代码放入.vimrc中。 使用CTRL-c CTRL-v完成工作。 </p>
<p> vnoremap:w!cp / dev / null~ / temp.txt &amp;&amp; cat&gt;/ temp.txt </p>
<p> noremap:r!cat~ / temp.txt </p>
<hr>
<h3>#9楼</h3>
<p> 对于某些国际键盘,您可能需要按<kbd>“</kbd> &#43; <kbd>空格</kbd>键才能获得<code>&#34;</code> 。 </p>
<p> 所以在这种情况下你必须按<kbd>“</kbd> <kbd>Space</kbd> <kbd>&#43;</kbd> <kbd>y</kbd>或<kbd>”</kbd> <kbd>Space</kbd> <kbd>*</kbd> <kbd>y</kbd> </p>
<hr>
<h3>#10楼</h3>
<ol><li> 将<code>set clipboard&#61;unnamed</code>放在你的<code>vimrc</code> 。 </li><li> 在<code>Visual</code>模式下选择要复制的内容(按v
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP