vi/vim vim是vi的升级版本 . . 一、VIM三种模型及相互转换三个模式:命令模式、插入模式、退出模式 vim abc.txt //若abc.txt存在,则打开进入命令模式。若abc.txt不存在,则编辑新的abc.txt,不过只有保 存时才会建立;不保存关闭之后仍不存在。 进入命令模式: vim abc.txt //vim命令进入后默认是命令模式 vim abc.txt +7 //进入abc.txt后,直接定位到第7行 vim main.c +/printf //打开abc.txt后,直接定位到第一个printf 处 Esc //插入模式下,按Esc键返回到命令模式 命令模式 --> 插入模式: i //进入插入模式,光标不动。与"INSERT"效果相同。 A //进入插入模式,光标到行尾。 I //进入插入模式,光标到行首。 o //进入插入模式,在下方建一行,光标在新建的一行。 O //进入插入模式,在上方建一行,光标在新建的一行。 退出命令: :w //保存 :q //退出 :wq //保存并退出。等同于":x"命令 :q! //强制退出。如果把窗口X掉,会产生垃圾文件。解决方法:把垃圾文件删掉。不要用X掉窗口的方法关闭文件。 :wq! //强制保存 如果在编辑过程中不小心按了Ctrl+s,vim<span times="" new="" roman";="" mso-hansi-font-family:"times="" roman";mso-bidi-font-family:"times="" color:black;mso-ansi-language:en-us;mso-fareast-language:zh-cn;mso-bidi-language:="" ar-sa"="" style="font-size: 14pt; font-family: 宋体; ">会处于僵死状态,按Ctrl+q可以恢复。 二、VIM常用命令2.1 常用命令3+↑ //光标向上移动三行 应该等价于3+ h、j、k、l //←、↓、↑、→。有的机器不能用箭头移动,需要用键盘操作。一般用不到,知道即可。 w、b //右移一个单词、左移一个单词 (、) //一句话一句话的移 {、} //一段一段的移 ^ //光标移动到行首。直接1000然后加箭头多快 $ //光标移动到行尾。直接1000然后加箭头多快 gg //光标定位到文档头 G //光标定位到文档尾 Ctrl +d //向下翻半页 Ctrl +f //向下翻一页 forward Ctrl +u //向上翻半页 Ctrl +b //向上翻一页 back H //光标定位到当前页首 L //光标定位到当前页的最后一行的行首 . :200 或 200G //跳到第200行 :set nu //加行号ih :set nonu //去掉行号 / //查找 按n就可以往下找,N就可以往上找。n就是next . . cc //替换。将本行清空 r //输入一个字符替换光标处的一个字符 R //从光标处的字符开始替换,后面的字符一个一个被输入的字符覆盖 s //输入一串字符来替换光标处的字符 . x //删除光标所在处的字符 X //删除光标所在前字符 . dw //删除到下一个单词开头 de //删除到本单词末尾 dE //删除到本单词末尾包括标点在内 db //删除到前一个单词 dB //删除到前一个单词包括标点在内 . D //删除光标到行尾 d0 //删除光标位置到本行开头 dd //删除一行 3dd //删除这一行及下两行。 . yy //复制 单词:yank 5yy //复制光标以下5行 p //粘贴到光标所在行的下面 P //粘贴到光标所在行的上面 u //一次一次地恢复 U //一次性恢复 v //可视化选中。然后y:复制。d:删除。x:剪切。 Ctrl + r //撤销恢复 . 复制一个单词: 光标移到想要被复制词的词首,输入yw 光标移到想到粘贴的位置,输入p . 批量操作多行:如批量注释,批量解开注释。 ctrl +v 竖着向下选 shift+i 修改 ESC . 批量删除: ctrl +v 竖着选中要删除的东西 按d . :%!xxd //十六进制模式 :%!xxd -r //返回文本模式 . :new 2.c //再打开一个vim,是横向的SS :vnew 2.c //再打开一个vim,是纵向的 :vnew . . 2.2 替换命令替换:1,5表示:1-5行;$表示最后一行,%代表所有行;g表示某行其余的要替换;i表示不区分大小写。 :s/God/Girl //只将该行进行替换,如果某一行有多个God,只替换第一个。 :s/God/Girl/g //将该行的所有God替换,如果某一行有多个God,也会被替换。 :s/God/Girl/gi //将该行的所有God替换,如果某一行有多个God,也会被替换。并且不区分大小写。 . :1,5s/God/Girl/ //替换1到5行的God,如果某一行有多个God,只替换第一个。 :1,5s/God/Girl/g //替换1到5行的所有God.如果某一行有多个God,也会被替换。 :1,5s/God/Girl/gi //替换1到5行的所有God.如果某一行有多个God,也会被替换。并且不区分大小写。i表示不区分大小写。 :2,$ s/God/Girl/gi //替换从第2行到最后一行的所有God。如果某一行有多个God,也会被替换。并且不区分大小写。i表示不区分大小写。 . :%s/God/Girl/gi //替换所有行的所有God.如果某一行有多个God,也会被替换。并且不区分大小写。i表示不区分大小写。 2.3 vim多窗口:sp 或:split //新建一个窗口,将当前窗口(不是全屏幕)分割成两半,他们显示的是相同缓冲区的内容 (同一个文件)。这样就可以在两个窗口中浏览相同的文件了。方便在一个地方输入东西, 要看另一个地方怎么写的。 :vsp 或:vsplit //在当前的窗口基础上(不是全屏幕),创建全新的垂直分割的窗口,同样是显示和当前 窗口同一个文件内容。 //当多个窗口编辑同一个文件时,在任意一个窗口进行编辑(例如删除一行),那么所有相同 文件的窗口上都会同时反应效果,因为他们共享同一个文件缓冲区。 :sp file1 //如果想编辑或浏览另一个文件,而又不想失去在当前文件中的编辑位置,就用新文件的 参数传给:split命令 :vsp file1 Ctrl+ww //窗口之间切换 自动对齐:gg=G 联想:ctrl +p ------------------------------------ 高亮、tab4个空格、编码、 |
vim的使用
最新推荐文章于 2025-03-06 00:57:31 发布