刚刚尝试使用 vim 将一些内容(在 CentOS 服务器上的 Git Bash 中)粘贴到文件中。
我刚刚打开文件并尝试使用shift+ insert,我注意到前半部分(大致)被截断了,但如果我将 vim 设置为插入模式并点击shift+,insert所有内容都会完美粘贴。
只是想知道这是为什么?
谢谢
答案1
+Shift和Insert"粘贴“进入终端的行为方式类似 - 它们模拟按键。
这是一个重要的区分,终端往往无法做出这一区分——您是在打字还是粘贴?笔记:一些终端支持“括号内的粘贴“模式,在@Josh的评论之后,我甚至遇到了一个vim 插件括号内粘贴终端您可能对此感兴趣。
您粘贴的数据将丢失,直到进入插入模式的第一个字符。您还可能会发现光标已移动,文件的其他部分已更改(例如:更改大小写/已删除/等)...
总之,如果您要粘贴想要插入到文件中的文本,请先进入插入模式。
尝试复制以下文本并将其粘贴到运行 Vim 的终端中(不是插入模式):
hello how are you
其结果与在键盘上键入相同字母相同:
在这种情况下,它会让您处于插入模式......
现在尝试退出插入模式 - Esc- 并粘贴以下内容
/are
n
这将搜索“are”:
现在粘贴这个:
:0
dG
噢不...一切都消失了!
您还会发现,如果启用了缩进,则将代码块粘贴到 vim(在插入模式下)中会缩进太多 - 它会自动缩进,然后您粘贴的代码将包含缩进。
def my_print(message):
print(message)
print('done...')
要解决此问题,请使用:set paste
和:set nopaste
命令