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. software engineer's resume(帮助你写程序员简历)

    关键词 参考 简历模板 参考 下面开始是正文(关键词原文) 介绍 本项目由海外兔 (https://osjobs.net) 维护,海外兔团队由一线互联网面试官组成,提供海内外公司一对一入职套餐以及算法 ...

  2. 【LeetCode】58. Length of Last Word 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 库函数 双指针 单指针 日期 题目地址:https: ...

  3. 【LeetCode】377. Combination Sum IV 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  4. ZYB loves Xor I(hud5269)

    ZYB loves Xor I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. Soldier and Traveling

    B. Soldier and Traveling Time Limit: 1000ms Memory Limit: 262144KB 64-bit integer IO format: %I64d   ...

  6. 1686 第K大区间

    1686 第K大区间 时间限制:1 秒 空间限制:131072 KB   定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数(统计学/数学名词)_百度百 ...

  7. 教学日志:javaSE-循环语句

    一.while循环和do...while循环 /* while循环:先判断条件,再执行逻辑代码 四部分组成: 1.初始化:循环的初始化变量 2.条件判断:条件返回必须是true或false 3.循环体 ...

  8. 教学日志:javaSE-流程控制语句

    import java.util.Scanner; //导包 /* java流程控制语句: 单分支结构: 只有一个条件,符合就执行 双分支结构: 有两个条件,符合哪个就执行哪个语句块 多分支结构: 有 ...

  9. WebRTC下 的 NAT 穿透技术

    NAT的概念模型 NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息.NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力. ...

  10. <数据结构>图的构建与基本遍历方法

    目录 建立一个图 邻接矩阵 邻接表 深度优先遍历(DFS) 具体步骤: 第一部分:给定结点u,遍历u所在的连通块的所有结点 第二部分:对图G所有结点进行第一部分的操作,即遍历了图的所有连通分量 伪代码 ...