vi程序编辑器

vi的使用

按键说明

移动光标的方法

按键说明
h或者←光标向左移动一个字符
j 或者↓光标向下移动一个字符
k 或者 ↑光标向上移动一个字符
l 或者→光标向右移动一个字符
ctrl+f屏幕向下移动一页 相当于PageDown
crtl+b屏幕向上移动一页,相当于PageUp
ctrl+d屏幕向下移动半页
ctrl+u屏幕向上移动半页
+光标移动到非空格符的下一列
-光标移动到非空格符的上一列
n+spacen代表数字,按下数字键按空格键,光标将向右移动这一列的n个字符
0或者Home数字0,移动到这一列的最前面字符处
$或者End移动到这一列最后字符处
H光标移动到这个屏幕最上方那一列的第一个字符
M光标移动到这个屏幕中央那一列的第一个字符
L光标移动到这个屏幕最下方那一列的第一个字符
G光标移动到这个文件的最后一列
nGn为数字,移动到这个文件的第n列
gg移动到文件的第一列,相当于1G
n+Entern为数字,光标向下移动n列

搜索与取代

按键说明
/word向光标之下寻找名称为word的字符串
?word向光标之上寻找名称为word的字符串
n这个n指英文按键,代表重复前一个搜寻的动作
N这个N是因为按键,与n刚好相反,为反向的进行前一个搜寻工作
:n1,n2s/word1/word2/gn1,n2为数字,在第n1和n2列之间寻找word1,并将该字符串取代为word2
:1,$s/word1/word2/g在第一列和最后一列之间寻找word1,并将该字符串取代为word2
:1,$s/word1/word2/gc在第一列和最后一列之间寻找word1,并将该字符串取代为word2,且在取代之前显示提示符给用户确认

删除、复制、粘贴

按键说明
x,Xx为向后删除一个字符,X相当于向前删除一个字符
nx连续向后删除n个字符
dd删除光标所在一行
ndd删除光标所在的向下n行
d1G删除光标所在行到第一行的所有数据
dG删除光标所在行到最后一行的所有数据
d$删除光标所在处,到该列的最后一个字符
d0删除光标所在处,到该列的最前边一个字符
yy复制光标所在的那一列
nyy复制光标所在向下n列
y1G复制光标所在列到第一列的数据
yG复制光标所在列到最后一列的数据
y0复制光标所在那个字符到该列行首的所有数据
y$复制光标所在那个字符到该列行尾的所有数据
p,Pp为将已经复制的数据在光标下一列贴上,P为将已经复制的数据在光标的上一列贴上
J将光标所在列与下一列的数据结合为同一列
u复原前一个动作
ctrl+r重做上一个动作

存储离开指令

指令说明
:w将编辑的数据写入到硬盘文件中
:w!强制写入
:q离开vi
:q!强制离开不存储
:wq存储后离开
ZZ若改动过,存储后离开,若文件没有被改动,则不存储离开
:w [filename]将编辑的数据存储到另一个文件中
:r [filename]在编辑的数据中,读入两一个文件的内容,即将其他文件的内容加进来
:n1,n2 w [filename]将n1到n2的内容存储到另一个文件中
:! command暂时离开vi到指令列模式下执行command的显示结果
:set nu显示行号
:set nonu撤销行号

vim的暂存档、救援回复与开启时的警告信息

当正在使用vi编辑器对某文件进行编辑时,出现系统中断或者其他原因时,可以通过暂存档将文件找回来
在打开vim编辑器时,会在同目录下生成一个暂存档文件,记录对该文件的操作
例如:编辑/home/test.txt时,vim会主动创建/home/test.txt.swp的暂存档,对test.txt的操作都将被记录

如果存在暂存档文件,若想重新使用vim编辑器打开该文件时会出现如下状态:
在这里插入图片描述
出现这种情况可能有两种可能:

  1. 可能是因为有其他人或者程序同时在编辑这个文件
  2. 在前一个vim的环境下,可能因为某些原因导致了vim没有保存就中断了

如上图所示警告信息中,出现的可选状态,可以针对该暂存档进行相关处理:

  • [O]pen Read-Only:打开此文件成为只读档
  • (E)dit anyway:还是用正常的方式打开要编辑的文件,并不会载入暂存档的内容,这种情况容易出现两个使用者互相改变对方文件的情况
  • ®ecover:加载暂存档的内容,用于救回之前没有保存的工作,保存之后,还需要手动删除暂存档文件
  • (Q)uit:离开vim
  • (A)bort:离开vim

vim额外的功能

区块选择

举例:比如下图内容,想选中白色区域内容,可以使用vim的区块选择功能
在这里插入图片描述
区块选择的按键意义说明:

区块按键按键意义
v字符选择,会将光标经过的地方反白选择
V列选择,会将光标经过的地方反白选择
ctrl+v区块选择,可以用长方向的方式选择资料
y将反白的地方进行复制
d将反白的地方删除
p将刚刚复制的区块,在光标所在处贴上

多文件编辑

vim hosts.txt myhosts.txt可以同时打开hosts.txt 和myhosts.txt两个文件
可以在多个文件中实现复制粘贴等操作

按键按键意义
:n编辑下一个文件
:N编辑上一个文件
:files列出目前这个vim开启的所有文件

多窗口功能

实现分区窗口放入多个文件,指令模式下输入:sp {filename},filename可有可无,没有时则是在另一个窗口启动同一个文件
多窗口情况下的按键功能

按键按键意义
:sp [filename]开启新窗口
ctrl+w+j 或者ctrl+w+↓光标移动到下方的窗口
ctrl+w+k 或者ctrl+w+ ↑光标移动到上方的窗口
ctrl+w+q相当于:q结束离开

vim挑字补全功能

组合按钮补全内容
ctrl+x → ctrl+n通过目前正在编辑的这个文件的内容文字作为关键词,予以补全
ctrl+x → ctrl+f以当前目录内的文件名作为关键字,予以补全
ctrl+x → ctrl+o以扩展名作为语法补充,以vim内建的关键词,予以补全

vim环境设定与记录:~/.vimrc和 ~/.viminfo

  • vim会主动的将自己曾将做过的行为记录下来,记录动作的文件是~/.viminfo
  • 可以在vim指令模式下输入:set all查询所有设定项目
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值