文本编辑器和字处理软件是不一样的,要学会区分它
Linux系统下常用的文本编辑器:
一、vi、vim(vi improved)
二、Emacs(专业级的工作站)
三、nano
下面主要讲解vi---------------------------linux
1、vi是模式化的编辑器:三种模式
(1)插入模式或输入模式
(2)命令模式或编辑模式:只能是对文本进行复制、粘贴等等
(3)末行模式:
2、vi打开文件的常用方法
(1)vi file
(2)vi +n file定位到文件的第n行行首
(3)vi +/PATTERN file
如:vi /ab file表示将光标定位到文件第一出现ab的位置
3、vi关闭文件的方法
(1):wq-----------------------保存退出
(2):q!-----------------------不保存直接退出
(3):q
4、vi模式之间的转换
vi默认打开的模式是命令行模式(编辑模式)
编辑模式到输入模式:
(1)a键(append)在当前光标所在处的后方插入内容
(2)i键(insert)在当前光标所在处插入内容
(3)o键 开启一新行,在光标所在处的下方新建一个新行并转入到输入模式
(4)A键 定位在当前光标所在行的行尾,并转入输入模式
(5)I键 定位在当前光标所在行的行首,并转入输入模式
(6)O键 定位在光标所在处的上方的那行并转入到输入模式
输入模式回到编辑模式:ESC键即可
编辑模式到末行模式:方法是冒号键(:)即可
末行模式回到编辑模式:ESC键
5、光标的移动
hjkl键
h键----------------光标向左移动一个光标
j键-----------------光标向下移动一个光标
k键----------------光标向上移动一个光标
l键----------------光标向右移动一个光标
w键--------------光标跳到后一个单词的词首
e键---------------下一单词的词尾(若当前光标未在当前单词的词尾,则先跳到此单词词尾)
b键--------------上一单词的词首(若当前光标未在当前单词的词首,则跳到此单词的词首)
~键(托字符)----------------------当前行的非空白字符上
0键(零键)-------------------------当前行的行首
$符(与零键刚好相反)-----------当前行的行尾
6、行间跳转:
nG键代表跳到n行上面
G键:文件尾部末行
:n末行模式下敲入n即可快速跳到第n行上
7、翻页(翻屏)
Ctrl+f键:往前翻一屏
Ctrl+b键:往后翻一屏
ctrl+d:往前翻半屏
ctrl+u:往后翻半屏
8、编辑操作:
x:删除光标所在处的字符
nx:删除光标所在处联系的n个字符
d:删除命令
dd:删除光标所在行
ndd:删除光标所在行一直向下的n行
dw:
de:
db:
d~:
末行模式进行删除:
ADDR1d,ADDR2d
:1,8d
:8d
.号表示当前行
$表示最后一行
.,$-1当前行到倒数第二行
9、改写操作
c:键
cc:删除光标所在行并转换至输入模式
ncc:删除光标所在行一直向下的n行而后转至输入模式
c$:删除光标所在处到行尾的内容并转至输入模式
10、复制操作
y(yank):键
yy:
nyy:
y$:
y0:
ye:
11、粘贴
p键,P键
p键粘贴到光标所在处的下方
P键粘贴到光标所在处的上方
12、撤销命令
u(undo):撤销最近一次的操作
U:撤销过去保存在缓冲区的所有操作
13、撤销撤销
ctrl+r组合键:
14、重复上一次的操作:
.(redo)号:
15、可视化模式:
v:按字符选中
V:按行选择
16、vi打开多个文件
在末行模式下输入:
:next到下一个文件
:last到最后一个文件
:first到第一个文件
:prev到前一个文件
17、vi分屏操作
vi -o file file可以分屏显示file文件(上下分)
分屏显示时候光标在第一个屏上,如何跳到下一个屏呢,可以用Ctrl+w
vi -O file file可以分屏显示(左右分)
-o水平拆分
ctrl+w+arrow(箭头)
-O垂直拆分
18、如何拆分一个文件
ctrl+w,s水平拆分
ctrl+w,v垂直拆分
19、如何设置vi的工作特征
(1)显示行号
末行模式下用:set nu即可,若不显示的话可以用:set nonu
(2)自动缩进
末行模式下用:set ai即可,若不显示可以用:set noai
(3)语法高兴
syntax on
syntax off
全局配置:
/etc/vimrc
个人配置:
/.vimrc
20、搜索具有特定特征的字符:
/PATTERN搜模式
?PATTERN表示文件从尾部向前搜索
21、查找并替换
在末行模式下使用s命令来实现
:ADDR1,ADDR2s/PATTERN/string/gi
g表示global全局
i表示ignore-case忽略大小写