文本编辑软件vim

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.com

:ab mymail myccloves@163.com

14. 写入配置文件

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

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

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

常用的配置:

" 设置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
posted @ 2018-08-04 19:09  老陌  阅读(484)  评论(0编辑  收藏  举报