标签:linux vim
vim是linux中最常用的全屏编辑器之一, 它主要运行在三个模式下
编辑模式: 也叫命令模式, 在文本上提供基本的操作,如上下左右移动等.
输入模式: 顾名思义,也就是输入编辑指令
末行模式:运行vim的内置命令, 例如,搜索,存储等
几种模式的转换
启动vim默认是编辑模式
编辑模式-->输入模式: i,I, a, A, o, O
输入模式-->编辑模式:Esc键
编辑模式-->末行模式: :
末行模式-->编辑模式: Esc
两个模式的转换需要先到编辑模式, 末行模式和输入模式间不能转换
vim退出:
q! :不保存退出
wq 或 x: 保存退出
wq!: 强制保存退出
ZZ: 编辑模式保存退出, 省略了切换到末行模式
编辑模式下的基本命令操作
字符间移动: h向下, j向上, k向左, l向右
单词间跳转: 光标所在处, w下一个单词的头一个字母, e当前或下一个单词的最后一个字母, b上一个单词的首字母
行内跳转: ^行首第一个非空格字母,0绝对行首, $绝对行尾
行间移动: G最后一行, #G绝对的第几行
编辑操作
x: 删除光标所在
#x:删除光标所在的连续几个字符
dw: 删除光标处到下个词头,包括光标
de: 删除表标出到词尾,包括光标
db: 删除光标处到自己的词头, 不包括光标
d$或dd: 删除整行
#dd: 删除从光标处连续的几行
注意删除了的结果会保存在缓冲区内, 所以可以粘贴
p: 在光标后粘贴
P:在光标前粘贴
当然可以复制
yy或者y$:复制整行
yw, ye, yb,#yy 和d的用法相同
c: 修改就是先删除再直接转换到输入模式
和d用法一样也可以用, cc, #cc, cw, ce, cb, 但唯一区别是cw的词首默认是包括前面的空格的
rx: 光标出删除并且替换成x
u: 撤销上一次操作
#u: 撤销上几次操作
Ctrl+r:还原, 撤销撤销的操作
G:光标移动到文件尾
gg: 光标移动到文件头
编辑模式到输入模式:
o: 插入下一行并转换输入模式
O: 插入上一行并转换输入模式
a: 插入到光标后
A: 插入到行后
i:插入到光标钱
I:插入到行首
末行模式的命令:
搜索
:/ : 后面加正则匹配,向后搜索
:? :向前搜索
n: 搜索后结果, 向前查找匹配
N: 向后查找匹配
末行模式也可以有类似3yy的行间跳转操作
:#: 跳转到第几行
:$ : 跳转到最后一行
开始行,结束行命令 : 可以同时操作几行,用命令y, c, d. 例如100,+2y 拷贝100行到102行
文件读写相关操作
行写入文件: . 点代表当前行. 例 ., $w /tmp/test.txt 将当前行到末行的所有内容写入文件/tmp/test.txt
读取文件到指定位置: 例如7r /tmp/test.txt 将文件/tmp/test.txt内容写到第七行下面
查找模式并替换内容
格式:自定义查找范围s/正则表达式/要替换的内容/参数
参数:
g: 全行替换, 默认一行替换一个
i:大小写不区分替换
例如:
5,8s/\<test.*\>/excellent/gi 全局替换5到8行内所有以test开头的单词, 并且不分大小写
vim下一些其他常用技巧
vim可视化模式
v:单字符选取后,可执行d, y, c操作
V:行选取后, 可执行d, y, c操作
翻屏幕
Ctrl+f: 往后翻一个屏
Ctrl+b: 往前翻一个屏
Ctrl+d: 往后翻半个屏
Ctrl+u: 往前翻半个屏
多文件模式
可以用命令打开多个文件
vim /var/log/messages1 /var/log/messages2, 这样会打开messages1文件然后在末行模式下输入:next命令打开下一个文件, 然后在: last命令显示前一个文件.
这个模式可用于多文件之间拷贝
一些可以的命令
:next下一个文件, :previous前一个文件, :last上一个文件, first第一个文件
:wqall写入并且推出所有文件
多窗口模式
多文件
命令vim /var/log/messages1 /var/log/messages2 参数
-o: 水平分隔两个窗口
-O:垂直分隔两个窗口
Ctrl+W, 方向箭头, 在不同窗口间切换
单文件
在文件用vim打开后:
Ctrl+w, s:水平分隔, 一个文件
Ctrl+w, v垂直分隔一个文件
然后用Ctrl+W, 方向箭头, 在不同窗口间切换
窗口间属性配置
:set nu, :setnonu 显示或关闭行号
:set ai, :set noai 开或关自动换行
:set ic; : set noic 查询时是否区别大小写
:set hlsearch, :set nohlsearch 搜索是否高亮
:set sm: set nosm 是否自动匹配括号
:syntax on :syntaxoff 语法是否高亮
注意: 如果在末行模式下改这些参数,只是暂时有效,退出无效. 如果要永久有效要修改配置文件/etc/vimrc 或者 ~/.vimrc
标签:linux vim
原文地址:http://jzrobbie.blog.51cto.com/6535329/1694551