【问题标题】:Vim: How to insert in visual block mode?Vim:如何在可视块模式下插入?
【发布时间】:2012-09-06 03:30:25
【问题描述】:

在 Vim 中处于可视块模式(通过按 ctrl-V)时如何插入?

【问题讨论】:

标签: vim


【解决方案1】:

试试这个

选择文本块后,按Shift+i或大写I

小写 i 不起作用。

然后键入您想要的内容,最后将其应用于所有行,按 Esc 两次。




如果这不起作用...

检查您是否在您的 Vim 版本中启用了+visualextra

您可以通过输入:ver 并滚动浏览功能列表来执行此操作。 (您可能希望将其复制并粘贴到缓冲区中并进行增量搜索,因为格式很奇怪。)

启用它超出了这个问题的范围,但我相信你可以在某个地方找到它。

【讨论】:

  • 在复制文本之前,您还必须按 Escape 退出插入模式。
  • 有没有人见过这不起作用?我在 CentOS 上有一个未修改的 vim 设置。我按 ctrl+v,按 j 几次,我看到光标突出显示了几行的第一个字符。我按shift+i。光标移动到第一行的第一个字符,但我回到了正常模式。我知道这一点,因为如果我按“a”,它会将字符向右移动,并显示“-- INSERT --”。如果我键入几个字符并按转义键,它不会应用于其他行。
  • @TylerCollier 我在 digitalocean 上的 Ubuntu 14.04 上遇到了这个问题。如果您找到了解决方案,请发表评论。
  • @ZacharyBurt 随 Ubuntu 14.04 安装的默认 vim(安装为 vi)不包括 visualextra 功能,因此块插入在那里不起作用。 sudo apt-get install vim 带来了一个功能更全面的版本,在该版本上激活了visualextra。 @TylerCollier 这也可能在您的 CentOS 安装中出现同样的问题:检查 vim --version 的输出以查看已激活功能的完整列表。
  • @Zachary Burt,正如 Broandon Joyce 所说,也许您在将字符插入到第一个选定的行后忘记按 ESC,此操作才会生效。看到这个链接stackoverflow.com/questions/1676632/…
【解决方案2】:

您可能还有一个用例,您想删除一段文本并替换它。

这样

Hello World
Hello World

您可以在“W”之前可视块选择并点击Shift+i - 输入“Cool” - 点击ESC 然后删除“世界”通过视觉块选择。

或者,更酷的方法是just visual block在两行中选择“World”。为 change 键入 c。现在您处于insert 模式。插入你想要的东西并点击ESC。两者都通过较少的击键得到反映。

Hello Cool 
Hello Cool

【讨论】:

  • 最后一步对我有帮助,你必须点击ESC,然后所有标记的行都会显示你输入的字符。
  • 好东西,很有帮助
【解决方案3】:
  1. 按 ctrl 和 v // 开始选择
  2. 按 shift 和 i // 然后输入任何文本
  3. 按 esc esc // 按 esc 两次

【讨论】:

  • ctrl + v后,您可以按j快速选择当前位置下方的行,或按k快速选择当前位置上方的行。您还可以使用带有updown 错误的shift 键进行选择。
  • 在所有答案中,这是唯一对我有用的答案。我在使用 brew install 的 Mac 上
  • 多年来我一直在抱怨我无法在块选择中轻松insert(如change)。所以它是大写的i,我很惊讶。我一直在使用:normal iINPUT<CR> 在行首输入。非常感谢!
  • 我认为您不需要按两次 esc。如果您在 esc 后按任何内容,它将自动更新文本。如果没有,它会在半秒左右完成。
【解决方案4】:

如果您想在所选列之前或之后添加新文本:

  • 按 ctrl+v
  • 选择列
  • 按 shift+i
  • 写下你的文字
  • 按 esc
  • 按“jj”

【讨论】:

  • 谢谢你,jj 将更改传播到下面的所有行是我遗漏的最后一点!
  • jj 是个杀手!
  • 有人能解释一下jj吗?我无法找到任何关于它的东西,而且对我来说似乎没有必要。 ?
  • jj 有助于将您的更改传播到所有其他行...如果在您的情况下不需要它,可能是因为在较新版本的 VIM 中有所更改
  • 是的,我的版本也不需要它,但很高兴知道以防万一。
猜你喜欢
  • 2014-04-09
  • 1970-01-01
  • 2012-02-03
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2013-09-18
  • 2018-12-30
相关资源
最近更新 更多