如何在vim中进入插入模式?

83
每当我进入vim时,99%的概率是我会进入插入模式并编辑文件。我能让vim始终在插入模式下启动吗?

19
真的吗?我想要进入插入模式的唯一时机是当我第一次打开一个空文件时。之后每次都更有可能需要先导航到文件的其他位置。你真的会在打开文件的第一行99%的时间里插入文本吗? - Wayne
2
@lwburk 我有使用基于GUI的编辑器的习惯...目前我使用向下箭头进行导航。 - Santosh Kumar
2
向下箭头在其他模式下也能使用。(实际上所有的四个箭头都能用)除非你做了一些奇怪的事情并禁用了它。 - lornix
13
除了其他文本编辑器(我挑战你给出另一个例子!)外,如果您打开一个文件,移动光标并开始输入,您输入的内容会出现在文件中。对于大多数没有接触过 vim 的人来说,这是一个很好的习惯(也省时)。然而,在 vim 中,这样做的结果有些随机 - 通常您输入的内容会让您移动一下位置,意外切换到插入模式,其余部分将被插入到某个随机的位置。有时您会删除一些内容。要弄清楚发生了什么需要花费一些时间,您可能会错过一些东西。 - drevicko
5
在撰写Git提交信息时,这种说法并不正确。 - Santosh Kumar
3
+1 这对于简化编写提交消息非常有用。在这种情况下,需要在文件前添加内容,其余行仅为信息性内容。 - Bengt
4个回答

69

你可以这样启动vim:

vim -c 'startinsert' 文件名

如果你愿意,你可以编辑.bashrc文件(如果你使用bash),并添加这行内容:

alias vim="vim -c 'startinsert'"


2
只有在删除startinsert周围的单引号后,这才对我起作用,否则vim会加载并抱怨找不到标记。这是针对Windows上的gvim。 - Ein
1
这是因为在Windows上单引号不起作用。 - Steve Bennett
3
我使用以下命令在 Git 提交时立即开始输入:git config --global core.editor "vim -c 'startinsert'" - Daniel Böhmer
你能在.vimrc文件中做到这个吗? - AK_
@DanielBöhmer 已经过去了几年,这正是我正在寻找的原因,而且它今天仍然有效。 - grettke

48

你可以使用vim +star,这甚至更短。注意:star:help :start的缩写。

如果你想默认开启这种行为,最好的选择是添加以下一行:

autocmd BufRead,BufNewFile * start

将代码添加到你的 ~/.vimrc 文件中。还可以查看 :h 'insertmode',其中概述了一种特殊选项,适用于这种类型的功能。但是,这可能会使退出插入模式变得困难,而这对于提高你的 Vim 技能至关重要。


4
我认为这应该是被接受的答案,因为它不依赖于bash的配置文件,这在使用非交互式、无登录Shell(-c)运行gvim时可能是相关的。 - Bengt
如果您想始终将其设置为标准,则应将“VimEnter”添加到事件列表中,这样即使您仅调用“vim”而没有任何参数,它仍然有效。 - Skillmon
说实话,这种方法获取OP所要求的内容是不好/有缺陷的,因为当你开始输入时它只会在插入模式下启动...或者至少在我尝试时是这样的。最好让程序在正常模式下启动,因为这样可以利用所有的搜索和导航功能。 - user5849816

24

你可以这么做,而且非常简单。

使用命令:startinsert进入插入模式。 (它是在正常模式下键入i的命令行模式对应物) 只需将其放入您的vimrc中,以便在启动时运行它。与其他一些建议不同,这不会干扰通过ESC返回到正常模式。


1
vim +star 也不会干扰回到正常模式。 - Christopher Bottoms
这与上面的autocmd hack的工作方式相同,但问题在于它们都不会明确告诉您底部处于插入模式,就像切换到插入模式时一样,因此我不建议将这两个东西放入.vimrc文件中。 - user5849816

12

此外,还有一种称为“简易模式”的模式,可以通过vim -yevim命令启动。它比仅从插入模式开始更为彻底:它具有与其他编辑器匹配的某些按键绑定,而普通模式下的命令则通过按下Ctrl+O而不是Esc来执行。因此,处于插入模式的情况比例外更为常见。


+1 我认为,从原帖中可以看出,这很可能是他想要的。基本上:他想要一些不是 Vim 的东西。或者至少,不那么像 Vim。 - sehe
3
哇,"简单模式"很奇怪。而且很难退出。 - Steve Bennett
我尝试了简易模式,但不知道如何退出。上面链接的博客文章现在是404。 - Taylor D. Edmiston
@TaylorEdmiston 是的,这篇文章已经消失了,我在 Wayback Machine 上也找不到它。但是,要退出,你可以输入 C-o : q RETURN - echristopherson
如何退出 Vim 的简易模式。求救!!1 - AK_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接