vim 超强编辑器

本文详细介绍Vim编辑器的基本操作、模式转换、光标跳转、编辑命令、撤销操作及翻屏技巧。涵盖可视化模式、文件模式、末行模式的使用,以及如何定制Vim的工作特性。

一、Vim编辑器的基本操作

1. 基本操作

  1. VIM:模式化的编辑器

  2. 基本模式

    • 编辑模式 (命令模式)

    • 输入模式 (插入模式)

    • 末行模式 (vim内置的命令行接口)

    • Note:打开的时候默认的模式是编辑模式

  3. 打开文件

    • # vim [OPTION]... FILE...

    • +#:打开文件后,直接让光标处于第#行的行首

    • +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

  4. 模式转换

  • 模式转换:

    • :q:退出

    • :!:强制退出,丢弃做出的修改;

    • :wq:保存退出;

    • :x:保存退出;

    • :w /PATH/TO/SOMEWHERE:当前编辑的文本保存到别的文件;

    • ZZ:保存退出;

    • ESC

    • ESC

    • iinsert,在光标所在处前面插入;

    • aappend,在光标所在处的后面插入;

    • oopen,在当前光标所在行的下一行打开新行,并转换为输入模式;

    • I:在当前光标所在行的行首输入;

    • A:在当前光标所在行的行尾输入;

    • O:在光标所在行的上一行打开一个新行,并转换为输入模式;

    • 编辑模式 – – > 输入模式

    • 输入模式 – – > 编辑模式

    • 编辑模式 – – > 末行模式

    • 末行模式 – – > 编辑模式

    • 关闭文件

  • 图示说明如下: (转载请注明出处)

2. 光标跳转:

  1. 字符间跳转:

    • h

    • l

    • k

    • j

    • h,j,k,l

    • #COMMAND:跳转由#指定的个数的字符;

  2. 单词间跳转:

    • w:跳转至下一个单词或后一个单词的词首

    • e:跳转至当前或下一个单词的词尾

    • b:跳转至当前或下一个单词的词首

    • #COMMAND:由#指定一次跳转的单词数;

  3. 行首行尾跳转:

    • ^:跳转至行首的第一个非空白字符;

    • 0:跳转至绝对的行首

    • $:跳转至绝对行尾

  4. 行间移动:

    • #G:跳转至由#指定行;

    • G:跳转至最后一行;

    • 1Ggg:跳转至第一行;

  5. 句间移动:

    • ):跳转至下一个句子;

    • (:跳转至上一个句子;

  6. 段落间移动:

    • }:跳转至下一段

    • {:跳转至上一段

3. vim的编辑命令:

  1. 字符编辑:

    • x:删除光标处的单个字符;

    • #x:删除光标处起始的#个字符;

    • xp:交换光标所在处的字符及其后面字符的位置;

  2. 替换命令:

    • rreplace

    • r:替换光标所在处的字符;(单字符替换)

  3. 删除命令:

    • #dd:向下删除#行;

    • d$:删除至绝对行尾

    • d^:删除至行首的第一个非空白字符

    • d0:删除至绝对行首

    • d:删除命令,可结合光标跳转字符,实现范围删除;

    • dd:删除光标所在行;

  4. 粘贴命令:

    • p,put,paste)

    • p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;

    • P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;

  5. 复制命令:

    • y$:复制至绝对行尾

    • y0:复制至绝对行首

    • y^:复制至行首的第一个非空白字符

    • yy:复制整行

    • #yy:复制多行;

    • yyank

    • y:复制,工作行行为相似于d命令;

  6. 改变命令:

    • 编辑模式 – -> 输入模式

    • cchange

    • c:修改

    • cc:删除并输入新内容

    • #cc:一次删除#行

二、其它编辑操作

1.可视化模式

  • v:按字符选定

  • V:按行选定

  • Note:经常结合编辑命令;

2. 撤销此前的编辑:

  • u(undo):撤销此前的操作;

    • #u:撤销指定次数的操作;

  • 撤销此前的撤销:

    • Ctrl+r

  • 重复前一个编辑操作:

    • .

三、翻屏操作

  • Ctrl+f:向文件尾部翻一屏;

  • Ctrl+b:向文件首部翻一屏;

  • Ctrl+d:向文件尾部翻半屏;

  • Ctrl+u:向文件首部翻半屏;

  • vim自带的练习教程

    • vimtutor

四、vim的末行模式

  • 内建的命令行接口

  • 特性

  • (1). 地址定界

    • 后跟一个编辑命令:

    • d:删除指定范围的内容

    • y:复制指定范围的内容

    • w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中;

    • r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容;

    • :start_pos,end_pos

    • #:具体的第#行,例如:2表示第2行;

    • #,#:从左侧#表示起始,到右侧#表示结束;

    • #,+#:从左侧#表示的行开始,加上右侧#表示的行数;

    • .当前行;

    • $:最后一行;

    • %:全文;相当于(1,$)

    • /pat1/,/pat2/:表示从第一次被pat1匹配到的行开始,一直到pat2匹配到的行结束

    • 使用方式

  • (2). 查找

    • n:与命令同方向;

    • N:与命令反方向;

    • /PATTERN:从当前光标所在处向文件尾部查找

    • ?PATTERN:从当前光标所在处向文件首部查找

  • (3). 查找并替换

    • s/要查找的内容/替换为的内容/修饰符

    • 查找替换中的分隔符/可替换为其它字符,例如:

    • i:忽略大小写

    • g:全局替换;默认情况下,没一行只替换第一次出现的内容;

    • 要查找的内容:可使用模式;

    • 替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;好可以使用"&"引用前面查找时查找到的整个内容;

    • 修饰符:

    • s@@@

    • s###

    • s:在末行模式下完成查找替换操作

六、vim的文件模式

1. 多文件模式

  • vim FILE1 FILE2 FILE3 …

    • :next 切换至下一个文本

    • :prev 切换至前一个文本

    • :first 切换至前一个文本

    • :last 切换至最后一个文本

    • :wall 保存所有

    • :qall 退出所有

2. 窗口分隔模式

  • vim -o|-O FILE1 FILE2 …

    • -o:水平分割

    • -O:垂直分割

    • 在窗口间切换Ctrl+w,Arrow

3. 单文件窗口分割:

  • Ctrl+w,s:split,水平分割

  • Ctrl+w,v:vertical,垂直分割

4. 定制vim的工作特性:

  • 配置文件:(永久有效)

    • 全局/etc/vimrc

    • 个人~/.vimrc   (默认不存在,需要自己创建)

  • 末行:(当前vim进程有效)

  • (1) 行号

    • 显示set number,简写为:set nu

    • 取消显示set nonumber,简写为:set nonu

  • (2) 括号匹配

    • 匹配set showmatch,简写为:set sm

    • 取消匹配set nosm

  • (3) 自动缩进

    • 开启set ai

    • 禁用set noai

  • (4) 高亮搜索

    • 开启set hlsearch

    • 禁用set nohlsearch

  • (5) 语法高亮

    • 开启syntax on

    • 禁用syntax off

  • (6) 忽略字符大小写

    • 启用set ic

    • 禁用set noic

5. 书籍推荐:《Vim-handbook-cn-72》

6. 获取帮助

  • 在末行模式下:help SUBJECT

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值