VIM编辑器
vim - Visual Interface Improved – 改良的文本编辑器
- vi 是现今Linux脚本编辑用得最多的一个工具,完全脱离鼠标模式。
- vim 行切换快速而又高效,代码可以呈现高亮.
- vim 可以在文本编辑中完全在编辑模式下进行编辑外的其它操作..
VIM的文本模式
– vim的模式众说纷纭,各有各的说法,但理是一样的。下面做下四种模式简介:
命令模式
用户默认进入的模式就是命令模式,在命令模式下可以进行对文档的处理操作,如删除,复制...等等
字符间的移动:
k: 上 j:下 h:左 l:右
单词间的移动:
w:移动至下一个单词的
e: 移动到当前或下一个单词的词尾
b:移动当前或前一个单词的词首
当前页跳转 :
H: 跳至当前页的页首
M: 跳至当前页的中间行
L: 跳至当前页的页底
行首行尾移动 :
^: 移动至行首的第一个非空白字符
0: 移动到行首
$: 跳转至行尾
行间跳转 :
G: 跳至最后一行
gg: 跳至第一行
翻屏操作 :
ctrl+f: 向后翻一屏
ctrl+b: 向前翻一屏
ctrl+d: 向后翻半屏
ctrl+u: 向前翻半屏
文本操作 :
x: 删除光标所在处的字符
#x: 删除光标所在处起始至#个字符
xp: 交换光标所在处的字符及其后面的字符位置
~: 转换字母大小写
J:删除当前行后的换行符
替换命令 (r, replace)
r: 替换光标所在处的字符
R: 切换至Replace模式,进行文档的编辑或替换操作
删除命令 :
d: 删除命令,(可结合光标移动字符,如:d$, d^, d0...等等)
dd: 删除光标处所在的整行 (#dd 删除光标处至#的行)
D: 删除光标至行尾的字符
复制命令 :
y: 复制命令,复制整行。(可结合光标移动字符,如:y^, y$, y0..等等)
yy: 复制行 也可以 #yy
粘贴命令 :
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下 方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上 方;否则,则粘贴至当前光标所在处的前面
退出 :
ZZ: 保存退出
ZQ: 不保存退出
扩展模式
输入“:” 进入扩展模式,输入“ESC”退出,退出是直接到命令模式。扩展模式的作用: 可以执行一些命令行的操作
地址定界:
:
# 行间定位
#,# 前#至后#行
#,+# 表示前#加后#行 即 (1,+3) 4行
. 当前行
$ 最后一行 .,$-1 当前行到倒数第二行
% 全文,相当于1,$
查找 :
/pattern :从光标处向文件尾部查找
?pattern :从光标处向文件首部查找
n :同向查找
N :逆向查找
查找并替换:
格式:
s/需查找的内容/需替换的内容/格式参数
格式的/可以是其它符号,
格式参数:
i: 忽略字母大小写
g: 全局替换,默认每行只替换一次。
gc: 全局替换,每次替替交互式询问
例:
s#/bin#/sbin#g
例:
复制/etc/profile至/tmp/目录,用查找替换命令删除 /tmp/profile文件中的行首的空白字符
:%s@^[[:space:]]\{1,\}@@g 查找以空格开头出现最少1次以上的全局替换为空
复制/etc/rc.d/init.d/functions文件至/tmp目录,用查 找替换命令为/tmp/functions的每行开头为空白字符的行的 行首添加一个#号
:%s@^[[:space:]]\{1,\}@#@g 查找以空格开头至少出现1次以上全局替换为#
命令:
w: 保存
wq: 保存退出
x: 写入退出
q: 退出
q!: 强制不保存退出
r: r filename 读文件内容到当前文件中
w: wfilename 将当前文件内容写入另一个文件
!: command 执行命令
r: command 读入命令的输出
插入模式
输入“i , o , a , I , O ,A " 进入插入模式,退出使用 "ESC" 键 插入模式作用: 可以进行对文件的编辑
i: insert, 进入插入模式,在光标处进行编辑
I:在当前光标所在行的行首进行编辑
a: append, 在光标所在后面进行编辑
A:在当前光标所在行的行尾进行编辑
o: 在当前光标所在行的下行打开一个新行
O:在当前光标所在行的上行打开一个新行
可视化模式
可视化模式可以大范围的操作整行或整个字符串(如复制,删除...) 退出使用 "ESC" 键
v: 面向字符进行命令行模式操作
V: 面向行进行命令行模式操作