linux 强大的编辑器之vi
vi编辑器是一个处理ASCII数据的文本工具。大多数linux发行版都已经默认安装了vi编辑器。vi是visual interface的缩写vim是 visual interface improved即增强版的vi,vim默认支持代码命令加亮,这样使得文本更易看懂。vi有两种配置文件一种是全局配置文件 /etc/vimrc,全局配置文件的设置对所有用户都生效。另一种是用户配置文件,这个配置文件需要自己手动去创建,如 touch ~/.vimrc,创建在用户家目录,并把它创建为隐藏文件,在这里的设置,只针对当前用户自己生效。
1、vi的模式和模式之间的转换
vi有三种模式,命令模式(command mode)也叫编辑模式、插入模式(Insert mode)和底行模式(last line mode)也叫末行模式,各个模式之间的关系如下图所示:
vi默认打开就是编辑模式,编辑模式是不能对文本进行任何写操作的。
(1)编辑模式---->输入模式:可以如下操作
直接键入 i: insert,实现在当前光标所在处转换为输入模式
I: 在当前光标所在行的行首转为输入模式
a:append,实现在当前光标所在处字符后面转换为输入模式
A:在当前光标所在行的行尾转为输入模式
o:实现在当前光标所在行的下方新建一个空白行并转换为输入模式
O:在当前光标所在行的上方新建一行,并转化为输入模式
(2)输入模式----->编辑模式:
按键盘的Esc键
(3)编辑模式----->末行模式
键入 :
(4)末行模式----->编辑模式
连续按两下Esc键
2、编辑模式进行的操作
(1)光标的跳转:
a)光标在字符间跳转
h:左 #h 向左侧跳#个字符
l:右
j:下
k:上
b)光标在单词间跳转
w:后一个单词的词首
e:跳至当前或下一个单词词尾
b:跳至当前或前一个单词词首
c)光标在句子间跳转
):下一句
(:前一句
d)光标在段落间跳转
}:下一段
{:前一段
e)光标在行间跳转:
1G,gg:跳到行首
G:行尾
#G:第n行,#表示行数
f)光标在行内跳转:
^:行首的第一个非空白字符
$:绝对行尾
0:绝对行首
(2)翻屏操作
ctrl+f:向文件尾部翻一屏相当于Pagedown操作
ctrl+b:向文件首部翻一屏相对于Pageup操作
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
(3)复制操作,也叫y(yank)操作
yy:表示复制光标所在行
#yy:表示复制包括光标所在行及以下#行,#表示数字
y$:表示复制光标所在处至行尾
y^:表示复制光标所在处至行首
(4)粘贴操作,也叫p(paste ,put)操作
复制的是整行:
p: 在当前光标所在行的下方粘贴;
P:在当前光标所在行的上方粘贴
复制的不是整行:
p: 在当前光标所在处字符的后方粘贴;
P:在当前光标所在处字符的前方粘贴;
(5)删除操作,(x,d)
x:删除光标后面的单个字符
#x:删除光标后面的#个字符,#表示数字
dw:删除光标所在的单词
db:删除光标所在处之前的单词
de:删除光标所在处之后的单词
d^:删除光标所在之前的所有字符单词
d$:删除光标所在之后的所有字符单词
dd:删除光标所在处的整行
#dd:删除包含光标处的下面几行,#表示数字
(6)撤销操作
如果对之前失误操作进行撤销可按u键,撤销之前的操作,默认可以撤回之前的50次操作。当你觉得之前的撤销操作也需要撤销,则按crtl+u键,对撤销进行撤销。
(7)查找操作,直接在编辑模式下输入/或者?,然后接你要查找的字符
/keyword: 从当前光标所在处向文件尾部查找
?keyword:从当前光标所在处向文件首部查找
n: 下一个,跟查找命令相同的方向
N:前一个,跟查找命令相反的方向
3、输入模式进行的操作
当在编辑模式下键入(i,I,a,A,o,O)后,文件下方会有-- INSERT -- 字样,表示现在处于输入模式,输入模式对输入的任何字符都会直接输入到文件中。
4、末行模式进行的操作
(1)保存退出的操作
:w 保存
:q 退出
:x 保存退出
:wall 所有的都保存,一般应用在同时打开多个页面
:qall 所有的都退出,一般应用在同时打开多个页面
:w! 强制保存
:q! 强制退出
:wq! 强制保存退出
:x! 强制保存退出
(2)删除的操作,在末行模式进行操作可以支持定界
语法格式 开始行,结束行d
:. 表示当前光标所在行
:1 表示第一行
:# 表示第#行,#表示数字
:$ 表示最尾行
:% 表示整个文本
:1,$d 删除第一行到最后一行
:.$d 删除当前光标直到最尾行
:%d 删除整个文本
:1,+3d 删除第一行和后面的三行,第一行也包括,所以是删除四行
(3)查找操作,查找操作和在编辑模式下的查找操作一样,支持模式匹配
/keyword: 从当前光标所在处向文件尾部查找
?keyword:从当前光标所在处向文件首部查找
n: 下一个,跟查找命令相同的方向
N:前一个,跟查找命令相反的方向
(4)修改替换操作,也支持模式匹配
语法格式
:地址定界s/查找模式/替换成的内容/gi
/表示分隔符,可以为@、#等特殊容易区别的符合
g global全局的,i ignore 不区分大小写
eg:
1
2
3
4
5
6
7
8
9
10
|
删除行首开头的 #: :%s@^ #@@ 删除行首开头的 #及后面紧跟的空白字符; :%s@^ #[[:space:]]*@@ 为空白字符开头的行的行首加上 #; :%s@^[[:space:]]@ #&@ 把down改成up; :%s@down@up@g 为指定范围内的行的行首添加 #; :1,10s@^@ #@g |
5、窗口属性定义,在末行模式 :(在末行模式直接输入set可以看set的帮助命令),no代表取反的意思
显示行号:
set nu
set nonu
自动缩进:
set autoindent,set ai
set noai
不区分大小写
set ignorecase, set ic
set noic
显示匹配的括号
set showmatch,set sm
set nosm
语法着色
syntax on
syntax off
搜索高亮显示
set hlsearch
set nohlsearch
可以直接把窗口定义的属性写到vim的配置文件中。
6、vim其它的支持
(1)vim可视化模式
visual模式
v: 选中光标划过的字符
V:选中光标划过的行,整行选取
Esc, Esc:回到编辑模式
(2)同一文档窗口分割:
Ctrl+w,s: 水平分割 Ctrl+w, 箭头(上下),表示切换
在末行模式下输入q退出
Ctrl+w,v: 垂直分割 Ctrl+w, 箭头(左右),表示切换
在末行模式下输入q退出
linux 强大的编辑器之vi的更多相关文章
- Linux学习笔记 -- 文本编辑器之 vi与vim
vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode). 这三种模式的 ...
- 自由软件之父、Google+设计者、Java之父、Linux之父、万维网之父、Vi编辑器之父、苹果Lisa电脑界面设计、微软首席软件架构师
自由软件之父.Google+设计者.Java之父.Linux之父.万维网之父.Vi编辑器之父.苹果Lisa电脑界面设计.微软首席软件架构师 理查德·斯托曼(Richard Stallman) 理查德· ...
- 普通Linux用户1分钟上手vi编辑器
*导读:普通用户只要花1分钟看第二部分即可.高级用户请忽略本文* 目录 1. 编辑器之战 2. vi的使用 2.1 vi的3个模式 2.2 vi的3个模式切换 2.3 vi最基本的命令 2.4 vi的 ...
- Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好?
Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好? 在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神. 一些人勇敢地拾起了Vim或Emacs,却发 ...
- vim 让人爱不释手的编辑器之神
VIM 基本介绍 vim诞生已有20多年,它常被人称之为编辑器之神,vim的操作理念可以说是独具一格而又出类拔萃,使用vim能极大的提升文本处理效率,因此熟练掌握vim应该是每个程序员都应该做到的事情 ...
- linux下维护服务器之常用命令
linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^ ...
- linux文件管理 -> vim编辑总结
vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数.vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成.vim ...
- 随处可编辑的编辑器之神VIM
据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...
- Linux文件查看/编辑方法介绍
转载:https://www.centos.bz/2011/10/linux-file-view-edit/ cat 命令介绍 cat 命令的原含义为连接(concatenate), 用于连接多个文件 ...
随机推荐
- Windows平台上安装搭建iPhone/iPad的开发环境
http://www.cnblogs.com/hanxianlong/archive/2015/09/20/4824227.html http://blog.csdn.net/yahohi/artic ...
- BJFU 1009
描述 现在社会上的抽奖活动简直是太多了.前段时间中国联通就举办了一个很无聊的抽奖活动,规则是每人可以向中国联通的短信系统发送一个实数,系统每天会从这些数字中选择一个无重复(就是有且只有一个)且最小的数 ...
- User Managerment 职责不能使用的问题
1.此职责默认的是没有启用授权的(grant),需要在系统管理员职责下搜索到对应的菜单,进行grant 2.就算授权后,用户还是不能进行操作,需要进行以下设置: 1. Log into the app ...
- linux中查看硬件温度的命令
用到的命令是: sensors 这个命令来自一个叫 lm_sensors 的包. 执行 sensors-detect 可以以询问的方式做一些配置(可以选择检测哪些硬件的温度).
- java 网络编程(三)---TCP的基础级示例
下面是TCP java网络编程的基础示例: tcp传输:客户端建立过程的思路:1.创建TCP客户端的Socket服务,使用的是socket对象,建议在创建的过程中,就明确了目的地和要连接的主机2.如果 ...
- 给图像添加logo
#include <opencv2\opencv.hpp>#include"ProcessPixels.h"using namespace cv;using names ...
- 形状特征提取-Hu不变矩(转载)
[原文部分转载]:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx 在连续情况下,图像函数为 ,那么图像的p+q阶几何矩 ...
- 终于有SpringMvc与Struts2的对比啦(转)
本文转自:http://www.itsource.cn/web/news/5/20150318/370.html 目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区 ...
- FireDac 与数据库连接时字符集及对应的字段类型问题
近日在一个过程调用时发生一个奇怪现象, 异常返回意思是说, 数据的长度是[6], 而字段定义的长度是[3]. 分析后认为: 调用过程你不涉及到对返回数据集的字段手动定义问题, 出现这个问题应是两边 ...
- oracle日期函数2!
1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7小时的时间 ...