VIM从入门指南

VIM从入门指南

本文整合了VIM基础操作、宏录制、vimPlus插件使用及VIM打造IDE的完整内容,适合从零开始的VIM学习者。


一、VIM基础:工作模式与基本操作

1.1 VIM与Vi的关系

VIM(Vi IMproved)是从Vi发展而来的文本编辑器,功能更强大。日常使用的vi命令实际上调用的就是VIM编辑器。

1.2 工作模式

VIM有三种主要工作模式:

模式进入方式用途
命令模式启动默认移动光标、复制粘贴、删除等
文本模式i/a/o等编辑文本内容
末行模式: / ?保存、退出、替换、搜索

1.3 命令模式常用操作

移动光标:

H - 前    J - 下    K - 上    L - 后
0 - 行首    $ - 行尾
gg - 文本首    G - 文本尾
nG - 跳转到第n行(如 500G 跳转到第500行)

删除操作:

x - 删除光标后的单个字符
X - 删除光标前的单个字符
dw - 删除单词(光标需在单词首字母)
D0 - 删除光标前的内容
D - 删除光标后的内容
dd - 删除光标所在行
ndd - 删除光标后的n行

复制粘贴:

yy - 复制所在行
nyy - 复制光标后的n行
p - 在光标下新建一行粘贴/在当前光标后粘贴
P - 在光标所在行粘贴/在当前光标前粘贴

撤销操作:

u - 撤销
Ctrl+u - 反撤销

查找:

/字符串 - 向下查找
n - 查找下一个
N - 查找上一个
# - 查找光标所在单词

1.4 文本模式

a - 在光标后插入
A - 在行尾插入
i - 在光标前插入
I - 在行首插入
o - 在下一行插入
O - 在上一行插入
s - 删除光标后字符并插入
S - 删除整行并插入

1.5 末行模式

:行号 - 跳转到指定行
:s/old/new/g - 替换当前行
:%s/old/new/g - 替换全文
:27,30s/old/new/g - 替换指定行范围
:!命令 - 执行外部命令

1.6 分屏操作

:sp - 水平分屏
:vsp - 垂直分屏
Ctrl+w+w - 切换分屏
:vertical res 数字 - 改变左右分屏比例
:res 数字 - 改变上下分屏比例

二、VIM原生高级功能

2.1 括号匹配跳转

% 可跳转到配对的括号(小括号、方括号、大括号),常用于查看 ifwhile 的范围。

2.2 万能方括号

[( - 移动到匹配的左括号
]) - 移动到匹配的右括号
[/ - 在注释之间移动
[# - 在编译预处理之间移动
[[ - 回到当前函数最开始的左大括号
[i - 查看变量声明
[Ctrl+i - 跳转到函数定义
[d - 查看宏名的定义

三、宏录制:自动化重复操作

3.1 什么是宏录制

在VIM中,所有重复性的输入工作都可以通过录制宏来完成。简单来说,就是录下你的操作,然后让VIM重复执行。

3.2 基本使用

录制宏:

  1. ESC 切换到普通模式
  2. q 键,再按一个字母(如 a,作为寄存器名)
  3. 屏幕下方显示 recording 字样
  4. 执行你的操作
  5. q 结束录制

查看宏:

:register a    " 查看寄存器a中的宏内容

执行宏:

@a    " 执行宏a一次
n@a   " 执行宏a n次

删除宏:

qaq           " 清空宏a
:let @a = ''  " 命令方式清空

3.3 实战示例

示例1:给每行行首加上注释 //

1. gg 来到首行
2. qa 开始录制
3. 0 来到行首
4. i 进入插入模式
5. 输入 //
6. ESC 退出插入模式
7. j 来到下一行
8. q 结束录制

执行 n@a 即可为n行添加注释。

示例2:给文本加上递增序号

1. 给第一行加上序号 "1."
2. 光标放在第二行,按 qa 开始录制
3. k 来到上一行
4. 0 来到行首
5. yf. 复制到点号
6. j 来到下一行
7. 0 来到行首
8. Shift+p 粘贴
9. 光标移到数字上,按 Ctrl+a 让数字加1
10. j 来到下一行
11. q 结束录制

四、VIM配置文件

配置文件路径:

  • 系统级:/etc/vim/vimrc
  • 用户级:~/.vimrc

常用配置:

set number        " 显示行号
set nowrap        " 不自动换行
set tabstop=4     " TAB键表示的空格数
set shiftwidth=4  " 缩进表示的空格数
set autoindent    " 智能自动缩进
set hlsearch      " 搜索高亮
set incsearch     " 实时匹配搜索

" F2清除屏幕高亮
nmap <f2> :noh<cr>
imap <f2> <esc><f2>a

五、使用ctags实现代码跳转

5.1 安装

sudo apt-get install ctags

5.2 生成tags文件

# 递归生成当前目录及子目录的tags
ctags -R

# 为C/C++项目生成完整tags
ctags -R --c++-kinds=+px --fields=+iaS --extra=+q
ctags -R --c-kinds=+px --fields=+iaS --extra=+q

# 生成系统函数tags
ctags --fields=+iaS --extra=+q -R -f ~/.vim/systags /usr/include /usr/local/include

5.3 使用方法

# 在.vimrc中添加
set tags=tags;
set autochdir
set tags+=~/.vim/systags

快捷键:

Ctrl + ]    " 跳转到定义
Ctrl + o    " 返回跳转前位置
Ctrl + t    " 返回
:ta name    " 跳转到标签
:tags       " 查看跳转历史
gd          " 定位局部变量

六、安装vimPlus打造IDE

6.1 环境准备

检查VIM版本:

vim --version

需要VIM 8.0及以上版本,且支持Python3:

vim --version | grep python
# 看到 +python3 表示支持

6.2 从源码编译VIM(如需要)

# 安装依赖
yum install ncurses-devel

# 下载源码
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master

# 配置
sudo ./configure --with-features=huge --enable-python3interp \
    --with-python-config-dir=/usr/lib64/python3.6/config-3.6m-x86_64-linux-gnu

# 编译安装
sudo make
sudo make install

# 配置PATH
export PATH=/usr/local/bin:$PATH

6.3 安装vimPlus

# 克隆仓库
git clone https://github.com/chxuan/vimplus.git ~/vimplus-master

# 安装
cd ~/vimplus-master
./install.sh

# 安装过程中选择 Python3 编译 YCM

6.4 vimPlus常用快捷键

快捷键功能
, + n打开资源管理器
, + T查看函数列表
, + u转到定义
gcc注释当前行
gc可视模式下注释选中部分
gcu撤销上次注释
=对齐代码(先在可视模式选中)
Ctrl+n/p切换标签页
Ctrl+w+w切换分屏

6.5 查看帮助

进入VIM后,在普通模式下按 , + h 打开帮助文档。


参考资源

内容概要:本文围绕“基于交流潮流的电力系统多元件N-k故障模型研究”展开,深入探讨了利用Matlab代码实现电力系统在发生多个关键元件同时故障(即N-k故障)情况下的交流潮流计算与故障分析方法。该模型不仅考虑了传统潮流方程的非线性特性,还引入了故障约束条件,能够精确模拟复杂多样的故障场景,如短路、断线等,进而评估电网在极端运行条件下的稳态与动态行为。研究通过构建典型电力系统算例,验证了所提模型在故障筛选、脆弱性识别及系统恢复策略制定方面的有效性,为电力系统安全评估、风险预警和防御体系构建提供了坚实的理论依据和技术支撑。此外,模型具备良好的扩展性,可进一步应用于连锁故障传播分析、恶意攻击模拟等高级安全分析领域。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力的高校研究生、科研院所研究人员以及电力公司从事电网规划、运行与安全管理的技术人员,特别适用于开展电力系统安全稳定、可靠性评估与应急响应机制研究的专业人士。; 使用场景及目标:①开展电力系统在多重故障条件下的交流潮流仿真,评估系统电压稳定性、线路过载风险及负荷损失程度;②识别电网中的关键薄弱环节与脆弱元件,支撑电网加固改造与防御资源配置;③用于科研项目中的故障场景建模与算法验证,或作为教学案例帮助学生理解复杂故障下的系统响应机制。; 阅读建议:此资源以Matlab代码为核心实现手段,建议读者结合理论推导与代码实现进行对照学习,重点关注故障建模过程中雅可比矩阵的修正方法、故障注入方式及收敛性处理策略,建议在仿真中逐步增加故障数量与复杂度,深入理解N-k故障对系统潮流分布的影响规律,并尝试将其拓展至含新能源接入的现代电力系统场景中进行验证与优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值