vim的使用

来源:互联网 发布:软件流程图设计工具 编辑:程序博客网 时间:2024/06/05 11:48

三种模式:

1.编辑模式

1)进入编辑模式:命令模式按a A I i O o中任意键;

a (append) 由光标之后加入资料。
A 由该行之末加入资料。
i (insert) 由光标之前加入资料。
I 由该行之首加入资料。
o (open) 新增一行于该行之下供输入资料之用。
O 新增一行于该行之上供输入资料之用

2)退出编辑模式:按esc,结束插入模式;输入冒号进入底行模式,

2.命令模式

1)编辑进命令:exc

2)连续按两次大写字母<Z>,保存退出

3.末行模式

1)命令进末行:输入“:”

2):w vi保存当前编辑的文件,但并不退出vi,而是继续等待用户输入命令

3):w a.c(w表示写入了a.c文件)

4):w! <newfile> 把当前文件的内容保存到指定的文件newfile中,如果newfile已经存在,则覆盖原有内容。

5):q  系统退出vi返回到shell。在用此命令时,若编辑的文件没有被保存,则vi在窗口的最末行给出提示信息。

6):q! vi放弃所作修改而直接退到shell下。

7):wq 先保存文件,然后再退出vi返回到shell

8):X  该命令的功能与命令模式下的ZZ命令功能相同

9): 命令

10)/ 查找

11)? 查找

VI环境的设定

set nu:  添加行号显示
set nonu: 取消行号显示
set autoindent:  自动缩进
set noautoindent:  取消自动缩进

noh去除搜索后的高亮显示

搜寻

在vi中可搜寻某一字串,使光标移至该处。

/字串 往光标之后寻找该字符串。
?字串 往光标之前寻找该字符串。
n 往下继续寻找下一个相同的字符串。
N 往上继续寻找下一个相同的字符串。

取消前一动作

即复原执行上一指令前的内容。需要在命令模式下

u 恢复最后一个指令之前的结果。
U 恢复光标该行之所有改变。
末行模式下进行撤消动作:undo

编辑多个文件

vi亦提供同时编辑多个文件的功能,方法如下:
#vi file1 file2 ..

当第一个文件编辑完成后,可利用『:w』将该缓冲区存档,而后再利用 『:n』载入下一个文件, 『:N』载入上一个文件

同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。也可以使用:e#进行切换

字符串搜寻与替换

s(substitute)指令可搜寻某行列范围。
g(global)指令则可搜寻整个编辑缓冲区的资料。
:10,20s/old/new/ 将第10行至第20行资料的“old”改成“new”。替换匹配到第一个字符串
: 10,20s/old/new/g 替换该行匹配到的所有字符串
:%s/old/new/g 将编辑缓冲区中所有的“old”改成“new” 。

vi常使用的快捷键

h 将光标左移一格。 
j 将光标下移一格。
k 将光标上移一格。
l 将光标右移一格。


0 把光标移到当前行的第一个字符处。
$ 把光标移到当前行的最后一个字符处

 

Ctrl + f向后滚一页。
Ctrl + d向后滚半页。
Ctrl + b向前滚一页。
Ctrl + u向前滚半页。
Ctrl + e屏幕向下滚一行。
Ctrl + y屏幕项上滚一行。

命令模式下:nG 将光标移至行号所指定的行的行首
在末行模式下,:n 命令,将光标移动至指定行

 

命令模式下的文本编辑/文本的删除

字符删除命令:
x   
字和行删除命令
  db   dd <n>dd

 

删除操作

x:删除光标所在的文字
nx:删除光标后面的n个字符
X:删除光标前面的一个字符
nX:删除光标前面的n个字符
dd:删除光标所在行
ndd:删除光标所在行向下数n行

 

复制:


命令方式下输入yy或nyy,表示复制当前行或当前行开始的连续n行,n是一个具体的整数。

将光标移到要复制的地方,按p键粘贴

 

 VIM格式设置

~/.vimrc文件中配置vi的设置

set shiftwidth=2 #设置缩进宽度为2个空格
set tabstop=4 #设置Tab键宽度为4个空格
set number #显示行号

 

 

 

 

 

 

 

 

 

 

 

 

 

命令举例:

1.vi a.c +4 表示希望在进入vi之后,光标处于文件中第4行上,+”表示希望在进入vi之后光标处于文件最末行。