Vim 的“(插入)VISUAL”模式?

2023-12-27

The "(insert) VISUAL" mode can be entered by CTRL+O , v starting from insert mode. This enters visual mode, but is displayed as "(insert) VISUAL" from within vim, and pressing Esc from this mode brings you back to insert mode, not normal mode. The "(insert) VISUAL" mode is also entered by shifted arrowed keys from insert mode.

两个相关问题:

  1. There does not seem to be much documentation on this special mode. Is there an easy way to search for information about it? (edit: I'm aware of what CTRL+O normally does. The interaction with visual mode seems to be special. The first paragraph was the easiest way to refer to what this mode is in the first place, as I don't know of a searchable name for it.)

  2. 你怎么写vmap映射可靠吗?也就是说,是否有一种一致的方式来离开视觉模式并最终进入正常模式?或者始终处于插入模式?


In insert mode, <C-o>允许你执行normal无需离开模式命令insert模式。 Vim 尝试用以下方式表示新状态(insert)。既然你现在暂时处于normal模式,击中v让你进入visual模式,Vim 再次尝试用以下命令指示新状态(insert) VISUAL。 Vim 处于这种状态只是因为命令序列you正如其他人指出的那样,该行为已被记录下来。在这一点上,这是正常的并且是预期的<Esc>让你回到insert模式,因为那是您的原始模式。

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

正确的用法是:

  1. 做事normal mode
  2. enter insert“插入”某些东西的模式
  3. exit insert返回模式normal mode
  4. 做更多的事情normal mode
  5. enter visual mode
  6. 做事visual mode
  7. exit visual返回模式normal mode
  8. etc.

基本上,你不应该超过一<Esc>远离normal mode.

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim 的“(插入)VISUAL”模式? 的相关文章

  • 如何设置打开文件时默认展开?

    In my vimrc我已经把set foldmethod syntax启用方法折叠等 但是 我不喜欢每次打开文件时都会折叠整个文件的默认设置 有没有办法启用foldmethod 但是当我打开文件时文件是否展开了 set foldlevel
  • 在 Vim 中,选择、删除或注释掉大部分多屏幕文本的最佳方法是什么?

    在像 Eclipse 这样的 IDE 中选择延伸到多个屏幕的大量文本相当容易 因为您可以使用鼠标 但是最好的方法是什么 例如 选择并删除多屏幕文本块或写入例如三个大方法导出到另一个文件 然后在 Vim 中删除它们以进行测试 当通过 putt
  • 为什么使用 键取消搜索时 vim incsearch 会暂停?

    在 vim 中 如果你set incsearch然后它将滚动到当前搜索词的下一个匹配项 而无需移动光标 我经常用它来阅读一段代码而不用将光标移动到那里 因为我可以点击
  • 如何让 vim 很好地对齐三元 ?: 运算符?

    我喜欢使用三元 运算符编写代码 如下所示 std string result input empty createNewItem processInput input 我如何配置vim 以便在输入后按回车键createNewItem 缩进下
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • vim 的 @@ 变量是什么?

    我知道通过输入 我执行最后一个 命令 但谁能解释一下什么 是在下面的代码中 在 vim 帮助文件中找到 function CountSpaces type let sel save selection let reg save if a 0
  • 如何在 vim 中为 cscope 输出添加颜色?

    我使用的是 vim 7 4 vim 中的 cscope 输出全是白色 可以变得更加丰富多彩吗 我尝试了cecscope 它使用quickfix给vim带来颜色 但它的输出不适合小屏幕 使用笔记本电脑时它没有那么有用 那么还有其他方法可以为
  • 如何使用 system() 函数的第二个参数(输入)

    vim 的文档system函数对第二个参数是这样说的 当给出 input 时 该字符串将写入文件并作为标准输入传递给命令 我从中了解到的是 如果你system通话看起来像这样 call system node something js fi
  • MySQL 错误 1264:列的值超出范围

    As I SETMySQL 中的 cust fax 表如下所示 cust fax integer 10 NOT NULL 然后我插入这样的值 INSERT INTO database values 3172978990 但随后它说 错误 1
  • 在 vim 中设置文本宽度而不覆盖特定于文件类型的内容

    我希望 vim 中默认的文本宽度为 80 但如果特定文件类型有自己的文本宽度 特别是 gitcommit 其中 tw 72 我希望 vim 尊重该宽度 在我的 vimrc 中 我有以下行 set tw 80 我也尝试过 setlocal t
  • Vim 重复点(“.”)命令缓冲区?

    我真的很喜欢 YankRing 的行为 它让我可以访问我最近完成的几件事y固定或d已删除或c不假思索地被吊死了 然而 这样的补充功能对于 重复命令 最常见的是当我键入我真正想重复的内容时 然后按x清理一些东西 通常 可以通过视觉模式拉动我刚
  • 如何在 VIm 和终端中始终拥有相同的当前目录?

    我希望我的终端当前目录跟随我的 VIM 目录 Example 在终端中 gt pwd gt Users rege gt vim 然后在VIM中 cd Users rege project
  • 如何在 Vim 中使 shift+空格键向上翻页?

    我的 vimrc 中有一个条目 当我按空格键时 它会在视口中向下翻页 它看起来像这样 map
  • 如何使用另一个表中存在的列名创建表?

    我正在研究 SQL Server 2016 我想知道是否可以创建一个永久或临时表 其列名存在于另一个表中 请参阅下表 MAINTAGS 及其代码 我希望 DOB 作为我的第一栏 POB 作为第二栏 依此类推 目前我的 MAINTAGS 表中
  • VIM语法折叠:禁用折叠多行注释

    我在 vim 7 3 中使用 语法 折叠方法 在 vimrc中 set foldmethod syntax 当我打开 Test cpp 时 包含 A function with a multi line comment This takes
  • Vim:垂直选项卡列表可以吗?

    是否可以让 vim 的选项卡列表垂直显示在编辑器的左侧 这确实很有帮助 但我还没有找到任何可以做到这一点的插件 我对谷歌很烂吗 我同意兰迪关于选项卡使用的观点 但前段时间我也在寻找在 gvim 中添加垂直制表符的可能性 为此 您必须修改源
  • 如何中断一个花费太多时间的 Vim 命令?

    有时 Vim 命令需要花费太多时间来执行 典型示例 gf通过网络发送具有巨大路径的命令 最多可能需要 30 秒才能结束 我想在执行过程中中断它 有没有办法取消命令执行并返回到正常模式 无需杀死 Vim 并重新启动 您可以中断它发送 SIGI
  • Vim:无法让病原体加载包

    我在 Stackoverflow 和 github 等上阅读了有关此问题的其他五个问题 但一直无法解决这个问题 此时我完全迷失了 我使用的是 Ubuntu 11 10 和 Vim 7 3 这是我的 vimrc set nocp call p
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p

随机推荐