vim用法详解

 文本编辑器分为:

行编辑器:sed,stream EDitor
全屏幕编辑器:nano,emacs,vi--visual interface

vi是模式化编辑器:

vi的增强版:vi improved, vim

vi&vim的模式有:

编辑模式:也叫命令模式

输入模式:
末行模式:

启动vim:

vim [option] FILE ...


vim +n:打开时光标位于第几行, n为打开vim时光标所在的行
vim +/PATTERN FILE ...第一次出现有pattern出现的行


如何退出vim:
按SHIFT键+:(冒号),再输入q 即可退出

一旦编辑了文本,再退出时:
不保存 :q!
保存 :wq

强制保存 :w!
在编辑模式,保存用:
shift ZZ


打开默认模式:编辑模式
SHIFT+:进入末行模式

编辑模式-->输入模式:
i:当前光标所在字符前插入
a:当前光标所在字符后插入
o:在当前光标所在行的下一行新增一行

I:当前光标所在行的行首插入
A:当前光标所在行的行尾
O:当前光标所在的上方新增空白行并输入


c:先删除指定范围的内容,在转换至输入模式
#c:删除多少行


模式间的转换:
输入模式-->编辑模式:
按ESC键


编辑模式-->末行模式:
SHIFT+:

末行模式-->编辑模式:
ESC键

输入模式不能转换到末行模式


光标跳转:
h : 向左
j : 向下
k : 向上
l : 向右

词间跳转:
w键:跳到下一个单词词首
#w:w前加一个数字,表示跳几个单词,达到行首

e:跳转至后面一个的词尾
b:跳转至前面一个的词首 前面可以见相应数字,表示跳转几个

行首、行尾:
^ :跳到第一个非空白字符处

数字0:绝对行首 (Tab键除外)

$:绝对行尾


行间跳转:
#G:表示跳到第几行,#表示数字
G:跳转至文件尾部


末行模式下:
:# 冒号加要跳转的行数,#表示行数


翻屏操作:
ctrl+f键:向文件尾部翻屏
ctrl+b键:向文件首部屏幕
ctrl+d键:向文件尾部翻半屏
ctrl+u键:向文件首部翻半屏


删除命令:
x:删除光标处的一个字符
#x:删除n个
X:往光标前删除
d:删除行::
#d:删除多少行
dw,d$,d0 光标往前走不会包含光标处得字符
d命令结合跳转命令
dd:删除光标所在行
#dd:删除多少行

末行模式下的删除:
地址定界:1,50d 表示删除第一行到第50行
ADDR1,ADDR2
.:表示当前行
$:表示尾行
.,$:表示所有行

相对地址定界:+#,-#
.,$-1:表示倒数第二行

/PATTERN1/,/PATTERN2/ 从下一个P1模式第一次出现到P2第一次出现

粘贴:
p:
删除或复制的是整行:在当前光标所在行下方粘贴
删除的是单词或行的部分:在当前光标所在处后方粘贴

P:
删除或复制的是整行:在当前光标所在行上方粘贴
删除的是单词或行的部分:在当前光标所在处前方粘贴


yy:复制
y:w,b,e,^,o,$
yy:vv
#yy

可视化模式:

v:按字符选取 (可配合h,j,k,l键使用)
V:按行选取(高亮显示,可以配合上下键,选取可视化区域)


撤销编辑操作:
u:撤销上一次编辑操作
ctrl+r:撤销最后一次的撤销操作

在末行模式下,不支持#u
在命令(编辑)模式下可以用#u

搜索:vim
/keyword:
?keyword:

n:向下搜索
N:向上搜索

搜索到的内容会高亮显示::

查找并替换:
在末行模式下使用s命令
:定界s/查找的内容/替换成的内容/gi

查找的内容:支持正则表达式
替换成的内容:不支持正则表达式,但可使用前向引用

修饰符:
g:全局替换
i:忽略大小写


如把/etc/rc.d/rc.sysinit中前20行的uname替换成username:

1,20s/uname/username/g


&:用于引用查找到的整个字符串

定界符:
1,$ = % 表示全文查找

:%s/\/etc/sysconfig\/network/&s/g


分隔符:
/:
#
s###
s@@@ aite


在末行模式下:
!shell command :(!加shell命令)直接执行shell命令

定界符:

窗口拆分:
ctrl+w,s:水平拆分(先按shift键和w键,松开后,再按s键)

ctrl+w,v:垂直拆分

ctrl+w,q 取消拆分

使用vim打开多个文件:
vim FILE1 FILE2 .... (后跟多个文件名)

在末行模式下:
输入 next 切换至后一个文件
prev 切换至前一个文件
first 切换至第一个文件
last 切换至最后一个文件


wq all退出所有文件

wall 保存退出
wqall 保存退出

q!all 强制退出

打开多个文件并拆分显示:
vim -o file1 file2...
vim -O 把窗口垂直拆分


定制vim的工作属性:

末行模式下:
:set [no] nu :显示或取消行号
:set [no] ai  :

:set [no] ic 忽略大小写

:set [no] hlsearch 高亮显示或取消高亮显示

全局配置位于:/etc/vimrc

手动设置: vim ~/.vimrc

命令行模式下输入set,可以见到常见的属性

你可能感兴趣的:(vim用法)