vim编译器-常见用法

本文详细介绍了Vim编辑器的使用技巧,包括打开文件、模式切换、常用命令及快捷键。Vim有命令模式、插入模式和扩展命令模式,通过Esc键可以在模式间切换。文章列举了如移动光标、删除、复制、粘贴等操作,并讲解了如何进行查找、替换和多文件编辑。此外,还提到了Vim的配置文件和自定义工作特性,如显示行号、忽略大小写等。
摘要由CSDN通过智能技术生成

vim一个强大的文本编译器

vim 强大到只有你想不到的功能没有他没有的功能,这里整理了一些我平时上课、百度和实践中的一些笔记,希望能给大家带来帮助。

以下命令都可以到vimtutor练习(同时也可以查帮助)在这里插入图片描述

1.打开文件

#vim[OPTION]… FILE…

+#  // 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN  //让光标处于第一个被PATTERN匹配到的行的行首
-b file //二进制方式打开文件
-d file1 file2...  //比较多个文件
-m file  //只读打开文件
vim -e file或ex file  //直接进入ex模式

如果该文件存在,文件被打开并显示内容 如果该文件不存在,当编辑后第一次存盘时创建它

举例:

直接跳到文件的第12[root@sentos7~]#vim +12 /etc/passwd
同时打开两个文件
[root@sentos7data]#vim -d test test1
2 files to edit

  this is test                                |  this is test1               

2.vim模式

击键行为是依赖于vim的的“模式”
三种主要模式∶

1.命令(Normal)模式︰默认模式,移动光标,剪切/粘贴文本
2.插入(Insert)或编辑模式∶修改文本
3.扩展命令(extended command )模式︰保存,退出等

Esc键退出当前模式
Esc键Esc键总是返回到命令模式

模式转换
模式转换
命令模式- - > 插入模式

i   insert,在光标所在处输入
I   在当前光标所在行的行首输入
a   append,在光标所在处后面输入
A   在当前光标所在行的行尾输入
o   在当前光标所在行的下方打开一个新行
O   在当前光标所在行的上方打开一个新行

3.vim命令模式操作与快捷键

关闭文件

扩展命令模式:

:q   退出
:q!  强制退出,丢弃做出的修改
:wq  保存退出T
:X    保存退出

命令模式:

ZZ  保存退出
ZQ  不保存退出

扩展命令模式

: 进入Ex模式(创建一个命令提示符: 处于底部的屏幕左侧)
常见命令

:w   写(存)磁盘文件
:wq  写入并退出
:x   写入并退出
:q   退出
:q ! 不存盘退出,即使更改都将丢失
:r filename  读文件内容到当前文件中
:w filename  将当前文件内容写入另一个文件
:! command    执行命令(:!后面加想要执行的命令)
:r!command   读入命令的输出

举例与命令解析
让命令显示的文本写入编辑模式中
在这里插入图片描述
在这里插入图片描述
命令模式光标跳转
字符间跳转∶

 h: 左 
 l: 右  
 j: 下 
 k: 上
#COMMAND∶跳转由#指定的个数的字符 
例如:同时按3和k 就会往下跳转3个字母

单词间跳转∶

w : 下一个单词的词首
e : 当前或下一单词的词尾
b : 当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数
同理:同时按3和e 就会直接到第三个或下三个单词的词尾

当前页跳转∶

H: 页首
M: 页中间行
L: 页底
zt: 将光标所在当前行移到屏幕顶端
zz∶ 将光标所在当前行移到屏幕中间
zb: 将光标所在当前行移到屏幕底端

命令模式光标跳转行
首行尾跳转∶

^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾

行间移动:

#G 或者扩展命令模式下:# 跳转至由第#行
G  最后一行
1G, gg 第一行

句间移动:

) 下一句
( 上一句

段落间移动∶

} 下一段
{ 上一段

命令模式翻屏操作

Ctrl+f 向文件尾部翻一屏
Ctrl+ b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏

命令模式操作
字符编辑∶

x  删除光标处的字符
#x 删除光标处起始的#个字符
xp 交换光标所在处的字符及其后面字符的位置
~  转换大小写
J  删除当前行后的换行符

xp举例:比如一个错误单词
在这里插入图片描述光标在s上此时同时按x和p e字母就会和s字母换顺序
在这里插入图片描述
替换命令(r, replace)

r 替换光标所在处的字符
R 切换成REPLACE模式

命令模式操作删除命令∶

d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 删除到下一个单词的词首
de 删除到当前或下一单词的词尾
db 删除到当前一个单词的词首
dd:删除光标所在的行
#dd 多行删除
D∶ 从当前光标位置一直删除到行尾,等同d$

命令模式操作复制命令(y, yank) :

y  复制,行为相似于d命令
y$ 复制到行尾
y0 复制到行首
y^ 复制到非空行首
yw 复制到下一个单词的词首
ye:复制到当前或下一单词的词尾
yb:复制到当前一个单词的词首
yy∶复制行
#yy 复制多行
Y∶  复制整行

命令模式操作
粘贴命令(p, paste) :

p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面

命令模式操作
改变命令(c, change)

c: 修改后切换成插入模式

命令模式 - - >插入模式

以下命令和上面同理(一般很少会用到c)
c$
h
c^
c0
cb
ce
cw
#COMMAND
cc:删除当前行并输入新内容,相当于S
#cc
C∶删除当前光标到行尾,并切换成插入模式

命令模式

100iwang [ESC]粘贴“wang"100次

例如:在命令模式
在这里插入图片描述

然后输入100iyan
在这里插入图片描述

最后按ESC键
在这里插入图片描述

常见Command
在这里插入图片描述

y复制 
d 删除  
gU变大写  
gu变小写
例如: 0y$命令
0→先到行头
y →从这里开始拷贝
$→拷贝到本行最后一个字符

命令模式

我感觉以下几个用起来挺费手的
di”  光标在"  "之间,则删除"  "之间的内容
yi(  光标在()之间,则复制()之间的内容
vi[  光标在[]之间,则选中[]之间的内容
dtx  删除字符直到遇见光标之后的第一个x字符
ytx  复制字符直到遇见光标之后的第一个×字符

4.扩展命令模式

扩展命令模式∶地址定界

地址定界

:start_pos,end_pos
:#    具体第#行,例如2表示第2行
:#,#  从左侧#表示起始行,到右侧#表示结尾行
:#,+# 从左侧#表示的起始行,加上右侧#表示的行数 示例︰2,+3 表示2到5行
:. 当前行
:$  最后一行
:.,$-1 当前行到倒数第二行
:%  全文,相当于1,$
/pattern/ 匹配pattern的行
/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
#,/pat/  第#的匹配
/pat/,$  匹配最后行的
使用方式:后跟一个编辑命令
d
y
w file:将范围内的行另存至指定文件中
r file :在指定位置插入指定文件中的所有内容

命令模式:查找查找

/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
提示:以下命令是以上命令使用过后再使用
n:与命令同方向
N:与命令反方向

命令模式∶撤消更改

u  撤销最近的更改
#u 撤销之前多次更改
U  撤消光标落在这行后所有此行的更改
Ctrl - r 重做最后的“撤消”更改
 .     重复前一个操作
#. 重复前一个操作#次

查找并替换
在扩展命令模式下完成查找替换操作

格式1:s/要查找的内容/替换为的内容/修饰符(为当前行替换)
格式2:%s/要查找的内容/替换为的内容/修饰符(为全文替换)
格式3:'< ,'s/要查找的内容/替换为的内容/修饰符(为当前行)
如 : 替换2-6:2,6s/set/ste/
要查找的内容∶可使用模式
替换为的内容∶不能使用模式,但可以使用\112,..等后向引用符号;还可以使用“&”引 用前查找时查找到的整个内容

修饰符︰

i   忽略大小写
I   大小写敏感
g   全局替换,默认情况下,每一行只替换第一次出现
gc  全局替换,每次替换前询问

查找替换中的分隔符/可替换为其它字符

s@/etc@/var@g
s#/boot#/#i

在替换符#/@用其中一个就可以

举例1:

:s/set/ste/   //把当前行的set替换成ste
一般只会替换每一行的第一个,到后面加上g就可以替换整行了 例如 :s/set/ste/g

执行完后如:
在这里插入图片描述举例2:

把2到5的set替换成ste

输入命令 :2,5s/set/ste/

在这里插入图片描述回车结果:
在这里插入图片描述
举例3:
把全文的set替换成ste且忽略大小写

输入命令::%s/set/ste/i

在这里插入图片描述执行结果
在这里插入图片描述编辑二进制文件

以二进制方式打开文件 
 vim -b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制
 :%!xxd
插入模式下,编辑二进制文件
扩展命令模式下,利用xxd命令转换回二进制
:%!xxd -r
保存退出

使用多个"窗口"
多文件分割

vim -o|-O FILE1 FILE2 ...
-o:水平分割
-O:垂直分割
在窗口间切换:Ctrl+w, Arrow

举例:
在这里插入图片描述

单文件窗口分割

Ctrl+w,s : split,水平分割
Ctrl+w,v : vertical,垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
: wqall退出

定制vim的工作特性
配置文件:永久有效

全局:/etc/vimrc
个人: ~/.vimrc

扩展命令模式:当前vim进程有效

(1)行号
显示: set number,简写:set nu
取消显示 : set nonumber, 简写:set nonu
(2)忽略字符的大小写
启用: set ignorecase,简写:set ic不忽略: set noic
(3)自动缩进
启用: set autoindent,简写:set ai
禁用: set noai
:set ai  使得每次首行都对齐输入

在这里插入图片描述

添加行号如:
在这里插入图片描述
到此文件下写入set number 保存文件,就可以一直有行号了

vim .vimrc
(4)复制保留格式
启用: set paste禁用:set nopasteb
(5)显示Tab和换行符^I和$显示
启用: set list
禁用: set nolist
(6)高亮搜索
启用: set hlsearch
禁用: set nohlsearch
(7)语法高亮
启用: syntax on
禁用: syntax off
(8)文件格式
启用windows格式: set fileformat=dos
启用unix格式: set fileformat=unix
简写set ff=dos|unix
(9)设置文本宽度
set textwidth=65(vim only)
set wrapmargin=15
(10)设置光标所在行的标识线
启用: set cursorline,简写set cul
禁用:set nocursorline

例如:增加一行线
在这里插入图片描述
了解更多Set帮助

:help option-listt
set or :set al

vi/vim内置帮助

:help
:help topic
Use :q to exit help
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小琪的成长记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值