在光标前插入空格,然后在Vim中新添加的空格之前移动光标

时间:2015-02-24 23:48:11

标签: vim

我正在寻找一种更简单的方法来执行我在Vim中使用的常见编辑模式。

鉴于以下代码......

enter image description here

我想在现有条件之前为if子句添加一个新条件,如下所示:

enter image description here

我目前的做法是......

  1. 从普通模式开始,我将块光标移动到左括号后面的第一个字母“r”:

    enter image description here

  2. 然后按 i 进入插入模式,将插入光标放在左括号和字母“r”之间。

  3. 然后按空格键,在左括号和字母“r”之间插入一个空格:

    enter image description here

  4. 然后按一次键将光标移动到新添加的空格之前。

  5. 然后我快速地输入添加新条件site == "HQ" &&


  6. 问题

    每当我必须在两侧都没有空白区域的位置添加文本时,我必须经历这种编辑模式。为什么?因为我发现分隔新文本更容易,我将从现有文本添加到右侧。

    例如,如果我在上面的第2步之后开始添加新的“if”条件(没有空格分隔),那么当我输入时,它看起来像这样:

    enter image description here

    在我打字的时候像这样一起刷新的话是令人不安的,它通常会让我失望。如果我最初添加空格(如上面的步骤),那么当我输入新信息时,我很少对我正在看的内容感到困惑:

    enter image description here

    但为了在上面的第4步中找到键,我必须将我的右手从“原位”移开,这几乎同样令我烦恼。或者,类似地,退出插入模式并重新进入插入模式,再次开始键入,光标位于新添加空间的左侧。


    摘要

    我想开始输入,因为在光标两侧以前没有空白区域的位置,插入光标右侧有一个空格。

    使用更少(或更简单)的击键或使用现有的Vim命令,是否有更简单的方法来完成我尝试做的事情?

2 个答案:

答案 0 :(得分:1)

实现所需内容的一种方法是创建一个进入插入模式并自动添加空间的键映射:

nnoremap {key} i<space><esc>i

您可以使用{key}所需的任何内容,因为我不知道什么是最适合您的vim配置。您可以使用的另一个映射是:

inoremap {key} <space><left>

最好{key}Ctrl-映射。

答案 1 :(得分:1)

好像你有多种选择:

  1. 以vim方式做到:i <esc>i。将esc映射到易于按压的大写锁定使其非常轻松
  2. 在Vim或系统范围内将alt-h映射到←。与上面的
  3. 相比,这节省了一次击键
  4. 执行自定义地图,例如nnoremap <c-n> i <esc>iinoremap <c-b> <space><left>