首页 > 系统相关 >Linux 之 vi / vim

Linux 之 vi / vim

时间:2024-04-28 14:00:52浏览次数:15  
标签:-- vi 模式 vim 命令 输入 Linux Vim 光标

vi / vim

​ Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

​ 基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

以下是普通模式常用的几个命令:

  • i -- 切换到输入模式,在光标当前位置开始输入文本。
  • x -- 删除当前光标所在处的字符。
  • : -- 切换到底线命令模式,以在最底一行输入命令。
  • a -- 进入插入模式,在光标下一个位置开始输入文本。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O -- 在当前行的上方插入一个新行,并进入插入模式。
  • dd -- 删除当前行。
  • yy -- 复制当前行。
  • p(小写) -- 粘贴剪贴板内容到光标下方。
  • P(大写)-- 粘贴剪贴板内容到光标上方。
  • u -- 撤销上一次操作。
  • Ctrl + r -- 重做上一次撤销的操作。
  • :w -- 保存文件。
  • :q -- 退出 Vim 编辑器。
  • :q! -- 强制退出Vim 编辑器,不保存修改。

若想要编辑文本,只需要启动 Vim,进入了命令模式,按下 i 切换到输入模式即可。

命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。

输入模式

​ 在命令模式下按下 i 就进入了输入模式,使用 Esc 键可以返回到普通模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下 :(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • :w:保存文件。
  • :q:退出 Vim 编辑器。
  • :wq:保存文件并退出 Vim 编辑器。
  • :q!:强制退出Vim编辑器,不保存修改。

ESC 键可随时退出底线命令模式。

标签:--,vi,模式,vim,命令,输入,Linux,Vim,光标
From: https://www.cnblogs.com/test-gang/p/18163622

相关文章

  • 批量修改Linux文件夹下所有文件大小写
    批量修改Linux文件夹下所有文件大小写 小写转大写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [a-z][A-Z]`;done 大写转小写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [A-Z][a-z]`;done 修改后......
  • 开源相机管理库Aravis学习——PixelFormat编码规则
    目录前言前置知识PixelFormatBpp编码规则源码分析分类标准补充ARV_PIXEL_FORMAT_BIT_PER_PIXEL参考文章前言在学习Aravis官方例程的时候,有这么一个函数:arv_camera_get_pixel_format,它的返回类型是ArvPixelFormat(本质是个32位无符号整数)。这意味着对于每个图像数据格式,都有自己......
  • Script of Narrative Writing from different point of view
    Thispaperisadaptedfrompartonecadaverizationof《聊斋志异》.Thisisoriginaltext:https://liaozhai.5000yan.com/19939.htmlThepointofviewofthestory:ThethirdpersonpointofviewThepointwillIusedinthestory.:FirstpersonpointofviewThe......
  • Linux: Desktop Environment DE GUI
     Checkwhichdesktopenvironmentyouareusingecho$XDG_CURRENT_DESKTOP FROMGUI gnome-shell--version gdm3--version DisplayManagerVSDisplayServer CheckwhetherWaylandorXorgisinuse(DisplayServer)必须使用GUIte......
  • 开源相机管理库Aravis例程学习(五)——camera-api
    目录简介例程代码函数说明arv_camera_get_regionarv_camera_get_pixel_format_as_stringarv_camera_get_pixel_formatARV_PIXEL_FORMAT_BIT_PER_PIXEL简介本文针对官方例程中的:03-camera-api做简单的讲解。并介绍其中调用的arv_camera_get_region,arv_camera_get_pixel_format_as......
  • 第四章activity
    第四章activity1.生命周期方法onResume获取焦点onPause失去焦点packagecom.example.lifestyle;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.util.Log;publicclassMainActivityextendsAppCompatActivity{@......
  • virsh命令学习(一)
    一:kvm工具栈kvm主要的工具栈,从大的类别可以分为libvirt和qemu这2大类,其中libvirt中分为virtualmachinemanager和virsh,virtualmachinemanager中的virt-manager是基于图形化界面的管理,其他的都是可以在命令直接使用命令来管理虚拟机,virsh是基于图形化界面的管理,2者都是通过li......
  • new webpack 的 DefinePlugin 与 ProvidePlugin
    一、DefinePluginDefinePlugin允许创建一个在编译时可以配置的全局常量。这可能会对开发模式和生产模式的构建允许不同的行为非常有用。如果在开发构建中,而不在发布构建中执行日志记录,则可以使用全局常量来决定是否记录日志。这就是DefinePlugin的用处,设置它,就可以忘记开发环境......
  • Linux安装jdk的详细步骤
    jdkhttps://blog.csdn.net/qq_41694906/article/details/126372085通过Xftp把jdk安装包上传到linux服务器解压jdk命令tar-zxvfjdk-8u341-linux-x64.tar.gz配置环境变量vim/etc/profileexportJAVA_HOME=/opt/jdk1.8.0_341   (的地址需要修改)exportPATH=$JAVA_HOM......
  • Alibaba Cloud Linux release 3 Python 3.8 安装
    AlibabaCloudLinuxrelease3Python3.8安装https://zhuanlan.zhihu.com/p/690125733背景买了台阿里云服务器玩玩,项目需要Python3.8,但是机器上配置了3.6.8机器信息:机器信息:Linuxversion5.10.134-16.1.al8.x86_64AlibabaCloudLinuxrelease3linux的多python版......