vim模式:编辑模式(命令模式)——键盘操做一般解析为编辑命令;输入模式——键盘输入模式;末行模式——Vim内置的命令接口,执行Vim内置命令web
vim配置文件: /etc/vimrc 正则表达式
模式转换:shell
编辑模式——> 输入模式: vim
i:在当前的光标所在的字符的前面,转入输入模式 I:在当前的光标所在的行首,转入输入模式 a:在当前的光标所在的字符的后面,转入输入模式 A:在当前光标所在的行尾,转入输入模式 o:在当前的光标所在的行的下面,新建一行,转入输入模式 O:在当前的光标所在的字符的上面,新建一行,转入输入模式
输入模式——>编辑模式: tcp
按“ESC”键,转入编辑模式编辑器
输入模式——> 末行模式: svg
输入“:”,转入末行模式
末行模式——>编辑模式: spa
按两次“ESC”键 ,转入输入模式
退出模式:code
:q 退出 :wq 保存退出 :q! 不保存退出 编辑模式ZZ 保存退出
末行模式xml
在编辑模式下,输入: 便可 :10d 删除第10行 :10,20d 删除第10到20行 :! ls /etc 与命令相结合
Vim打开文件
一、多个文件同时打开
:next 跳转到下一个文本 :prev 跳转到前一个文本 :first 跳转到第一个文本 :last 跳转到最后一个文本 :qalll 退出全部文本,不保存 :wall 保存全部文本并退出
二、分割窗口打开多个文件
:o 水平分割窗口 :O 垂直分割窗口 Ctrl+w 切换窗口 ;左右箭头,上下箭头 进行光标转移
Vim移动光标
一、逐字符移动光标
h键 向前移动光标;l键 向后移动光标 ;j键 向下移动光标 ;k键 向上移动光标
二、逐单词移动光标
w键 移动光标至下一个单词的词首;e键 移动光标至下一个单词的词尾 ;b键 移动光标至前一个单词的词首 Nw | Ne |Nb 表明了向前,向后移动了n个单词
三、光标行首,行尾跳转
0(数字0)光标移动到行首 ; ^ 光标移动到行中的第一个非空白字符 ; $ 光标移动到行的行尾
四、光标逐行跳转
G 光标跳转至最后一行 ; NG 光标跳转到第N行 ;在末行模式下,直接给出行号便可 如 :10 。
五、光标逐句跳转
) 光标跳转至下一句 ;
( 光标跳转至上一句 ;
Num 与句跳转快捷键一同使用,向指定方向跳转句的个数 ,如10( ,表明向前跳转10句
六、光标逐段跳转
} 光标跳转至下一段 ; { 光标跳转至上一段 ; Num 与段跳转快捷键一同使用,向指定方向跳转段的个数 ,如10{ ,表明向前跳转10段
Vim编辑操做
一、删除单个字符命令x
x 删除光标所在处的单个字符 ; Nx 删除光标所在处及向后的共N个字符
二、删除行命令d
d命令与跳转命令结合使用;如d0 ,d$ , d{ , d( ,dw , dh ; dd删除光标所在行
三、末行模式下的范围定界
:n,md 删除第n行到m行 ; :. 表示当前行 ; :$ 表示最后一行 如 :.,$-2d 表明删除当前行到倒数第二行的内容 :/prt1/,/prt2/ 被第一次prt1匹配的行至被第二次prt2匹配的行就结束 :+N 向下的N行 :% 表示全文
四、替换命令r
r 替换光标所在处的字符
五、改变命令c ,与d命令类似
c 表示删除内容并进入输入模式进行内容替换 c 与跳转命令结合使用,如 c0 ,c$ , c{ , c} , cw , ch cc 删除光标所在行,并进入输入模式 Ncc 删除光标以后的N行,进入输入模式
六、复制命令y
y命令与跳转命令结合使用;如y0 ,y$ , y{ , y( , yw , yh ; yy 复制当前行 Nyy 复制光标以后的N行
七、粘贴命令p
p 若是删除的或复制的内容为整行内容,则粘贴纸光标所在行的下方 ,若是删除或复制的内容为为非整行内容,则粘贴至光标所在行的后面 P 若是删除的或复制的内容为整行内容,则粘贴纸光标所在行的上方 ,若是删除或复制的内容为为非整行内容,则粘贴至光标所在行的前面
八、撤销命令u
u 撤销以前的命令操做 #u 撤销#次操做 Ctrl +r 撤销掉错误的撤销操做
Vim翻屏操做及查找替换
Ctrl + f 向文件尾部翻一屏 ; Ctrl + b 向文件首部翻一屏
Ctrl + d 向下翻半屏 ; Ctrl + u 向上翻半屏
Enter 向后翻一行 ; k 向上翻一行
/PATTERN 向下查找匹配PATTERN的字符
?PATTERN 向上查找匹配PATTERN的字符
查找替换:
在末行模式下使用s命令 格式为 :ADD1,ADD2 s@PATTERN(正则表达式)@string@gi ,其中g 表明golal ,i表示不区分大小写
例:1,+9s@[[:space:]]{1,}#@@g 从第一行到第10行中,查找以致少一个空白字符,且紧跟# ,替换为空
例:1,28s@^[^#].*@#&@g 从第一行至第28行中,替换以非# 开头的行,前面加#
例:1,28s@(l(..e))(.*\1)@L\2\3@g 替换先后相同的l为L
将当前文件中的部份内容另存为另一个文件,w
末行模式下 :ADDR1,ADDR2w /PATH/to/somwhere
将另一个文件的内容填充在当前文件中
末行模式下 :r /PATH/To/Somewhere
根shell 交互
末行模式下 :!COMMAND
Vim窗口属性定义
一、显示或取消行号
:set nu 显示行号 :set nonu 取消行号显示
二、设定vim编辑器显示忽略或区分字符大小写
:set ic 忽略大小写 :set noic 不忽略大小写
三、设定自动缩进
:set ai 或 :set autoindent 设置自动缩进 :set noai 取消自动缩进
四、高亮显示搜索结果
:set hlseartch 高亮显示 :set nohlsearch 取消高亮显示
五、语法高亮
:syntax on 语法高亮显示 :syntax off 关闭语法高亮显示
六、显示与之匹配的括号
:set sm 显示与之匹配的括号 :set nosm 取消显示与之匹配的括号