vi编辑器的使用

工作中经常用vi,所以统计整理了一下自己用得最多一些vi编辑器的快捷键。

常用的设置项

命令 作用
set nu 显示行号
set nonu 隐藏行号
set ts=4

将1个制表符的长度设为4

将缩进长度设为4

set sw=4   (shiftwidth)
set expandtab
syntax on  开启语法高亮
   

常用快捷键

复制
命令 作用
yy => p 复制光标所在行,p粘贴
nyy => p 复制包含光标以内的n行,p粘贴
yy =>np 将复制的内容粘贴n次
yw 复制光标所在的一个词(光标之后部分)
ynw 复制光标所在的之后n个词
yb 复制光标所在的一个词(光标之前的部分)
ynb 复制光标所在处的之前n个词
y^ 复制行首到光标之间的内容
y$ 复制光标所在处到行尾的内容
y1G 复制文档首部到光标所在处的内容
yG 复制光标处到文档尾部的内容
剪切
命令 作用
x 剪切光标所在的单个字符
nx 剪切包括光标所在及其后的n个字符
dw,de 剪切光标之后一个词(或者说是光标所在的word的后部分)
dnw,dne 剪切光标之后n个词
db 剪切光标前面一个词(或者说是光标所在的word的前部分)
dnb 剪切光标之前n个词
d$或者D或者C 剪切至行尾
d^ 剪切至行首
dd 剪切当前行,注意是剪切,而不是删除,之后可以使用p招贴
ndd 剪切包含本行在内的n行
dG 从光标所在处,删除至文档结尾处
dnG 删除从第n行到光标所在行的内容
v 进入visual视图
d => p 在visual视图模式下,利用方向键选中内容后,d表示剪切,然后p粘贴
   
粘贴
p 粘贴在光标之后
P 粘贴在光标之前
   
替换  
 r + char  将光标所在的字符替换为char
R 从光标处开始,持续替换,知道ESC退出替换
~ 命令模式下翻转光标所在的大小写,如果在visual模式下,则翻转所选中的内容的大小写
u 撤销
ctrl + r 反撤销
:s/old/new  将本行的第一个old替换为new,注意只替换本行的第一个old
:s/old/new/g 将本行的所有old替换为new,注意替换本行的所有old
:s/old/new/gc 将本行的所有old替换为new,每次替换前,先询问是否替换    c->confirm
:10,20s/old/new 将第10行到第20行之间的第一个old替换为new
:10,20s/old/new 将第10行到第20行之间所有的old都替换为new
   
查找
/keyword 向后查找keyword
 ?keyword  向前查找keyword    然后n查找下一个,N查找上一个
 :noh  取消查找后keyword的高亮状态
   
缩进
<< 向左缩进
>> 向右缩进
n<<或者n>> 向左或向右缩进n个tab
 shift + j  删除行末的换行(代码提交之前的压缩)
   
光标移动
 h  光标左移
 j  光标下移
 k  光标上移
l  光标右移
shift + h  光标移动到屏幕的第一行
shift + l  光标移动到屏幕的最后一行
   
加密
 vi -x a.txt  编辑a.txt之前设定密码或者输入密码,输入密码不对,看不到真实内容
   
文件切换
vi a.txt b.txt c.txt 同时编辑多个文件
:first  切换到第一个文件
:previous  切换到上一个文件
:next  切换到写一个文件
:last  切换到最后一个文件
   
文字大小
ctrl +  放大字体(注意是ctrl+shift+=)
ctrl -  减小字体
mac下对应  
command +  放大
command -  缩小
   
多栏多列窗口
vi -o a.txt b.txt 多窗口的方式打开a.txt,b.txt
:split a.txt 水平分出一栏,打开a.txt,呈上下两块
:vsplit a.txt 垂直分出一栏,打开a.txt,呈左右两块
ctrl + w(两下w) 光标切换到下栏(一次切换)
ctrl + w + h 光标切换到当前窗口的左边窗口
ctrl + w + j 光标切换到当前窗口的下边窗口
ctrl + w + k 光标切换到当前窗口的上边窗口
ctrl + w + l 光标切换到当前窗口的右边一窗口
ctrl + w + t 光标切换到最上面的窗口
ctrl + w + b 光标切换到最下面的窗口
:wall 保存所有做过修改的窗口的文件
:qall 退出所有保存过的文件
   
视野移动
zt 将光标所在行移到屏幕最上面
zz 将光标所在行移到屏幕中间
zb 将光标所在行移到屏幕最下面
   

 

原文地址:https://www.cnblogs.com/-beyond/p/8276674.html