1、文本编辑器的作用

  编辑和修改系统中的那些以文本形式存在的文件(特别是各种配置文件),也可以用于 编写程序代码

2、linux下的常见编辑器

  nano、Emacs、gedit、vim等

3、vim三种模式下的工作

  命令模式:文件内容的浏览、光标移动、删除、复制、粘贴、查找

  输入模式:输入和编辑内容

  末行模式:字符串的替换、文件的保存、另存,vim编辑环境的退出

4、命令模式下的基本操作

  (1)查看操作

    单词跳转: 

      w:跳转到后一个单词的词首

      b:跳转到前一个单词的词首

      e:跳转到后一个单词的词尾

    行内跳转:

      ^:跳转到当前行的第一个非空字符上

      0:跳转到当前行的绝对行首

      $:跳转到光标所在行的行尾

    行间跳转:

      1G或gg:定位到第一行

      G:定位到最后一行

      12G:定位到第十二行

      :set nu :显示行号

      :set nonu:去掉行号

      小技巧:      :行号      可以快速跳转到指定行

    翻屏:

      向前翻一屏(page down 或 ctrl + f)

      向后翻一屏(page p 或ctrl + b)  

  (2)复制、粘贴和删除类操作

      删除操作:

      x:删除光标所在位置的一个字符

      5x:删除光标所在位置以及后面的一共5个字符

      d^:删除光标位置一直到行首(光标所在位置的字符保留)

      d$:删除光标位置一直到行尾(光标位置字符不保留)

      dd:删除光标所在行

      cc:删除光标所在行并转到输入模式

      4dd:删除广光标所在行以及以下一共四行

      4cc:删除光标所在行以及以下一共四行,并转到输入模式

      d1G:删除光标所在行到第一行的所有内容(光标所在行删除)

      dG:删除光标所在行到最后一行的全部内容(光标所在行删除)

      备注:dd和cc还可以用于剪切操作

      小技巧:

        :行号 d      删除指定行

        :起始行号,终止行号 d     删除指定范围的行   例如(:1,8d)   

    复制操作:

      yy:复制光标所在行

      4yy:复制光标所在行以及以下一共4行

    粘贴操作:

      p(小写):粘贴复制内容到光标所在行的下面

      P(大写):粘贴复制内容到光标所在行的上面

    区块选择:

      v(小写):按字符选择,光标经过的地方反白选择

      V(大写):按行选择,光标经过的地方反白选择

      ctrl+v:区块选择,可以按照长方形的方式选择

      y:将反白部分复制

      d:将反白部分删除

      p:将复制内容粘贴到光标后面

  (3)文件内容查找类操作

      /要找的字符串  (从上往下查找)     eg:/name   查找当前文件的name字符串

      ?  从下往上找

      n  切换到下一个匹配的字符串

      N  切换到上一个匹配的字符串

  (4)撤销和保存退出类操作

      u:撤销上一次的编辑操作(可无穷次撤销,类似于word里面的ctrl+z)

      ctrl+r:撤销上一次撤销的东西

      . :重复上一次的操作

      ZZ(大写):保存并退出

5、末行模式下的操作

   (1)文件的保存和退出类操作

      :w    保存当前文档

      :w  文件名  将当前编辑的内容保存到另外一个新的文件里

      :wq  保存当前文件并退出vim编辑环境

      :q   退出vim编辑环境

      :q!  强制不保存就退出

      :wq!  强制保存退出

  (2)打开和读入文件类操作

      :e 文件名  将一个新的文件打开并编辑

      :e!  放弃对当前文件的已经编辑的内容

      :r 文件名    将一个新的文件的内容读到当前正在编辑的文件的尾部

  (3)文件内容替换类操作

      :s /老内容/新内容  eg:/boy/girl    将光标所在行的第一个boy换成girl

      :s  /boy/girl/g   将光标所在行的所有boy换成girl 

      :5,8 s  /boy/girl/g   将5~8行的所有boy换成girl

      :% s  /boy/girl    将文件中每行第一个boy换成girl

      :% s  /boy/girl/g    将文件中所有boy换成girl

      小技巧:

        1、多文件操作

          :files  显示正在编辑的多个文件的信息

          :n  切换到下一个文档

          :N  切换到上一个文档

          :first  切换到第一个文档

          :last  切换到最后一个文档

        2、多窗口操作

          vim -o 文件1  文件2        上下拆分

          vim -O  文件1   文件2        左右拆分

          对一个文件进行拆分

            ctrl+w+s    上下拆分

            ctrl+w+v    左右拆分

            ctrl+w+arrow  多窗口切换(arrow表示方向键)

   

最新文章

  1. TaintDroid剖析之IPC级污点传播
  2. 使用 apache2 + `mod_proxy_uwsgi` + uwsgi + upstart 部署
  3. hdoj 1054 Strategic Game【匈牙利算法+最小顶点覆盖】
  4. HDOJ 1194 Beat the Spread!(简单题)
  5. SQLServer 2012 可视化窗口中,设置“时间”默认值为“当前时间"
  6. 根据IP地址获得地理位置
  7. NoSQLBooster for MongoDB的基本使用
  8. FFmpeg源代码简单分析:avformat_alloc_output_context2()
  9. TP5多模块开发
  10. 如何安装并且使用jmeter进行简单的性能测试
  11. Git 在团队中的使用--如何正确使用Git Flow
  12. module.exports和exports.md
  13. 【C++ Primer | 06】 函数
  14. Android高效加载大图、多图解决方案,有效避免程序OOM(转)
  15. GIT 命令集
  16. android 代码edittext删除或者替换光标处的字串
  17. SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作
  18. Protobuf学习 - 入门(转)
  19. spring mvc拦截器HandlerInterceptor
  20. BZOJ4551 HEOI2016树

热门文章

  1. 关于性能测试中LR的pacing time设置的相关实验
  2. TableView被Navigation bar挡住的解决办法
  3. 前端自动化之ts编译
  4. 判断修改的中的值,用前面的,否则容易获得空值;this.dataGridView1.Rows[i].Cells[0].EditedFormattedValue; VS bool b = (bool)this.dataGridView1.Rows[i].Cells[0].Value;
  5. Android 截屏检测
  6. 自定义对话框<转>
  7. 【291】Python 中字符串添加到剪贴板
  8. for in 循环的输出顺序问题
  9. linux下编译wpa_supplicant …
  10. js监听文本框内容变化