vim命令复制粘贴命令_linux编辑文件命令vim

2022-11-08 20:17:03 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

今天被vim的复制粘贴弄得很烦,它不像windows那样,每次复制会把以前的内容覆盖。所以有时粘贴出来的东西并不是你想要的。

在不同终端中,用vim打开的两个文件之间的复制粘贴

1. 用同一个终端,直接使用这个命令:

vim file1 file2

这样就可以直接用y和p复制粘贴了。

但是这样比较麻烦,需要在两个文件之间切换。

2. 之所以不能直接用y和p复制粘贴。是因为每个终端中的vim复制的内容存储在不同的地方。在这里我们将存储vim复制到的内容的地方叫做寄存器。

可以使用一下命令查看vim的寄存器的内容:

在vim的normal模式下:

:reg

这样就可以看到寄存器的名字及其存放的内容了。如下图所示:

其中,寄存器的名字都是以“开头的。如果想将 “/ 这个寄存器的内容粘贴到文件中,可以在normal模式下使用如下命令:

”/p

默认按下p粘贴的是 ”“ 这个寄存器的内容。

在这些寄存器中, ” 这个寄存器是全局的。也就是说,两文件中,其他寄存器的内容都可以不一样,但是 “ 这个寄存器的内容是一样的。所以,你可以使用以下命令将内容复制到 ” 这个寄存器中:

“ y

然后在另外一个文件中,使用如下命令粘贴;

” p

这样就可以了实现两个文件之间的复制粘贴了。另外,使用鼠标右键paste粘贴的内容也是 ” 这个寄存器的,可以说它就是系统粘贴板。

如果寄存器列表中没有 “ 这个寄存器,可能是没有安装vim的图形界面所致。

Debian/Ubuntu下可以通过安装vim-gnome解决,命令如下:

$ sudo apt-get install vim-gnome

3. 通过配置 ~/.vimrc 文件实现两个文件之间的复制粘贴。

把下面这段代码贴到你的.vimrc里面去,然后选择一段文本,用xw来copy,在另 外的终端上用xr来贴。原理非常简单,就是利用一个文件来作中转。

” transfer/read and write one block of text between vim sessions

” Usage:

” `from’ session:

” ma

” move to end-of-block

” xw

” `to’ session:

” move to where I want block inserted

” xr

if has(“unix”)

nmap xr :r $HOME/.vimxfer

nmap xw :’a,.w! $HOME/.vimxfer

vmap xr c:r $HOME/.vimxfer

vmap xw :w! $HOME/.vimxfer

else

nmap xr :r c:/.vimxfer

nmap xw :’a,.w! c:/.vimxfer

vmap xr c:r c:/.vimxfer

vmap xw :w! c:/.vimxfer

endif

参考文章:

http://www.cnblogs.com/end/archive/2012/06/01/2531147.html

http://blog.sina.com.cn/s/blog_66f64e510101bqib.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190759.html原文链接:https://javaforall.cn

0 人点赞