vim作为linux操作系统中产不够用的编辑器,其主要有三种模式: 编辑模式(命令模式); 输入模式; 末行模式。vim功能丰富,这里对其各种快捷操作做一个总结。
1、 模式转换:
编辑-->输入:
i: 在当前光标所在处前面输入 I: 在当前光标所在行的行首输入 a: 在当前光标所在处后面输入 A: 在当前光标所在行的行尾输入 o: 在当前光标所在行的下方新增一个空白行输入; O: 在当前光标所在行的上方新增一个空白行输入; |
输入-->编辑: ESC
编辑-->末行: :
末行-->编辑: ESC, ESC
2、 打开文件:
vim +# :打开文件, 并定位于第#行 vim +: 打开文件, 定位至最后一行 vim +/PATTERN : 打开文件, 定位至第一次被 PATTERN 匹配到的行的行首 |
3、 关闭文件:
末行模式关闭文件 : q 退出 :wq 保存并退出 :x 保存并退出 :w 保存 :w! 强行保存 :q! 不保存并退出 编辑模式关闭文件 ZZ: 保存并退出 |
4、 移动光标(编辑模式)
逐字符移动: h: 左 l: 右 j: 下 k: 上 #h: 移动#个字符; 以单词为单位移动: w: 移至下一个单词的词首 e: 跳至当前或下一个单词的词尾 行内跳转: 0: 绝对行首 ^: 行首的第一个非空白字符 $: 绝对行尾 行间跳转: #G: 跳转至第#行 G: 最后一行 |
5、 翻屏
Ctrl+b: 向上翻一屏 Ctrl+f: 向下翻一屏 Ctrl+d: 向下翻半屏 Ctrl+u: 向上翻半屏 |
6、 删除字符
x: 删除光标所在处的单个字符 #x: 删除光标所在处及向后的共#个字符 |
7、 删除行
dd: 删除当前光标所在行 #dd 删除包括当前光标所在行在内的#行。 末行模式下删除: m,nd .: 表示当前行 $: 最后一行 +#: 向下的#行 |
8、 复制命令 y (用法同 d)
9、 粘贴命令
p: 如果删除或复制为整行内容, 则粘贴至光标所在行的下方( 小写) 如果复制或删除的内容为非整行, 则粘贴至光标所在字符的后面。 P: 如果删除或复制为整行内容, 则粘贴至光标所在行的上方( 大写) 如果复制或删除的内容为非整行, 则粘贴至光标所在字符的前面。 |
10、 修改 c: (用法同 d 命令) 先删除内容, 再转换为输入模式
11、 替换 r#(当前光标字符替换为#)
12、 撤消编辑操作
u: 撤消前一次的编辑操作,连续 u 命令可撤消此前的 n 次编辑操作 #u: 直接撤消最近#次编辑操作 Ctrl+r: 撤消最近一次撤消操作 |
13、 重复前一次编辑操作 .( 点)
14、 查找 :/PATTERN( 向下找) ?PATTERN( 向上找) n N( 重复下一个)
15、 查找并替换 在末行模式下使用 s 命令(用法同 sed) %: 表示全文, 支持基础正则
16、 分屏显示一个文件
Ctrl+w, s: 水平拆分窗口 Ctrl+w, v: 垂直拆分窗口 在窗口间切换光标:Ctrl+w, ARROW :qa 关闭所有窗口 |
17、 分窗口编辑多个文件
vim -o : 水平分割显示 vim -O : 垂直分割显示 |
18、 将当前文件中部分内容另存为另外一个文件 :ADDR1,ADDR2w /path/to/somewhere
19、 将另外一个文件的内容填充在当前文件中 :r /path/to/somefile
20、 跟 shell 交互 :! COMMAND
21、 vim 可视化 v:按光标走过的区域选择 V: 选择矩形块
22、 窗口属性设置
显示或取消显示行号 :set number(全称) :set nu :set nonu 显示忽略或区分字符大小写 :set ignorecase(全称) :set ic :set noic 设定自动缩进 :set autoindent(全称) :set ai :set noai 查找到的文本高亮显示或取消 :set hlsearch :set nohlsearch 语法高亮 :syntax on :syntax off 显示对应的括号 :sm :nosm(show match) |
23、 配置文件
全局配置文件: /etc/vimrc
个人配置文件: ~/.vimrc
本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1908136,如需转载请自行联系原作者