一、vim简介
vim是vi的增强版,是一个模式化的编辑器,功能非常的强大。通常,vim共分为3中模式,分别是编辑模式、输入模式、和末行模式 编辑模式:是vim的默认模式,通过vim打开文件一开始就是编辑模式,可进行删除,复制等操作 输入模式:又叫插入模式,在该模式下输入的内容都会当做文本内容来使用 末行模式:即在整个屏幕的最下方,在里面可以键入命令实现一些在编辑模式下无法实现的特性和功能,比如查找替换,行标显示等 用vim打开文件的格式为:vim [options] /path/to/somefile 说明这里的路径可以省略,等文件内容写完在决定保存的路径也是可以的
二、模式转换 编辑模式-——>输入模式: i:insert,实现在当前光标所在处转换为输入模式 a:append,实现在当前光标所在处字符后面转换为输入模式 o:实现在当前光标所在行的下方新建一个空白行并转换为输入模式 I:在当前光标所在行的行首转为输入模式 A:在当前光标所在行的行尾转为输入模式 O:在当前光标所在行的上方新建一行,并转换为输入模式 输入模式——>编辑模式转换 按下Esc键 编辑模式——>末行模式 键入“:” 末行模式——>编辑模式 一般要按两次Esc,Esc 说明:输入模式到末行模式是无法直接实现的,只能先转换为编辑模式,然后在转换为末行模式 三、光标跳转 字符间跳转: h:向左 l:向右 j:向下 k:向上 在他们之前加上数字就可以实现向某个方向移动多少位,如:5h就表示向左侧跳5个字符,这些操作都是在编辑模式下实现的 单词间跳转:w:跳至后一个单词的词首
e:跳至当前或下一个单词词尾 b:跳至当前或者前一个单词的词首 句子间跳转: ):跳至下一句 (:跳至前一句 段落间跳转: }:跳至后一段 {:跳至前一段 行间跳转: 1G:跳到第一行 G:跳到最后一行 #G:跳到某一行 行内跳转:^:跳到行首,跳到行首第一个非空白字符
$:跳到行尾,绝对行尾 0:跳到行首,绝对行首四、文件处理
关闭文件:
在末行模式下进行 :w 保存 :q 退出 :! 强制 :wq 保存退出 :q! 强制退出不保存 :x 保存并退出 :qall全部退出 :w!强制保存 :wall所有的都保存 :wqall所有的保存退出 在编辑模式下: ZZ:保存退出 打开文件: vim [options] /path/to/file vim +# /path/to/file 打开文件光标直接定位到#行 vim + /path/to/file 只有一个“+”号,打开文件光标直接定位到最后一行 打开多个文件: 格式:vim 文件1 文件2 文件3... 多文件间跳转在末行模式下进行: :next下一个 :last最后一个 :first第一个 :prev 前一个 下面选项可实现多文件分割窗口格式为:vim [Option] 文件1 文件2 文件3... -O:垂直分割窗口 -o:水平分割窗口 文件间切换敲击ctrl+w然后按上下左右箭头 编辑命令: x:删除单个字符 #x:删除光标所在处向右几个字符 删除命令d; dw:删除当前光标到单词尾的所有字符 db:删除当前光标之前的单词 de:删除光标之后的单词 d^:删除光标到行首的所有字符 d$:删除光标到行尾的所有字符 dd:删除光标所在行 #dd;删除光标所在行及向下#行 在末行模式下使用d命令 末行模式支持地址定界: 用法: 起始地址,结束地址 $:最后一行 .:当前光标所在行 %:全文 1,7d:第一行到第七行删除 %:表示全文 1,$:也表示全文 1,+6:第一行在向下数6行 1,$-2:第一行到倒数第三行 .,+3:当前行在向下3行 编辑操作可撤销: u:默认会保存最近50次的操作,u命令可逐一撤销此前编辑的操作 撤销此前的撤销:ctrl+r 粘贴操作: p: 删除的是整行: p:在当前光标所在行的下方粘贴 P;大写P,在当前光标所在行的上方粘贴 删除的不是整行; p:在当前光标所在处字符的后面粘贴 P:大写P,在当前光标所在处字符的前面粘贴 复制:用y键 yy:复制一行 #yy:复制#行 y$:复制光标到行尾 y^:复制光标到行首 复制的是整行: p:在当前光标所在行的下方粘贴 P;大写P,在当前光标所在行的上方粘贴 复制的不是整行; p:在当前光标所在处字符的后面粘贴 P:大写P,在当前光标所在处字符的前面粘贴 通过vimtutor命令可以帮助学习vim 翻屏: ctrl+f;向文件尾部翻一屏 ctrl+b:向文件首部翻一屏 ctrl+d:向文件尾部翻半屏 ctrl+u:向文件首部翻半屏 文本搜索: /keyword:从当前光标所在处向文件尾部查找 ?keyword:从当前光标所在处向文件首部查找 n:下一个,跟查找命令相同的方向 N:前一个,跟查找命令相反的方向 说明:文本搜索支持模式匹配,也即支持正则表达式的匹配 例如:字母d中间有两个字母后跟n的单词/\<d[[:alpha:]]\{2\}n\> 编辑命令 cc:删除当前光标所在行并转化为输入模式 #cc:删除当前光标所在行向下#行并转化为输入模式 c$:删除当前光标所在处到行尾并转化为输入模式 c^:删除当前光标所处到行首并转化为输入模式 c0:删除至行首并转化为输入模式 vim支持可视化模式 v:选中光标划过的字符 V:选中光标划过的行,整行选取 按Esc即可返回到编辑模式 同一文档窗口分割: ctrl+w,s;水平分割 ctrl+w,v:垂直分割 ctrl+w,箭头 窗口属性定义: 显示行号: set number,set nu set nonumber,set nonu 自动缩进 set autoindent,set ai set noai 不区分字符大小写 set ingorecase,set ic set noic 获取帮助 set 敲enter键 显示匹配括号 set showmatch,set sm set nosm 语法着色: syntax on syntax off 搜索高亮显示 set hlsearch set nohlsearch vim的配置文件 全局 /etc/vimrc 只有管理员才有权限修改配置,修改之后对所有用户都有效 个人:~/.vimrc 这个文件实际不存在自己创建即可,修改之后只对当前用户自己有效对其他用户无效查找替换在末行模式下 格式为 :地址定界s/查找模式/替换成的内容不能使用模式/gi 也可以 :地址定界s@查找模式@替换成的内容不能使用模式@gi 查找模式可以使用正则表达式 global全局替换 ignorecase 查找时不区分大小写 %表示全文搜索