vi操作指令

虽然现在的linux系统都有很好的图形编辑器gedit(gnome桌面)或者kwrite(kde桌面),但是有些情况还是得用到vi的,比如ssh或telnet远程连接的时候。所以小小的总结了下比较常用的操作。

新建一个文件或者打开一个文件:vi filename
保存与退出:
只保存: :w
保存并且退出: :wq
文件无修改,退出: :q
文件有修改,放弃修改,强制退出: :q!
强制保存: :w! (适用于如下场景:使用:w保存时提示:E45: 'readonly' option is set (add ! to override) ,此时修改文件权限为可写,再使用:w!保存即可)
插入字符:
在当前位置插入: i
在当前位置的后一个位置插入: a
删除字符:
删除当前光标所在字符: x
插入行:o (在当前行后面插入一个空行)
删除行(同时会复制行到剪贴板):
删除当前行: dd
删除n行: <n>dd
删除i到j行: :i,jd
删除当前行到最后一行: :.,$d
删除当前光标所在字符到行尾最后一个字符: D
跳转行首:如果想到行尾,再按下$键
跳转到第n行: <n>G
跳转到最后一行: G
复制行: yy
粘贴行:p (在当前行的下一行插入复制的内容)
查找:
输入查找字符串: /pattern(从上往下找),?pattern(从下往上找)
查找上一个: N
查找下一个:n
替换(如果需要对/进行替换,需要使用反斜杠\进行转义,
例如: 将/a/b/c    替换为 /abc,那么应该这样输入:s/\/a\/b\/c/\/abc/g):
在当前行把abc替换为def: :s/abc/def/g
在i到j行把abc替换为def: :i,js/abc/def/g
在当前行把第一个abc替换为def: :s/abc/def/
从当前行到最后一行把abc替换为def: :.,$s/abc/def/g
撤销: u(注:只能撤销最后一次修改,连续两次撤销其实就是什么也没做,这可不像ultraedit可以撤销好多次的修改)
行号
显示行号: :set nu
撤销行号: :set nonu
光标在当前行移动
移动到行首:0或者^
移动到行尾:$
合并行:J (会把当前行和下一行合并成一行,当前行的内容和下一行的内容中保留一个空格)
显示当前行列信息:ctrl+g
插入其它文件的内容
vi a.txt,把n1-n2行写入到/tmp/x1文件:
:n1,n2 w! /tmp/x1
vi b.txt,在当前行的下一行插入/tmp/x1文件的内容:
:r /tmp/x1
空白字符
显示空白字符: :set list,注意:\t 标识为"^I",\n 标识为 "$"
隐藏空白字符: :set nolist
查看换行符风格::set fileformat
如果一个文件既有linux的换行符、又有windows的换行符,那么在行尾会显示有^M; 如果全是windows换行符,行尾是不会显示有^M的
将windows的换行符转为linux的换行符::1,最后一行行号s/^M$//g, ^M是一个字符不是输入^和M两个字符,即按住 ctrl 键不放,同时按v键产生^,依然按住 ctrl 键不放,同时按 m 产生M
查看字符编码: :set fileencoding


原文链接:https://blog.csdn.net/linhao19841211_2/article/details/8219371

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值