当前位置: 首页 > article >正文

Linux Vim 编辑器的使用

Vim 编辑器的使用

  • 一、安装及介绍
  • 二、基础操作
  • 三、高级功能
  • 四、配置与插件


一、安装及介绍

Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等,广泛应用于代码编写和文本处理工作。

  1. 安装方法

    系统命令
    Linux Ubuntusudo apt install vim
    Linux CentOS 7sudo yum install vim
    macOSbrew install vim
    Windows下载gvim.exe安装包
  2. Vim 模式

    命令功能
    命令模式(Normal Mode)启动 Vim 后的默认模式,用于执行操作命令。按 Esc 返回该模式。
    插入模式(Insert Mode)用于文本输入,通过 i/a/o 等键进入。i : 光标前插入, a: 光标后插入, o : 下方新行插入。
    底行模式(Ex Mode)用于执行文件操作或高级命令,按 Esc 输入 : 进入该模式。
  3. 保存操作

    操作类型常用命令说明
    退出:q退出当前文件
    强制退出:q!放弃修改并退出
    保存:w保存当前文件
    保存并退出:wq保存并退出
    强制保存并退出:wq!强制保存并退出

二、基础操作

  1. 光标移动

    命令功能
    h左移
    j下移
    k上移
    l右移
    w跳至下一单词开头
    b跳至上一单词开头
    gg跳至文件开头
    G跳至文件末尾
    0跳至行首
    $跳至行尾
  2. 文本编辑
    (1)插入操作

    命令功能
    i在当前光标位置插入
    a在当前光标后插入
    o在当前行下方新建一行并插入

    (2)删除操作

    命令功能
    x删除光标所在字符
    dd删除整行
    dw删除光标到单词末尾
    d$删除光标到行尾

    (3)复制粘贴

    命令功能
    yy复制当前行
    p粘贴到光标后
    P粘贴到光标前
    u撤销
    Ctrl+r重做
    r替换单个字符
  3. 查找与替换

    命令功能
    /关键词查找关键词(按 n 下一个,N 上一个)
    /pattern向前搜索
    ?pattern向后搜索
    :noh取消高亮
    :%s/old/new/g全局替换

三、高级功能

  1. 分屏操作

    命令功能
    :sp [文件名]水平分屏
    :vsp [文件名]垂直分屏
    Ctrl+w +方向键切换分屏
    ----------------------------------------
    :vsplit 或 Ctrl + w v垂直分屏
    :split 或 Ctrl + w s水平分屏
    Ctrl + w w切换分屏
  2. 宏录制
    (1) qa 开始录制宏(寄存器a)
    (2) 执行操作
    (3) q 停止录制
    (4) @a 执行宏

  3. 标记系统

    命令功能
    ma设置标记a
    `a跳转到标记a
    :marks查看所有标记

四、配置与插件

  1. 配置文件(~/.vimrc), 这里的注释是:
    " 基础配置
    set number        " 显示行号
    syntax on         " 语法高亮
    set tabstop=4     " Tab宽度
    set expandtab     " 用空格代替Tab" 快捷键映射
    nmap <C-s> :w<CR>  " Ctrl+s保存
    
  2. 插件管理(推荐使用vim-plug)
    (1) 安装
    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    
    (2) 在.vimrc中添加以下内容:
    call plug#begin('~/.vim/plugged')
    " 这里可以添加你想要安装的插件,例如:
    " Plug '插件作者/插件名'
    Plug 'tpope/vim-sensible'
    call plug#end()
    
    (3) 在 Vim 中执行 :PlugInstall 命令,若能正常下载插件,就表明 vim-plug 已成功安装。

END


相关文章:

Linux Vim 编辑器的使用

Vim 编辑器的使用 一、安装及介绍二、基础操作三、高级功能四、配置与插件 一、安装及介绍 Vim是一款强大且高度可定制的文本编辑器&#xff0c;相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等…...

NLP语言模型训练里的特殊向量

1. CLS 向量和 DEC 向量的区别及训练方式 (1) CLS 向量与 DEC 向量是否都是特殊 token&#xff1f; CLS 向量&#xff08;[CLS] token&#xff09;和 DEC 向量&#xff08;Decoder Input token&#xff09;都是特殊的 token&#xff0c;但它们出现在不同类型的 NLP 模型中&am…...

利用Canvas在紫微斗数命盘上画出三方四正

许多紫微斗数排盘程序都会在命盘上画出三方四正的指示线&#xff0c;便于观察命盘。本文用Canvas在一个模拟命盘上画出三方四正指示线。 模拟命盘并画出“子”宫三方四正的HTML文件如下&#xff1a; <!doctype html> <html lang"en"> <head><…...

传统汽车 HMI 设计 VS 新能源汽车 HMI 设计,有何不同?

一、设计理念与目标的差异 传统汽车HMI设计的核心目标是辅助驾驶&#xff0c;强调功能的简洁性和操作的便捷性。其设计侧重于提供基础的车辆信息&#xff08;如车速、转速、油量等&#xff09;&#xff0c;并确保驾驶员在操作时能够快速获取关键信息。相比之下&#xff0c;新能…...

【JavaWeb】前端基础

JavaWeb 前端三大件&#xff1a;HTML&#xff08;主要用于网页主体结构的搭建&#xff09;&#xff0c;CSS&#xff08;页面美化&#xff09;&#xff0c;JavaScript&#xff08;主要用于页面元素的动态代理&#xff09; 1. HTML 1.1 html概述 HTML&#xff1a;Hyper Text …...

SpringMVC组件解析

SpringMVC的执行流程 ① 用户发送请求至前端控制器DispatcherServlet。 ② DispatcherServlet收到请求调用HandlerMapping处理器映射器 ③ 处理器映射器找到具体的处理器(可以根据xm|配置、注解进行査找)&#xff0c;生成处理器对象及处理器 拦截器(如果有则生成)一…...

使用 Provider 和 GetX 实现 Flutter 局部刷新的几个示例

1. 使用 Provider 实现局部刷新 示例 1&#xff1a;ChangeNotifier Consumer 通过 ChangeNotifier 和 Consumer 实现局部刷新。 import package:flutter/material.dart; import package:provider/provider.dart;void main() {runApp(ChangeNotifierProvider(create: (_) &g…...

数据结构C语言练习(两个栈实现队列)

一、引言 在数据结构的学习中&#xff0c;我们经常会遇到一些有趣的问题&#xff0c;比如如何用一种数据结构去实现另一种数据结构的功能。本文将深入探讨 “用栈实现队列” 这一经典问题&#xff0c;详细解析解题思路、代码实现以及每个函数的作用&#xff0c;帮助读者更好地…...

Java 基础-28- 多态 — 多态下的类型转换问题

在 Java 中&#xff0c;多态&#xff08;Polymorphism&#xff09;是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作&#xff0c;而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性&#xff0c;但在多态的使用过程中&#xf…...

nextjs使用02

并行路由 同一个页面&#xff0c;放多个路由&#xff0c;&#xff0c; 目录前面加,layout中可以当作插槽引入 import React from "react";function layout({children,notifications,user}:{children:React.ReactNode,notifications:React.ReactNode,user:React.Re…...

第2.6节 iOS生成全量和增量报告

2.6.1 简介 在采集了覆盖率数据后&#xff0c;就需要生成对应需求的全量和增量覆盖率报告&#xff0c;以便对测试进行查漏补缺。IOS系统有两种开发语言&#xff0c;所以生成报告的方式也不相同&#xff0c;下面就分别介绍一下Object C和Swift语言如何生成覆盖率报告。 2.6.2 O…...

应用分享 | AWG技术突破:操控钻石氮空位色心,开启量子计算新篇章!

利用AWG操作钻石中的氮空位色彩中心 金刚石中的颜色中心是晶格中的缺陷&#xff0c;其中碳原子被不同种类的原子取代&#xff0c;而相邻的晶格位点则是空的。由于色心具有明亮的单光子发射和光学可触及的自旋&#xff0c;因此有望成为未来量子信息处理和量子网络的固态量子发射…...

前端开发学习路线完整指南

前端开发学习路线完整指南 前端开发是一个不断发展的领域&#xff0c;涉及多个技术栈。本文将为你提供一条系统的前端学习路线&#xff0c;帮助你从零基础到熟练掌握前端开发技能。 1. 前置知识 在学习前端之前&#xff0c;了解一些基础知识会对你的学习过程有很大帮助。 计…...

linux服务器专题2------vim编辑器如何设置显示行号

在 Vim 编辑器中&#xff0c;可以通过以下步骤来显示行号&#xff1a; 临时显示行号 打开 Vim 编辑器&#xff0c;输入如下命令&#xff1a; :set number这将临时启用行号显示。关闭 Vim 后&#xff0c;行号设置将丢失。 永久显示行号 如果希望在每次启动 Vim 时都显示行号…...

Jmeter触发脚本备份

JMeter 在以下情况会触发脚本备份&#xff1a; 手动保存测试计划时&#xff1a;如果测试计划有未保存的修改&#xff0c;当用户手动保存测试计划&#xff08;脚本&#xff09;时&#xff0c;JMeter 都会自动将当前脚本备份到${JMETER_HOME}/backups文件夹下。 关闭 JMeter 时…...

【视觉与语言模型参数解耦】为什么?方案?

一些无编码器的MLLMs统一架构如Fuyu&#xff0c;直接在LLM内处理原始像素&#xff0c;消除了对外部视觉模型的依赖。但是面临视觉与语言模态冲突的挑战&#xff0c;导致训练不稳定和灾难性遗忘等问题。解决方案则是通过参数解耦方法解决模态冲突。 在多模态大语言模型&#xf…...

重建二叉树(C++)

目录 1 问题描述 1.1 示例1 1.2 示例2 1.3 示例3 2 解题思路 3 代码实现 4 代码解析 4.1 初始化 4.2 递归部分 4.3 主逻辑 5 总结 1 问题描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果&#xff0c;请重建出该二叉树并返回它的头结点。 例如输入前序遍历序…...

VLAN、QinQ、VXLAN的区别

1、技术本质与封装方式 技术OSI层级封装原理标识位长度拓展性VLAN数据链路层L2在以太网帧头插入802.1Q Tag&#xff08;单层VLAN标签&#xff09;12位&#xff08;4094个&#xff09;有限&#xff0c;仅支持单一网络域内隔离QinQ数据链路层L2在原始VLAN标签外再封装一层802.1Q…...

保姆级教程:synchronized 同步方法 vs 同步代码块,看完彻底懂锁!

一、同步方法&#xff08;锁住整个方法&#xff09; 1. 代码示例 public class Counter {private int count 0;// 同步方法&#xff1a;锁住整个方法public synchronized void add() {count;}// 同步方法&#xff1a;锁住整个方法public synchronized void subtract() {coun…...

10乱码问题的解释(1)

在计算机中,一个汉字,占几个字节? 针对这个问题,只要你回答出一个具体的数字,就一定是错的!! 前提条件: 当前中文编码使用的是哪种方式(字符集) 计算机存的其实是二进制数字~~ 英文字母,怎么表示的?? ASCII 码表~~ 规定了每个字符,都有一个对应的数字来表示~~ 只是表示英文,…...

短视频文案--钓鱼女和滑板女

短视频文案 第一个文案&#xff1a; 1标题&#xff1a;风萧萧兮易水寒&#xff0c;美女钓鱼兮不复还 2内容&#xff1a; 我站在池边的微风中&#xff0c;再也看不到曾经快乐的少女了。 风很凉&#xff0c;凉得心不知前往何处。 水很清&#xff0c;清得深知这里没鱼群。 芦苇…...

算法设计学习3

实验目的及要求&#xff1a; 1.加强对结构体的应用。 2.熟悉字符计数排序。 实验设备环境&#xff1a; 1.微型计算机 2.DEV C(或其他编译软件) 实验步骤&#xff1a; 任务&#xff1a;要求使用自定义函数来实现 输入一段文本&#xff0c;统计每个字符出现的次数&#xff0c;按…...

nginx的自动跳转https

mkdir /usr/local/nginx/certs/ 创建一个目录 然后用openssl生成证书 编辑nginx的配置文件 自动跳转成功 做一个优化&#xff0c;如果访问的时候后面加了其他的uri也一起自动跳转了...

python-leetcode 62.搜索插入位置

题目&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置 方法一&#xff1a;二分查找 假设题意是在排序数组中寻找是否存在一个目标值&#xff0c;则可以…...

2. ollama下载及安装deepseek模型

ollamam 1. ollama2. ollama常用命令3. Windows配置Ollama与DeepSeek自定义目录环境3.1 自定义安装3.3 添加到系统变量 1. ollama 官网地址 下载地址 测试安装 deepseek模型下载地址 根据电脑性能下载对应版本 2. ollama常用命令 # 运行模型 ollama run 模型 # 查看模型…...

deepseek使用记录26——思维混乱背后的理论泡沫与骗局

一 后现代主义哲学自20世纪60年代兴起以来&#xff0c;其理论形态和社会影响一直备受争议。支持者认为它是对现代性弊病的批判和解构&#xff0c;而反对者则将其视为一种脱离现实的“工业化学术生产”&#xff0c;甚至是一场哲学骗局。结合相关文献和案例&#xff0c;可从以下角…...

服务器入门操作1(深度学习)

服务器相关 基本命令 查看GPU状态&#xff1a; 查看GPU信息查看CPU信息查看系统版本号 nvidia-smi lscpu lsb_release -a清屏&#xff1a; clearanaconda相关&#xff1a; 查看环境列表激活虚拟环境退出虚拟环境跳转至目录跳转至上一级目录 conda env list conda activa…...

Qt基本框架(1)

本篇主要介绍Qt的基本框架&#xff0c;并实现简单的按钮事件 本文部分ppt、视频截图原链接&#xff1a;[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1. Qt基本框架介绍 Qt基本框架主要分为两部分&#xff1a;Qt实例对象和Qt窗口。Qt实例对象负责初始化Qt运行时…...

Buzz1.2.0视频语音转成TXT、SRT、VTT工具

buzz0.9.0.exe下载 https://download.csdn.net/download/u011000529/90551347 特征 导入音频和视频文件并导出文本到 TXT、SRT 和 VTT从您计算机的麦克风转录和翻译成文本&#xff08;资源密集型且可能不是实时的&#xff0c;Demo&#xff09;支持Whisper、 Whisper.cpp、Fast…...

动手学深度学习:AlexNet

前言 从这个模型开始&#xff0c;我的数据集主阵地就将从装甲板转移到手语视频数据集&#xff0c;模型开始变得更加复杂&#xff0c;数据集当然也要更复杂啦&#xff0c;我将记录在这个过程中遇到的问题和解决后续。 数据读取 由于是视频数据集&#xff0c;我采取的方法是将…...