vim:(visual interface improved),是一款全屏的纯文本ASSCII的编辑器,是 vi 的加强版,相比较 vi 来讲,vim支持语法高亮等特色。正则表达式
vim是一种模式化的编辑器,常见的模式有编辑模式(命令模式),输入模式,末行模式,可视化模式,多文件模式,多窗口模式等。vim
Usage: vim [option]... [FILE]...编辑器
vim 选项+ide
vim + file 打开文件时光标处在最后一行的行首spa
vim +3 file 打开文件时光标处在第三行的行首命令行
1、各个模式的介绍orm
编辑模式(命令模式):这个模式下键盘操做一般被理解为编辑命令接口
输入模式:此模式下用户能够输入文本内容ci
末行模式:vim内置命令行接口,执行vim内置变量字符串
可视化模式:此模式下用户能够高亮选择文本的内容
多文件模式:此模式下用户一次能够打开多个文件
多窗口模式:此模式下在全屏下可显示多个窗口来编辑文件
2、各个模式之间的切换
模式切换类型
切换方法
编辑模式 -> 输入模式
i,a
在光标所在处的前方,后方转换为输入模式
I,A
在光标所在处的行首,行尾转换为输入模式
o,O
在光标所在行的上一行,下一行转换为输入模式
输入模式 -> 编辑模式
ESC
编辑模式 -> 末行模式
:
末行模式-->编辑模式
ESC
3、编辑模式(命令模式)下的文本操做
操做分类
具体方法及意义
光标移动
字符间移动
j,k
j:向下移动光标 k:向下移动光标
h,l
h:向左移动光标 l:向右移动光标
#{h|j|k|l}
3h:向左跳跃光标3个字符 4j:向下跳跃光标4行
单词间移动
w
w:光标移动到下一个单词词尾
e,b
e:光标跳跃到当前或下一个单词词尾
b:光标跳跃到当前或上一个单词词首
#{w|e|b}
3w:光标跳跃到下3个单词的词尾
4b:光标跳跃到上3或4(光标刚好在词首)个单词的词首
行内移动
0,$
0:光标跳跃到绝对行首
$:光标跳跃到绝对行尾
^
^:光标跳跃到行首第一个非空白字符开头处
Ctrl+f
Ctrl+b
Ctrl+u
Ctrl+d
向文件尾部翻一屏
向文件首部翻一屏
向文件尾部翻半屏
向文件首部翻半屏
行间移动
#G
5G:将光标跳跃到第5行行首第一个非空白字符开头处
G,gg
G:将光标跳跃到行尾第一个非空白字符开头处
gg:将光标跳跃到行首第一个非空白字符开头处
编辑命令
x类
x,#x
x:删除光标所在处的字符
4x:删除光标所在处以及以后的共4个字符
d类
dd D #dd d#d
dd:删除光标所在处的一整行
D:同 d$ 同样,删除光标所在处行向后的全部内容
d结合w,e,b,^,$,0,G,gg一块儿使用
dgg:删除光标处以及光标处到行首的全部内容
db:删除光标处到光标处前单词的单词首部的内容
y类
yy,Y,y#y,#yy
yy Y:复制光标所在处的整行
y3y 3yy:复制光标所在处的及如下共3行
结合w,e,b,^,$,0,G,gg一块儿使用
yw:复制光标所在处向后一个单词首部的的字符
y$:复制光标所在处向后这行全部的的字符
yG:复制光标所在处向后文件尾部行全部的的字符
p类
p P
行级别:
p: 粘贴于当前行下方
P: 粘贴于当前行上方
小于行级别:
p: 粘贴于当前光标所在处的后方
P:粘贴于当前光标所在处的前方
c类
cc,#c
cc C:删除光标所在处的一整行,并进入输入模式
结合w,e,b,^,$,0,G,gg一块儿使用
cgg:删除光标所在处到文件行首的全部内容,并进入输入模式
c0:删除光标所在处到行首的全部内容,并进入输入模式
撤消编辑
u,#u
u:撤销上一次操做
3u:撤销前3次操做
ctrl+r
撤销上一次撤销操做
重复
.
重复上一条命令
4、末行模式
末行模式是执行一些vim的内置变量,以及问搜索、替换、删除等操做。在这里要引入内容定界。
内容定界的格式是:startpos,endpos。说明在末行模式下操做的范围。
内容定界符
具体意义
#
#:第#行
3:表示第三行
.
.:表示当前行
$
$:表示最后一行
%
%:表示全文 等价于 1,$
$-# .+#
支持像$-2, .+2等内容定界.+1,$-1 表示当前行的下一行至倒数第二行
下面介绍末行模式的的操做方法以及意义,这些操做都是结合内容定界符一块儿使用的。
种类
具体意义
c d y
:%y 复制整个文本内容
:.,30d 删除当前行道30行的内容
100c:删除100的内容,并变为输入模式,在100行的行首
w r
w /path/to/somefile: 将选定范围内的内容保存至某文件
r /path/from/somefile: 将指定的文件中的内容读取到指定位置中
`例如:
:1,100w /tmp/test.txt 将1,100的内容保存到/tmp/test.txt文件中
:54r /etc/passwd 将/etc/passwd文件内容加入到54行的下面
s///gi
s/要查找内容的模式/要替换的字符串或者引用/gi
其中g: global, 全行替换 i: 不区分字符大小写
:%s@^[[:space:]]\{1,\}@@g 删除整个文本的空白行
/ ?
/ ? 是命令行搜索,支持正则表达式
/pattern 向下搜索
?pattern 向上搜索
N n 使用n,N上下查看
命令
:set nu 显示行号
:set nonu 取消显示行号
:set ai 自动缩进
:set noai 取消自动缩进
:set ic 设置忽略大小写
:set noic 取消设置忽略大小写
:set sm 设置括号匹配
:set nosm 取消设置括号匹配
:syntax on|off 设置语法高亮
:set hlsearch 设置搜索高亮
:set nohlsearch 取消设置搜索高亮
5、可视化模式,多文件模式,多窗口模式
1)可视化
v:指的是国标所走过的字符
V:指的是国标所走过的行
例如:在某些连续的行首加入#号。编辑模式下:V-->选中行--->I--->#---->ESC就可完成此功能。
2)多文件模式
vi file1 file2 file3... 在末行模式下可使用next,previous,last,first关键字打开下一个,上一个,最后一个,第一个文件。使用wqall能够保存所有文件。
3)多窗口模式
多文件模式:vim -o:水平分割窗口
-O:垂直分割窗口
单文件模式:
Ctrl+w, s: 水平分割
Ctrl+w, v: 垂直分割
6、配置文件
/etc/vimrc:全局的
~/.vimrc:用户模式下的配置文件
补充:
1.设置制表符宽度:set tabstop=4:set softtabstop=42.设置缩进的空格数:set shiftwidth=43.每行的缩进值与上一行相等:set autoindent4.使用C/C++语言的自动缩进方式
:set cindent5.显示行号:set nu6.将搜索内容反白:set hlsearch7.能够删除任意值:set backspace=2
本文侧重介绍的是vim文本编辑器的使用。