vi编辑器是由加州大学伯克利分校、 bill joy研发的。它是 Linux下最基本的文本编辑器,而且也是一款文本模式编辑器。vim是vi的增强型,被推崇为类vi编辑器中最好的编辑器。vim命令的操作方法与vi一模一样,只是在vi基础上对内容显示上进行了颜色的衬托,对相关指令以变色,以区别其它文字,更加人性化了。通常我们称vi与vim,都为vi。nvim更更好用。 它有三种模式:命令、行底、编辑模式,三种模式之间的切换如下图所示:
1.光标可移动的单位:
(1)字符: 汉字由二个ASCII字符宽度,移动的单位是一个汉字,英文或数字等是一个ASCII字符宽度(2)行: 文本的一行,可用行号定位(3)屏幕: 分成半个屏幕高或整个屏幕高(页)(4)行首和行尾:文本行的行尾和行首(5)字: 广义字和狭义字 广义字:由空格作为间隔符 狭义字:英文单词、标点符号及一些特殊字符均作为一个字(6)句: 以逗号、句号、问号、感叹号结尾且后面有二个以上(含二个)空格或一个换行符的字符序列。(7)段: 以一个空白行开始和结束的字符序列 "光标移动" ##按字符移动## 四个方向键 k j h l :各自按上下左右移动一个字符 space backspace ctrl+n ctrl+p :各自向右左下上移动一个字符 ##按行移动## 0 :本行行首 ^ :第一个非空白字符 $ :本行行尾 - :上一行行首 <n>G :跳到第n行行首,缺省则为最末行 ##按字移动## w :安照单词的首字母向后移动,不忽略标点符号 W :安装单词的首字母向后移动,忽略标点符号 b :按照单词的首字母向前移动,不忽略标点符号 B :按照单词的首字母向前移动,忽略标点符号 e :按照单词末尾字母向后移动,不忽略标点符号 E :按照单词末尾字母向后移动,忽略标点符号 按句、段落移动: ( :将光标移到当前句句首,如果已处在句首,则移到前一句句首 ) :将光标移到下一个句子的开头 { :将光标移到当前段段首,如果已处在段首,则移到前一段段首 } :将光标移动到下一段段首 "翻页" Ctrl + f 向后翻一页 Ctrl + b 向前翻一页 Ctrl + d 向后翻半页 Ctrl + u 向前翻半页 Ctrl + e 屏幕向下翻一行 Ctrl + y 屏幕项上翻一行 "剪切/删除" x : 删除光标处的字符 nx : 删除光标位置起的右n个字符 X : 删除光标前的字符 nX : 删除光标位置前的左n个字符 dd : 删除当前行 ndd : 删除从当前行算起随后的n行 D(d$): 删除光标起到行尾的内容 d0 : 删除光标前一个字符到行首的内容 dw : 删除一个单词 ndw : 删除n个单词 "文本的修改" c object : 改变光标位置起到object位置的内容. C(c$) : 改变光标位置起到行尾的内容. nC : 改变光标位置起的n行内容 cc : 改变当前行的内容.等价于dd和O的组合 ncc : 改变当前行起n行的内容 r(R) : 替换光标所在的字符,替换后依然为命令模式 s(S) : 替换光标所在的字符,替换后切换为插入模式 "复制/粘贴" ##字复制命令## yb 复制光标前的一个字 yw 复制光标后的一个字 ##行复制命令## <n>yy 复制光标下面的N行 y$ 复制光标后面所有的字符 y0 复制光标前面所有的字符 ##粘贴命令## p 把已经复制的字或者行粘贴到光标之后 "撤销" u 恢复最后一个指令之前的结果。 U 恢复光标该行之所有改变 "命令模式常用操作:" dd :删除光标所在的行; 3dd :删除从当前光标开始起的3行内容; 4dd :就是删除从当前光标开始起的4行内容; yy :剪切当前光标行; 3yy :剪切从当前光标行开始起的3行。(包括当前光标行); p :paste粘贴; u :undo撤销; $ :直接定位到当前行的行末;vi提供同时编辑多个文件的功能,方法如下:
"打开多个文件" vi file1 [file2] [file3] ..... "在多个文件之间的编辑切换" ##在末行模式下## :n 载入下一个文件 :N 载入上一个文件 当完成一个文件的编辑后,需要保存该文件,才可切换 ##两个文件之间的编辑切换## 命令模式下: ctrl+shift+6 末行模式下: :e#