linux笔记01(完美VI)

() vi的常用操作
vi是所有 UNIX系统都会提供的屏幕编辑器,它提供了一个视 窗设备,通过它可以编辑文件 .基本上 vi可分为三种操作状态,分别是命令模式( Command mode)、插入模式( Insert mode)和底线命令模式( Last line mode),各模式的功能区分如下:
1
Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入 Insert mode,Command mode下按 i a o 三键就可进入 Insert mode; : , ? , / 等键进入 Last line mode.
2
Insert mode:唯一的功能即是输入文字数据,按 Esc键可回到 Comand mode
3
Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。按 ESC键转换回 Command mode.
不过可以把 vi简化成两个模式,即是将 Last line mode也算入 Command mode,vi分成 Command Insert mode。在系统提示符号输入 vi及文件名称后,即可进入 vi全屏幕编辑画面 .
Insert mode        
i :插入,在目前的光标位置输入文字
I :该命令是将光标移到当前行的行首,然后在其前插入文本
a :用于在光标当前所在位置之后追加新文本
A :将光标移到所在行的行尾,从那里开始插入新文本
o: 在光标下面插入一行
O :在光标所在行的上面插入一行
Command mode :
移动光标                
h 或←左                       
j 或↓下               
k 或↑上               
l 或→右
Ctrl+B:屏幕往后移动一页。
Ctrl+F
:屏幕往前移动一页。
Ctrl+U
:屏幕往后移动半页。
Ctrl+D
:屏幕往前移动半页。
Ctrl+E: 向后卷动一行
Ctrl+Y:向前卷动一行
0 (数字零):光标移动到该行的开头。
$:光标移到所在行的行尾。
G
:光标移动到最后一行的行首。
Ww:光标跳到下个 word的开头。
e
:光标跳到下个 word的字尾。
b
:光标回到上个 word的开头。
^
:移到该行第一个非空白的字符。
~:改变字母大小写
数字 +|:光标移到指定的字符 ,例如 , 7| 表示将光标移到该行的第七个字符
Ctrl+g ctrl+G :在窗口的最后一行显示内容的总行数以及目前所在的行数
% :将光标停留在某个右括号或左括号,然后按 % 键,可以检查是否有相应的右括号或左括号
H :屏幕最上         
M :中央        
L :屏幕最下 
{: 光标向前移动一个段落
}: 光标向后移动一个段落
复制文字:
yy :复制光标所在行 , 复制后的部分并不会反色显示
yw 将光标所在位置的整个单字复制
p :将缓冲区内的字符粘贴到光标所在位置
数字 +yy :如: 6yy 表示将目前光标所在位置以及其后的五行一起复制
数字 +yw :如: 2yw 表示将目前光标所在位置以及基后的两个字一起复制
“ayy :将复制行放入 buffer a, vi 提供 buffer 功能,可将常用的数据存在 buffer
“ap
:将放在 buffer a 的数据粘贴。
“b3yy
:将三行数据存入 buffer b
“b3p
:将存在 buffer b 的资料粘贴
删除
x :删除光标所在位置的字符
X :大字的 X ,删除光标所在位置的前面一个字符。
数字 +x :例如, 6x 表删除光标所在位置及后方 5 个字符
数字 +X :例如, 20X 表删除光标所在位置的前面 20 个字符。
dd :删除光标所在行,按住 d 可以连续删除数行
数字 +dd :例如, 6dd 表删除从光标所在的行及往下的 5 行的文字。
D :可删除同一行中光标所在位置之后的所有字符
dw ::删除光标所在位置之后的一个单词,如果光标在某个词的中间 , 则从光标所在位置开始删至词尾并连同空格
ndw :删除 n 个指定的单词
db :删除光标所在位置之前的一个词
ndb :删除光标所在位置之前的 n 个词
d+ ←:可将光标所在位置的前一个字符删除
d+ →:可将光标所在位置的字符删除
d+ ↑:可将光标所在位置的行与上一行同时删除
d+ ↓:可将光标所在位置的行与下一行同时删除
数字 + d+ ↑:删除指定的范围,如 2d+ ↑,即可删除光标所在的行及上方 2
数字 + d+ ↓:删除指定的范围,如 2d+ ↓,即可删除光标所在的行及下方 2
替换
r :替换某个位置的字符,先按 r 键,再输入要替换的字符 , 替换光标所指向的当前字符,按 n 继续查找下个要替换的字符
nrc :用字符 c 替换光标所指向的前 n 个字符
R :可以一直替换字符,直到按 esc 键才停止
撤销和重复
u :假如您误操作一个指令,可以马上按 u ,回复到上一个操作
U :取消对行所做的所有改变
。:重复执行上一个命令
搜索字符串
/str :往右移动到有 str 的地方
?str :往左移动到有 str 的地方
n :向相同的方向移动到有 str 的地方
N :向相反的方向移动到有 str 的地方
退出
ZZ :保存内容并退出
ZQ :不保存退出
Last line mode
跳行:
输入数字:如果直接输入数字再按回车键,可将光标移到该行的行首
退出:
q :退出
q! :强制退出
wq :保存并退出
文件相关:
e+ 文件名:新建立一个文件
n+ 文件名:加载另一个文件
w :保存文件
w file :将当前编辑的内容写到 file 文件中
nl n2w file :将从 n1 开始到 n2 结束的行写到 file 文件中
nw file :将第 n 行写到 file 文件中
1 ,。 w file :将从第一行起到光标当前位置的所有内容写到 file 文件中
。, $w file :将从光标当前位置起到文件结尾的所有内容写到 file 文件中
r file :打开另一个文件 file
f file :把当前文件改名为 file 文件
字符串搜索,替换,删除
/str/ :从当前光标开始往右移动到有 str 的地方
?str? :从当前光标开始往左移动到有 str 的地方
/str/w file :将包含有 str 的行写到文件 file
/str1,str2/w file :将从 str1 开始到 str2 结束的内容写入 file 文件中
s/str1/str2/g :将所有的 str1 替换为 str2
s/str1/str2 :将第一个 str1 替换为 str2
。, $ s/str1/str2/g :将当前位置到结尾的所有的 str1 替换为 str2
1 $s/string/replae/g :在 last line mode 输入 “1 $s/string/replace/g” 会将全文的 string 字符串取代为 replace 字符串,其中 1,$s 就是指搜寻区间为文章从头至尾的意思, g 则是表示全部取代不必确认。
%s/string/replace/c
:同样会将全文的 string 字符串取代为 replace 字符串,和上面指令不同的地方是, %s 1,$s 是相同的功能, c 则是表示要替代之前必须再次确认是否取代。
1,20s/string/replace/g
:将 1 20 行间的 string 替代为 relpace 字符串。
文本的复制,移动和删除
n1,n2 co n3 :将从 n1 开始到 n2 为止的所有内容复制到 n3 后面
n1,n 2 m n3 :将从 n1 开始到 n2 为止的所有内容移动到 n3 后面
d :删除当前行
nd :删除从当前开始的 n
n1,n2 d :删除从 n1 开始到 n2 为止的所有内容
。, $d :删除从当前行到结尾处的所有内容
/str1/,/str2/d :删除从 str1 开始到 str2 为止的所有内容
执行 SHELL 命令:
!Cmd :运行 shell 命令 Cmd
n1,n2 w! :将 n1 n2 的内容作为 Cmd 命令的输入,如果不指定 n1 n2 ,则将整个文件的内容作为命令 Cmd 的输入
r!Cmd :将命令运行的结果写入当前行位置
设置 VI 环境
set autoindent :缩进每一行,使之与前一行相同,通常用于程序的编写
set noautoindent :取消缩进
set ruler :在屏幕底部显示光标所在的行,列位置
set noruler :不显示光标所在的行,列位置
set nu :在文件中的每行行首加入行号
set nonu :取消行号

你可能感兴趣的:(linux,职场,休闲,LINUX自学笔记)