替换

vi的使用:
编排形式下能够进行的操作
光标定位、搜索字符串、替换和删除、剪切和粘贴、撤废和再度  可是不能够更改文本的剧情。
G:光标定位到终极。
搜索字符串:/str   n键能够查找下三个。
dd删除光标所在行
u键撤销
2dd删除光标所在下两行
(n)r:替换  5rm表示用5个m来替换。
d$:从方今光标删除到行尾。
d0:从当前职分删除到行首
dG:从脚下岗位删除到结尾
(n)yy:复制。
p:粘贴 
(n)dd+p:剪切n行粘贴。

澳门金沙国际 1

vim 常用的核心命令
1.  w [文件名]    约等于另存为
2.  r [文件名]  将[文件名]的内容加到光标行前面
3.  n1,n2 w[常用命令,vim常用的主干命令。filename] 将n1到n2的始末保留为[filename]
4.  50dd      删除50行     5x  删除5个字符
5.  20下      向下移动20行 
6.  50G        移动到第⑥0行  
7.  20右      向右移动十12个人
8.  /word     查找word字符串

轮换某一整行

sed '1c hello' test   #将第一行替换为hello

 

插入情势:在编写制定情势下按小写的i进入插入形式。ESC进入编辑情势
指令方式:只辛亏编写制定方式进入。按:进入命令情势。
退出命令: q 未修改退出  q! 放弃修改退出  wq:保存退出
行号:n  将光标定位到n行
字符串搜索:命令模式中也能够 
正则表明式与寻找:/public$  行尾的public
本文替换:s命令  s/str1/str2/ 用字符串str2替换行中第三遍面世的str1
:s/str1/str2/g   用str2替换行中享有str1
:.,$s/str1/str2/g  当前行到最终部分
:1,$s/str1/str2/g  第1行到结底部分
:d 删除一行
:2d 删除第壹行
:recover  复苏文件
:set nu 显示行号

Vim入门.png

9.  文本替换
:50,100s/man/MAN/g      将50到100行以内的man 替换为MAN
:s/str1/str2            替换当前行第2个 str1 为 str2       —  s
代表当前行
:s/str1/str2/g          替换当前行中存有 str1 为 str2       —  s
代表当前行    g表示该行全体global[g前边可以加个c,表示每回替换确认下]
:m,ns/str1/str2         替换第 n 行起始到最后一行中每一行的第伍个 str1
为 str2
:m,ns/str1/str2/g       替换第 n 行初始到最终一行中装有的 str1 为 str2
:%s/str1/str2/g         替换文中全体 str1 为 str2

str1替换为str2

sed  's/^str1.*/str2/'  filename  #以str1开头
sed  's/.*str1$/str2/'  filename   #以str1结尾
sed  's/.*str1.*/str2/'  filename  #含有str1

 

:sp  多窗口编辑  :close  关闭窗口  ctrl+ww切换窗口

编辑方式

复制 删除  块操作
v             字符选取
V             行选择
ctrl+v      块选择
y 复制   p 粘贴        d 删除

将包涵xhn的行中的str1替换为str2

sed  ‘/xhn/s/str1/str2/g’ test

 

:!command 切换成shell执行命令

移动

h、j、k、l内外左右移动
ctrl+f在文件中前移一页(也正是 page down)
ctrl+b在文书中后移一页(相当于 page up)
*在文书中检索当前光标所在的单词,并活动到下一处
#在文书中摸索当前光标所在的单词,并活动到下一处
()挪动到前/后句的上马
{}跳转到当前/下三个段落的初步
g_到本行最终叁个不是 blank 字符的岗位
fa到下二个为 a 的字符处,也足以fs到下2个为s的字符
t,到逗号前的率先个字符。逗号能够改为任何字符
3fa在此时此刻行查找首个冒出的a
FT和f以及t一样,只是方向相反
gg将光标定位到文件首先行开头地点
G将光标定位到文件最终一行起首地点
NGNgg将光标定位到第N行开端地点
H将光标移动到荧屏的起初行
M将光标移动到显示器中间
L将光标移动到显示屏最终一行
w右移光标到下2个字的开头
e右移光标到下一个字的末梢
b左移光标到前八个字的始发
0数字0,左移光标到本行的起首
$右移光标到当下行末尾
^移动光标到本行的率先个非空字符

单词移动
W w            移动到下二个单词开始
E e            移动到下三个单词结尾
B b            倒退到上二个单词开首
亟需注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会
相同,在命令前拉长数字代表执行次数,如:2w,表示往下移动二个单词
初阶笔者恐怕会多说几回,因为这么些技能很首要

将1-5行替换为两行:

hello

world

 sed '1,5c hello\nworld' test

 

探寻匹配

/str正向搜索字符串:str
n此起彼伏搜寻str下叁遍出现的职位
N后续寻找str上三遍面世的职务
?str反向搜索字符串str

整行移动、
0            移动到行首
$            移动到行末
+            移动到下一行开首
–            移动到上一行初叶

删除

轮换和删除

rc用c替换光标所指向的脚下字符
nrc用c替换光标所针对的前n个字符
5rA用A替换光标所针对的前多个字符
x删除光标所针对的脚下字符
nx去除光标所针对的前n个字符
dw删去光标左边的字符
ndw剔除光标左边的n个字符
db除去光标左侧的字符
ndb删除光标左边的n个字符
dd去除光标所在行
ndd除去(剪切)n行内容,并取出空隙
s用输入的正文替换光标所针对的字符
S除去当前行,并进入编辑方式
ns用输入的正文替换光标右边 n 个字符
nS除去当前行在内的 n 行,并跻身编辑情势
cw用输入的正文替换光标右边的字
cW用输入的正文替换从光标到行尾的有所字符(同 c$ )
ncw用输入的正文替换光标右边的 n 个字
cb用输入的正文替换光标左边的字
ncb用输入的正文替换光标左边的 n 个字
cd用输入的正文替换光标的所在行
ncd用输入的正文替换光标上面包车型客车 n 行
c$用输入的正文替换从光标起始到本行末尾的享有字符
c0用输入的正文替换从行业发轫到光标的有所字符

滚屏
Ctrl+f            往前滚动一整屏
Ctrl+b            以往滚动一整屏
Ctrl+d            往前滚动半屏
Ctrl+u            将来滚动半屏

剔除空行

sed '/^ *$/d' test #只能删除没有特殊字符的空行
sed '/[[:space:]]*/d' test #可删除特殊字符
特别需要说明一下,linux中的^M是ctrl+v和ctrl+m打出来的

 

复制粘贴

p小写p,将缓冲区的内容粘贴到光标区前面
P大写P,将缓冲区的始末粘贴到光标区后边
yy复制当前行到内部存款和储蓄器缓冲区
nyy复制n行内容到内部存储器缓冲区
“+y复制1行到操作系统粘贴板
“+nyy复制n行到操作系统粘贴板

显示叁个单词的中国人民解放军第五野战军全数行 [ + shift + i

撤销和重复

u废除前一条命令的结果
.再也最终一条修修正文的授命

 

安顿方式

进入插入格局

i在光标左侧插入正文
a在光标左侧插入正文
o在光标所在的下一行增添新行
O在光标所在的上一行扩张新行
I在光标所在行的起来插入
A在光标所在行的末尾插入

命令情势

打开保存退出

:e path_to_file/filename在曾经运行的vim编辑器中开拓文件
:w保存
:w file_temp文本另存为
:q在未作修改的景观下退出
:q!放任拥有修改,退出编辑程序
:wq保留并脱离

行号与公事

:n将光标移到第n行
:345将光标移到第③45行
:345w file将第345行写入file文件
:3,5w file将第3至5行写入file文件
:3,.w file将第二行至当前行写入file文件
.,w file将眼下行至最后一行写入file文件
.,.+5w file从如今行初阶将6行内容写入file文件
1,$w file将有着内容写入file文件,也就是:w file命令
:r file读取file文件的剧情,插入当前光标所在行的前边
:e file编写新文件file代替原有的内容
:f file将日前文件重命名为file
:f打字与印刷当前文件的名号和状态,如文件的行数、光标所在的行号等

字符串搜索

:/str/正向搜索,将光标移到下一个富含str的行
:?str?正向搜索,将光标移到上2个包涵str的行
:/str/w file正向搜索,将第①个包括字符串str的行写入file文件
:/str1/,/str2/w file正向搜索,并将包括字符串str1的行至蕴涵字符串str2的行写入file文件

Vim中的正则表明式

:/^struct/找出以字符串struct伊始的行。^相比较每行开首的字符
一部分特殊字符及意义:
^身处字符串前边,匹配行首的字符串
$坐落字符串前面,匹配行末的字符串
\<合营三个字的初阶
\>匹配1个字的末尾
.同盟任何单个字符
[str]匹配str中别的单个字符
[^str]同盟任何不在str中的单个字符
[a-z]匹配a到z之间的任一字符
*匹配前一个字符的0次或频仍出现
\转义后边的字符

本文替换

:%s/str1/str2/用字符串str2替换行中第一次出现的字符串str1
:s/str1/str2/g用字符串str2替换行中拥有出现的字符串str1
.,$ s/str1/str2/g用字符串sr2替换当前行到终极全部出现的字符串str1
1,$ s/str1/str2/g用字符串str1替换全文的字符串str1
g/str1/s//str2/g职能同上
m,ns/str1/str2/g将从m行到n行的str1替换成str2
:%s/str1/&/gn在Vim中执会调查总结局计当前文件中字符串 str1 出现的次数

去除正文

:d除去当前行
:3d删除3行
.,$d删除当前行至正文的终极
/str1,/str2/d去除从str1到str2的有所行
:g/^\(.*\)$\n\1$/d删去一连相同的行,保留最终一行
:g/\%(^\1$\n\)\@<=\(.*\)$/d剔除连续相同的行,保留最初阶中一年级行
:g/^\s*$\n\s*$/d删去一连五个空行,只保留一行空行
:5,20s/^#//g剔除5到20行开端的 # 注释

选拔设置

:set option澳门金沙国际 ,:设置选项option
周边的功用选项
autoindent安装该选择,则正文自动缩进
ignorecase安装该选用,则忽略规则表达式中中山高校小写字母的界别
number设置该选取,则呈现正文行号
ruler安装该选用,则在荧屏底边展现光标所在行、列的岗位
tabstop安装按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默许值为
8

mk将采纳保存在当前目录的.exrc文件中

Sell切换

!:shell_command执行完shell_command后回到Vim

那名叫Shell切换。它同意实施其余能够在标准的Shell提醒符下执行的授命。当那条命令执行完成,控制再次来到给编制程序。又足以继续编辑对话进度。

分屏

:sp上下分屏
:vsp反正分屏
vim -On file1 file2 ...开辟file1和file2,垂直分屏
vim -on file1 file2 ...打开file1和file2,水平分屏

标签页

:tabnew在vim中新建1个标签页
:tabnew filename新建标签页的还要打开文件

相关文章