方法一:直接读取法(最快,适合复制整个 A 文件)
如果你想把文件 A 的全部内容都放到文件 B 中,不需要打开文件 A,直接在文件 B 中操作即可。
打开/编辑文件 B:
vim
vim B.txt
将光标移动到你想要插入的位置。
输入读取命令:
vim
:r path/to/A.txt
:r 是 read 的缩写。
路径可以是相对路径,也可以是绝对路径。
如果 A 文件就在当前目录下,直接 :r A.txt 即可。
回车,文件 A 的内容就会瞬间出现在光标下方。
方法二:寄存器法(适合复制部分内容)
如果你只需要 A 文件的某几行,或者两个文件都已经打开了。
在文件 A 中复制内容:
进入普通模式(按 Esc)。
使用 v(可视字符)、V(可视行)或 Ctrl+v(可视块)选中你要复制的内容。
按 y (yank)复制。
切换到文件 B:
如果你还没打开 B:输入 :e B.txt 并回车。
如果你已经打开了 B:输入 :b B.txt 或者 :ls 查看列表再 :b 数字 切换。
粘贴到文件 B:
将光标移动到目标位置。
按 p (粘贴到光标后)或 P (粘贴到光标前)。
方法三:多窗口/分屏法(适合频繁操作)
如果你需要一边看 A 文件,一边往 B 文件里粘贴,使用分屏是最直观的。
打开 Vim:
vim
vim A.txt
水平或垂直分屏打开 B:
:split B.txt (水平分屏)
:vsplit B.txt (垂直分屏)
切换窗口:
按 Ctrl + w 然后按 w (在窗口间循环切换)。
或者按 Ctrl + w 然后按方向键(h, j, k, l)跳转。
操作:
在 A 窗口选中复制(y)。
切换到 B 窗口粘贴(p)。
方法四:系统剪贴板法(跨 Vim 实例或与系统交互)
如果你开了两个独立的 Vim 窗口,或者想复制到浏览器等其他地方,需要使用系统剪贴板寄存器 +。
在文件 A 中:
选中内容后,按 "+y (双引号,加号,y)。
这表示复制到系统剪贴板。
在文件 B 中:
移动光标,按 "+p (双引号,加号,p)。
这表示从系统剪贴板粘贴。
注意:如果你的 Vim 报错提示 E354: Invalid register name,说明你的 Vim 版本不支持剪贴板功能。可以安装 vim-gtk 或 gvim,或者使用方法二。
💡 避坑指南:解决“粘贴乱缩进”问题
很多人从 A 文件复制代码粘贴到 B 文件时,会发现代码缩进错乱(每一行前面多了一堆 Tab 或空格)。这是因为 Vim 开启了自动缩进。
解决方法(妙招):
在粘贴之前,先执行以下命令:
vim
:set paste
此时 Vim 左下角会显示 -- INSERT (paste) --。在这个模式下再进行粘贴,Vim 会原样粘贴,不会自动添加缩进。
粘贴完成后,如果你想恢复自动缩进功能(方便写代码),再执行:
vim
:set nopaste
或者更快捷的方式,如果你有 paste 插件(如 vim-sleuth 或默认配置),通常在粘贴模式切换回普通模式时会自动复原,但手动 :set paste 是最保险的。
评论