vim +# ?打开文件后,让光标处于第#行的行首,+默认行尾 ? ? +/正则表达式 ?打开文件后,让光标处于匹配正则表达式的行首 ? ? -b 二进制方式打开文件 ? ? -d 比较多个文件 ? ? -m 只读打开文件 ? ? -e 直接进入ex模式
三种主要的模式: ?命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本 ?插入(Insert)模式或编辑模式:修改文本 ?扩展命令(extended)模式:保存,退出 Esc键,退出当前模式 2次Esc键,返回到命令模式
模式切换 插入→命令 ?Esc 命令→扩展 ?: 扩展→命令 ?Esc 命令→插入 ?i
扩展模式: q ? 退出 q! ?强制退出 wq ?保存退出 x ? 保存退出 d ? 删除 y ? 复制 p ? 粘贴 r file ?读file内容追加到当前文件中 w file ?将当前文件内容写入另一个文件,另存为 !CMD ? ?执行命令 r!CMD ? 读入命令的输出 # ? ? ?第#行 #,# ? ?从第#行到第#行 #,+# ? 2,,+3 表示第2行到第5行 . ? ? ?当前行 $ ? ? ?最后一行 % ? ? ?全文 /part1/,/part2/ ? part1匹配至part2匹配 / ? 从光标所在处向尾部查找 ? ? 从光标所在处向首部查找 n ? 与命令同方向移动 N ? 与命令反方向移动 s@查找的内容@替换的内容@修饰符(不加修饰符,默认替换每行第一个) ? ? ? ? ? ? ? ? ? ? ? ?i:忽略大小写 ? ? ? ? ? ? ? ? ? ? ? ?g:全局替换 ? ? ? ? ? ? ? ? ? ? ? ?gc:全局替换,替换前询问
命令模式: ZZ ? 保存退出 ZQ ? 不保存退出 i ? ?在光标处输入 x ? 剪切光标处的字符 #x ?删除光标处起的#个字符 xp ?光标处前后字符换位 p ? ?粘贴,下方 P ? ?粘贴,上方 u ? 撤销 #u ?撤销#次 U ? 撤销到最早状态 ctrl+r 撤销最后的“撤销” . ? ?重复前一个操作 #. ? 重复前一个操作#次 ~ ? ?转换大小写 J ? ?合并光标所在行和下一行 r ? ?修改光标所在处字符 R ? ?切换到REPLACE模式 d$ 删除到行尾,=D ? d^ 删除到非空行首 ? d0 删除到行首 ? dw 删除到下一个单词的词首 de 删除到下一个单词的词尾 ? db 删除到前一个单词的词首 ? dd 删除整行 ? #dd 删除#行 y$ ? 复制到行尾,=Y y^ ? 复制到非空行首 y0 ? 复制到行首 yw ? 复制到下一个单词的词首 ye ? 复制到下一个单词的词尾 yb ? 复制到前一个单词的词首 yy ? 复制整行 #yy ?复制#行 c$ ?删除到行尾并切换到插入模式,=C c^ ?删除到非空行首切换到插入模式 c0 ?删除到行首切换到插入模式 cw ?删除到下一个单词的词首切换到插入模式 ce ?删除到下一个单词的词尾切换到插入模式 cb ?删除到前一个单词的词首切换到插入模式 cd ?删除整行切换到插入模式 #cc 删除#行切换到插入模式
d删除、y复制、c删除切换,配合跳转使用 字符间跳转 ?h:左 ?l:右 ?j:下 ?k:上 ?#h,l,j,k 跳转到#指定的个数的字符 单词间跳转 ?w:下一个单词的词首 ? ? ? ? ? ?e:下一个单词的词尾 ? ? ? ? ? ?b:前一个单词的词首 ? ? ? ? ? ?#w,e,b:由#指定一次跳转的单词数 当前页跳转 ?H:页首 ? M:页中间 ? L:页底 ?? 行首行尾跳转 ?0:行首 ? $:行尾 ? ^:行首的第一个非空字符 行间移动 ?#G:跳转到#指定行 ? ?G:最后一行 ? ?gg:第一行 句间移动 ?):下一句 ? ?(:上一句 段落间移动 ? }:下一段 ? ? {:上一段 ctrl+f:向文件尾部翻一页 ? ctrl+b:向文件首部翻一页 ?? ctrl+d:向文件尾部翻半页 ? ctrl+u:向文件首部翻半页
start CMD end CMD:y,d,gU变大写,gu变小写 例子0y$ 0→先到行首 y→从这里开始拷贝 $→拷贝到本行最后一个字符
100iwang[ESC]粘贴“wang”100次
插入模式: I ? ?光标所在行的行首输入 a ? ?光标后面输入 A ? ?光标所在行的行尾输入 o ? ?光标的下方打开新一行 O ? ?光标的上方打开新一行
可视化模式(命令模式下操作) v ? 面向字符 V ? 面向行 ctrl+v ?面向块
多文件显示 vim file1 file2 :next ? 下一个 :prev ? 前一个 :first ?第一个 :last ? 最后一个 :wall ? 保存所有 :qall ? 退出所有 :wqall
多文件窗口分屏 vim -o file1 file2 o ?水平分割 O ?垂直分割 ? 切换窗口:ctrl+w+方向键
单文件窗口分屏 ctrl+w+s ?水平分割 ctrl+w+v ?垂直分割 ctrl+w+q ?取消相邻窗口 ctrl+w+o ?取消全部窗口
寄存器 有26个命令寄存器和1个无命名寄存器,常存放不同的剪贴板内容,可以不同会话间共享 寄存器名字a,b,..,z格式:"寄存器 放在数字和命令之间 ? ?如:3"tyy 表示复制3行到t寄存器中 ? ? ? ?"tp ? 表示将t寄存器内容粘贴 未指定,将使用无命名寄存器 有10个数字寄存器,用0,1,..,9表示,0存放最近复制内容,1存放最近删除内容,当新的文本 变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享
定制vim工作界面: 全局:/etc/vimrc ? 个人:~/.vimrc 1)行号 显示:set nu 不显示:set nonu 2)忽略大小写 启用:set ic 不忽略:set noic 3)自动缩进 启用:set ai 禁用:set noai 4)只能缩进 启用:set si 禁用:set nosi 5)高亮搜索 启用:set hlsearch 禁用:set nohlsearch 6)语法高亮 启用:syntax on 禁用:syntax off 7)显示Tab和换行符 启用:set list 禁用:set nolist 8)设置光标所在行的标示线 启用:set cul 禁用:set no cul 9)复制保留格式 启用:set paste 禁用:set nopaste 10)文件格式 Windows:set ff=dos Unix: ? set ff=unix
|