vim简单用法

 伤脑筋   2014-01-08 00:01   1694 人阅读  0 条评论

vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

 vim和vi的区别

1、多级撤消 我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。 2、易用性 vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。 3、语法加亮 vim可以用不同的颜色来加亮你的代码。可以用:sy on来开启颜色 4、可视化操作 就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。 5、对vi的完全兼容 某些情况下,你可以把vim当成vi来使用。

vim常用模式

vim编辑器基本上可以分为3种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)  命令模式:控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作(不使用[Del]键和[Backspace]键)以及进入插入模式,或者回到底行模式。插入模式:只有在插入模式下,才可以输入文字。按[Esc]键可回到命令行模式。很多Vim编辑器使用者希望一打开Vim就可以输入内容,但这是不能成功的,因为刚打开Vim编辑器时处于命令模式。底行模式:保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号、寻找字符串等。有的书中把Vim编辑器简化成两个模式,将底行模式也算作命令行模式。

  vim常用命令

1切换插入模式:命令模式下 a                                (小写)光标之后进行插入A                                (大写)光标所在行尾进行插入i                                 (小写)光标前开始进行插入I                                (大写)光标所在行首进行插入o                                (小写)光标所在行后新插入一空行进行插入O                                (大写)光标所在行前新插入一空行进行插入插入模式下按ESC键返回命令模式切换到底行模式命令模式下按【:】进入底行模式,键入命令回车后自动返回到命令模式或按ESC键返回到命令模式。保存文件底行模式下 :w                            (小写)保存文件:wq                         (小写)保存并退出vim:w 文件名1            将文件另存为文件名1:ZZ                          (大写)保存文件并退出,相当于:wq:wq!                        (小写)文件所有者强制保存只读文件,如果不是文件所有者进行此操作,不能成功:q!                                退出不保存文件复制(yank)命令模式下 yy或 Y                     复制光标所在整行y^                         复制到光标所在行行首,不包括光标位置字符y$                         复制到光标所在行行尾,包括光标位置字符yw                         复制一个单词,光标必须在单词首部yG                         复制到文件尾y1G                        复制到文件首nyy                        复制光标所在行开始的n粘贴命令模式下 p                                (小写)粘贴到光标后P                                (大写)粘贴到光标前删除命令模式下 x                                (小写)删除光标前一个字符X                                (大写)删除光标后一个字符dd                                (小写)删除光标所在整行dw                                (小写)删除光标所在处一个单词dG                                删除光标所在整行到文件尾dgg                        删除光标所在整行到文件首D                                (大写)删除到行尾,包含光标处的字符d$                                D效果相同d0                                删除到行首,不包含光标处的字符d^                                d0效果相同:n1,n2d                底行模式下,删除n1-n27撤销命令模式下  u                        (小写)无限次保存前撤销(大概500多次) ctrl+r                 redo  8 字符替换命令模式下 r                        (小写)替换光标所在处一个字符R                        (大写)开始替换,直到按ESC键退出替换,相当于按下键盘上到insertcc                        (小写)取代光标所在整行S                        (大写)ss(小写)效果相同C                        (大写)取代到行尾,包括光标处字符c0                        (小写,数字0)取代到行首,不包括光标处字符c^                        (小写)c0(小写,数字0)效果相同字符串查找和替换命令模式下 /string                从光标处开始向下开始查找字符串string/查找模式下按n(小写)查找下一个,N(大写)查找上一个?string        从光标处开始向上开始查找字符从string?查找模式下按n(小写)查找上一个,N(大写)查找下一个*                        向下完整匹配光标下的单词#                        向上完整匹配光标下的单词g*                        向下部分匹配光标下的单词g#                        向上部分匹配光标下到单词底行模式下 :set ic                查找时,忽略大小写:set noic        取消查找时忽略大小写:f string        (小写fstring有空格)搜索一行中匹配到的string:%s/old/new/g        全文将old替换为new,不提示:%s/old/new/c        全文将old替换为new,提示是否替换:n1,n2s/old/new/g        n1-n2行中,old替换为new,不提示:n1,n2s/old/new/c        n1-n2行中,old替换为new,提示是否替换在替换文本oldnew中有/字符时,需要用\进行转义10 显示行号底行模式下 :set nu(mber)                显示行号:set nonu                        取消显示行号:set nu!                        取消显示行号  11 简单排版底行模式下 :ce(nter)                居中显示光标所在行:ri(ght)                靠右显示光标所在行:le(ft)                        靠左显示光标所在行命令模式下 J                                将光标所在下一行合并到光标所在行>>                                光标所在行增加缩进(一个tab)<<                                光标所在行减少缩进(一个tab)n>>                        光标所在行开始的n行增加缩进n<<                        光标所在行开始的n行减少缩进12 书签命令模式下 mx                设定书签,x是任意一个字母,通常小写(a-z),x为小写字母时,局限在一个文件之间切换;大写字母时,可在文件之间切换.`x                (`位于数字键1旁边)跳转到书签x底行模式下 :marks                        查看标签13 光标移动方式命令模式下 H                        (大写,Head)移动到屏幕顶第一个非空白字符M                        (大写,Mid)移动到屏幕中间第一个非空白字符L                        (大写,Last)移动到屏幕底部第一个非空白字符(                        (左小括号)移动到上一个句子首)                        (右小括号)移动到下一个句子首{                        (左大括号)移动到上一个段落首}                        (右大括号)移动到下一个段落首%                        光标跳转到匹配到括号处,支持{}()[[                        光标跳转到代码块开头即{,要求{独占一行gD                        光标跳转到局部变量定义处''                        (两个单引号)光标跳转到上次停靠处h                        (小写)光标左移一个字符,相当于左方向键l                        (小写)光标右移一个字符,相当于右方向键k                        (小写)光标垂直上移一行,相当于上方向键j                        (小写)光标垂直下移一行,相当于下方向键ctrl+f                (forword)向下整页翻页ctrl+b                (backward)向上整页翻页ctrl+u                (up)向上翻半页ctrl+d                (down)向下翻半页zz                        (小写)让光标所在行居于屏幕中央zt                        (小写)让光标所在行居于屏幕最顶部zb                        (小写)让光标所在行居于屏幕底部底行模式下 :n                        指定移动到第n14 数字前缀与重复命令模式下 将数字加在命令前,标示该命令处理几次,5dd标示执行5dd(删除光标所在整行)操作。.        (英文句号)为命令重复命令,按下一次执行一次上一次执行过的命令。15 浏览目录底行模式下 :e 目录                列出指定目录下的文件和目录16 vim技巧技巧导入文件或shell命令执行结果底行模式下 :r 文件名1                将文件1内容引入到本文件中:!shell命令                在vim中执行shell命令,执行完后按回车会到vim界面:r !shell命令        (r!之间有空格)shell命令执行的结果导入到本文件中技巧自定义快捷键操作底行模式下 :map ^x 命令        (map^之间、x与命令之间有空格,此处到^并非键盘上的^,而是按下ctrl+v出现到快捷键,表示ctrl,后面到x为任意字母)按下ctrl+x后会执行对应到命令::map ^p I#<ESC> 当按下ctrl+p快捷组合键时,在光标所在行行首添加一个#,并回到命令模式技巧连续行注释底行模式下 :n1,n2/^/#/g                (#号为注释符号,shell中注释符号为#,C++中为//):n1,n2/^/\/\//g        C++源文件多行连续注释技巧替换:ab string1 string2        vim中输入string1按空格或回车后,string1会自动替换为string2:unab string1                        取消string1的替换vim配置文件~/.vimrc 可将底行模式下的命令写在里面,每个命令单独一行,这样每次启动时,会自动执行里面的命令。

本文地址:https://www.clrun.com/2014/01/113.html
版权声明:本文为原创文章,版权归 伤脑筋 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?