vim软件是一个文本编辑器,类似windows下的记事本,但要比windows下的词事本强大的多。
vim是linux/unix上最常用的文本编辑器,它的作用是建立,编辑,显示文本文件 。
vim没有菜单,只有命令。

vim的学习方法:练习,再练习,让命令形成自然习惯。

1. vim的模式

  • 命令模式
  • 插入模式
  • 编辑模式

1.1 命令模式:

命令模式下,输入的字符都当命令对待。

vim
vim filename

命令行下输入 vimvim filename 这样会打开vim。 vim filename表示用vim软件编辑file文件。
启动vim之后默认就是命令模式。

直接输入vim启动,会出现版本等信息,但用 vim filename编辑文件时不会出现此界面。

如果在其它模式下,想要回到命令模式,按一下ESC键:

1.2 插入模式

在命令模式下切换到插入模式,可以用下面的三个命令:

  • i 切换到插入模式,在光标所在字符前插入
  • a 切换到插入模式,在光标所在字符后插入
  • o 切换到插入模式,在光标下面插入一个空行。

进入插入模式后,输入的字符都被看成普通字符,此时和windows记事本没啥区别了。 上面iao描述了进入插入模式,您可以试一下。

1.3 编辑模式

在命令模式下输入 : 之后进入编辑模式。
编辑模式下可以对vim工具进行设定,比如添加行号,设置自动对齐,设置快捷键等。

在编辑模式下输入:

set number

回车之后vim会显示行号,而且自动回到命令模式。

命令作用
:set number显示行号(编辑模式)
:set nonumber取消行号(编辑模式)

2. 插入

以下命令(字符)按完之后,直接进入插入模式,但进入的同时会有不同的行为。

命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行首插入
o在光标下面插入新行
O在光标上面插入新行

小写和大写是有区别的。学习vim要强化练习,让这些命令形成习惯,像键盘练习那样,形成条件反射。

3. 定位

命令作用
h光标左移(同光标键:left)
l光标右移(同光标键:right)
k光标上移(同光标键:up)
j光标下移(同光标键:down)
gg光标移到第一行
G光标移到最后一行
nG光标移到第n行
:n光标移到第n行(编辑模式)
$光标移到行尾
0光标移到行首
^光标移到行首
ctrl+f下一页
ctrl+b上一页

0与^的区别是:^移到行首的第一个字符位置(非空白),而0移到真正的行首(包括空白)。

4. 删除命令

命令作用
x删除光标所在处字符
nx删除光标所在处后n个字符,就是重复n次x命令
dd删除光标所在行
ndd删除光标所在行开始的n行,就是重复n次dd命令
dw删除一个单词
dG删除光标所在行到行尾
dgg删除光标所在行到行首
D删除光标所在处到行尾
d$同上
:行n, 行m d删除n-m行(编辑模式)

5. 选择,复制和剪切命令

命令作用
v从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
V从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
yy复制光标所在行
nyy复制当前行以下n行
y$复制到行尾
yw复制一个单词
dd剪切当前行(上面的删除就是剪切行)
ndd剪切当前行以下n行
p(lower)粘贴到当前行的下行
P(upper)粘贴到当前行的上行

6. 替换和取消命令

命令作用
r取代光标所在处字符,按r,再输入正确的字符
R从光标所在处开始替换,按ESC结束
u撤销一步
ctrl+r重做

7.搜索和替换命令

命令作用
/string搜索指定的字符串,按n,N跳到下一个或上一个string
:% s/old/new/gi搜索old,替换成new,g表示全局,i表示忽略大小写(编辑模式)
:n1,n2 s/old/new/gi同上,但只限于在n1~n2这些行之间搜索。

在搜索时可以高亮显示搜索到关键字

命令作用
set hlsearch高亮
set nohlsearch去掉高亮

替换时:

  • %表示所有行,如果没有%则只对当前行进行替换。
  • g表示全部替换,比如当前行有10个v,要替换成x,没有g的情况下只替换第一个匹配的,有g全替换
  • 与%相对应的:n1,n2 表示指定范围的行,即在n1~n2范围内的行。

8.保存

命令作用
:w保存修改
:w filename另存为
:wq保存并退出,也可以用快捷键ZZ
:q!不保存退出
:wq!强制保存并退出,只有文件所有者和root可以

9. 导入文件

在编辑模式输入:

:r /etc/os-release

把/etc/os-release文件的内容导入到当前文档中,入到光标所在的位置。

10. 运行命令

在编辑模式下输入:

:!whereis ls

!后面跟上命令。 此例执行了whereis ls命令。 这种方式在不退出vim的状态下执行命令。

11. 把命令的结果导入到vim中

在编辑模式下输入:

:r !ls /

把ls /命令执行的结果,导入到当前vim编辑的文档中。

12. 定义快捷键

在编辑模式下输入:

:map ^P I#<ESC>

这里面定义ctrl+p快捷键,分三部分:

  • map
  • 快捷键
  • 自定义命令

I就是我们在命令模式下按I的操作,表示光标跳到行首并进入插入模式,之后输入#,之后按ESC键回到命令模式。

执行这个快捷键时: 相当于在光标所在行,按下I,之后输入#,之后按下ESC回到命令模式。

注意:^P的输入方法是:ctrl+v, ctrl+p。

13. 在编辑中替换

比如:输入mymail回车或空格,自动替换成 myccloves@163

:ab mymail myccloves@163

14. 写入配置文件

我们会发现重启vim,定义的快捷键都没有了,解决的方法是写入配置文件。

在家目录创建.vimrc文件,把一些常用的配置写到这个文件里,比如:定义的行号,快捷键,替换等。
当启动vim时会自动运行此文件,相当于在vim中重新输入了一遍这些命令:

set number
set hlsearch
map ^P I#<ESC>
ab mymail myccloves@163

常用的配置:

" 设置C/C++方式自动对齐 
set autoindent  
set cindent  
set smartindent

" 设置tab宽度 
set tabstop=4

" 设置自动对齐空格数 
set shiftwidth=4

" 设置编码方式 
set encoding=utf-8  

" 设置打开文件的编码格式 
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

" 开启语法高亮
syntax on


" 设置取消备份,禁止临时文件生成 
set nobackup  
set noswapfile

" 设置搜索高亮(hlsearch) 
set hlsearch

转载于:https://wwwblogs/myccloves/p/9419599.html

更多推荐

文本编辑软件vim