标签:文档 输入 code ctrl 不同 change linu 就是 com
1、vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按[i|a]进入插入模式,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)
编辑模式
在命令行模式下,输入[i|a]进入插入模式,在插入模式下编辑完文档,按[ESC]进入命令模式,在命令行模式下输入[:]进入底行模式
: w filename (输入 「w filename」将文章以指定的文件名filename保存) : wq (输入「wq」,存盘并退出vi) : q! (输入q!, 不存盘强制退出vi)
移动命令
h "左 j "下 k "上 l "右 w "光标移动到下一个单词的首字符 b "光标移动到上一个单词的首字符 e "光标移动到下一个单词的尾字符 ge "光标移动到上一个单词的尾字符 $ "将光标移动到当前行行尾 ^ "将光标移动到当前行第一个非空白字符 0 "将光标移动到当前行第一个字符
修改命令
x "删除一个字符 d "其后跟任何一个位移命令,将删除从当前光标到位移终点处的文本 "内容,如dw,delete word c "与d命令功能类似,不同的在执行完删除后命令进去Insert模式,change dd "删除一整行 yy "复制一整行 p "把剪贴板内容粘帖到当前位置
vimdiff 1.c 2.c "创建一个垂直分割窗口比较这两个文件不同的地方
搜索命令
/string "全文本搜索一个字符串,如要找到单词"func"则用/func "如果文本有多个func,按下n就会移动到接下来的func位置上 "n前面也可以接受数字计数,如3n,就会找紧接第三个func ?string "与/string的功能相同,唯一的区别就是搜索的方向相反
滚屏命令
CTRL+U "窗口向上滚半屏 CTRL+D "窗口向下滚半屏 CTRL+E "向上滚一行 CTRL+Y "向下滚一行 CTRL+F "窗口向上滚一整屏 CTRL+B "窗口向下滚一整屏 zz "当前行置于屏幕中央 zt "当前行置于屏幕顶端 zb "当前行置于屏幕底端
替换命令
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb :%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/^/#/ 将从12行到23行的行首加入 # 字符 :%s= *$== 将所有行尾多余的空格删除 :g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除
标签:文档 输入 code ctrl 不同 change linu 就是 com
原文地址:https://www.cnblogs.com/wzy23/p/11375645.html