linux vi命令 置顶,vim编辑器

一、vim编辑器简介

文本:ASCII,Unicode

文本编辑种类:

行编辑器:sed

全屏编辑器:nano,vi

vim-Vi Improved

其他编辑器:

gedit:一个简单的图形编辑器

gvim:一个VIm编辑器的图形版本

二、vim打开文件

vim option file…

+n:打开文件后,直接让光标处于第n行的行首

+/pattern:打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

+:打开文件后,光标在最后一行

-b:二进制方式打开文件

-d file1 file…:比较多个文件

-m:只读打开文件

-e或ex:直接进入ex模式

如果该文件存在,文件被打开并显示内容

如果不存在,当编辑后第一次存盘时创建它

vim是一个模式编辑器

击键行为是依赖vim的“模式”

三种主要模式

命令模式(默认):移动光标,查看文件,

插入(编辑)模式:修改文本

扩展命令模式(末行):保存,退出,执行命令

Esc退出当前模式

三、模式转换

命令模式 → 插入模式

i:在光标所在处输入

I:在当前光标所在行的行首输入

a:在光标所在处后面输入

A:在当前光标所在行的行尾输入

o:在当前光标所在行的下方打开一个新行

O:在当前光标所在行的上方打开一个新行

插入模式 → 命令模式

Esc

命令模式 → 扩展模式

扩展模式 → 命令模式

Esc

锁定:Ctrl+s

解锁:Ctrl+q

五、关闭文件

扩展模式

q:退出

q!:强制退出,丢弃做出的修改

wq:保存退出

x保存退出

命令模式

ZZ:保存退出

ZQ:不保存退出

六、扩展模式操作

按“:”进入ex模式

创建一个命令提示符:,处于底部的屏幕左侧

w:写(存)磁盘文件

wq:写入并退出

x:写入并退出

q:退出

q!:不存盘退出,更改无效

r file1 :读file1文件内容到当前文件中

w file1:将当前文件内容写入另一个文件

!command:执行命令

r!command:

地址界定

start_pos,end_pos

n:第n行

n,m:从n行到m行

n,+m:从n行到n+m行

.:当前行

$:最后一行

.,$:当前行到倒数第二行

%:全文,相当于1,$

/pattern/

/pat1/,/pat2/:从第一次被pat1模式匹配到的行到第一次被pat2匹配到的行

n,/pat/:从n行到被pat模式匹配到的行

/pat/,$:从被pat模式匹配到的行到最后一行

使用方式:后面跟一个编辑命令

d:删除

y:复制

w file:将范围内的行另存至指定文件中

r file:在指定位置插入总置顶文件中的所有内容

查找

/pattern:从当前光标所在处向文件尾部查找

?pattern:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

查找并替换

s:在扩展模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式,但可以使用\1,\2…等后向引用符号,还可以使用&引用前面查找是查找到的整个内容

修饰符

i:忽略大小写

g:全局替换,默认情况下,每一行只替换第一次出现

gc:全局替换,每次替换前询问

查找替换中的分个符/可替换为其他字符s@@@,s###

编辑二进制文件

-b:以二进制方式打开文件

扩展命令模式下,利用xxd命令转换为可读的十六进制

%!xxd

编辑二进制文件

扩展命令模式下,利用xxd命令转换回二进制

%!xxd -r

保存退出

七、命令模式操作

光标跳转

字符间跳转

h:向左

j:向下

k:向上

l:向右

n command:跳转由n指定一次跳转的单词数

单词间跳转

w:下一个单词的词首

e:当前或下一个单词的词首

b:当前或前一个单词的词首

n command:跳转由n指定一次跳转的单词数

当前页跳转

H:页首

M:页中间行

L:页底

行首行尾跳转

^:跳转至行首的第一个非空白字符

0:跳转至行首

&:跳转至行尾

行间移动:

nG:跳转至由n制定航

G:最后一行

1G或gg:第一行

句间移动:

(:下上一句

):下一句

段落间移动

{:上一段

}:下一段

翻屏

Ctrl+f或PgDn:向文件尾部翻一屏

Ctrl+b或PgUp:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

字符编辑

x:删除光标处的字符

nx:删除光标处起始的n个字符

xp:交换光标所在处的字符及其后面字符的位置

~:转换大小写

替换命令(r,replace)

r:替换光标所在处的字符

R:切换成replace模式

删除命令;

d:删除命令,可结合光标跳转字符,实现范围删除

d$:删除到行尾

d^:删除到非空行首

d0:删除到行首

dw:删除下一个单词

de:删除当前或下一个单词

db:删除当前或上一个单词

dd:删除光标所在的行

ndd:多行删除

D:删除光标到行尾,留空行。等同于d$

复制命令(y,yank)

y:复制,结合光标跳转字符,实现范围复制

y$:复制到行尾

y^:复制到非空行首

y0:复制到行首

yw:复制下一个单词

ye:复制当前或下一个单词

yb:复制当前或上一个单词

yy:复制光标所在的行

nyy:多行复制

y:复制整行

粘贴命令(p,paste)

p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方,否则,则粘贴至当前光标所在处的后面

p:缓冲区存的如果为整行,则粘贴当前光标所在行的上方,否则,则粘贴至当前光标所在处的前面

改变命令(c,change)

c:修改后切换至插入模式

命令模式 → 插入模式

c$:删除到行尾输入新内容

c^:删除到非空行首输入新内容

c0:删除到行首输入新内容

cw:删除下一个单词输入新内容

ce:删除当前或下一个单词输入新内容

cb:删除当前或上一个单词输入新内容

cc:删除光标所在的行输入新内容

ncc:多行删除输入新内容

C:删除当前到行尾,并且换成插入模式

100wang Esc:粘贴“wang”100次

start positioncommand end position

command

y:复制

d:删除

gU:变大写

gu:变小写

例:0y$

0→先到行头

y→从这里开始拷贝

$→拷贝到本行最后一个字符

ye从当前位置拷贝到本单词的最后一个字符

撤销更改

u:撤销最近的更改

nu:撤销之前n次更改

U:撤销光标落在这行后所有此行的更改

Ctrl+r:重做最后的撤销更改

.:重复前一个操作

n.:重复前一个操作n次

八、vim的寄存器

有26个命名寄存器和1个无名寄存器,常存放不同的剪贴板内容,可以不同会话间共享。

用a,b,c…z表示,用"寄存器表示,放在数字和命令之间

例:3"tyy表示复制3行到t寄存器中

"tp表示将t寄存器内容粘贴

未指定,将使用无名寄存器,有10个数字寄存器。

用0,1,2…9表示,0存放最近复制内容,1存放最近删除内容。

当新的文本变更和删除是,1转存到2,2转存到3,以此类推。

数字寄存器不能在不同会话间共享

九、可视化模式

v:面向字符

V:面向行

Ctrl+v:面向块

可视化可用于与移动键结合使用

w,),},箭头等

突出显示的文字可以被删除,复制,变更,过滤,搜索,替换等。

十、多文件模式

vim file1 file2 file3…

扩展命令模式下

next:下一个

prev:前一个

first:第一个

last:最后一个

wall:保存所有

qall:退出所有

wqall:所有文件保存退出

十一、多窗口模式

多个文件窗口分割

vim -o|-O file1 file2…

-o:水平分割

-O:垂直分割

在窗口间切换

Ctrl+w 上下

单个文件窗口分割

Ctrl+w,s:水平分割

Ctrl+w,v:垂直分割

Ctrl+w,q:取消相邻窗口

Ctrl+w,o:取消全部窗口

:wqall退出

十二、定制vim的工作特性

全局:/etc/vimrc

个人:~/.vimrc

扩展模式:当前vim进程有效

行号

显示:set number,简写set nu

取消显示:set monumber

括号成对匹配

匹配:set showmatch,简写set sm

取消匹配:set nosm

自动缩进

启用:set ai

禁用:set noai

高亮搜索

启用:set hlsearch

禁用:set nohlsearch

语法高亮

启用:syntax on

禁用:syntax off

忽略字符的大小写

启用:set ic

不忽略:set noic

文件格式

启用:fileformat=unix

不忽略:fileformat=dos

设置文本宽度

set trxtwidth=65(vim only)    左面开始65个字符

set wrapmargin=15  右面开始15个字符

标准竖20字符,横80字符

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/32816

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值