【vim 学习系列文章 18 -- 选中行前后增加两行】

请阅读【嵌入式开发学习必备专栏 之 Vim】


文章目录

    • 选中行前后增加两行
      • [1. 定义函数](#1. 定义函数)
      • [2. 创建快捷键映射](#2. 创建快捷键映射)
      • [3. 保存并重新加载 `.vimrc`](#3. 保存并重新加载 .vimrc)
      • 使用方法
    • 重新选中实现
      • [步骤 1: 定义函数](#步骤 1: 定义函数)
      • [步骤 2: 绑定快捷键](#步骤 2: 绑定快捷键)
      • [保存并重新加载 `.vimrc`](#保存并重新加载 .vimrc)
      • 使用方法

选中行前后增加两行

为了在 Vim 中实现这个功能,需要定义一个 Vimscript 函数,该函数能够在当前选中的行(Visual 模式下)的最前面一行和最后一行增加空白行。然后,可以为这个函数创建一个快捷键映射,以便在 Visual 模式下快速使用。

以下是如何步骤实现这个功能的详细说明:

1. 定义函数

打开 .vimrc 文件,然后添加以下函数定义:

vim 复制代码
function! AddLinesBeforeAndAfter()
    " 获取Visual模式选中的起始和结束行号
    let start_line = line("'<")
    let end_line = line("'>")
    " 在选中区域的最后一行后面插入一空白行
    call append(end_line, '')
    " 在选中区域的第一行前面插入一空白行
    " 注意:因为已经在末尾添加了一行,所以这里不需要调整 start_line
    call append(start_line - 1, '')
endfunction

2. 创建快捷键映射

在 .vimrc 文件中的函数定义下方,添加一个映射,以便在 Visual 模式下使用快捷键(比如 gaa)来调用这个函数:

vim 复制代码
vnoremap gaa :<C-u>call AddLinesBeforeAndAfter()<CR>

这行代码的作用是在 Visual 模式下,当按下 gaa 时,会调用之前定义的 AddLinesBeforeAndAfter 函数。

3. 保存并重新加载 .vimrc

在对 .vimrc 文件进行修改后,保存并退出。然后,需要重新加载 Vim 配置,以便更改生效。可以通过在 Vim 中执行命令 :source ~/.vimrc 来实现这一点,或者简单地重新启动 Vim。

使用方法

  1. 进入 Vim 并打开一个文件。
  2. 进入 Visual 模式(按 v 或者 V 选择多行)。
  3. 使用方向键选择多行文本。
  4. 按下 gaa(或者设置的其他快捷键),在选中行的最前面一行和最后一行增加空白行。
    这样,就能够在 Visual 模式下选中的行的最前面一行和最后一行快速添加空白行了。这个功能在编辑文件时,尤其是在编写代码时,可能会非常有用。

重新选中实现

还可以实现个函数 在选中行的最前面一行增加一行,在选中行的最后一行增加一行,然后再选中所有的行包含新增的两行:

要在 Vim 中实现这个功能,需要编写一个 Vim script 函数,该函数在选中行(Visual 模式下)的最前面和最后面各增加一行空行,然后重新选中原始选中的行以及新增的两行。接着,将这个函数绑定到一个快捷键上。

这里是如何做到的:

步骤 1: 定义函数

首先,打开你的 .vimrc 文件,在其中添加以下函数定义:

vim 复制代码
function! AddLinesAndReselect()
    " 获取Visual模式选中的起始和结束行号
    let start_line = line("'<")
    let end_line = line("'>")
    " 在选中区域之前和之后各添加一个空行
    call append(end_line, '')
    call append(start_line - 1, '')
    " 重新选中包括新增的两行在内的区域
    " 注意:因为在起始行前添加了一行,所以起始行和结束行都需要偏移
    let new_start_line = start_line - 1
    let new_end_line = end_line + 1
    " 使用 normal 命令进入 Visual 模式并选中新的区域
    execute "normal! " . new_start_line . "GV" . new_end_line . "G"
endfunction

步骤 2: 绑定快捷键

在 .vimrc 文件中的函数定义下方,添加一个映射,以便在 Visual 模式下使用快捷键(例如 gaa)来调用这个函数:

vim 复制代码
vnoremap gaa :<C-u>call AddLinesAndReselect()<CR>

保存并重新加载 .vimrc

在对 .vimrc 文件进行修改后,保存并退出。然后,你需要重新加载 Vim 配置,以便更改生效。你可以通过在 Vim 中执行命令 :source ~/.vimrc 来实现这一点,或者简单地重新启动 Vim。

使用方法

  1. 进入 Vim 并打开一个文件。
  2. 进入 Visual 模式(按 v 或者 V 选择多行)。
  3. 使用方向键选择多行文本。
  4. 按下 gaa(或你设置的其他快捷键),在选中行的最前面和最后面各增加一行空行,并重新选中这个新的区域。
    这个功能在编辑代码或文本时可以非常有用,特别是当你需要在一个代码块的前后添加空行,同时保持选中状态进行进一步编辑时。
相关推荐
tiankongdeyige2 小时前
游戏战斗系统学习第2篇:有限状态机 (FSM)
学习·游戏·typescript
an12321215 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
by209995 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
乌暮5 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
小雪崩6 小时前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
问天_观心7 小时前
大模型训练与推理优化(二)
人工智能·深度学习·学习·大模型·transformer
海海不掉头发8 小时前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops
传奇开心果编程9 小时前
【SwiftUI入门练中学】第7课 动画与手势:让界面更灵动
学习·macos·ui·ios·swiftui·swift
幼儿园蛋小黄9 小时前
SPI 多点触摸屏学习嵌入式总结
学习
dadaobusi9 小时前
学习:顶点着色器输出后,三角形为什么是四个分量
学习