首页 > 系统相关 >【Linux】vim详细介绍(四)

【Linux】vim详细介绍(四)

时间:2024-03-22 19:00:54浏览次数:34  
标签:文件 set 模式 Vim mode 详细 Linux vim 光标


文章目录

什么是 vim

点击跳转至官网了解更多
Vim是一款功能强大的文本编辑器,适用于各种编程和文本处理任务,最初由Bram Moolenaar开发于1991年。它是Vi编辑器的增强版,Vi是Unix系统上的一款文本编辑器。Vim的名称代表“Vi IMproved”(Vi的改进版)。

Vim有着丰富的功能和强大的定制性,是程序员和系统管理员等专业用户的首选编辑器之一。

vim的主要功能:

  1. 模式:Vim具有多种模式,包括一般模式、编辑模式、可视模式、底行模式等。普通模式下可以执行各种编辑命令,插入模式用于输入文本,可视模式用于选择文本,底行模式用于执行命令。
  2. 快捷键:Vim通过使用快捷键来执行各种编辑操作,这些快捷键可以大大提高编辑效率。
  3. 强大的搜索和替换功能Vim支持使用正则表达式进行搜索和替换,还支持全局替换、逐个替换等功能。
  4. 语法高亮:Vim可以根据文件的语法类型进行高亮显示,使代码更易于阅读和编辑。
  5. 自动补全:Vim具有自动补全功能,可以根据已输入的内容提示可能的选项,提高编码效率。
  6. 分屏和标签页:Vim支持将编辑区域分割成多个窗口,并且可以使用标签页来管理多个文件。
  7. 插件系统:Vim具有丰富的插件系统,用户可以根据自己的需要安装各种插件来扩展编辑器的功能。

vim的三种模式

在这里插入图片描述

  • 命令模式(command mode)

    以 vim 打开一个文件就直接进入一般模式了(这是默认的模式,也简称为一般模式)。 在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。

  • 插入模式 (insert mode)

    在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。 注意了! 通常在 Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。 而如果要回到一般模式时, 则必须要按下“Esc”这个按键即可退出插入模式。

  • 底行模式 (last line mode)

    在一般模式当中,输入“ : ? / 三个中的任何一个按钮,就可以将光标移动到最下面那一列。 在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存储、搜索、替换、离开 vim 、显示行号等等的动作则是在此模式中达成的!

  • vim打开文件后为命令模式(command mode)

    1. 打开一个文件vim filename

    2. 打开多个文件vim file1 file2 …

      使用 :e file 命令打开其他文件

      使用:sp filename 启动新窗口打开文件

  • 从命令模式(command mode)进入插入模式(Insert mode)

    1. 按i在当前位置编辑
    2. 按a在当前位置的下一个字符编辑
    3. 按o插入新行,从行首开始编辑
  • 插入模式(insert mode)下按ESC键退回命令模式(command mode)

  • 命令模式(command mode)下按 : 或 / 或 ?等即可进入底行模式(last line mode)

    1. 输入 :set nu 显示行号
    2. 输入 :1,$s/word/WORD/g 将全部的word替换为WORD
    3. 输入 /word 向下搜索word,之后按n继续搜索
    4. 输入 ?word 向上搜索word,之后按n继续搜索
    5. 更多命令介绍在底行模式的可用按钮说明中
  • 底行模式(last line mode)下按ESC键或Enter键返回到命令模式(command mode)

  • 底行模式(last line mode)下退出

    1. 输入:q退出
    2. 输入 :wq保存后退出
    3. 输入:q!强制退出
    4. 输入 :wq!强制保存退出
  • 命令模式可用的按钮说明,光标移动、复制、粘贴等

    操作说明
    移动光标的方法
    h 或 ←光标向左移动一个字符
    j 或 ↓光标向下移动一个字符
    k 或 ↑光标向上移动一个字符
    l 或 →光标向右移动一个字符
    nG移动到这个文件的第 n 列。 (可配合 :set nu)
    例,100G为移动到第100行
    n 或 n ↓光标向下移动 n 列(常用)
    例,100 ↓为移动到101行,不同于100G
    x, X在一列字当中,x 为向后删除一个字符,X 为向前删除一个字符
    nxn 为数字,连续向后删除 n 个字符。 举例来说,我要连续删除 10 个字符, “10x”。
    dd删除光标所在的那一整列(常用)
    nddn 为数字。 删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
    yy复制光标所在的那一列(常用)
    nyyn 为数字。 复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
    p, Pp 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列。举例来说,我目前光标在第 20 列,且已经复制了 10 列数据。则按下 p 后,那 10 列数据会贴在原本的 20 列之后,亦即由 21 列开始贴。但如果是按下 P 呢?那么原本的第 20 列会被推到变成 30 列。 (常用)
  • 底行模式的可用按钮说明

    操作说明
    :w将编辑的数据写入硬盘文件中(常用)
    :w!若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入, 还是跟你对该文件的文件权限有关啊!
    :q离开 vi (常用)
    :q!若曾修改过文件,又不想储存,使用 ! 为强制离开不储存盘案。
    :wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    :w [filename]将编辑的数据储存成另一个文件(类似另存新文件)
    :r [filename]在编辑的数据中,读入另一个文件的数据。 亦即将 “filename” 这个文件内容加到光标所在列后面
    :n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个文件。
    :! command暂时离开 vi 到命令行界面下执行 command 的显示结果。例如 “:! ls /home“即可在 vi 当中察看 /home 下面以 ls 输出的文件信息!
    /word向光标之下寻找一个名称为 word 的字串。
    (按下后继续按n可连续搜索)
    ?word向光标之上寻找一个字串名称为 word 的字串。
    (按下后继续按n可连续搜索)
    :n1,n2s/word1/word2/g在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2 !
    例 :1,$s/word1/word2/g,将第一行和最后一行中所有的word1替换为word2
    :1,$s/word1/word2/gc从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 ! 且在取代前显示提示字符给使用者确认 (confirm) 是否需要取代!
    (替换时可以选中行首^和行尾$)
    :sp filename开启一个新窗口,如果有加 filename, 表示在新窗口打开一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。如果需要更换窗口,可以同时按下ctrl w ↑ 或者 ctrl w ↓进行更换。想要结束选中的窗口,可以同时按下ctrl w q。
    :set nu临时设置显示行号,设置之后,会在每一列的字首显示该列的行号
    (这是一个vim环境设置的命令)
  • vim环境设置命令

    • 常用命令1
    命令功能详细说明
    :set nu打开行号显示在每一行的左侧显示该行的行号,方便导航和定位。
    :set nonu关闭行号显示停止显示每行的行号。
    :set hlsearch打开高亮搜索在搜索时,匹配的文本会被高亮显示,以突出显示搜索结果。
    :set nohlsearch关闭高亮搜索停止匹配文本高亮显示。
    :set autoindent打开自动缩进在输入新行时,新行会自动与上一行保持相同的缩进,使代码更易于阅读和维护。
    :set noautoindent关闭自动缩进输入新行时,不会自动应用与上一行相同的缩进,使用者需要手动缩进文本。
    :syntax on打开语法高亮Vim 会根据文件类型自动高亮显示关键字、注释等,提高代码可读性。
    :syntax off关闭语法高亮停止对文件的语法高亮显示,适用于不希望使用语法高亮的情况,例如在查看纯文本文件时。
    :set bg=light设置背景颜色为亮色设置 Vim 编辑器的背景颜色为亮色主题,适合在明亮的环境下使用,如白天工作环境。
    :set bg=dark设置背景颜色为暗色设置 Vim 编辑器的背景颜色为暗色主题,适合在暗色环境下使用,如夜间工作环境。
    • 常用命令2
    命令功能详细说明
    :set显示所有当前设置的选项显示所有当前设置的选项,但不包括它们的值。
    :set all显示所有当前设置的选项及其值显示所有当前设置的选项及其值,帮助用户了解当前 Vim 的所有设置选项。
    :set showmode打开显示模式在底部显示当前处于插入模式还是命令模式,帮助用户了解当前 Vim 处于哪种模式下。
    set showcmd显示命令在底部状态栏显示当前的命令
    :set ruler打开标尺在底部显示当前光标所在位置的行号和列号,帮助用户准确定位。
    :set backup打开备份在编辑文件时,Vim 会在保存之前创建一个备份文件,以防止意外丢失数据。
    :set tabstop=n设置制表符宽度为 n设置制表符的宽度为 n 个空格,例如 set tabstop=4 设置制表符宽度为 4 个空格
    :set ignorecase忽略大小写在搜索时忽略大小写匹配
    :set smartcase智能大小写只有搜索词中包含大写字母时,才区分大小写
    :set backup备份文件在保存文件时创建备份文件,备份文件的命名规则为 filename~
    :set list显示不可见字符显示不可见字符,如空格和制表符
    :set showmatch自动高亮匹配的括号在插入括号时,自动高亮显示匹配的括号

.viminfo和.vimrc文件

  1. .vimrc 文件
    • 作用.vimrc 文件是 Vim 的配置文件,用于定义用户的偏好设置和自定义命令。在这个文件中,你可以设置编辑器的外观、行为、键绑定、插件等等。所有在 .vimrc 文件中设置的选项都会在启动 Vim 时被加载。
    • 位置.vimrc 文件通常位于用户的主目录下(在 Unix/Linux 系统中为 ~/.vimrc
    • 编辑:你可以使用任何文本编辑器来编辑 .vimrc 文件,添加或修改配置选项以满足你的需求。
  2. .viminfo 文件
    • 作用.viminfo 文件用于存储 Vim 的会话信息,包括历史命令、搜索历史、撤销历史、文件位置等。当你退出 Vim 时,会话信息会被保存到 .viminfo 文件中;当你重新启动 Vim 时,Vim 会从 .viminfo 文件中读取信息以恢复你上次编辑的状态。
    • 位置.viminfo 文件通常也位于用户的主目录下(在 Unix/Linux 系统中为 ~/.viminfo
    • 编辑:一般情况下,你不需要手动编辑 .viminfo 文件。Vim 会自动管理这个文件,你只需要了解它的存在和作用即可。

这两个文件对于定制和管理 Vim 编辑器都非常重要。通过编辑 .vimrc 文件,你可以根据个人喜好配置 Vim 的外观和行为;而 .viminfo 文件则帮助你在 Vim 的不同会话之间保持状态一致性。

标签:文件,set,模式,Vim,mode,详细,Linux,vim,光标
From: https://blog.csdn.net/hdz_wiz_csdn/article/details/136842298

相关文章

  • Linux/Ubuntu/Debian终端terminal中ls的详细用法-l -lt -ld -lR -lh -F
    使用各种选项列出当前目录中的文件和目录:以长(表格)格式列出:ls-l列出有关特定目录的信息:ls-lddir-name列出所有文件(包括隐藏文件):ls-a附加指示文件类型的符号:ls-F按上次修改时间排序列出文件:ls-lt以人类可读的格式列出文件大小:......
  • 快看过来,这么详细的easyexcel导出excel表格
    准备工作准备依赖,这期导出使用easyexcel <!--excel导入导出功能--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version>&l......
  • Linux--CPU简述
    一、计算机结构冯·诺依曼模型(VonNeumannarchitecture)是一种计算机体系结构的基本框架,由冯·诺依曼于1945年提出。它是现代计算机设计和实现的基础,被广泛应用于大多数通用计算机系统。冯·诺依曼模型的主要特点包括:存储程序:冯·诺依曼模型采用了存储程序的概念,即指令和数据......
  • Linux 多网卡做bond模式
    bond概念将两张网卡绑定,共用一个IP,实现冗余效果。实际上Linux双网卡的绑定模式有7种,而在这里常用的是active-backup,一个设备如果只有一个网卡,那么当这个网卡损坏时设备的网络就会瘫痪。绑定接口的作用就是让多个物理网卡服务于一个IP地址,使得这个网络的抵抗性强。一个设备只......
  • 【Linux操作系统】权限管理和粘滞位
    文章目录前言Linux权限管理01.文件访问者的分类(人)02.文件类型和访问权限(事物属性)03.文件权限值的表示方法04.文件访问权限的相关设置方法1.chmod2.chown3.chgrpumask粘滞位1.共享文件粘滞位权限的总结Linux系列学习目录前言Linux操作系统学习,权限管理,关于Linux......
  • 【Linux】基础 IO(动静态库)-- 详解
    一、前言为什么要使用别人的代码?主要是为了提高程序开发的效率和程序的健壮性。当别人把功能都实现了,然后我们再基于别人的代码去做二次开发,那么效率当然就提高了。其次,这里基于的别人当然不是随便找的一个人,而特指的是顶尖的工程师,也就是说如果我们的代码出了问题,一般不会......
  • Linux文件权限
    前言大家好,我是jiantaoyab,本篇文章给大家介绍Linux的文件权限。文件权限系统是确保文件和系统安全的关键组成部分。正确理解和配置文件权限对于维护系统安全至关重要。用户和用户组在Linux下,有拥有者user、用户组group、其他人others之分。什么的group?假设在一个班里面......
  • Linux内核有什么之块设备驱动有什么第六回 —— 邂逅的三个文件系统之二:实际文件系统(3
    接前一篇文章:Linux内核有什么之块设备驱动有什么第五回——邂逅的三个文件系统之二:实际文件系统(2)本文内容参考:34|块设备(上):如何建立代理商销售模式?-趣谈Linux操作系统-极客时间特此致谢!上回书以F2FS文件系统为例,开始分析块设备邂逅的第二个文件系统:实际文件系统。本回......
  • linux-sysrq
     sysrq        SysRq(systemrequest) 是Linux操作系统内核理解的一系列键,可以触发一组预定义的操作。当无法通过传统管理(执行虚拟机故障排除或恢复时,通常使用这些命令,例如,VM未)响应。         Sysrq被称为”魔术组合键”,是内建于Linux内核的调试工具......
  • Linux内核启动流程简介
    参考资料:https://www.bilibili.com/video/BV12E411h71h?p=38&vd_source=432ba293ecfc949a4174ab91ccc526d6 Linux内核链接脚本arch/arm/kernel/vmlinux.lds arch/arm/kernel/vmlinux.lds中OUTPUT_ARCH(arm)ENTRY(stext)//Linux内核入口,入口函数stextjiffies=......