大家好,又见面了,我是你们的朋友全栈君。
Vim的保存、退出等基本命令(CentOS7 Vim7.4实用且详细版本)
-
-
- 测试环境VMware 12 Pro 下CentOS 7自带vim7.4
- 碎碎念(如果没有时间可以直接跳过该部分,直接看命令)
- 输入vim命令前都需要先按Esc!!切换到命令模式
- 一、vim的三种模式
- 二、vim的进入及命令语法
- 三、帮助命令
- 四、插入模式、光标移动、文件命令
-
- 1. 进入插入模式
- 2. 光标移动
- 3. 文件命令
- 五、命令模式与末行模式操作
-
- 1. 保存和退出
- 2. 删除命令
- 3. 复制、移动、跳转
- 4. 替换、查找字符
- 5. 撤销和重复
- 6. 其他命令
- 声明:以上教程参考了於岳老师的《Linux命令应用大词典》一书。
-
测试环境VMware 12 Pro 下CentOS 7自带vim7.4
今天第一次接触这个vim文本编辑器,拿到一个陌生的工具,我们想的当然是最短的时间掌握它的基本操作,体会到成就感。如果你跟我一样,那么这篇教程或许对你有所帮助。
碎碎念(如果没有时间可以直接跳过该部分,直接看命令)
Linux下一切皆文件,所以需要强大的文本编辑器,而vim就是Linux上一个功能强大且使用广泛的文本编辑器。它可以对文本进行创建、查找、替换、删除、复制和粘贴等操作,并且它只有命令没有菜单,这个跟Windows里面差别很大,所以一开始的观念要转换! 任何工具都应该是为人服务的,所以一开始不要整的太麻烦,会基本操作就可以了。 对于工具的各种命令,永远不是靠记忆,而是像查单词一样,掌握基本用法,需要时,用帮助命令学习该命令功能即可。
输入vim命令前都需要先按Esc!!切换到命令模式
一、vim的三种模式
- 正常模式——按Esc进入, 左下角显示文件名或为空 ,输入vim命令前都需要先按Esc!该模式下又分为命令模式操作和末行模式操作。
- 插入模式——按i进入, 左下角显示–INSERT–,这个是insert单词的第一个字母,这样好记,编辑文件时很常用。
- 可视模式—— 按v或V进入,左下角显示–VISUAL–阅读模式,暂时我是这么理解的…
二、vim的进入及命令语法
在Linux系统Shell提示符下输入vim和文件名称后,就进入vim编辑界面。若文件不存在则会新建一个文件,若存在则默认编辑该文件。
代码语言:javascript复制[jock@localhost ~]$ vim #通过vim命令进入vim编辑器,此时为命令模式,里面可以查看vim的版本、以及如何求助等信息
命令语法: vim [选项] [文件] vim [选项] 用vi替代vim也可以。命令中常见的各选项如下(具体用法还没有实际操作过,先列出几个):
代码语言:javascript复制 # 在文件末尾开始
-R # 只读模式
-b # 二进制模式
-e # Ex模式
<行数> # 从指定行开始
三、帮助命令
最先学会求助的方法
代码语言:javascript复制:help xxx # 显示xxx命令的帮助,一般有这个够用了
:help # 显示帮助文档,大致浏览即可
[jock@localhost ~]$ vimtutor # 查看官文教程,不过版本较老,不建议细看
四、插入模式、光标移动、文件命令
1. 进入插入模式
在shell中输入vim文件名默认进入的是命令模式,在命令模式无法输入数据,需要在命令模式下使用以下命令进入插入模式,从而实现在文件中输入数据。
代码语言:javascript复制i # 在当前位置插入
a # 在当前位置后插入
A # 在当前行尾插入
o # 在当前行之后插入一行
O # 在当前行之前插入一行
s # 删除光标位置的一个字符,然后进入插入模式
S # 删除光标所在的行,然后进入插入模式
2. 光标移动
使用上下左右箭头即可移动光标。其他命令如下:
代码语言:javascript复制h # 左移一个字符
l # 移一个字符,通常用w向右移动到下一个单词的第一个字母
j # 上移一个字符
k # 下移一个字符
#注意hljk前都可以在前面加上数字n,从而实现跨越的移动。比如5h,表示向左移动5个字符。
H # 使光标移动到屏幕的顶部,head
M # 使光标移动到屏幕的中间,middle
L # 使光标移动到屏幕的底部
# 还可以使用[PU] [PD]实现上下翻页
3. 文件命令
代码语言:javascript复制vim filename # 打开打个文件,若不存在则新建一个文件
vim file1 file2 file3... # 同时打开多个文件
:open file # 在vim窗口打开一个新文件
:split file # 在新窗口中打开文件
:bn # 切换到下一个文件
:bp # 切换到上一个文件
五、命令模式与末行模式操作
进入末行模式需要先按[Esc]键进入命令模式,再按冒号[:]则可以进入末行模式。
1. 保存和退出
代码语言:javascript复制:q! # 不保存文件,强制退出vim,若退出报错,直接用这个命令即可。
:q # 不保存文件,退出vim。
:wq # 保存文件,退出vim,w(write), q(quit)。
:wq! # 保存文件,并强制退出vim。
:w # 保存文件,但不退出vim。
:w filename # 将文件另存为filename。
:wq! filename # 将文件另存为filename,并强制退出vim。
:r filename # 打开另外一个已经存在的文件filename。
:e filename # 新建名为filename的文件。
:f filename # 把当前文件改名为filename文件。
:nw filename # 将第n行内容保存到文件filename中,n代表数字。
:n1,n2w filename # 将第n1行开始到n2行结束的内容保存到文件filename中,n1,n2代表数字。
:1,.w filename # 将第一行开始到光标当前位置的所有内容保存到文件filename中。
:.,$w filename # 将从光标开始位置到文件末尾的所有内容保存到文件filename中。
:/str/w filename # 将包含有str的行写到文件filename中,str代表字符。
:/str1/,/str2/w filename # 将包含有str1开始到str2结束的内容写入文件filename中,str1和str2代表字符。
:e! # 放弃所有修改,从上次保存文件开始再编辑命令历史
ZZ: # 保存退出
ZQ # 不保存退出
2. 删除命令
简单的删除跟word操作一样。
代码语言:javascript复制:d # 删除当前行。
:nd # 删除从当前行开始的n行,n代表数字
:n1,n2 d # 删除n1行开始到n2行结束的所有内容
dG # 删除从当前行开始到文件末尾的所有内容
:.,$d # 删除从当前行开始到文件末尾的所有内容
:/str1/,/str2/d # 删除从str1到str2之间的所有内容,str1、str2代表字符。
3. 复制、移动、跳转
代码语言:javascript复制:n1,n2 co n3 # 将n1和n2行之间的所有内容复制到n3行后面
:n1,n2 m n3 # 将n1和n2行之间的所有内容移动到n3行后面
:n # 跳转到第n行
4. 替换、查找字符
代码语言:javascript复制#替换
:s/str1/str2/ # 将光标所在行第一个字符str1替换为str2
:s/str1/str2/g # 将光标所在行所有的字符str1替换为str2
:n1,n2s/str1/str2/g # 将n1行到n2行中所有的字符str1替换为str2
:%/str1/str2/g # 将文件中所有的字符str1替换为str2
:.,$s/str1/str2/g # 将光标当前位置开始到文件结束的所有字符str1替换为str2
#查找
/关键字 # 先按[/]键,在输入想查找的字符,如果第一次查找的不是想要的,可以一直按[n]键会往后查找下一个关键字,按[N]反向查找。
?关键字 # 同/关键字
5. 撤销和重复
代码语言:javascript复制u # 撤销上一个操作,按多次[n]可以多次执行撤销
U # 取消所有操作
. # 再执行一次刚刚完成的操作,相当于恢复
6. 其他命令
代码语言:javascript复制:!command # 运行shell命令,command代表命令
:set number # 在文件中的每一行前面列出行号
:set nonumber # 取消在文件中的每一行前面列出行号
Ctrl g # 列出光标所在行行号
:set readonly # 设置文件为只读模式
声明:以上教程参考了於岳老师的《Linux命令应用大词典》一书。
后记:
我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。
2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。
如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技
,扫描下方二维码或者搜索每日学一技
关注。
这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172541.html原文链接:https://javaforall.cn