linux系统vim程序编译器,Linux学习:vim程序编辑器
本次记录vim这款文本编辑器的使用方法及它有哪些使用实例等。
基本概念
在Linux环境中,配置文件对整个系统来说具有举足轻重的作用,而对于其都是以ASCII的纯文本形式存在,而利用文本编辑器就能够达到方便修改配置的目的。
vi是UNIX操作系统和UNIX Like操作系统中最通用的全屏幕纯文本编辑器。而Linux中的vi编辑器叫vim,它是vi的增强版(vi improved),与vi编辑器兼容,而且实现了很多增强功能。
vim的有哪些特点:
1. 所有的UNIX Like系统都会内置的文本编辑器,其他的文本编辑器则不一定会存在
2. 很多软件的编辑接口都会主动调用它
3. 具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
4. 程序简单,编辑速度相当快速
Vim的工作模式
Vim工作在三种模式下,分别是一般模式、编辑模式与命令模式。
w 一般模式(输入模式)
Vim打开一个文件就直接进入该模式(默认模式),在这个模式中,可以使用上下左右键移动光标,删除字符或删除整行,也可以复制、粘贴你的文件数据。
w 编辑模式
一般模式下无法编辑文件内容。通常在Linux中,按下“i, I, a, A, o, O, r, R”按键时,在界面的左下方会出现INSERT或REPLACE的字样,此时才可以进行编辑。
w命令模式(末行模式)
在一般模式当中,输入“:,/,?”中的任何一个,就可以将光标移动到当前屏幕最下面那一行。在此模式下,可以提供查找数据的操作,而读取、保存、批量替换字符、离开vim、显示行号等操作也都在此模式下进行。
Vim三种模式切换的方式
1. 一般模式 –> 编辑模式(Insert Mode or Replace Mode)
i a o r I A O R
2. 编辑模式 –>一般模式
【ESC】
3. 一般模式 –>命令模式
: ? /
4. 命令模式 –>一般模式
双击【ESC】
一般模式与编辑模式及命令模式可相互切换,但编辑模式与命令模式之间不可相互切换。
Vim通用操作说明
1. 打开vim
vim /PATH/TO/SOMEFILE
请注意,vim后面一定要加文件名,不管该文件名存在与否。
vim +# /PATH/TO/SOMEFILE
#代表行号,表示进入文件后,光标直接定位第几行。
vim +/PATTERN /PATH/TO/SOMEFILE
PATTERN指定为字符串,表示进入文件后,光标直接定位到PATTERN所在的行
2. 关闭vim
在命令模式下输入有关命令退出vim。
:q 退出
:q! 不保存退出
:wq 保存退出(同x, ZZ)
Vim一般模式下操作说明
w光标跳转
1. 字符间跳转
h: 光标向左移动一个字符
l: 光标向右移动一个字符
j: 光标向下移动一个字符
k: 光标向上移动一个字符
#COMMAND #代表数字
2. 单词间跳转
w: 光标所在位置的下一个单词词首
b: 光标所在位置的上一个单词词首
e: 光标所在位置的下一个单词词尾
#COMMAND #代表数字
3. 行内跳转
^: 跳转至行首的第一个非空白字符
0: 跳转至行首(功能HOME键)
$: 跳转至行尾(功能END键)
4. 行间移动
gg: 跳转到第一行(同1G)
G: 跳转到最后一行
n[Enter]: 当前光标所在处向下移动n行(n为数字)
#G
w编辑命令
1.删除命令:
x: 删除光标所在的字符(#x)
xp: 相邻字符对调
dd: 删除光标所在的整行(#dd)
dw、de、db等
2.复制命令:
yy: 复制光标所在的整行(#yy)
y1G、yG、y0等
3.粘贴命令:
1) 如果此复制或删除的内容不是一个完整行
p: 粘贴至当前光标所在处后面
P: 粘贴至当前光标所在处前面
2) 如果此复制的内容是完整行
p: 粘贴至当前光标所在行下方
P: 粘贴至当前光标所在行上方
4.改变命令:
cc: 删除光标所在的整行,并等待用户键入新内容
c$、c0、cw等
5.撤消命令:
u: 复原前一个操作(#u)
[Ctrl]+r: 重做上一个操作
. : 重复前一个操作
6.翻屏操作:
[Ctrl]+[f]: 向后一屏
[Ctrl]+[b]: 向前一屏
[Ctrl]+[d]: 向后半屏
[Ctrl]+[u]: 向前半屏
Vim编辑模式下操作说明
i: insert 从当前光标处前面插入
a: append 从当前光标所在下一字符处插入
o: new line 从当前光标所在下一行插入新行
r: replace 替换光标所在的字符一次
I: 从当前光标所在行的第一个非空字符处前面插入
A: 从当前光标所在行的最后一个字符处插入
O: 从当前光标所在的上一行插入新行
R: 一直替换光标所在的文字,直到按下[ESC]键为止
Vim命令模式下操作说明
1.地址定界范围
:start_pos,end_pos
#: 移动光标到当前第#行(可带+-号)
#,#: 从起始行起到结束行范围
#,+#:从指定的行开始向后移动#行结束
. : 当前行
$: 最后一行
%; 全文,相当于1,$
/pat1/: 定位到第一次被此模式所匹配的行(#,/pat1/)
/pat1/,/pat2/: 从第一次匹配pat1的行开始到第一次匹配pat2结束
后可跟编辑命令:d, y, w, r
2.查找
/PATTERN: 从当前光标所在位置向尾部进行查找
?PATTERN:从当前光标所在位置向首部进行查找
n: 与命令同方向
N:与命令反方向
3.查找替换
s: 在地址定界范围内完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容
\1, \2, ...
&: 引用“要查找的内容”匹配到的整个内容
修饰符:
i: 忽略大小写
g: 全局替换
/: 用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/
分隔符可替换为其它字符:例如@,#等
:n1,n2s/word1/word2/g 在第n1到n2行之间寻找word1这个字符串,并将该字符串替换为word2
4.保存、退出命令
:wq 将编辑的数据写入硬盘文件后退出(同x)
:wq! 若文件属性为“只读”时,强制写入且保存后退出
:q 退出vim
:q! 若曾修改过文件,又不想存储,使用“!”为强制离开不保存文件
ZZ 若文件没改动,则不保存离开。若文件被改动,则保存后离开
:w[filename] 将编辑的数据另存到一个文件中(n1,n2w[filename])
:r[filename] 在编辑的数据中,读入另一个文件的数据,即将此文件内容加到光标所在行后面
:! Command 暂时离开vim到命令行模式下执行command的显示结果
Vim多文件模式下操作说明
1.多个文件打开
Vim FILE1 FILE2 ……
:next 进入下一个文件
:first 进入第一个文件
:prev 进入上一个文件
:last 进入最后一个文件
:files 列出目前这个vim打开的所有文件
:wqall 保存所有文件退出
:q!all 不保存强制所有文件退出
2.多文件窗口分割
Vim –o|-O FILE1 FILE2 ……
-o: 水平分割
-O: 垂直分割
[Ctrl+w], 箭头键 指明文件方向
3.单文件窗口分割
[Ctrl+w], s: 水平分割
[Ctrl+w], v: 垂直分割
定制Vim的工作特性
1.行号
显示:set number
禁用:set nonumber
2.括号匹配
显示:set sm
禁用:set nosm
3.自动缩进
显示:set ai
禁用:set noai
4.高亮搜索
显示:set hlsearch
禁用:set nohlsearch
5.语法着色
显示:syntax on
禁用:syntax off
6.忽略字符大小写
显示:set ic
禁用:set noic
Vim特性设定的永久生效方式
全局配置文件:/etc/vimrc
用户个人的配置文件:~/.vimrc (默认不存在)
linux系统vim程序编译器,Linux学习:vim程序编辑器相关推荐
- alin的学习之路(Linux系统编程:三)(vim,gcc,库,gdb)
alin的学习之路(Linux系统编程:三)(vim,gcc,库,gdb) 1.vim的使用 vim有三种模式:命令模式,末行模式,编辑模式 光标的移动[命令模式] h 向左 ,j 向下,k 向上,l ...
- 嵌入式学习之linux系统编程----1 了解linux编程并且在ubuntu以及ARM上运行测试程序
1.何为linux系统编程? linux系统编程也称为linux下的高级编程,它介于应用层与驱动层之间. 一般来说分为三个层面,分别是:应用层(写一个qt程序或者c程序就属于是应用层面).驱动层(比如 ...
- 2021-04-04:linux第1天:linux系统的基础介绍及学习
1.Linux学习方向 linux运维工程师:是维护linux环境服务器的 linux嵌入式工程师:下面做驱动开发和linux嵌入式系统下面做开发 linux下面做开发项目:一般是写java程序,放在 ...
- Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)
在前面的<Linux系统-小倒腾之Linux DIY定制裁剪(附带简单网络功能)o_o(一)>博文中,我通过对一个Linux系统的裁剪,最终制作出来了一个带有网络功能的微型Linux系统; ...
- linux系统charp命令,操作系统 Linux系统
Linux操作系统 预备知识(Operating System): 1.GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台. 2.操作系统:管理计算机硬件和软件资 ...
- Linux系统磁状态检测,检测Linux硬件状态
计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...
- linux系统查看串口占用,Linux 系统串口信息查看
先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...
- linux系统有哪些版本 linux系统哪个版本好用
l inux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,RichardStallman创建了Free SoftwareFoundation(FSF)组织以及 ...
- linux系统怎么录屏? linux录屏软件的使用方法
摘自:https://www.jb51.net/LINUXjishu/576447.html linux系统怎么录屏? linux录屏软件的使用方法 发布时间:2017-09-11 13:06:23 ...
- 用u盘装linux系统分区怎么画,linux安装教程,U盘安装Linux详细步骤图解。
linux是免费开源的系统,经过多年的发展linux在应用方面已经有了很大的提升,很多工作都可以在linux下完成~如果你想要学习linux或是在linux下工作,那么需要把电脑安装成linux,如何 ...
最新文章
- Ubuntu更换阿里源以及由于没有公钥,无法验证下列签名错误
- python http接口_python实现http接口测试
- 华为鸿蒙15日上市,华为鸿蒙什么时候上市
- 关于C++,Java和Python中的随机数生成法
- 无法查找网络工作组计算机,XP系统弹出“无法查看工作组计算机”提示怎么办?...
- mysql 查询 in memory_In-Memory整体汇总
- FFmpeg(六) 播放视频之GLSurfaceView显示RGB数据
- java8与hibernate_Hibernate 使用java8 LocalDateTime 注意事项
- Lightroom Classic 教程,如何将照片从 Lightroom 移至Ps,在 Ps 中为照片应用滤镜?
- 易语言大漠插件制作脚本教程
- “用户体验不是把每个环节做到极致,而是在关键环节打动用户“这句话对吗?...
- 电脑删除快捷键还有哪些?学会了让工作效率更提升
- bilibili弹幕获取api
- 尚有缺者,方为完美。小人求全,智者求阙——《致温弟沅弟》曾国藩
- Java清空文件内容
- 使用Python发送邮件(QQ邮箱为例)
- Redis基础进阶--Sentinel 机制与用法(二)
- SVN Git GitHub Gitee GitLab区别
- ZigBee网络拓扑结构
- 手机使用计算机网络打印机,手机也可连接打印机 NETGEAR WNDR4700 无线打印