设为首页 收藏本站
查看: 917|回复: 0

[经验分享] $Linux vi/vim编辑器常用命令与用法总结 (Markdown编辑版)

[复制链接]

尚未签到

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

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

vi的三种模式及各个模式之间的转换关系
DSC0000.png


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

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

进入插入模式(6个命令)
  【i】 从目前光标所在处插入
  
【I】 从目前光标
  
【a】 从当前光标所在的下一个字符处开始插入
  
【A】 从光标所在行的最后一个字符处开始插入
  
【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
  
【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

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

一般模式切换到命令行模式
  【:w】 保存文件
  
【:w!】 若文件为只读,强制保存文件
  
【:q】 离开vi
  
【:q!】 不保存强制离开vi
  
【:wq】 保存后离开
  
【:wq!】 强制保存后离开
  
【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
  
【:set nu】 显示行号
  
【:set nonu】 取消显示行号
  
【:w newfile】 另存为
  
【:set fileencoding】 查看当前文件编码格式
  
【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
  
【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
  
【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

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

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

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

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

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

Dos与Linux的断行字符(文件转化)
  dos2unix [-kn] file [newfile]
  
unix2dos [-kn] file [newfile]
  
-k:保留该文件原本的mtime时间格式
  
-n:保留原本旧文件,将转换后的内容输出到新文件

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408123-1-1.html 上篇帖子: Nginx在Linux上的安装和配置 下篇帖子: Linux tomcat 添加开机启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表