我在OSX中使用Vim遇到了一些麻烦:无论何时我在Vim和COMMAND + P之外复制粘贴文本,复制文本的几个字符都会被删除。
COPY:Function(){......
+ 20行
PASTE n(){.....
+ 20行)
我知道Vim有很多细节......我在Ubuntu设置上毫无困难地使用它。但我还不是很专业,我觉得这是mac用户会遇到的一个基本问题。但是,我正在浏览论坛并搜索它,我似乎无法找到答案。
非常感谢任何帮助。
编辑:我知道这是一个非常基本的问题,有人可能会问,如果他们不了解Vi插入模式的基础知识并且不喜欢运行Vimtutor。对我来说这不是问题;我实际上已经在Vim工作了一段时间,但是这个默认行为早就改变了(所以我从未注意到它)。在考虑插入模式如何工作的基础知识之前,我肯定会浪费很多时间,所以真的非常感谢你的真棒,及时的回复!我希望这个帖子对其他一些人来说很有用,他们可能不太可能从互联网上取下一些“样板”.vimrc,或者已经习惯了其他人配置的Vim ......因为Stack Overflow的意思不是向人们解释他们应该在10秒钟内从手册或其他内容中选择的东西。
答案 0 :(得分:7)
当您粘贴时,您似乎不在插入模式,因此Vim将文本解释为命令,直到一个字母(例如i
或o
)意外切换到插入模式。 [1]
您需要先进入插入模式(i
,同时考虑:set paste
和'pastetoggle'
选项; :help 'paste'
有一些背景信息。)
或(支持时),从Vim中访问剪贴板,例如通过"+p
(正常模式)或<C-R><C-R>+
(插入模式)。
由于只有基于终端的Vim版本存在区分键入和粘贴键的问题,切换到GUI GVIM(我认为在那里称为 MacVim )也可以避免这个问题。 / p>
[1] Vim将这个例子理解为:
Fu
:向后查找字符u
n
:下一个搜索匹配cti
:更改为下一个字符i
之前(当没有这样的字符时中止插入模式)o
:光标下方的新行并插入文字