01 开篇初识 vim

vim 功能吊炸天,但我们掌握一些常用的命令即可应对日常的使用了,不记流水账!

  • Linux 中最常用的编辑器是什么? vim !
  • vi 跟 vim 啥区别? vim 就是 vi 的增强版,功能更强些,别纠结这个细节,掌握 vim 就好。
  • 有几种模式?有四种模式,normal模式(默认模式)、编辑模式、命令模式、visual模式(这个模式不常用,下面不细说)。

02 normal 模式& 编辑模式 & 底线命令模式

normal 模式

vim [文件名] # 即进入normal 模式 ,这就是默认的 normal 模式,在进入其他模式后,可以使用 Esc 键返回到这个模式。

编辑模式

normal 模式下按下 i、a、o、s,进入编辑模式,使用频度一般也是这个顺序,编辑模式下和在 Windows 里记事本里操作没啥区别。

  • i # insert,光标当前字符前插入
  • a #append, 光标当前字符后插入
  • o #下一行插入
  • s #不常用,删除当前字符并插入

底线命令模式

在编辑模式下对文件修改操作后,按Esc进入normal模式,normal模式下使用冒号(:)进入底线命令模式。

底线命令模式常用命令字符如下:

  • :q # 退出不保存
  • :q! # 强制退出不保存
  • :wq # 退出保存
  • :wq! # 强制退出保存

03 normal模式下的移动、复制粘贴、撤销与查找

移动

  • ctrl + f # 向下翻页
  • ctrl + b # 向上翻页
  • 0 # 行首
  • $ # 行尾
  • space # 空格键,一直向下移动一个字符。跟左方向键(→)的区别是,左方向键(→)只能在本行移动。 h、j、k、l 类似方向键的右下上左,顺时针,这些操作是体现 vim 牛的地方,可以飞快的跳转操作。
  • G # 大写g,移动到文末。
  • nG # n 是数字,代表行号。100G则是移动到第100行。1G文首,0G文末。
  • gg # 移动到文首。同样效果还有1G。

删除

  • dd # 删除当前行,可连续按d删除。
  • ndd # 删除当前行及之后的多少行,如: 100dd,删除当前及之后的100行
  • dG #删除当前行至末尾的所有行(光标放到首行,则可以删除全部)
  • 删除列操作

    1.光标定位到要操作的地方。

    2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。

    3.d 删除。

撤销

u # 撤销操作。这应该是非常常用的操作了。如果上面使用 dd 删除错了,可按一下 u 进行撤销。编辑模式下撤销需要按 Esc 进入 normal 模式,再按 u 撤销。

复制粘贴

  • y # 进入复制模式。
  • yy # 复制当前行。
  • nyy # n 是数字,代表行号。如: 16yy,即复制当前行至16行的内容。
  • p # 粘贴当前vim剪切板中内容。
  • yyp # 常用组合键,即在上面使用 yy 复制后,可立即使用 p 粘贴,或者移动到指定地点后按个 p,即把刚才的内容粘贴过来了。
  • ggyG # 全选复制。看这个命令,到行首,按 y 进入复制模式,再移动光标到文末,然后可以按 p 粘贴了。这里有个缺陷,这样的复制内容只能在 vim 中进行粘贴,一旦退出 vim,剪切板中则无此内容了。那怎么办呢? 看下面这个命令。
  • gg"*yG、gg"+yG # 这两个全选复制的命令,可以将内容带出到vim之外。

查找

normal 模式下输入 / 或 ? 。

  • /hello # 即向下寻找hello这个字符串。按n会一直向下找。
  • ?hello # 即向上寻找 hello 这个字符串。按n会一直向上找。
  • n、N # 配合/、?则会很有趣,如: /hello Enter 后再按 n,一直向下找; N 一直向上找; ?hello Enter 后再按 n,一直向上找, N 一直向下找。

04 底线命令模式的查找替换

替换,则是要进入底线命令模式了,上面说过了,即在 normal 模式下使用冒号 : 进入此模式。

  • :%s/old/new/g # 全局替换,将 old 字符替换成 new 。
  • :[n1],[n2]s/old/new/g # n1、n2为行号,意思是从第n1行到n2行,指定行数区间替换。
  • :[n1],%s/old/new/g # 从第 n1 行到最后一行的替换。

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

004 Linux 揭开神器 vim 面纱的更多相关文章

  1. linux开发神器--Tmux

    在Linux上工作的朋友,可能会常常遇到这种情况: 痛点1: 在公司用putty连着Linux开发机,程序正跑着,不知不觉到了下班的时候,要和老婆/女朋友约会了,但是程序还没跑完,并且进度有点紧,还得 ...

  2. 揭开Docker的面纱

    开新坑了,开始挖坑Docker了,兄弟们.为什么需要Docker呢?Docker是什么?这里开始揭开Docker的面纱. 一.为什么需要Docker 可能每个开发人员都有一种困扰,软件开发完之后部署项 ...

  3. Linux下面对于VIM编辑器的代码折叠使用与screen

    VIM设置代码折叠 1. 折叠方式 可用选项 'foldmethod' 来设定折叠方式:set fdm=*****.有 6 种方法来选定折叠:          manual           手工 ...

  4. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

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

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

  6. linux文本编辑器vim大全

    linux基础之vim编辑器 1.vim编辑器 基本介绍 vim编辑器的前身叫做vi.vi的英文名:Visual  Interface.中文解释文本编辑器,你不应该用他去打开二进制可执行文件 文本编辑 ...

  7. Linux文本编辑器vim

    目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...

  8. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  9. Android开源框架Afinal第一篇——揭开圣女的面纱

    Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...

随机推荐

  1. vue-子组件创建/注册/使用流程

    流程分为三步 非单文件组件:(实际不用,因为很麻烦,框架都是多文件组件) 局部注册 1.创建一个组件 const school = Vue.extend({ // 传入配置对象 // 子组件配置对象不 ...

  2. 【LeetCode】886. Possible Bipartition 解题报告(Python)

    [LeetCode]886. Possible Bipartition 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu ...

  3. 【LeetCode】109. Convert Sorted List to Binary Search Tree 解题报告(Python)

    [LeetCode]109. Convert Sorted List to Binary Search Tree 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id ...

  4. vue项目报错如下:(Emitted value instead of an instance of Error)

    (Emitted value instead of an instance of Error) the "scope" attribute for scoped slots hav ...

  5. 解决vue生产环境app.js或vendor文件过大问题

    1.去掉多余的库 将不必要的库卸载掉 npm uninstall xxx 举个例子:例如moment库文件是很大的,在前端可以用js的 new Date实现获取日期,或者可以其他库代替,也可以将mom ...

  6. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

  7. 【入门到精通】❤️「Java工程师全栈知识路线」

    持续更新中- Vue前端开发 章节 内容 实践练习 Vue.js高效前端开发 • (实践练习) 第1章 Vue.js高效前端开发 • [ 一.初识Vue.js ] 第2章 Vue.js高效前端开发 • ...

  8. 编写Java程序,测试包的使用和成员的访问权限

    返回本章节 返回作业目录 需求说明: 测试包的使用和成员的访问权限: 分别创建两个包,在这两个包下分别建立两个类. 其中某个类的某个方法需要引用用另一个包中某个类的某些成员属性. 被引用成员属性分别使 ...

  9. versions-maven-plugin插件批量修改版本号

    1.简介 versions-maven-plugin插件可以管理项目版本, 特别是当Maven工程项目中有大量子模块时, 可以批量修改pom版本号, 插件会把父模块更新到指定版本号, 然后更新子模块版 ...

  10. Hadoop Jobhistory配置启用

    Hadoop Jobhistory记录下已运行完的MapReduce作业信息并存放在指定的HDFS目录下, 默认情况下是没有启动的,需要配置完后手工启动服务. 1.修改hadoop的配置文件mapre ...