vim 学习总结

一、介绍

vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,类似于 Windows 系统下的 notepad(记事本)编辑器。在 Unix 及 Linux 系统的任何版本,vi 编辑器都是完全相同的。

vi 和 vim 都是 Linux 中的编辑器。不同的是,vim 比较高级,可以视为 vi 的升级版本。vi 使用于文本编辑,但是 vim 更适用于coding。

二、vim 介绍

2.1 vim 打开文件的方式

# 方式一:打开指定的文件
$ vim 文件 # 方式二:打开指定的文件,并将光标移动到指定行
$ vim +数字 文件 # 方式三:打开指定文件,并高亮显示关键词
$ vim +/关键词 文件 # 方式四:打开多个文件
$ vim 文件1 文件2 ...

比如,在当前目录下有一个文本文件 test.txt,内容如下:

我在第 1 行
我在第 2 行
我在第 3 行
我在第 4 行

2.2 vim 的三种模式

vim 中存在三种模式:命令模式、编辑模式、末行模式。

  • 命令模式:在该模式下不能对文件进行编辑,可以输入快捷键进行一些操作。如「删除行、复制行、移动光标」等等。
  • 编辑模式:在该模式下可以对文件的内容进行编辑。
  • 末行模式:在该模式下可以通过输入命令来对文件进行操作。如「搜索、替换、保存、退出、撤销、高亮」等等。

打开文件之后默认进入命令模式

2.3 模式间的切换一栏

2.4 命令模式下的常用操作

2.4.1 光标移动

  1. 光标移动到行首:shift + ^
  2. 光标移动到行尾:shift + $
  3. 光标移动到首行:gg
  4. 光标移动到末行:G
  5. 向上翻屏:ctrl + bPgUp(before)
  6. 向下翻屏:ctrl + fPgDn(after)

2.4.2 复制操作

  1. 复制光标所在行:yy
  2. 以光标所在行为准(包含当前行),向下复制指定的行数:数字yy

复制后,

2.4.3 剪切操作

  1. 剪切光标所在行:dd,剪切后下一行上移
  2. 以光标所在行为准(包含当前行),向下剪切指定的行:数字dd,剪切后下一行上移
  3. 剪切光标所在行后下一行不上移:D

2.4.4 粘贴操作

  • 搭配「复制 / 剪切」操作一起使用:在想要粘贴的地方按下p(paste)。

2.4.5 撤销/恢复

  1. 撤销::u (undo)
  2. 恢复:ctrl + r,恢复(取消)之前的撤销操作

2.4.6 光标的快速移动

  1. 快速将光标移动到指定的行:数字G
  2. 以当前光标为准「向上 / 向下」移动指定的行:数字↑数字↓
  3. 以当前光标为准「向左 / 向右」移动若干字符:数字←数字→

2.5 末行模式下的常用操作

2.5.1 进入 / 退出

  1. 进入末行模式:在命令模式下输入:
  2. 退出末行模式:在末行模式下按下Esc

2.5.2 保存

  1. 保存文件:w(write)
  2. 文件另存为:w 路径

2.5.3 其他

  1. 调用外部命令: !命令
  2. 搜索 / 查找:/关键词
  • 在搜索结果中切换上一个结果:N
  • 在搜索结果中切换下一个结果:n
  1. 取消高亮:输入「nohl(no highlight)」
  2. 字符串替换操作(s-string replace,g-global,%-整个文件):
    • s/关键词/替换内容,仅替换光标所在行的第一处符合条件的内容
    • s/关键词/替换内容/g,替换光标所在行的全部符合条件的内容
    • %s/关键字/替换内容,替换整个文件中每行的第一处符合条件的内容
    • %s/关键字/替换内容/g,替换整个文件中全部符合条件的内容
  3. 行号(number):
    • 显示行号:set nu
    • 取消显示:set nonu

2.6 编辑模式下的常用操作

2.6.1 进入 / 退出

  1. 进入编辑模式:在命令模式下输入 i / a / A...

    • i:在光标所在行的字符前开始插入
    • a:在光标所在行的字符后开始插入
    • A:在光标所在行的行尾开始插入
    • o:在光标所在行的下面另起一行插入
    • O:在光标所在行的上面另起一行插入
  2. 退出编辑模式:在编辑模式下按下Esc

2.7 vim 编辑多个文件

首先在当前目录下准备多个文件 A.txt、B.txt:

A.txt

我是 A 文件的第一行
我是 A 文件的第二行
我是 A 文件的第三行

B.txt

我是 B 文件的第一行
我是 B 文件的第二行
我是 B 文件的第三行

首先通过$ vim A.txt B.txt打开多个文件,并可以通过「:files」指令查看当前已经打开的文件名称。

  • %a(active) : 表示当前正在显示的文件

下面我们来看一下如何切换文件:

  1. 切换到指定文件:「:open B.txt」

    • :表示上一个打开的文件

  2. 切换到上一个(back previous)文件:「:bp」
  3. 切换到下一个(back next)文件:「:bn」

2.8 退出 vim

  1. 直接退出:

    • 在命令模式下输入「:q」,然后按下回车
    • 在末行模式下输入「q」,然后按下回车
  2. 保存并退出

    • 在命令模式下输入「:wq」,然后按下回车
    • 在末行模式下输入「wq」,然后按下回车
  3. 强制退出

    • 在命令模式下输入「:q!」,然后按下回车

    • 在末行模式下输入「q!」,然后按下回车

三、其他功能

3.1 实用功能

3.1.1 代码着色

  • 着色:「:syntax on」
  • 取消着色:「:syntax off」

3.1.2 计算器

  1. 进入编辑模式
  2. 按下ctrl+R,然后输入「=算数表达式」
  3. 最后按下回车

3.2 vim 的配置

vim 是一款编辑器,和其他编辑器一样,也是有配置文件的。vim 配置有三种情况:

  1. 在末行模式下输入的配置,如显示行号、配色等等,但这都是临时的修改
  2. 个人配置文件(~/.vimrc)
  3. 全局配置文件(vim 自带的,/etc/vimrc)

3.2.1 修改个人配置文件

  1. 新建 .virmrc

    • 首先通过$ ls ~/.vimrc查看是否存在
    • 如果文件不存在,通过$ touch ~/.vimrc创建
  2. 编辑 .vimrc:$ vim ~/.vimrc

    • 在新的一行添加「set nu」,那么通过 vim 打开的文件都会显示行号了

vim 学习总结的更多相关文章

  1. Linux学习系列之Linux入门(二)Vim学习

    第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...

  2. Vi/VIM键盘图, Vi/vim学习图

    Vi/vim学习图 引用: Vi键盘图片可视化教程 http://www.cnblogs.com/me115/archive/2010/11/16/1878295.html 网上的文章易流失.感谢分享 ...

  3. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  4. 推荐vim学习教程--《Vim 练级手册》

    非常不错的vim学习资源,讲解的简单明了,可以作为速查工具,在忘记时就翻下.地址如下: <Vim 练级手册>

  5. VIM学习二: VIM配置代码及效果图

    vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...

  6. vim学习之改头换面(基础配置)

    还记得在线有个维护博客园的学长说过,这网站的前端做的贼丑,今日一看果真如此.其实我想说毕竟干货多,没有那么多花花肠子.下面开始进入正题. 在入坑了sublime.vscode.atom.notepad ...

  7. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  8. Linux之Vim学习

    Linux之Vim学习 一般模式 光标移动 按键 作用 j或down方向键 向下移动一个字符 k或up方向键 向上移动一个字符 h或left方向键 向左移动一个字符 l或right方向键 向右移动一个 ...

  9. 菜鸟vimer成长记——第0章、我眼中的vim学习

    这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系 ...

  10. Vim 学习指南

    作者:耀耀 出处:http://www.linuxeden.com/html/news/20130820/142667.html Vim 学习指南 来源:开源中国社区 作者:耀耀 关注我们:   你想 ...

随机推荐

  1. 苹果iOS 17正式版来了:iPhone X/8系列等机型无缘

    据媒体报道,苹果会在9月13日凌晨1点发布iPhone 15系列新品,该机出厂预装iOS 17正式版系统. 在iPhone 15系列之后,苹果会向老机型推送iOS 17正式版更新.据爆料,苹果将会在9 ...

  2. 微软开测“Moment4”启动包:Win11 23H2要来了

    近日,有用户在Win11最新的7月累积更新中发现,更新文件中已经开始出现了对"Moment4"的引用. 具体来说,在7月累积更新中,微软加入了"Microsoft-Win ...

  3. 【奶奶看了都会】ChatGPT3.5接入企业微信,可连续对话

    1.连续对话效果 小伙伴们,这周ChatGPT放出大招,开放了GPT3.5的API.说简单点,就是提供了和ChatGPT页面对话一样模型的接口.而之前接的ChatGPT接口都是3.0,并不是真正的Ch ...

  4. 单片机 IAP 功能基础开发篇之APP升级(二)

    1.前言 上一篇单片机 IAP 功能基础开发篇之APP升级(一)讲到了单片机 IAP 功能给 APP 程序升级的设计思路,这篇介绍的是具体实现方式. 下一篇单片机 IAP 功能基础开发篇之APP升级( ...

  5. 案例:DG备库报错ORA-600[2619]致使mrp进程异常终止

    很多刚入行的DBA往往一看有ORA-600这类错误就不知所措,直接就想寻求中高级DBA支持,甚至在网上还看到有人说,判断一个Oracle DBA是否达到中级以上,就是看其是否可以独立思考处理ORA-6 ...

  6. OSW Analyzer分析oswbb日志发生异常

    具体OSW Analyzer详细介绍可以参考MOS文档: OSWatcher Analyzer User Guide (Doc ID 461053.1) 我们常用的就是拿到一份osw数据到自己电脑,使 ...

  7. electron、nodejs、typescript、idea 组合开发,安装和配置 以及错误 等 详细说明

    1.  创建项目,创建时 选择 nodejs 项目,因为 开发 electron 与 开发 nodejs 基本一致. 2.安装 electron  npm i -D electron@beta 看目录 ...

  8. MySQL-CDC原理与实践

    MySQL CDC (Change Data Capture),中文名为MySQL变化数据捕获,是一种截取MySQL主从复制流中binlog的技术,从而实时捕获数据库中的增.删.改操作.在大数据.实时 ...

  9. Power BI 10 DAY

    Power BI 上下文 筛选上下文只管筛选,行上下文只管迭代,两者互不干涉,各司其职 计算列操作会自动创建行上下文 度量值不会自动创建行上下文,需要人为使用迭代函数进行行上下文的创建 (迭代函数本身 ...

  10. GCC Arm 11.3rel1, 12.2编译提示 _close is not implemented and will always fail

    使用GCC Arm工具链开发的项目, 在11.2下编译正常, 但是升级到 arm-gnu-toolchain-11.3.rel1 以及 arm-gnu-toolchain-12.2 之后, 编译出现警 ...