Linux vi/vim编辑器常用命令

2017年1月22日

(一)vi/vim是什么?
Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。

(二)为什么要学习vi/vim?
首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。

(三)vi的三种模式及各个模式之间的转换关系

(四)一般模式常用操作

  1. 【h(或向左方向键)】 光标左移一个字符
  2. 【j(或向下方向键)】 光标下移一个字符
  3. 【k(或向上方向键)】 光标上移一个字符
  4. 【l(或向右方向键)】 光标右移一个字符
  5. 【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
  6. 【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
  7. 【[0]或[Home]】 光标移动到当前行的最前面
  8. 【[$]或[End]】 光标移动到当前行的末尾
  9. 【G】 光标移动到文件的最后一行(第一个字符处)
  10. 【nG】 n为数字(下同),移动到当前文件中第n行
  11. 【gg】 移动到文件的第一行,相当于"1G"
  12. 【n[Enter]】 光标向下移动n行
  13. 【/word】 在文件中查找内容为word的字符串(向下查找)
  14. 【?word】 在文件中查找内容为word的字符串(向上查找)
  15. 【[n]】 表示重复查找动作,即查找下一个
  16. 【[N]】 反向查找下一个
  17. 【:n1,n2s/word1/word2/g】 n1、n2为数字,在第n1行到第n2行之间查找word1字符串,并将其替换成word2
  18. 【:1,$s/word1/word2/g】 从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2
  19. 【:1,$s/word1/word2/gc】 功能同上,只不过每次替换时都会让用户确认
  20. 【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
  21. 【dd】 删除光标所在的一整行
  22. 【ndd】 删除光标所在的向下n行
  23. 【yy】 复制光标所在的那一行
  24. 【nyy】 复制光标所在的向下n行
  25. 【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴
  26. 【u】 撤消上一个操作
  27. 【[Ctrl] + r】 多次撤消
  28. 【.】 这是小数点键,重复上一个操作

(五)一般模式切换到编辑模式的操作

1、进入插入模式(6个命令)

  1. 【i】 从目前光标所在处插入
  2. 【I】 从目前光标
  3. 【a】 从当前光标所在的下一个字符处开始插入
  4. 【A】 从光标所在行的最后一个字符处开始插入
  5. 【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
  6. 【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

2、进入替换模式(2个命令)

  1. 【r】 只会替换光标所在的那一个字符一次
  2. 【R】 会一直替换光标所在字符,直到按下[ESC]键为止
  3. 【[ESC]】 退出编辑模式回到一般模式

(六)一般模式切换到命令行模式

  1. 【:w】 保存文件
  2. 【:w!】 若文件为只读,强制保存文件
  3. 【:q】 离开vi
  4. 【:q!】 不保存强制离开vi
  5. 【:wq】 保存后离开
  6. 【:wq!】 强制保存后离开
  7. 【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
  8. 【:set nu】 显示行号
  9. 【:set nonu】 取消显示行号
  10. 【:w newfile】 另存为

(七)文件恢复模式

  1. 【[O]pen Read-Only】 以只读方式打开文件
  2. 【[E]dit anyway】 用正常方式打开文件,不会载入暂存文件内容
  3. 【[R]ecover】 加载暂存文件内容
  4. 【[D]elete it】 用正常方式打开文件并删除暂存文件
  5. 【[Q]uit】 按下q就离开vi,不进行其他操作
  6. 【[A]bort】 与quit功能类似

(八)块选择(一般模式下用)

  1. 【v,V】 v:将光标经过的地方反白选择;V:将光标经过的行反白选择
  2. 【[Ctrl] + v】 块选择,可用长方形的方式选择文本
  3. 【y】 将反白的地方复制到剪贴板
  4. 【d】 将反白的内容删除

(九)多文件编辑

  1. 【vim file1 file2】 同时打开两个文件
  2. 【:n】 编辑下一个文件
  3. 【:N】 编辑上一个文件
  4. 【:files】 列出当前用vim打开的所有文件

(十)多窗口功能

  1. 【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
  2. 【[Ctrl] + w + j】 光标移动到下方窗口
  3. 【[Ctrl] + w + k】 光标移动到上方窗口
  4. 【[Ctrl] + w + q】 离开当前窗口

(十一)vim配置文件

  1. vim的配置文件为/etc/vimrc,但一般不建议直接修改这个文件,而是在用户根目录下创建一个新的隐藏文件:
  2. vim ~/.vimrc
  3. 然后编辑这个文件,常用的配置如下:
  4. "双引号后面的内容为注释
  5. set nu "显示行号
  6. set hlsearch "查找的字符串反白显示
  7. set backspace=2 "可随时用退格键进行删除
  8. set autoindent "自动缩排
  9. set ruler "在最下方一行显示状态
  10. set showmode "在左下角显示模式
  11. set bg=dark "显示不同的底色,还可以为light
  12. syntax on "语法检验,颜色显示

(十二)Dos与Linux的断行字符(文件转化)

  1. dos2unix [-kn] file [newfile]
  2. unix2dos [-kn] file [newfile]
  3. -k:保留该文件原本的mtime时间格式
  4. -n:保留原本旧文件,将转换后的内容输出到新文件

(十三)语系编码转化

  1. iconv --list 列出iconv支持的语系编码
  2. iconv -f 原本编码 -t 新编码 filename [-o new file]
  3. -f:from,后接原本的编码格式
  4. -t:to,后接新编码格式
  5. -o file:可选参数,建立新文件
  6. 例:将/tmp/a.txt从big5编码格式转换成utf8编码格式:
  7. iconv -f big5 -t utf8 /tmp/a.txt -o new.txt

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注