【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(或你设置的其他快捷键),在选中行的最前面和最后面各增加一行空行,并重新选中这个新的区域。
    这个功能在编辑代码或文本时可以非常有用,特别是当你需要在一个代码块的前后添加空行,同时保持选中状态进行进一步编辑时。
相关推荐
蝴蝶不愿意1 小时前
《苍穹外卖》项目学习记录-Day7添加购物车
学习
我的青春不太冷2 小时前
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
运维·服务器·前端·学习
power-辰南3 小时前
人工智能学习(四)之机器学习基本概念
人工智能·学习·机器学习
涛ing3 小时前
【5. C++ 变量作用域及其深入探讨】
java·linux·c语言·开发语言·c++·ubuntu·vim
白嫖勇者4 小时前
C++基础学习
学习
LightspeedResearch5 小时前
冲刺一区!挑战7天完成一篇趋势性分析GBD DAY1-7
学习
Lyrig~6 小时前
【Convex Optimization Stanford】Lec5. Duality 对偶问题
学习·凸优化
字节全栈_kYu9 小时前
微信小程序视频点播在线视频学习系统 毕业设计 课程设计(1)首页_微信小程序视频功能设计流程图
学习·微信小程序·课程设计
想拿高薪的韭菜9 小时前
人工智能第2章-知识点与学习笔记
人工智能·笔记·学习
Future_yzx10 小时前
Java Web的发展史与SpringMVC入门学习(SpringMVC框架入门案例)
java·前端·学习