#!/bin/sh
VAR=1
while ((VAR < 10))
do
echo "VAR1 is now $VAR"
((VAR = VAR +2))
done
echo "finish"
我得到以下奇怪的结果:
#!/bin/sh
#VAR=1
#while ((VAR < 10))
# do
# echo "VAR1 is now $VAR"
# ((VAR = VAR +2))
# done
# echo "finish"
#
哈希迹象(#)和选项卡已经出现。为什么?
#1 楼
原因有两个:自动插入注释
自动缩进
要在启用自动缩进的情况下粘贴到
vim
中,必须更改为通过键入以下内容来粘贴模式::set paste
然后您可以更改为插入模式并粘贴代码。粘贴完成后,键入:
:set nopaste
以关闭粘贴模式。由于这是常见且频繁的操作,因此
vim
提供了切换粘贴模式:set pastetoggle=<F2>
您可以将
F2
更改为所需的任何键,现在您可以打开并粘贴轻松关闭。要关闭注释的自动插入,可以将以下行添加到vimrc中:
augroup auto_comment
au!
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
augroup END
vim
还提供了一个粘贴寄存器,可用于从系统剪贴板粘贴文本。您可以根据系统使用"*p
或"+p
。在没有X11的系统(例如OSX或Windows)上,必须使用*
寄存器。在Linux等X11系统上,您可以同时使用两者。进一步阅读
访问系统剪贴板
如何将某些内容粘贴到剪贴板中的VIM
fakeclip
评论
我一直在使用Vim,却从不知道。非常感谢。
–卡哈
15年4月28日在19:06
大多数现代图形终端仿真器都支持一种称为“包围式粘贴模式”的功能。 Vim可以要求终端启用此模式,然后该模式将使用某些转义序列将粘贴的文本括起来。 Vim可以识别出这种情况,并在粘贴期间关闭环绕/缩进。长话短说:粘贴将“按预期工作”。我不是vim用户,但是快速的网络搜索一定会告诉您如何配置此模式。
– egmont
15年4月28日在19:10
@MichaelDurrant设置粘贴永远不要放在您的vimrc中。它禁用或重置了很多东西,包括插入模式映射,命令行映射,缩写,文本宽度,wrapmargin,自动缩进,smartindent,softtabstop,formatoptions,indentexpr等。 :h paste具有整个列表。大多数人会使用其中的某些或全部内容,并且想知道为什么忽略了这些设置。
–FDinoff
2015年4月29日在3:44
我通常使用:r!cat粘贴逐字记录。
–西蒙·里希特(Simon Richter)
15年4月29日在13:59
可能需要讨论与设置鼠标的交互,当单击鼠标进行粘贴时,设置鼠标可以自动进入和退出粘贴模式。
– Ben Voigt
15年4月29日在16:01
#2 楼
使用vim粘贴。您想要的是粘贴剪贴板缓冲区中的内容“ + p
这将选择
+
并将其粘贴到位。如果您使用的是Linux,
*
是X /中键单击缓冲区(最后选择的文本)。然后vim知道它是粘贴内容。
否则vim认为您已键入了粘贴并在粘贴的最后一直执行自己的自动缩进(在复制的缩进之上)。
作为此注意事项,它可以通过SSH进行操作,您需要为您要共享的剪贴板
-Y
有关更多详细信息,请参见
man ssh
。评论
这实际上是正确的答案恕我直言
– Kristoffer Sall-Storgaard
15年4月29日在6:56
看起来这仅适用于图形vim(gvim);在终端仿真器中运行的vim会将最后删除的文本粘贴为“ * p,而不是当前选择。
–Wurtel
2015年4月29日在7:18
我不使用gvim,仅使用终端vim。您的鼠标设置是什么?我的鼠标设置是c。不知道允许鼠标选择时它如何工作。设置鼠标?
– exussum
15年4月29日在7:28
还要检查vim --version se看看它是否在剪贴板支持下编译过+ xterm_clipboard应该在输出中
– exussum
2015年4月29日在7:31
@wurtel:也许您已使用未命名的字符串设置了剪贴板。
–cuonglm
2015年4月29日在9:10
#3 楼
插入选项卡的原因是您已打开自动缩进功能,并且可以在粘贴到终端之前通过关闭自动缩进(:set noai
)来禁用该行为。 注释行是通过自动注释生成的,可以通过将其关闭来禁用。
或者,您也可以使用拨动开关
:set paste
来获得所需的行为,并粘贴格式化的代码和:set nopaste
恢复正常行为。
评论
对于vi.stackexchange.com,这可能是一个更好的问题@EricRenouf为什么? (诚实的问题)
@qix我的想法是,这是关于vim如何工作的问题,这是* nix上常用的工具,但是* nix并不是使用vim的必需条件
@JaredBurrows我肯定希望能成功
您如何触发粘贴?用鼠标?