【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(或你设置的其他快捷键),在选中行的最前面和最后面各增加一行空行,并重新选中这个新的区域。
    这个功能在编辑代码或文本时可以非常有用,特别是当你需要在一个代码块的前后添加空行,同时保持选中状态进行进一步编辑时。
相关推荐
r i c k4 分钟前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦18 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
浅念-1 小时前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
ZH15455891311 小时前
Flutter for OpenHarmony Python学习助手实战:API接口开发的实现
python·学习·flutter
爱吃生蚝的于勒1 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
奶茶精Gaaa2 小时前
工具分享--F12使用技巧
学习
久邦科技2 小时前
奈飞工厂中文官网入口,影视在线观看|打不开|电脑版下载
学习
好好学习天天向上~~2 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化
非凡ghost3 小时前
PowerDirector安卓版(威力导演安卓版)
android·windows·学习·软件需求
代码游侠4 小时前
C语言核心概念复习——C语言基础阶段
linux·开发语言·c++·学习