Vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式
/ 进入文本搜索模式
a 右插入 i 左插入 A 行尾追加 I 行首插入 O&o 插入行(O是在当前行的上面插入一行,o是在当前行的下面插入一行) R&r 覆盖文本(R是覆盖当前光标处及后面的文本,r是覆盖当前光标下的字符) J 合并行(将光标所在行和下面的一行合并为一行) |
Vi使用技巧(都是在指令行模式下完成的)
yy 复制行 (yy前面加字符就是缓冲区的名称,可同时存在多个缓冲区,名字不同,互不受影响) nyy 复制多行 (将当前行下面的n行复制到缓冲区,n为整数,n前面可以跟缓冲区名字eg: “anyy”) yw 复制单词 (复制当前位置到当前单词的词尾的字符) nyw 复制多个单词 (n为整数,表示从光标开始,复制后面的n个单词) y^ 复制光标到行首 (从当前位置开始复制到行首) y$ 复制光标到行尾 (从当前位置开始复制到行尾) p 粘贴光标后面 (ap 粘贴a缓冲区的内容到光标后面) P 粘贴光标前面 (ap 粘贴a缓冲区的内容到光标前面) |
复制粘贴快捷功能(都是在指令行模式下完成的)
x 删除当前字符 nx 删除多个字符 (删除从光标开始的n个字符) dd 删除当前行 ndd 删除包括当前行往下的n行 u 撤销上次的操作 U 撤销多个操作 (撤销针对当前行的所有操作) |
删除文本的快捷键(都是在指令行模式下完成的)
:e file 打开文件 (打开另外一个文件,如果当前文件改变未保存,vi会警告) :e! file 打开文件 (打开另外一个文件,不保存当前文件的修改) :w 保存文件 :q 推出编辑器 :q! 强制退出 (不保存对当前文件做的更改) :wq 保存并退出 wq! 强制保存并退出 :sav filename 保存当前文件到另外的路径,源文件内容不变 :w filename 保存当前文件到另外的路径,源文件内容不变
|
常用的vi命令(都是在行末模式下完成的)
:n 跳转指定行 (:n+ 从当前行往上跳行.。:n- 从当前行向下跳n行。) :set nu 显示行号 (在每行的前面显示每行的行号) :set nonu 隐藏行号 (隐藏在每行前面显示的行号) :s/old/new 替换字符串 (表示用字符串new替换当前行中首次出现的字符串old) :s/old/new/g 替换字符串 (用new替换当前行的所有old) :n,m s/old/new 替换字符串 (n,m代表从n行到m行的这段区间,用new去替换所有的old) :%s/old/new 替换字符串 (用new替换当前问文件中的所有old)
:set fileformat=unix 将文件修改为unix格式,win下的文件会在linux中有^M的情况。还可以修改为dos格式。Dos格式是win系统下的。
guw 将当前光标所在的单词转换成小写 gUw 将当前光标所在的单词转换成大写 |
常用的其他命令(都是在行末模式下完成的)