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. 【剑指Offer】数组中只出现一次的数字 解题报告(Python)

    [剑指Offer]数组中只出现一次的数字 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  2. 论文翻译:2019_Deep Neural Network Based Regression Approach for A coustic Echo Cancellation

    论文地址:https://dl.acm.org/doi/abs/10.1145/3330393.3330399 基于深度神经网络的回声消除回归方法 摘要 声学回声消除器(AEC)的目的是消除近端传声器 ...

  3. Propensity Scores

    目录 基本的概念 重要的结果 应用 Propensity Score Matching Stratification on the Propensity Score Inverse Probabili ...

  4. MMD

    目录 概 主要内容 定义 MMD for kernel function classes 一个无偏统计量 MMD test Borgwardt K., Gretton A., Rasch M., Kr ...

  5. [opencv]drawContours 示例

    vector<vector<Point>> contours; vector<Vec4i> hierarchy; findContours(img_canny,co ...

  6. 使用.NET 6开发TodoList应用(13)——实现查询分页

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 查询中有个非常常见的需求就是后端分页,实现的方式也不算复杂,所以我们本文仅仅演示一个后端查询分页的例子. 目标 实现分页查询返 ...

  7. 编写Java程序_输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪。若用户输入序号出现越界,则提示错误。

    要求说明: 输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪.若用户输入序号出现越界,则提示错误. 运行效果如图: 实现代码: import java.util.Scanner; pu ...

  8. Java初学者作业——编写 Java 程序,用户输入 3 个操作数,分别求出最大值、最小值和平均值。

    返回本章节 返回作业目录 需求说明: 编写 Java 程序,用户输入 3 个操作数,分别求出最大值.最小值和平均值. 实现思路: 定义 Java 类,定义 3 个方法,用来求 3 个数字的最大值.最小 ...

  9. .net core的Swagger接口文档使用教程(一):Swashbuckle

    现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经o ...

  10. WPF使用MVVM(一)-属性绑定

    WPF使用MVVM(一)-属性绑定 简单介绍MVVM MVVM是Model(数据类型),View(界面),ViewModel(数据与界面之间的桥梁)的缩写,是一种编程模式,优点一劳永逸,初步增加一些逻 ...