引言
很多情况下需要在linux系统下面执行代码,但是通常我们习惯于windows的界面,这样有一种解决方案是在windows下开发,然后将代码push到linux上面执行。可是这有个问题,windows和linux需要具有同样的环境,比较麻烦。如果直接在linux下开发会不会方便很多呢。因此决定学习并熟练vim,用vim编程。
vim是什么
vi: Visual Interface 可视化接口
vim: VI iMproved VI增强版
Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的可视化模式。 Vim 专注于键盘操作,它并不是像 nano 或 pico 一样的简单编辑器。Vim 需要花时间来学习,并值得花上更多的时间来掌握。
通俗来讲,就是一个文本编译器,不过这个编译器很牛掰。首先颜值很高,其次便利,但是不像sublime那样,vim是console级别的,因此不是那么方便。
vim基本命令
这里想分为三部分介绍,一部分是我熟悉的,也就是最基础的,一部分是高阶的,虽然用过但是不太熟,有待熟练的,还有一部分是要记住的,使用时不至于百度咯
familiar:
:q 退出 :wq 保存并退出 :q! 不保存并退出 ESC 退出编辑模式 i: 在当前光标所在字符的前面,转为输入模式,即insert方式; a: 在当前光标所在字符的后面,转为输入模式;即append方式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; x: 删除光标所在处的单个字符 #x: 删除光标所在处及向后的共#个字符 dd: 删除当前光标所在行 /text 查找text,按n健查找下一个,按N健查找前一个。 :set nu 设置显示行数
unfamiliar
:w! 强行保存 I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式; p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面 P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面 ?text 查找text,反向查找,按n健查找下一个,按N健查找前一个。 s/old/new/ 用old替换new,替换当前行的第一个匹配 s/old/new/g 用old替换new,替换当前行的所有匹配 %s/old/new/ 用old替换new,替换所有行的第一个匹配 %s/old/new/g 用old替换new,替换整个文件的所有匹配 Ctrl + r 重做(Redo),即撤销的撤销。 u 撤销(Undo) U 撤销对整行的操作 yy 拷贝当前行 nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
unknown
:10,20 s/^/ /g 在第10行知第20行每行前面加四个空格,用于缩进。 :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 :1,10 m 20 将第1-10行移动到第20行之后。 :split或new 打开一个新窗口,光标停在顶层的窗口上 :split file或:new file 用新窗口打开文件 split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。 Ctrl+ww 移动到下一个窗口 Ctrl+wj 移动到下方的窗口 Ctrl+wk 移动到上方的窗口 G:到文件尾 numG:移动光标到指定的行(num)。(比如10G就是到第10行) gg:到文件首 3,5 s/^/#/g 注释第3-5行 3,5 s/^#//g 解除3-5行的注释 1,$ s/^/#/g 注释整个文档。 :%s/^/#/g 注释整个文档,此法更快。 :n1,n2 s/^/\/\//g,在n1到n2行的开头用\\注释。 :set ignorecase 忽略大小写的查找 :set noignorecase 不忽略大小写的查找 set ai 设置自动缩进
后记
文中记录了一些比较有用的命令,vim很强大,还有很多其它的命令,请看参考文献。不知道行业大佬对vim的掌握程度怎样,如果有大佬看到的话,可以聊聊哦^v^
参考文献
https://www.cnblogs.com/usergaojie/p/4583796.html
https://www.w3cschool.cn/vim/cjtr1pu3.html
https://www.cnblogs.com/wangrx/p/5907013.html