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. Sublime Text 3常用插件

    操作:按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件. 常用插件: 1---- Bracket Highl ...

  2. React文档翻译系列(三)JSX简介

    # React文档翻译系列(三)JSX简介 先来看一下下面的变量声明: ``` const element = Hello world! ``` 这种有趣的标签语法既不是字符串也不是HTML. 这种形 ...

  3. js全选与反选

    HTML结构: <!doctype html><html><head><meta charset="utf-8"><title ...

  4. 玩玩 Nginx 2-----给Nginx添加第三方模块(动态更新upstream)

          接上一篇,我们在初始化安装的时候添加了nginx_lua模块,然后了解到nginx不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来一起看看如何安装nginx第 ...

  5. express创建网站

    Express 在初始化一个项目的时候需要指定模板引擎,默认支持Jade和ejs. 这里我们使用ejs模板引擎:(关于ejs的介绍可以先从百科里面了解一个大概)EJS是一个JavaScript模板库, ...

  6. 山谈c中printf格式修饰符

    废话不多说,简单粗暴地上图. (一)初始定义 (二)运行结果 (三)规律总结 对于如下: printf("%7.4d",12); printf("%4.7f", ...

  7. 【转】译—游戏开发者应该如何应用Git和GitHub

    原文地址:http://bbs.9ria.com/thread-259587-1-2.html "我确信Git是强大的,但是它看起来很复杂--我依然会坚持我当前的工作流"就像说&q ...

  8. 《JavaScript程序设计》第2课:JS类型系统

    JS类型系统可以分为标准类型和对象类型,进一步标准类型又可以分为原始类型和引用类型,而对象类型又可以分为内置对象类型.普通对象类型.自定义对象类型. 1. 标准类型 标准类型共包括了6个分别是:und ...

  9. Linux之环境变量

    1. 变量的显示与设置 显示变量 echo \(PATH</font></code><br/> 取消变量 <code><font color=&q ...

  10. js alert(“”)弹框 自定义样式

    首先用css渲染一个样式 #msg{ height: 2rem; text-align: center; position: fixed; top: 50%; margin-top: -1rem; l ...