Linux - VIM 全面教程

Linux - VIM 全面教程

前言

VIM 是一个强大的文本编辑器,被广泛用于 Linux 系统上。对于许多程序员和系统管理员来说,熟练掌握 VIM 是一项非常重要的技能。本教程将全面介绍 VIM 的基础知识和高级功能,帮助你更好地利用这一工具。

目录

  1. 安装 VIM
  2. VIM 基础操作
  3. VIM 常用命令
  4. VIM 高级功能
  5. 自定义 VIM 配置
  6. 使用 VIM 插件

1. 安装 VIM

在 Debian/Ubuntu 上安装

sudo apt update
sudo apt install vim

在 CentOS/Fedora 上安装

sudo yum install vim

验证安装

vim --version

2. VIM 基础操作

打开和关闭文件

vim filename  # 打开文件

:q 然后按回车键退出 VIM。

基本模式

  • 正常模式(Normal mode)
  • 插入模式(Insert mode)
  • 命令模式(Command mode)

切换模式

  • 正常模式到插入模式:按 i
  • 插入模式到正常模式:按 Esc

示例

iHello, World!  # 输入插入模式,并输入文本
<Esc>           # 退出插入模式
:wq             # 保存并退出

3. VIM 常用命令

移动光标

  • h:向左移动
  • j:向下移动
  • k:向上移动
  • l:向右移动

删除操作

  • x:删除当前字符
  • dd:删除当前行

示例

iHello, World!<Esc>  # 输入并退出插入模式
dd                   # 删除整行

撤销和重做

  • 撤销:按 u
  • 重做:按 Ctrl + r

查找和替换

:/pattern  # 查找模式
:s/old/new/g  # 替换当前行的所有 old 为 new
:%s/old/new/g  # 替换整个文件的所有 old 为 new

4. VIM 高级功能

多文件编辑

  • 打开多个文件:vim file1 file2
  • 切换文件::n:N

分屏编辑

  • 水平分屏::split filename
  • 垂直分屏::vsplit filename
  • 切换分屏:按 Ctrl + w 再按 w

示例

:split file1
:vsplit file2

5. 自定义 VIM 配置

编辑 .vimrc 文件

vim ~/.vimrc

常用配置

set number        # 显示行号
syntax on         # 启用语法高亮
set tabstop=4     # 设置 Tab 宽度为 4
set expandtab     # 将 Tab 转换为空格
set shiftwidth=4  # 设置自动缩进宽度为 4

示例

vim ~/.vimrc

在文件中添加以上配置并保存。


6. 使用 VIM 插件

安装插件管理器(Vundle)

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

配置 .vimrc 文件以使用 Vundle

set nocompatible              " required
filetype off                  " required

" Set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
" call vundle#begin('~/some/path/here')

" Let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" Add all your plugins here (note older versions of Vundle
" used Bundle instead of Plugin)

Plugin 'tpope/vim-fugitive'
Plugin 'morhetz/gruvbox'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

安装插件

在 VIM 中执行命令:

:PluginInstall

结语

通过以上教程,相信你已经掌握了 VIM 的基本使用方法和一些高级功能。希望你能在日常工作中充分利用 VIM 提高效率。如果你有任何问题或建议,欢迎在评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/783443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu24.04按关键字卸载不需要的apt包

使用的时候发现一个imagemagic无法正常读取文件&#xff0c;试图卸载 man apt经过尝试后&#xff0c;发现list的一个神奇关键字&#xff0c;用来显示已安装的软件包 sudo apt list --installed | grep image按image关键字过滤&#xff1a; 之后按软件名卸载即可 sudo apt pu…

【VUE基础】VUE3第一节—vite创建vue3工程

什么是VUE Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0…

MySQL性能优化 一、系统配置优化

数据库优化纬度有四个&#xff1a; 硬件升级、系统配置、表结构设计、SQL语句及索引。 优化选择&#xff1a; 优化成本&#xff1a;硬件升级 > 系统配置 > 表结构设计 > SQL语句及索引优化效果&#xff1a;硬件升级 < 系统配置 < 标结果设计 < SQL语句及索…

【C++】———— 继承

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;C 创作时间 &#xff1a;2024年7月5日 一、什么是继承&#xff1f; 继承的概念 定义&#xff1a; 继承机制就是面向对象设计中使代码可以复用的重要手段&#xff0c;它允许在程序员保持原有类特性的基础上进行扩展…

[工具教程]-31-解决mac扣盖后电池耗电快(谁在偷偷的用电池)

查看耗电模式 $ pmset -g查看 hibernatemode 这一行&#xff0c;如果 hibernatemode 后面的数字是 0 &#xff0c;那这种休眠模式下&#xff0c;掉电程度就是非常严重&#xff0c;如果 hibernatemode 后面的数字是 3 &#xff08;大部分人的电脑应该是这个休眠模式&#xff09…

LabVIEW中自定义Ring控件的图标

在LabVIEW中&#xff0c;自定义Ring控件的图标可以让用户界面更加直观和友好。以下是如何在LabVIEW中自定义Ring控件的图标的详细步骤&#xff1a; 步骤1&#xff1a;创建或获取图标 首先&#xff0c;你需要创建或获取你想要在Ring控件中使用的图标。你可以使用图像编辑软件&…

springboot+vue+mybatis图书销售管理系统+PPT+论文+讲解+售后

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括图书销售管理系统的网络应用&#xff0c;在外国图书销售管理系统已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。图书销售管理系统具有网上图书信息管…

BaseServlet的封装

创建BaseServlet的必要性 如果不创建BaseServlet&#xff0c;现在我们只要实现一个功能&#xff0c;我们就需要创建一个servlet! 例如:用户模块(登录&#xff0c;注册&#xff0c;退出录&#xff0c;激活&#xff0c;发送邮件等等功能) 也就是说&#xff0c;我们必须要创建一…

ASO优化不仅仅是苹果商店,安卓商店同样不可忽视

大家一谈起ASO优化&#xff0c;不少人反应大多数都是IOS市场的优化&#xff0c;其实安卓也是不可分割的大市场&#xff0c;在国内手机应用市场&#xff0c;安卓的用户质量在稳步提高&#xff0c;因此开发者也越来越重视安卓市场的推广。做好安卓ASO也是非常必要的。 一、安卓市…

音视频质量评判标准

一、实时通信延时指标 通过图中表格可以看到&#xff0c;如果端到端延迟在200ms以内&#xff0c;说明整个通话是优质的&#xff0c;通话效果就像大家在同一个房间里聊天一样&#xff1b;300ms以内&#xff0c;大多数人很满意&#xff0c;400ms以内&#xff0c;有小部分人可以感…

五行、八卦、天干、地支

零基础入门&#xff1a;五行、八卦、天干、地支 给她家推荐一个小程序&#xff0c;感觉挺准的&#xff01;

PTrade常见问题系列5

回测失败&#xff1a;可用资源不足。 回测运行失败&#xff0c;错误码&#xff1a;2 错误信息&#xff1a;可用资源不足&#xff0c;请稍后在创建。 1、之前客户未限制客户容器使用内存和CPU&#xff0c;周末修改配置&#xff0c;限制了内存和CPU&#xff1b; 2、此报错是用户…

51-3 内网信息收集 - 获取RDP密码信息(没有实验成功)

获取常见应用软件凭据 注意: %USERPROFILE% 是环境变量。在使用系统权限时,可以将 %USERPROFILE% 替换为绝对路径,或使用其他用户的令牌进行操作。 获取 RDP 保存的凭据(远程桌面) 为了避免每次连接服务器都进行身份验证,经常使用 RDP 远程桌面连接远程服务器的用户可能…

STM32蓝牙HID实战:打造低功耗、高性能的客制化键盘

一、项目概述 本项目旨在使用STM32单片机打造一款功能强大的蓝牙客制化键盘&#xff0c;它拥有以下特点&#xff1a; 九键布局&#xff0c;小巧便携: 满足日常使用需求&#xff0c;方便携带。全键可编程: 所有按键和旋钮均可通过电脑软件自定义快捷键&#xff0c;实现个性化功…

融资融券两融技巧,开通条件和费用详情4%

融资融券费用 融资融券有两项费用&#xff0c;分别是利息和交易佣金。一般情况下融资年息是5%&#xff0c;融券年息是9.35%&#xff0c;目前有极少数一部分券商能够做到4.5%&#xff0c;融资20万一天只需要25元。 然后咱们再看看交易佣金&#xff0c;目前市面上万分之3到千分…

【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客&#xff0c;再继续进行后面的内容&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 当杂合子的适应度超出纯合子的范围时&#xff0c;二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势&#xff0c;或称为“超显性”&#xff0c;其…

(三)前端javascript中的数据结构之链表上

在js中&#xff0c;没有为我们提供原生的数据结构支持的&#xff0c;但是在java中是有提供的。所以需要我们去模拟这种结构实现。 链表中最关键的一个元素&#xff0c;就是头节点&#xff0c;头节点不存储数据&#xff0c;指向第一个节点链表中几乎所有的操作都要从头结点开始。…

数字流的秩

题目链接 数字流的秩 题目描述 注意点 x < 50000 解答思路 可以使用二叉搜索树存储出现的次数以及数字的出现次数&#xff0c;方便后续统计数字x的秩关键在于构建树的过程&#xff0c;如果树中已经有值为x的节点&#xff0c;需要将该节点对应的数字出现次数加1&#xf…

味全财税数字化实践分享,百望云助力实现数电票管理能力升级!

随着金税四期的启动&#xff0c;数电票全面落地应用&#xff0c;这不仅大幅提高了发票处理效率&#xff0c;更重塑了企业的财务管理流程&#xff0c;为企业财务数字化转型指明了新的方向。 杭州味全食品有限公司&#xff08;以下简称“味全”&#xff09;正在推进财税数字化建设…

(2024,稀疏 MoE,大量小专家,参数高效专家检索 PEER,product key 检索)混合百万专家

Mixture of A Million Experts 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 方法 3. 实验 0. 摘要 标准 Transformer 架构中的前馈&#xff08;feedforward&a…