1.前言

    vi/vim是linux中很重要的文本编辑器。我第一次使用这个编辑器时,很不习惯,甚至都不知道如何移动光标和插入字符。慢慢地经过学习,才知道如何使用vi/vim。
    vi/vim的作用是建立、编辑和显示文本文件,在vi/vim中,没有菜单,只有命令。
2.常用命令
    vim有三种工作模式:命令模式、插入模式和编辑模式。一进入vim,默认的是命令模式,即输入的内容,系统全部当成是命令。当编辑模式执行完以后,自动回到命令模式。下面给出一张图,说明这三种模式的切换:
 
 
 
2.1插入模式
  a 在光标后附加文本
  A 在本行行末附加文本
  i 在光标前插入文本
  I 在本行开始插入文本
  o 在光标下插入新行
  O 在光标上插入新行
 
2.2定位命令
  h、方向左键 左移一个字符
  j、方向下键 下移一行
  k、方向上键 上移一行
  l、方向右键 右移一个字符
  $ 移至行尾
  0 移至行首
  H 移至屏幕上端
  M 移至屏幕中央
  L 移至屏幕下端
  :set nu 设置行号
  :set nonu 取消行号
  gg
  G 到第一行
  到最后一行
  nG 到第n行
  :n 到第n行
 
2.3删除命令
  x 删除光标所在处字符
  nx 删除光标所在处后n个字符
  dd 删除光标所在行,ndd删除n行
  dG 删除光标所在行到文件末尾的内容
  D 删除从光标所在处到行尾的内容
  :n1,n2d 删除指定范围的行
 
2.4复制和剪切命令
  yy、Y 复制当前行
  nyy、nY 复制当前行一下n行
  dd 剪切当前行
  ndd 剪切当前行以下n行
  p、P 粘贴在当前光标所在行下或行上 注:在vi中,剪切就是删除之后再粘贴
 
2.5替换和取消命令
  r 取代光标所在处字符
  R 从光标所在处开始替换字符,按Esc结束
  u 取消上一步操作 注:比如改变单个字符,先输入r,再输入需要更改的字符。比如将字符a改成b。这适合用于少量修改时使用
  [Ctrl]+r 重做上一个动作
  这个 u 不 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键。
  .  小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等劢作,按下小数点『.』就好了!
 
2.6搜索和替换命令 
  /word 向光标之下搜索word字符串
  ?word 向光标之上搜索word字符串
  n 搜索指定字符串的下一个出现位置
  N。与n 刚好相反,为『反向』进行前一个搜寻
  搜索时忽略大小写 :set ic
  :%s/old/new/g  全文替换指定字符串
  :n1,n2s/old/new/g  在一定范围内替换指定字符串 注:n是从前往后,N是从后往前找
  set noic是设置大小写敏感
  :n1,n2s/old/new/c    替换时进行询问是否真的替换
 
  ZZ与:wq的作用一样,都是保存退出
  对于readonly文件,如果是root或者改文件所有者,即使该文件没有写权限,使用:wq!也能保存该修改之后的文件。
  仅仅保存但不退出 :w
  另存为  :w /root/file.bak
 
2.7其它命令
  导入文件 :r 文件名
  在vi中执行命令 :! 命令
  定义快捷键 :map 快捷键  触发命令
  范例:  :map  ^P  I#<ESC>         注:^p是这样输入的 ctrl+v+v  --> ^p
       :map  ^B  0x
  连续行注释 :n1,n2s/^/#/g              注:^表示行首
      :n1,n2s/^#//g
      :n1,n2s/^/\/\//g
  替换  :ab huhuimail    huhuics@gmail.com         取消ab命令    :unan huhuimail
  :r !date   在vi中加入命令执行的结果
  快捷键插入邮箱  :map ^e ihuhuics@gmail.com
 
2.8修改用户vim设置
  修改用户vim设置,比如能永久保存快捷键
  vi ~/.vimrc
  缺省这个文件是空的,然后可以写入一些快捷键
 
 
附:vi/vim操作键盘图
 

Linux-vim学习入门的更多相关文章

  1. Linux学习系列之Linux入门(二)Vim学习

    第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...

  2. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  3. Linux之Vim学习

    Linux之Vim学习 一般模式 光标移动 按键 作用 j或down方向键 向下移动一个字符 k或up方向键 向上移动一个字符 h或left方向键 向左移动一个字符 l或right方向键 向右移动一个 ...

  4. Linux学习入门-------------------------VMvare与镜像的安装与配置

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_39038465/article/d ...

  5. 别出心裁的Linux命令学习法

    别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...

  6. Linux 第一次学习笔记

    一.Linux 为何物 Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有 ...

  7. 关于Linux内核学习的误区以及相关书籍介绍

    http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实 ...

  8. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  9. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  10. linux编程学习

    linux编程学习 工具篇 “公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习 C 语言编程常常用到的软件和工具. (一)操作系 ...

随机推荐

  1. QQ登陆接口

    这次做了一个QQ登陆接口---简单记录一下 遇到一大坑-----QQ互联里面添加应用的时候,是网站应用,配置回调地址一定要配置  准确,到指定回调页面 否则会出现问题的.

  2. 大数据测试之初识Hadoop

    大数据测试之初识Hadoop POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的cas ...

  3. C#重的数组、集合(ArrayList)、泛型集合(list<T>)三者比较及扩展延伸……

    本来我只想总结下数组.集合(ArrayList).泛型集合(list<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1.数组.集合(ArrayL ...

  4. 职责链模式(Chain of Responsibility)的Java实现

    职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它 ...

  5. oralce set

    1         SET TIMING ON 说明:显示SQL语句的运行时间.默认值为OFF. 在SQLPLUS中使用,时间精确到0.01秒.也就是10毫秒. 在PL/SQL DEVELOPER 中 ...

  6. toastr.js插件用法

    toastr.js插件用法 toastr.js是一个基于jQuery的非阻塞通知的JavaScript库.toastr.js可以设定四种通知模式:成功.出错.警告.提示.提示窗口的位置.动画效果等都可 ...

  7. Spring MVC__自定义日期类型转换器

    WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查 ...

  8. nginx学习笔记——http module分析

         源码:nginx 1.12.0           nginx由于其高性能.扩充性好等特点在迅速走红,越来越多的公司采用nginx作web服务器.负载均衡.waf等 工作,一些基于nginx ...

  9. 深度理解 Virtual DOM

    目录: 1 前言 2 技术发展史 3 Virtual DOM 算法 4 Virtual DOM 实现 5 Virtual DOM 树的差异(Diff算法) 6 结语 7 参考链接 1 前言 我会尽量把 ...

  10. jquery转盘抽奖的研究

    先看效果: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...