设为首页 收藏本站
查看: 382|回复: 0

[经验分享] VI编辑器使用总结

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-1 09:00:37 | 显示全部楼层 |阅读模式
文本编辑器主要分为两类:
全屏编辑器:vi、vim、nano
逐行读取编辑器:sed

VI—Visual Interface (可视化接口)
VIM—Visual Interface Improved(VI的增强版)

vi提供三种模式
编辑模式:键盘操作通常被解析为编辑命令;
输入模式:编辑文本,输入文字的模式;
末行模式:vim的内置的命令行接口,执行vim内置命令

模式间切换:
输入模式 --> 编辑模式:
ESC
编辑模式 --> 末行模式:
:
末行模式 --> 编辑模式:
ESC

打开文件:
vim  /PATH/FileName
vim +Num /PATH/FileName:打开后处于指定行的行首
vim + /PATH/FileName:打开文件后让光标直接处于文件末行的行首


从编辑模式进入输入模式:
i  #光标在当前位置进入文本编辑模式
I  #光标跳至行首并进入文本编辑模式
a  #光标后退一格并进入文本编辑模式
A  #光标退到行尾并进入文本编辑模式
o #在光标所在行的上一行下新起一行并进入文本编辑模式
O #在光标所在行的上一行新起一行并进入文本编辑模式
s  #删除光标所在字符并进入文本编辑模式
S/cc #删除光标所在行并进入文本编辑模式(对空白行不起作用)


光标控制:
0      #光标跳至行头
^      #光标跳至第一个非空白字符
$      #光标跳至行末
w      #光标跳至下一个词首
b      #光标跳至当前或上一个词首
e      #光标跳至当前或下一个词尾
W      #光标跳至以空格分割的下一个词首
B      #光标跳至以空格分割的上一个词首
E      #光标跳至以空格分割的下一个词尾
k      #光标跳至上行
j      #光标跳至下行
h      #光标向左移动
l      #光标向右移动
H      #光标移动到当页顶部行首
L      #光标跳至当页底部行首
Num+h     #光标向左移动N个字符
Num+l     #光标向右移动N个字符
Num+k     #光标向上移动N行
Num+j     #光标向下移动N行
gg        #光标跳至文件的首行
Num+gg    #光标跳至指定行
G        #光标跳至文件的末行(前面加数字则跳至指定行,例如 10G 跳至第10行)
Ctrl+g    #显示当前行
句子间移动:(     )
段落间移动:{     }


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


删除or剪切:
x         #删除/剪切一个字符
Num+x     #删除/剪切下n个字符
dd        #删除/剪切当前行
Num+dd    #删除/剪切后n行
db       #删除/剪切光标至上一个词首
dw       #删除/剪切光标至下一个词首(单个词)
Num+dw    #删除/剪切后n个词
dW       #删除/剪切至以空格分割的词尾
d0        #删除/剪切光标至行首
d$/D      #删除/剪切光标至行尾
d+h      #往光标左侧删除/剪切一个字符
d+l      #往光标右侧删除/剪切一个字符


复制or粘贴:
yy           #选定光标所在行复制
yw           #选定光标所在词复制
Num+yw #选定光标所在位置之后n个单词复制
y0     #选定光标所在位置到行首的部分复制
y$     #选定光标所在位置到行尾的部分复制
P      #粘贴在光标所在位置的左边,如复制整行则粘贴在光标的上方
p      #粘贴在光标所在位置的右边,如复制整行则粘贴在光标的下方


选择与替换:
v    #进入选择模式
V    #选择光标所在行
r    #替换一个字符
R    #连续替换字符
c    #删除后并进入编辑模式


取消操作:
u       #撤销上一个编辑操作
Ctrl+r  #重新返回操作
.       #重复此前的命令


窗口属性的定义:
set nu       #列出行号
set nonu     #去掉行号
set ai       #设定自动缩进
set noai     #关闭自动缩进
set ic       #查找时不区分大小写
set noic    #关闭查找时不区分大小写

显示对应的括号
set sm (show match)
set nosm

语法高亮:
syntax on
syntax off

搜索高亮:
set hlsearch
set nohlsearch


在末行模式命令:
w      #保存当前文件
q      #如果未对文件做改动则退出
q!     #放弃存储并退出
wq/x/ZZ(大写)  #保存当前文件并退出
e filename   #打开另一个文件并开始编辑
r filename   #读取另一个文件,把文件插入到光标处
r ! <命令>  #把命令的输出结果插入到当前文本中
e!    #撤销所有改动,重新编辑
sh    #打开一个shell
so   #读取<文件>,再执行<文件>里的命令
!     #执行某个命令


范围定界:
start,end:   起始行
10,20  从第10行到第20行
10,+9  从第10行向后走9行
.              #表示当前行
.,+Num   #表示当前行往后N行
.,$         #表示当前行至最后一行(文件尾部)
.,$-2       #表示当前行至倒数第3行
/PATTERN1/,/PATTERN12/: 匹配模式起始处为光标所在行,
%             #表示全文


查找替换:
/KEYWORD #搜索(n #搜索下一个;N  #搜索上一个)

/和@用意一样:
地址定界s/查找模式/替换为的内容/gi
地址定界s@查找模式@替换为的内容@gi
g: global  全局替换
i: ignore-case  忽略大小写
%s/xxx #全文搜索


同时打开多个文件:
vim -o FILE1 FILE2 #横屏编辑两个文件,按Ctrl+w 松开后按上或下跳转
vim -O FILE1 FILE2 #竖屏编辑两个文件,按Ctrl+w 松开后按上或下跳转
vim FILE1..FILE2...FILE3
多文件跳转:
:next
:prev
:first
:last


分割当前窗口:
ctrl+w->s 横屏
ctrl+w->v 竖屏


vim的配置文件:
全局:/etc/vimrc
个人:~/.vimrc  #如果没有此文件,需手动创建


实例1:
搜索前20行,把非#开头的行加上#号
1,30s/^[^#]/#&/g
wKiom1XkdIaycQhPAAG4a8AXojI861.jpg

//替换后结果可看到1-20行前非#开头的行已经加上#:
wKioL1XkdqXxTg39AAHU_XzE0uI643.jpg


实例2:
//搜索全文中/bin替换为/sbin
wKiom1XkdIbytGcGAAG5hNFv4-0858.jpg

//替换后的结果:
wKioL1XkdqaiHT1MAAHHoJZuzPQ978.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-108141-1-1.html 上篇帖子: 文件查找命令find 下篇帖子: Grep命令及正则表达式 编辑器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表