1、跨窗格 (pane) 复制、粘贴

(1)源窗格 (pane) 中复制内容

进入复制模式:ctrl + b,[通过方向键将光标移动到要拷贝内容的起始位置开始拷贝:ctrl + 空格通过方向键将光标移动到要拷贝内容的结束位置拷贝文本内容:alt + w

(2)目标窗格 (pane) 中粘贴内容

切换到另一个窗格(pane):ctrl + b, 方向键选择目标窗格粘贴拷贝的内容:ctrl + b, ]

2、存在问题

在新窗格 (pane) 中粘贴的内容缩进出现错乱处于后续的行会依次比前面的行多处一次缩进

3、原因分析

终端中使用 Vim 编辑器,没有专门负责处理跨窗格复制、粘贴的服务Vim 只能通过将复制的内容放入存储键盘输入的缓存中来模拟跨窗格的复制和粘贴过程因此,Vim 会将复制的内容视为户输入的字符。这就会导致 Vim 将上一行的缩进视为初始位置,每遇到换号就会添加缩进,最终导致所有的缩进错乱

4、解决方法

(1) 在源窗格 (pane) 中,开启 paste 功能并复制要拷贝的内容

在命令模式下输入 :set paste参照上述 1(1) 步骤复制要拷贝的内容

(2) 在目标窗格 (pane) 中,开启 paste 功能并粘贴已拷贝的内容

在命令模式下也输入 :set paste参照上述 1(2) 步骤粘贴已拷贝的内容

(3) 拷贝完成后,关闭源窗格 (pane) 和目标窗格 (pane) 中 Vim 的 paste 功能

在目标窗格 (pane) 中,在命令模式下输入 :set nopaste切换回源窗格 (pane) 中,在命令模式下也输入 :set nopaste

5、其他方法

(PS:下面两种方法时参考链接中给出的高更小的解决方法,但在我的环境下试过好像没用,等抽时间重启一下机器,在看看是否可行吧,请酌情参考使用)

(1) 在 Vim 的配置 vimrc 文件的最后追加如下内容

# Ubuntu位置:/etc/vim/vimrc

set pastetoggle=

(2) 在 Vim 的配置 vimrc 文件的最后追加如下内容(可在状态栏显示 paste 状态的方法)

# Ubuntu位置:/etc/vim/vimrc,

nnoremap :set invpaste paste? imap :set invpaste paste? set pastetoggle=

参考

https://unix.stackexchange.com/questions/58763/copy-text-from-one-tmux-pane-to-another-using-vimhttps://www.cnblogs.com/dakewei/p/12389394.htmlhttps://ruby-china.org/topics/13307

Copyright © 2088 VR世界杯_世界杯举办 - weiqer.com All Rights Reserved.
友情链接