vi操作(个人整理)

1 篇文章 0 订阅

一 最基本命令


1、三种模式:编辑模式、插入模式、命令模式。

2、简单命令

vi [filename]  打开、新建文件

i、a、o、I、A、O 从编辑模式进入插入模式

[ESC] 退出插入模式,进入编辑模式

:w   保存文件

:q   退出文件

:q!  不保存,强制退出

:wq  保存,退出

:ZZ  保存,退出

:e!  不保存,返回到初始文件


二.简单编辑命令


1 、文本编辑和操作命令
编辑行为
命令
在当前位置插入文本
在行首插入文本
i
I
在当前位置追加文本
在行尾追加文本
a
A
在光标所在行的下面新建一行
在光标所在行的上面新建一行
o
O
删除行并替换文本
S
使用新文本覆盖现有文本
R
合并当前行和下一行
J
转换大小写
~
重复上次操作
.
取消上次操作
u
恢复行到初始状态
U














2 、编辑命令
文本目标
修改
删除
复制
1 个单词
cw
dw
yw
2 个单词
2cw 或者 c2w
2dw 或者 d2w
2yw 或者 y2w
向后 3 个单词
3cb 或者 c3b
3db 或者 d3b
3yb 或者 y3b
1
cc
dd
yy 或者 Y
到行首
c0
d0
y0
到行尾
c$ 或者 C
d$ 或者 D
y$
单个字符
r
x 或者 X
y1 或者 yh
5 个字符
5s
5x
5y1
3 、移动命令
移动
命令
←↓↑→
h j k l
到下一行的首字符
+
道上一行的首字符
-
到单词尾部
e 或者 E
按单词前移
w 或者 W
按单词后移
b 或者 B
到行首
0
到行尾

<Ctrl> + <->减小字号
<Ctrl> + <Shift> + <+>增大字号


三 高级设置(编程应用)


1、在$HOME下新建.vimrc

#touch .vimrc

2、打开

#vim .vimrc

3、编辑

:set all

     "显示目前所有的环境参数设定值

set number        

显示行号        

set smartindent

依据上面的对起格式,智能的选择自动缩进方式,对于类似C语言编程,很有用

set showmatch

高亮

set shiftwidth=4

       “设置当行之间交错时使用4个空格

4、完成,现在你可以非常方便的编写你的c、c++程序了。以上是我的简单的设置,大家有什么好的设置尽管告诉我哦,我会很感激的!


移动命令大全(非常有用)


向前滚动一屏
Ctrl + f
向后滚动一屏
Ctrl + b
向前滚动半屏
Ctrl + d
向后滚动半屏
Ctrl + u
向前滚动一行
Ctrl + e
向后滚动一行
Ctrl + y
把当前行移动到屏幕顶部并滚动
z
把当前行移动到屏幕中部并滚动
z.
把当前行移动到屏幕底部并滚动
z-
刷新屏幕
Ctrl + l
移动到屏幕首行
H
移动到屏幕中间行
M
移动到屏幕末行
L
移动到下一行的首字母
return
移动到下一行的首字母
+
移动到上一行的首字母
-
移动到当前行的第n列
n|
移动到词尾
e
移动到当前句子的开始
移动到下一句的开始
移动到当前段的开始
{
移动到下一段的开始
}
移动到当前节的开始
[[
移动到下一节的开始
]]
向前授索模式
/pattern
向后授索模式
?pattern
重复上次授索
n
反方向重复上次授索
N
向前重复上次授索
/
向后重复上次授索
?
移动到第n行
nG
移动到文件的尾部
G
显示当前行
Ctrl+g
  

跳到文件头

:1 或 gg

跳到文件尾

:$ 或 G (大写。当前若大小写锁定直接按g,未锁定则按shift+g)


vi分屏操作

1、在同一窗口中打开多个文件:
vi file1 file2 file3
:n  切换到下一个文件 (n=next)
:N  切换到上一个文件

2、在不同窗口中打开多个文件:
如果已经打开一个了一个文件,则在vi的命令输入状态下输入:

:vsp filepath(垂直分屏)

:sp filepath(水平分屏)

如果还没打开任何文件,则输入命令

vim -on file1 file2 (水平分屏)

vim -On file1 file2(垂直分屏)

其中n为打开的文件数(分屏数)



ctrl+w s   对当前文档内容分屏显示

ctrl+w q   关闭所处分屏

ctrl+w o   仅显示当前分屏内容

ctrl+w j / k(h / l)  上下(左右)选择分屏

ctrl+w+w 来回在分屏间切换



五 基本编辑命令的扩展


1、启动vi时的选项: 

 (1)、vi file 打开文件,新建文件  

(2)、vi +n file 打开文件到第10行

(3)、vi + file 打开文件到最后一行

(4)、vi +/patten file 打开文件到模式首次出现的位置

(5)、vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

2、只读方式

(1)、vi -R file (或者view file)以只读方式打开

(2)、w!     强制写保存

(3)、wq!强制写保存并退出

3、恢复缓存区(用于系统崩溃)

(1)、ex -r   将得到系统所有以保存的文件列表

(2)、vi -r   将得到系统所有以保存的文件列表

(3)、vi -r file  恢复文件file的已编辑缓存区

4、利用缓存区

进行编辑时,上一次的删除(d,x),复制(y)都将保存在缓存区中。

vi把前9次删除操作保存在编号缓存区中,可以通过访问编号缓存区中的任何一个来恢复前9次操作中的任何一个。(小型的删除操作将不会保存)。

实例讲解:

(1)、"dyy  复制当前行到d缓冲区

(2)、"a7yy   复制接下来的7行到a缓冲区中

(3)、"dP   粘贴d缓冲区中的内容到光标前

(4)、"dp   粘贴d缓冲区中的内容到光标后

(5)、"a5dd  删除接下来的5行到a缓冲区中

(6)、"zd)    删除从光标到当前句尾之间的文本,并将其保存在z缓冲区中

(7)、"Zy)    把下一个句子添加到z缓冲区中(缓冲区大写(如Z)表示追加到(z)缓冲区中)

5、标记自己的位置

(1)、mx 用x(x可为任何字符)标记当前位置

(2)、'x  (单引号)移动光标到x所标记的行的首字符

(3)、`x     (反引号)移动光标到x所标记的字符


  全局替换

 

1、替换命令

(1)、:s/old/new/    把当前行中模式old的第一次出现替换为new

(2)、:s/old/new/g   把当前行中的每一个old替换为new

(3)、:50,100s/old/new/g   把第50-100行之间的old替换为new

(4)、:1,$s/old/new/g   把整个文本中的old替换为new

(5)、:%s/old/new/g     把整个文本中的old替换为new

(6)、:1,$s/old/new/gc 替换前要进行确认(想替换输入 y ,不想替换直接 回车)

2、简单组合

利用vi的n(重复上次授索)和点(.)(重复上次命令),只修改那些不正确的。

修改必要的hao为jun

/hao   授索hao

cwjun  修改为jun

n   重复授索,跳过一次修改

n  重复授索,向下搜索

N  重复搜索,向上搜索


七 高级编辑(set用法)


1、常用收集如下:(vi set)

set autoindent     

在插入模式下,对每行按与上行同样的标准进行缩进,与shiftwidth选项结合使用

set list   

把制表符显示为^I ,用$标示行尾(使用list分辨尾部的字符是tab还是空格)

set number 

显示行号

set readonly

文件只读,除非使用!可写

set shiftwidth

反向制表符中的空格数目

set showmatch

在vi中输入),}时,光标会暂时的回到相匹配的(,{   (如果没有相匹配的就发出错误信息的铃声),编程时很有用

set tabstop

指定tab缩进的字符数目

set wrapscan

授索在文件的两端绕回

2、vim set 在vi的基础上增加了如下(常用):

set smartindent    

set cindent

以上两行都是编程用的c自动缩进


3、set 设置可以在命令行输入,也可以写在$HOME下的.exrc (如果是vi)或者.vimrc(如果是vim)中。写进去很方便的。


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值