Vi有3种模式:
命令模式——命令操作
插入模式——进入vi之后,输入i/a/o,按Esc键,进入命令模式
编辑模式——:set nu, 以回车结束

1、插入
a - 光标后插入
A - 本行末尾插入
i - 光标前插入
I - 本行行首插入
o - 光标下插入新行
O - 光标上插入新行

2、定位
h - 左移
j - 下移
k - 上移
i - 右移
$ - 移至行尾
0 - 移至行首

H - 移至屏幕上端
M - 移至屏幕中央
L - 移至屏幕下端

:set nu      设置行号
:set nonu    取消行号
gg           到第一行
G            到最后一行
nG           到第n行
:n           到第n行

3、删除
x           删除光标所在处字符
nx          删除光标所在处后n字符
dw          删除一单词
dd          删除光标所在行,ndd删除n行
dG          删除光标所在行到文件最后一行的内容
D           删除光标所在处到行尾内容
:n1,n2d     删除n1行到n2行

4、复制&剪切
yy, Y  复制当前行,nyy, nY复制当前行以下的n行
dd 剪切当前行,ndd剪切当前行以下的n行
p, P 粘贴在当前光标所在行下一行或上一行

5、查找&替换
/str           向前搜索,忽略大小写时:set ic
?str           向后搜索
n              搜索指定字符下一个位置
N              搜索指定字符上一个位置
:%s/old/new/g  全文替换
:%s/old/new/c  替换前询问
:n1,n2s/old/new/g  在一定范围内替换

6、保存退出
:wq 保存退出
ZZ 保存退出
:wq! 强行保存退出(对于没有写权限的文件,只有文件所有者或root)
:q! 不保存退出
:w 保存不退出
:w /home/test 另存为

7、屏幕翻滚
Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f: 向文件尾翻一屏 
Ctrl+b:向文件首翻一屏 
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

8、vi使用技巧
:r /etc/issue   导入issue内容
:!date          vi中使用命令
:r !date        导入命令执行结果

9、定义快捷键
(1) 行首插入/删除注释
:map ^P I#<ESC>        命令行模式下,按ctrl+p, 实现在行首添加注释
:map ^D 0x             命令行模式下,按ctrl+d,实现删除行首字符
注意:^P(不是上位键,是特殊字符) - ctrl+v, ctrl+p。I#表在行首插入#。<ESC>表示按下ESC键。0x,0表示光标跳到行首,x表示删除光标当前字符。

(2) 连续行注释
:n1,n2s/^/#/g          每行行首加入#注释,^表示行首
:n1,n2s/^#//g          删除每行行首#注释,^表示行首,如果没有^,则替换所有的#为空字符
:n1,n2s/^/\/\//g       每行行首加入//, 因为”//”是特殊字符,需要用转义字符/\/\代表//

(3) 快捷键插入内容
:map ^E itoughhou@126.com  命令行模式下,按ctrl+e,插入邮箱地址

(4) 自动替换输入的内容为指定内容
:ab mymail toughhou@126.com 输入mymail回车或空格后,自动替换成toughhou@126.com

10、vi配置文件
如果不把设置保存的话,退出vi后设置消失,下次进入时需要再重新设置,比较麻烦。此时我们可以通过vi配置文件,在各个用户的home目录下(像如我的用户名是tough,配置文件/home/tough/.vimrc).每次进入vi,:set nu, :map ^P I<ESC>都是可以用的。

:set nu
:map ^P I#<ESC>

vi使用教程的更多相关文章

  1. vi 使用教程

    编辑一个文本文件是经常使用到的计算机操作.我们想做的大多数事情都需要使用某种文件编辑.文本编辑器会方便文件的创建和修改.编辑一个文本文件是经常使用到的计算机操作.我们想做的大多数事情都需要使用某种文件 ...

  2. Vi 详细教程

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  3. vi简短教程

    1.模式 命令行模式:光标的移动.内容删除移动复制操作 插入模式:文字输入,即编辑状态 底行模式:文件保存或退出vi,设置编辑环境 2.基本操作 vi myfile,输入vi 文件名,则进入vi. 3 ...

  4. Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  5. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  6. 新手指南:Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  7. windows下gVim(Vi/vim)基本使用

    Vim 是一个Linux 平台上功能非常强大的编辑器,他是早年的Vi 编辑器的加强版.这个gVim 是windows 版的,并且有了标准的windows 风格的图形界面,所以叫g(graphical) ...

  8. vim编辑器详解

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率. vi是“visual interface”的 ...

  9. 安装linux系统并配置那点事

    安装完成后,将看到如下控制台: 输入以上安装信息中所填写的用户名(user),随后输入密码(user),即可登录 Ubuntu. 随时可使用 Ctrl + Alt 快捷键可离开虚拟机. 3 配置 Ub ...

随机推荐

  1. java.lang.ClassNotFoundException: com.servlet.HandlesearchclassesServlet

    错误的原因: 原来命名为Handlesearchclasses导致与系统预留字冲突, 导致servlet找不到,出现404错误, 因此该变类名和web.xml里面的配置文件即可.

  2. lk启动流程详细分析

    转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容: 1).正常开机引导流程 2).recovery引导流程 3).fastboot引导流 ...

  3. Linux学习之路:变量值的删除、替代和替换

    一.删除 var为变量名, ${var#v*r}:从左到右匹配将:头部是“v”,尾部是“r”的最短的部分删除 ${var##v*r}:从左到右匹配将:头部是“v”,尾部是“r”的最长的部分删除 ${v ...

  4. JavaScript中常用函数(入门级)(持续更新)

    本文中枫竹梦介绍一些JavaScript中入门级的常用函数,对于已经过了入门的童鞋可选择略过,都是一些非常实用的函数.如果发现什么问题,欢迎讨论. 问题列表 Q1: 设计一个函数repeatIt(st ...

  5. yii2.0根据query查看sql语句

    时间长不用就总是忘记,好记性比不上烂笔头,记录下来备用: Yii::$app->getDb()->getQueryBuilder()->build($query));

  6. 实现TableLayout布局下循环取出TableRow控件中的文字内容到list集合

    布局方式为TableLayout,利于实现表单样式展现. <!-- 详情内容区域 --> <ScrollView android:layout_above="@id/id_ ...

  7. 简单遗传算法求解n皇后问题

    版权声明:本文为博主原创文章,转载请注明出处. 先解释下什么是8皇后问题:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法.在不 ...

  8. submit text 插件安装教程

    特注:import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); o ...

  9. 前端开发中的一些chrome插件推荐

    这篇博客推荐的都是谷歌chrome浏览器插件,理论上,与之相同内核的浏览器都能使用.由于是谷歌插件,所以在天朝的网络,你懂的! 红杏 专为 学者 .程序员.外贸工作者 打造的上网加速器.我们相信,上网 ...

  10. MVC中使用AuthorizeAttribute注意事项

    代码调用顺序为:OnAuthorization-->AuthorizeCore-->HandleUnauthorizedRequest 如果AuthorizeCore返回false时,才会 ...