【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(或你设置的其他快捷键),在选中行的最前面和最后面各增加一行空行,并重新选中这个新的区域。
    这个功能在编辑代码或文本时可以非常有用,特别是当你需要在一个代码块的前后添加空行,同时保持选中状态进行进一步编辑时。
相关推荐
是孑然呀38 分钟前
【小记】word批量生成准考证
笔记·学习·excel
ll7788113 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
LuckyLay4 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
安和昂5 小时前
【iOS】SDWebImage源码学习
学习·ios
菜一头包5 小时前
c++ std库中的文件操作学习笔记
c++·笔记·学习
猴子请来的逗比4895 小时前
tomcat搭建内网论坛
学习·tomcat
belldeep5 小时前
如何阅读、学习 Git 核心源代码 ?
git·学习·源代码
Kazefuku5 小时前
python文件打包成exe文件
python·学习
江畔独步5 小时前
vim中的查找
linux·编辑器·vim
threelab6 小时前
08.webgl_buffergeometry_attributes_none ,three官方示例+编辑器+AI快速学习
学习