vim编辑器的基本使用技巧

vim作为常用的编辑器,可配置vim特性
配置文件位置

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

vim的三种常见模式:

常见模式 作用
普通模式(命令模式) 默认模式,可以实现移动光标,复制YY,剪切DD,粘贴P文本
编辑模式(Insert模式) 在默认模式下,一般按a,i,o进入,用于修改文本
扩展命令模式(命令末行模式) 在默认模式下按:进入,可用于保存、退出等

三种模式的转换关系:
普通模式—(a,i,o,A,I,O)—>编辑模式—ESC—>普通模式
普通模式—:--->扩展命令模式—ESC、Enter—>普通模式

**

普通模式到编辑模式按键不同效果

**

按键 效果
a 在光标所在处后面输入
i 在光标所在处输入
o 在光标所在行的下方打开新行输入
A 在光标所在行末尾输入
I 在光标所在行首输入
O 在光标所在行的上方打开新行输入

扩展命令模式常用基本命令

命令 效果
w 存入磁盘
q 退出(未编辑过)
wq 写入并退出
wq! 强制写入并退出
q! 强制退出
r filename 读文件到当前文件中
w filename 将当前文件写入另一个文件中
!command 在不退出文本编辑的情况下执行命令,按Enter回到文本编辑
r!command 读入命令的输出结果

地址定界
格式:

:start_pos,end_pos CMD
cmd:
d:删除
y:复制
w file:将指定范围内的文字存入另一个文件
r file:将另一个文件内容插入到指定位置
格式 效果
# 具体第几行,例如光标跳转第3行,”:3“回车,光标跳转到第三行行首
m,n 从第m行开始到第m行结束,例如删除2至5行,”:2,5 d“
m,+# 从第m行开始往后m+#行,例如”:2,+3 d“表示删除2至5行
. 表示当前行
$ 表示最后一行
.,$-1 表示当前行到倒数第二行
% 全文,相当于1,$

举例:全局替换

:%s/要查找的内容/要替换的内容/修饰符
修饰符:
i:忽略大小写
g:全局替换
gc:全局替换,每次替换前询问
:%s/192.168.20.30/192.168.10.10/g

定制vim的工作特性

**显示行号(最常用)**
显示:set number 简写:set nu
取消显示:set nonumber 简写:set nonu

**忽略字符的大小写**
启用:set ignorecase 简写:set ic
不忽略:set noignorecase 简写:set noic

**自动缩进**
启用:set autoindent 简写:set ai
禁用:set noai

**复制保留(当前文本)格式**
启用:set paste 
禁用:set nopaste 

**显示Tab和换行符^I和$显示**    //可查看空白行使用的是空格或者Tab
启用:set list 
禁用:set nolist 

**高亮搜索**  //效果搜索过第二次打开文本编辑器还是亮的
启用:set hlsearch(默认)
禁用:set nohlsearch

**语法高亮**  //效果不同的语法显示颜色不同
启用:syntax on
禁用:syntax off

**文件格式**  //暂未测试过效果
启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写 :set ff=unix

**Tab使用空格代替**
启用:set expandtab 默认为8个空格代替tab
禁用:set noexpandtab
简写:set et

**Tab用指定空格的个数代替**  //(全局影响,Tab空格数改变全局改变;
配合expandtab使用,后续修改ts值不影响原先使用的tab空格。)
启用:set tabstop=# 指定#个空格代替tab
简写:set ts=#

**设置光标所在行的标识线**(实用) //在光标所在行下方有一条横线显示
启用:set cursorline 简写:set cul
禁用:set nocursorline 

**set帮助列表**
:set 或:set all

普通模式下的快捷按键

光标移动
H:左 J:上 K:下 L:右
#COMMAND 跳转到第一个对应的相同字符上

当前显示页面跳转
大写H:页首
大写M:页中
大写L:页底

zz:将当前光标所在行移到屏幕中间
zt:将当前光标所在行移到屏幕顶端
zb:将当前光标所在行移到屏幕尾部

行首行尾跳转
0:跳转到行首
^:跳转到行首非空行的首个字符
$:跳转到行尾

查找
/查找内容 从当前光标所在行向下查询
?查找内容 从当前光标所在行向上查询
n与命令同方向
N与命令反方向
替换命令
r 内容:替换光标所在位置的内容
R:进入到replace模式,替换光标所在位置的内容,直到Esc退出
撤销操作命令
u
删除/剪切命令
dd:删除一整行
#dd:删除光标所在行开始#行
d0:删除光标所在位置到行首的内容
d^:删除光标所在位置到非空行的内容
d$: 删除光标所在位置到行尾的内容
复制命令
yy:复制一整行
#yy:复制光标所在行开始#行
y0:复制光标所在位置到行首的内容
y^:复制光标所在位置到非空行的内容
y$:复制光标所在位置到行尾的内容
粘贴命令
p:复制内容为整行,则粘贴到光标所在行下方;非整行,粘贴到光标所在位置的后方
P:复制内容为整行,则粘贴到光标所在行上分;非整行,粘贴到光标所在位置的前方

猜你喜欢

转载自blog.csdn.net/weixin_50904580/article/details/109112704