Vim 的 '(insert) VISUAL' 模式?

标签 vim insert

(insert) VISUAL ”模式可以通过 CTRL+O 进入,v 从插入模式开始。这将进入可视模式,但在 vim 中显示为“(insert) VISUAL”,在此模式下按 Esc 将使您返回到插入模式,而不是正常模式。 “(insert) VISUAL ”模式也可以通过从插入模式移动的箭头键进入。

两个相关问题:

  • 关于这种特殊模式的文档似乎并不多。有没有一种简单的方法可以搜索有关它的信息? (编辑:我知道 CTRL+O 通常会做什么。与视觉模式的交互似乎很特别。第一段是首先提到这种模式的最简单方法,因为我不知道的可搜索名称。)
  • 你怎么写vmap映射可靠吗?也就是说,是否有一种一致的方法可以离开视觉模式并最终进入正常模式?还是始终以插入模式结束?
  • 最佳答案

    在插入模式下,<C-o>允许您在不离开插入模式的情况下执行普通模式命令。 Vim 尝试用 (insert) 指示新状态.由于您现在暂时处于正常模式,点击 v将您置于可视模式,Vim 再次尝试用 (insert) VISUAL 指示新状态. Vim 处于这种状态只是因为您执行的命令序列,正如其他人指出的那样,该行为已记录在案。此时,<Esc>是正常的和预期的使您回到插入模式,因为那是您的原始模式。

    比我对 Vim 了解更深的人可能会告诉你是否有可靠的方法来结束 normal来自 insert -> (normal) -> visual但我会说整个想法对我来说听起来很可疑。

    正确用法是:

  • 在正常模式下做事
  • 进入插入模式以“插入”一些东西
  • 退出插入模式返回正常模式
  • 在正常模式下做更多的事情
  • 进入可视模式
  • 在可视模式下做事
  • 退出可视模式返回正常模式

  • 基本上,你不应该超过一个 <Esc>远离正常模式。

    我无法想象使用 v 的场景之后 <C-o>有任何意义。

    使用 Vim 的最佳和首选方法是尽可能远离插入模式。使用 <C-o>避免离开插入模式是一个非常糟糕的策略。我不知道您是否就是这样做的,但是,如果您这样做了,您应该尽快重新考虑这种方法。

    但是我怀疑您正在尝试做一些您认为我们不需要知道的其他事情。

    关于Vim 的 '(insert) VISUAL' 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16203524/

    相关文章:

    java - Vim 下 Java 变量名高亮显示

    html - 在 vim 中,我可以禁用 <i> 标签中包含的文本的突出显示吗?

    linux - 我想在linux中通过vim blowfish2加密来保护配置文件

    vim - 在 ViM 中禁用突出显示匹配的括号 : "let loaded_matchparen = 1" not working

    visual-studio-2010 - 插入查询(MS Access)中发生语法错误

    mysql - 在 MySQL 服务启动时运行 SQL 查询

    c++ - 将 c++11 正确添加到 Syntastic

    sql-server-2008 - SSIS 将 DataFlow 任务与变量而不是源数据库一起使用

    tsql - 如何在 T-SQL 中插入只有自动生成列的行?

    c++ - std::unordered_map 插入错误