看了好多有关vi命令,不是不够全面而是不太实用,总觉得不够确切
对于vim编辑器来说,其实我们无非是想知道进入vi编辑页面中怎么更好的编辑:
一:vim编辑器配置
二:常用的vim命令(会的再多不会用也是无用之举,只要会你常用的就行了)
一:进入vim编辑器配置
-----打开vimrc------------------------------------ ~./vimrc
-----yntax on ---------------------------- //设置语法高亮
-----set tabstop=4 ------------------------- //设置制表符宽度为4
-----set softtabstop=4 ------------------------ //设置软制表符宽度为4
-----set shiftwidth=4 -------------------------- //设置缩进的空格数为4
-----set autoindent -------------------------- //设置自动缩进
-----set cindent --------------------------- //设置使用 C/C++ 语言的自动缩进方式
-----set nu ------------------------------ //在左侧显示文本的行号
二:常用的vim命令
-----vi filename ----------------------------------- //打开或新建文件,并将光标置于第一行首
-----vi +n filename ------------------------------- //打开文件,并将光标置于第n行首
-----vi + filename --------------------------------- //打开文件,并将光标置于最后一行首
-----vi +/pattern filename ----------------------- //打开文件,并将光标置于第一个与pattern匹配的串处
-----vi -r filename --------------------------------- //在上次正用vi编辑时发生系统崩溃,恢复filename
-----vi filename....filename --------------------- //打开多个文件,依次进行编辑
-----w ------------------------------------------------ //保存当前文件
-----x 或 wq ---------------------------------------- //保存退出
-----q ------------------------------------------------- //退出vi
-----q! ------------------------------------------------ //退出不保存
-----h ------------------------------------------------- //光标左移一个字符
-----l -------------------------------------------------- //光标右移一个字符
-----space ------------------------------------------- //光标右移一个字符
-----Backspace ------------------------------------ //光标左移一个字符
-----k 或 Ctrl+p ------------------------------------- //光标上移一行
-----j 或 Ctrl+n -------------------------------------- //光标下移一行
-----Enter --------------------------------------------- //光标下移一行
-----w 或 W ------------------------------------------ //光标右移一个字至字首
-----b 或 B ------------------------------------------- //光标左移一个字至字首
-----e 或 E ------------------------------------------- //光标右移一个字至字尾
-----) -------------------------------------------------- //光标移至句尾
-----( ------------------------------------------------ //光标移至句首
-----} ------------------------------------------------ //光标移至段落开头
-----{ ------------------------------------------------ //光标移至段落结尾
-----nG ------------------------------------------------ //光标移至第n行首
-----n+ ------------------------------------------------ //光标下移n行
-----n- ------------------------------------------------ //光标上移n行
-----n$ ------------------------------------------------ //光标移至第n行尾
-----H ------------------------------------------------ //光标移至屏幕顶行
-----M ------------------------------------------------ //光标移至屏幕中间行
-----L ------------------------------------------------ //光标移至屏幕最后行
-----0 ------------------------------------------------ //(注意是数字零)光标移至当前行首
-----$ ------------------------------------------------ //光标移至当前行尾
-----Ctrl+u ------------------------------------------- //向文件首翻半屏
-----Ctrl+d ------------------------------------------- //向文件尾翻半屏
-----Ctrl+f ------------------------------------------- //向文件尾翻一屏
-----Ctrl+b ---------------------------------------- //向文件首翻一屏
-----nz ---------------------------------------------- //将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部 插入
-----i ------------------------------------------------ //在光标前
-----I ------------------------------------------------ //在当前行首
-----a ------------------------------------------------ //光标后
-----A ------------------------------------------------ //在当前行尾
-----o ------------------------------------------------ //在当前行之下新开一行
-----O ------------------------------------------------ //在当前行之上新开一行
-----r ------------------------------------------------ //替换当前字符
-----R ------------------------------------------------ //替换当前字符及其后的字符,直至按ESC键
-----s ------------------------------------------------ //从当前光标位置处开始,以输入的文本替代指定数目的字符
-----S ------------------------------------------------ //删除指定数目的行,并以所输入文本代替之
-----ncw 或 nCW --------------------------------- //修改指定数目的字
-----nCC -------------------------------------------- //修改指定数目的行
-----ndw 或 ndW ---------------------------------- //删除光标处开始及其后的n-1个字
-----do ----------------------------------------------- //删至行首
-----d$ ------------------------------------------------ //删至行尾
-----ndd ------------------------------------------------ //删除当前行及其后n-1行
-----x 或 X -------------------------------------------- //删除一个字符,x删除光标后的,而X删除光标前的
-----Ctrl+u ------------------------------------------- //删除输入方式下所输入的文本
-----n1,n2 d ---------------------------------------- /将n1行到n2行之间的内容删除
-----%d --------------------------------------------- //删除全部内容
-----1,$d ------------------------------------------- //删除全部内容
-----yy ------------------------------------------------ //复制当前行
-----nyy ----------------------------------------------- //复制当前行开始的n行
-----先按 v 然后方向键选择区域,按 y 复制选中行
-----dd ------------------------------------------------ //剪切当前行
-----/abc -------------------------------------------- //从光标开始处向文件尾搜索abc
-----?abc ------------------------------------------- //从光标开始处向文件首搜索abc
-----/\/abc ------------------------------------------- //从光标开始处向文件尾搜索/abc,其中/是转义
-----n ------------------------------------------------ //在同一方向重复上一次搜索命令
-----N ------------------------------------------------ //在反方向上重复上一次搜索命令
-----s/vivian/sky/ ---------------------------------- //替换当前行第一个 vivian 为 sky
-----s/vivian/sky/g -------------------------------- //替换当前行所有 vivian 为 sky
-----n,$s/vivian/sky/ ---------------------------- //替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
-----n,$s/vivian/sky/g --------------------------- //替换第 n 行开始到最后一行中每一行所有 vivian 为sky
-----%s/vivian/sky/g ----------------------------- //(等同于 g/vivian/s//sky/) 替换每一行的每一个 vivian 为 sky
-----s#vivian/#sky///------------------------------ //替换当前行第一个 vivian/ 为 sky/(可以使用 #或+作为分隔符,此时中间出现的 / 不会作为符)
-----s/p1/p2/g ------------------------------------- //将当前行中所有p1均用p2替代
-----n1,n2s/p1/p2/g ------------------------------ //将第n1至n2行中所有p1均用p2替代
-----g/p1/s//p2/g ---------------------------------- //将文件中所有p1均用p2替换