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. redis 3.2 报错 Redis protected-mode 配置文件没有真正启动

    (error) DENIED Redis is running in protected mode because protected mode is enabled Redis protected- ...

  2. MCMC(三)MCMC采样和M-H采样

    MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样(待填坑) 在MCMC(二)马尔科夫链中我们讲到给定一个概率平稳分布$\pi$ ...

  3. Linux 下安装 Memcached 和 PHP 开启 Memcached 扩展

    [项目背景]:阿里云ECS服务器,Linux(centos7.2 64位),环境部署使用的是阿里云一键安装包(LAMP)等 [项目需求]:linux安装memcached 和php开启Memcache ...

  4. 数位dp——hud3652

    B-number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem ...

  5. Python之路-awk文本处理

    作业一:整理博客,内容包含awk.变量.运算符.if多分支 一.awk 1.awk是一个优秀的文本处理工具,多用来处理含有特殊分隔符的内容 常见用法 awk -F:  {print $1,$4} 作业 ...

  6. html中的Flash对象

    开源Flash播放器 http://www.open-open.com/ajax/Video.htm

  7. WPF 杂谈——开篇简言。

    这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感 ...

  8. AOP学习笔记二

    Spring AOP采用Java作为AOP的实现语言(AOL),学习曲线平滑,Spring AOP对AspectJ也提供了很好的集成与支持.最为第二代的AOP,采用动态代理机制和字节码生产技术实现,在 ...

  9. loopj.com android-async-http

    loopj.com android-async-http Android异步Http客户端 用于Android的基于回调的Http客户端库   下载版本1.4.9(最新) 或者在github上fork ...

  10. jasmine 初探(一)

    前言 <敏捷软件开发>这本书由享誉全球的软件开发专家和软件大师Robert C.Martin所著中提到两个开发方式: TDD(Test Driven Development)测试驱动开发 ...