码迷,mamicode.com
首页 > 系统相关 > 详细

VIM命令总结

时间:2015-09-14 16:57:19      阅读:261      评论:0      收藏:0      [点我收藏+]

标签: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

VIM命令总结

标签:linux vim

原文地址:http://jzrobbie.blog.51cto.com/6535329/1694551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!