gVIM “put” 让我抓狂,我该如何将“put” 放在一行的开头

gVIM “put” 让我抓狂,我该如何将“put” 放在一行的开头

我正在 Windows 上学习 gVIM,随着我慢慢学会更多的按键,我发现自己使用鼠标的次数越来越少了,这很好。

我有几个问题还没有弄清楚:

  1. 我经常进行复制和粘贴。因此,我使用“v”进入 VISUAL 模式,使用 k/j 上下移动并选择行,然后按“y”进行复制。

然后我转到要插入的行,并按“p”键进行粘贴,但该死的东西却粘贴在第一个字符之后。我无法再向左移动,所以我肯定在行首,因此我发现“p”行为在光标位置后粘贴 1 个字符非常烦人。

  1. 我经常在编辑模式和命令模式之间切换,我左手的小手指每隔几秒钟就要伸出来按“Esc”键(进入命令模式),这让我很痛苦。有没有一种更方便手指进入命令模式的方法?

答案1

“put”命令将寄存器文本光标,正如你所发现的。但如果你:help put,你会看到命令P文本光标:

                                                        *p* *put* *E353*
["x]p                   Put the text [from register x] after the cursor
                        [count] times.  {Vi: no count}

                                                        *P*
["x]P                   Put the text [from register x] before the cursor
                        [count] times.  {Vi: no count}

这也与寄存器中的整行类似地操作;p将文本放在光标后面的新行上,P将文本放在光标前面的新行上。

答案2

关于问题 2...或者实际上是您的第二个问题 1;):

这里您至少有两个选择。

  • 使用 CTRL-C 代替 ESC。这很方便,不需要任何配置。缺点是它的工作方式与 ESC 不完全相同:例如,如果您刚刚创建了一个缩写,然后按 CTRL-C,则缩写不会展开;而如果您使用 ESC,它就会展开。我认为大多数与此有关的东西都是更高级的,所以现在可能不太重要,但当你以后尝试学习新东西时,你可能会感到困惑,并想知道为什么它们对你不起作用。

  • 使用 CTRL-[ 而不是 ESC。我不确定这在 Windows 下是否有效,但至少在使用控制台模式 vim 的 Linux 上,它是 ESC 的完全替代品。不过这有点不方便,因为你需要用双手来做。我发现在大多数键盘上,按 ESC 实际上比组合这个更容易。但我从来没有真正尝试教我的手指快速按它。

  • 在 vimrc 或 gvimrc 中添加映射,将其他内容映射到 ESC。有些人使用快速连续的jk。我从来没有这样做过,部分原因是我更愿意避免在尝试使用没有设置此功能的系统时无助地挣扎。但如果你想学习如何做到这一点,应该很容易在谷歌上搜索到。

  • 通过操作系统将未使用的键重新映射到 ESC。此处的典型示例是将 CAPS LOCK 重新映射到 ESC。它位于主行,很大,除此之外几乎无用:它是一个容易攻击的目标。我不确定如何在 Windows 下执行此操作,或者是否可能。此外,如果您确实喜欢使用 Caps Lock 进行大写锁定,那么这显然不是一个好主意,因为它将停止以那种方式运行。此策略的一个好处是,它减轻了您每次意外按下 Caps Lock 时想知道为什么 vim 会陷入痉挛的可能性。与 vimrc 映射一样,缺点是当您尝试在另一个系统上使用 (g)vim 时,您可能会感到非常困惑。

答案3

我个人通过以下命令打开行号:set nu

然后我查看数字并计算要粘贴的行数...(比如说 5 行)...然后我将光标移动到要复制的顶行并输入 5Y...这将复制接下来的 5 行....然后将光标移动到您想要粘贴文本的位置并输入 p 以粘贴到光标下方或输入 P 以粘贴到光标上方。

希望这可以帮助。

相关内容