vim常用操作

0.目录

1.综述

1.1 三种模式

vim有三种模式:编辑模式、输入模式、末行模式。不同模式下按键意义不同。打开文件后,默认处于编辑模式。

1.2 使用vim打开文件

格式意义
vim file打开文件file,光标出现在第一行行首
vim # file打开文件file,光标出现在第#行的行首
vim /pattern file打开file,光标出现在第一个被正则表达式pattern的匹配到的行的行首

2.编辑模式下常用操作

2.1 退出

各指令意义
ZZ保存退出

2.2 光标跳转与翻屏

指令意义
w跳转至下一个单词的词首
b跳转至当前或前一个单词的词首
^跳转至行首第一个非空白字符
$跳转至行尾
#G跳转至第#行
gg跳转至第一行第一个字符
ctrl + f向文件尾部翻一屏
ctrl + b向文件首部翻一屏
ctrl + d向文件尾部翻半屏
ctrl + u向文件首部翻半屏

2.2 字符删除、替换:

命令意义
x删除光标所在处的字符
#x删除光标所在处和其后的共#个字符
xp交换光标所在处的字符和其后的字符的位置1
rCHAR把光标所在处的字符替换为CHAR字符

2.3 文本删除

可结合光标跳转字符实现范围删除。光标跳转操作很多,就不一一列出了。

指令意义
d$删除光标所在处到行尾的内容
d^删除光标所在处到行首的内容
dw删除光标所在处到下个单词词首的内容
dd删除光标所在行

文本修改:
指令“c”,用法同删除(d),不同在于删除后进入输入模式。

2.4 文本粘贴

删除的内容暂不会真正删除,会存在缓冲区中,可粘贴至其他位置。

按键意义
p(小写)若缓冲区中为整行数据,则粘贴至光标所在行下方一行;若缓冲区中为非整行,则粘贴在光标后方
P(大写)若缓冲区中为整行数据,则粘贴至光标所在行上方一行;若缓冲区中为非整行,则粘贴在光标前方

2.5 文本复制

类似于删除指令“d”的用法,复制指令为“y”。光标跳转操作很多,就不一一列出了。

按键意义
y$复制光标所在处到行尾的内容
y^复制光标所在处到行首的内容
yy复制光标所在行

2.6 可视化模式

类似于windows下鼠标拖动选中文本。

按键意义
v拖动光标,选中光标经过的字符
V拖动光标,选中光标经过的行

选中后可使用上述的“d”、“y”等进行删除、复制操作。

2.7 撤销操作

按键意义
u(表示undo)撤销之前的编辑操作,默认最多50步
ctrl + r恢复撤销的内容

2.8 文本查找

类似命令less中的查找,但这里的查找支持模式匹配。

按键意义
/PATTERN由光标所在处向文件尾部查找(查找后可使用n、N顺着或逆着查找方向查找下一个,同命令“less”)
?PATTERN由光标所在处向文件首部查找

2.9 重复执行操作

按键意义
.再次执行上一步的操作

2.10 三种模式切换

2.10.1 编辑模式与输入模式切换

以下均为由编辑模式切换至输入模式,只是光标位置不同。

按键意义
i(即insert)在光标位置前输入字符
I在光标所在行的行首输入字符
a(即append)在光标位置后输入字符
A在光标所在行的行尾输入字符
o在光标所在行下方新建一行输入字符
O在光标所在行上方新建一行输入字符

输入模式切换至编辑模式,使用“Esc”键

2.10.2 编辑模式与末行模式切换

编辑模式下,使用“:”按键,进入末行模式;“Esc”键转换为编辑模式

3.末行模式下常用操作

3.1 退出

按键意义
q退出,文件未改变时可用
q!不保存修改,强制退出
w保存修改。可使用“w file”表示把当前文件保存至file文件,当前文件内容视为未修改,相当于windows中的“另存为”
wq保存退出
x保存退出

3.2 地址定界:

用于选定文本范围。

按键意义
.表示当前行
#(“#”为数字,下同)指定第#行
#,#指定行范围,左边为起始行号,右边为结束行号
#,+#指定行范围,左边为起始行号,右边为由起始行开始,向后偏移的行数
“.,#”或“.,+#”类似地,也可使用当前行至某行;或由当前行开始,向后偏移的行数
$表示最后一行
%表示全文,同“1,$”
/PATTERN/选定由光标所在处开始到文件尾部2,第一次出现模式PATTERN的行3

3.3 文本编辑

3.3.1 删除、复制、另存、读入

地址定界后跟对应操作指令,即可对选定的范围进行操作(指令同编辑模式):

指令意义
d删除选定的文本
y复制选定的文本
c修改选定的文本(即删除指定内容后进入输入模式)
w file把选定的文本另存至文件file中
r file把文件file中的内容插入至当前文件。可在“r”前指定插入位置

3.3.2 查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

说明:

  • 要查找的内容
    • 可使用模式。查找到的内容即为符合指定模式的文本。
  • 替换为的内容
    • 显然,替换为的内容不能使用模式。
    • 如果“要查找的内容”中使用了模式并使用了分组符号“()”,则替换为的内容中可引用之,比如\1、\2等。
    • 若“要查找的内容”中没有使用分组,“替换为的内容”也可直接引用其匹配到的全部文本,使用符号“&”引用。
  • 修饰符

    字符意义
    i“要查找的内容”忽略大小写
    g表示进行全局查找替换。一行中如果匹配到多个符合查找内容的文本,均替换。默认情况则是仅替换每行第一个符合查找内容的文本。

注意:“要查找的内容”中若有“/”,则需注意转义。为避免这种不便,分隔符也可使用其他字符如“@”、“#”等。

显然,查找替换操作也可用于删除,把查到的内容替换为无即可。

4.vim的多文件、多窗口功能

4.1 打开多个文件

vim可同时打开多个文件,格式:vim file1 file2…
vim为全屏幕编辑器,所以其每次显示的只能是一个文件,可在末行模式下输入指令,在打开的多个文件间切换:

按键意义
next切换至下一个文件
previous切换至上一个文件
last切换至最后一个文件
first切换至第一个文件

多个文件的退出:

按键意义
wqall保存退出所有打开的文件
qall退出所有打开的文件
wall保存所有打开的文件

4.2 多窗口显示

同时打开多个文件时,也可使用窗口分割,将它们同时显示出来:

分割方式格式
水平分割窗口“vim -o file1 file2……”
垂直分割窗口“vim -O file1 file2……”

使用“ctrl + w”进行切换,之后使用方向键,可在各分割窗口间切换。

它也可以实现对单个文件切割为多窗口显示。打开文件后,使用按键“ctrl + w + s/v”,分别为水平和垂直分割4

5.定制vim的工作特性(各指令均在末行模式输入)

5.1 显示或取消行号显示

命令意义
set number(可简写为set nu)开启显示行号
set nonumber(可简写为set nonu)关闭显示行号

5.2 自动缩进

命令意义
set ai(意思是auto indent)开启自动缩进
set noai关闭自动缩进

5.3 搜索结果高亮显示

在某文件中进行搜索操作后,搜索结果默认是高亮显示,就算关了该文件再打开,上次搜索结果也还是高亮。为避免这个麻烦,可使用命令开启或关闭高亮显示:

命令意义
set hlsearch(意思是high light search)开启搜索结果高亮
set nohlsearch关闭搜索结果高亮

5.4 语法高亮

命令意义
syntax on开启语法高亮
syntax off关闭语法高亮

5.5 搜索时忽略字符大小写

若开启,则进行文本搜索或查找替换时,涉及搜索的操作均忽略文本大小写。

命令意义
set ic(意思是ingnore case)开启忽略大小写
set noic关闭忽略大小写

5.6 vim配置文件

末行模式下的设定,仅对当前vim进程有效。若要永久有效,则需编辑配置文件,分为全局和个人。个人配置文件仅对单个用户有效。

全局配置文件:/etc/vimrc
个人配置文件:~/.vimrc(这个文件或许不存在,需自行创建)

(完)


  1. 实际就是先用“x”删除,再用“p”粘贴。组合起来用可达到交换字符的效果。
  2. 注意,是从光标所在处开始,而非从第一行开始。
  3. 貌似不大好用。比如“/h/,$d”的意思是由光标所在行开始,找到第一个含有字符h的行,该行到最后一行的内容均删除。但实际发现并没有删除光标所在的行,且光标所在的行含有字符h,仅删除了它下方的所有行。
  4. 多窗口显示单个文件,可方便文件内容的前后对照。
内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值