Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim脚本缩进所选代码,在选择前后插入代码_Vim - Fatal编程技术网

Vim脚本缩进所选代码,在选择前后插入代码

Vim脚本缩进所选代码,在选择前后插入代码,vim,Vim,如何在Vim中编写一个动作脚本,该动作将获取所选行,缩进一次,跳转到开头并插入一些代码,然后跳转到结尾并插入一些代码 需要在开头和结尾插入的代码是静态的,不需要更改(至少在这一点上不需要更改)。以下关键顺序步骤应该可以工作 搜索起始行,例如/mysearch qa-开始重新编码a宏 Vxj,其中x是所需的行数 >>缩进 电子稳定控制系统 “以下关键顺序步骤应该有效 搜索起始行,例如/mysearch qa-开始重新编码a宏 Vxj,其中x是所需的行数 >>缩进 电子稳定控制系统 “假设开始文本是

如何在Vim中编写一个动作脚本,该动作将获取所选行,缩进一次,跳转到开头并插入一些代码,然后跳转到结尾并插入一些代码


需要在开头和结尾插入的代码是静态的,不需要更改(至少在这一点上不需要更改)。

以下关键顺序步骤应该可以工作

  • 搜索起始行,例如/mysearch
  • qa-开始重新编码
    a
  • Vxj,其中
    x
    是所需的行数
  • >>缩进
  • 电子稳定控制系统

  • “以下关键顺序步骤应该有效

  • 搜索起始行,例如/mysearch
  • qa-开始重新编码
    a
  • Vxj,其中
    x
    是所需的行数
  • >>缩进
  • 电子稳定控制系统

  • “假设开始文本是
    --
    ,结束文本是
    ***

    :execute "normal gv>i---\<Esc>`>a***" 
    
    :执行“正常gv>i--\`>a***”
    
    如果要将其记录到宏中,请说缓冲区“a”,然后从视觉选择开始,使用:

    qa开始记录到
    a

    >缩进
    i插入模式
    ---开始文本
    Esc正常模式
    `>上次视觉选择的结束

    ***结束文本
    Esc正常模式

    q结束录制

    假设开始文本是
    --
    ,结束文本是
    ***

    :execute "normal gv>i---\<Esc>`>a***" 
    
    :执行“正常gv>i--\`>a***”
    
    如果要将其记录到宏中,请说缓冲区“a”,然后从视觉选择开始,使用:

    qa开始记录到
    a

    >缩进
    i插入模式
    ---开始文本
    Esc正常模式
    `>上次视觉选择的结束

    ***结束文本
    Esc正常模式

    结束录音这是一个老问题,但我想我还是会有所贡献的。这就是你如何把一个段落和文字围绕它。这不完全是你想要的,但是如果你写一小段代码的话,这段代码会更整洁。从段落中的任意位置键入:

    >ip(缩进段)

    ki(跳到第一行之前,打开一个新的)

    在本段开头键入所需内容

    }(跳到段落最后一行之后)

    在段落末尾键入所需内容

    这里的警告是,正如所暗示的,这必须是一个“段落”(没有空行),如果段落后面没有新行,这将无法正常工作。为了适应这种情况,使用i而不是o,但是在插入的代码底部之前,您将是一个空行。如果你想解释这一点,你需要在vimscript中写一些东西

    下面是我用来设置宏
    t
    以执行开始/救援/结束(例如)块的所有笔划:

    qt>ipkibegin}orescueendq


    当然有更好的方法,但这是保持马可水平。

    这是一个老问题,但我想我还是会有所贡献的。这就是你如何把一个段落和文字围绕它。这不完全是你想要的,但是如果你写一小段代码的话,这段代码会更整洁。从段落中的任意位置键入:

    >ip(缩进段)

    ki(跳到第一行之前,打开一个新的)

    在本段开头键入所需内容

    }(跳到段落最后一行之后)

    在段落末尾键入所需内容

    这里的警告是,正如所暗示的,这必须是一个“段落”(没有空行),如果段落后面没有新行,这将无法正常工作。为了适应这种情况,使用i而不是o,但是在插入的代码底部之前,您将是一个空行。如果你想解释这一点,你需要在vimscript中写一些东西

    下面是我用来设置宏
    t
    以执行开始/救援/结束(例如)块的所有笔划:

    qt>ipkibegin}orescueendq


    当然还有更好的方法,但这是将其保持在马可水平。

    这也应该适用。在这个特殊的例子中,我希望将一些行包装在try/catch块中进行调试(我需要将错误重定向到stderr)。在这种情况下,我希望将一些行包装在try/catch块中进行调试(我需要将错误重定向到stderr)。