【Linux】Vim 使用教程

Linux - Vim

Vim 是一款在 Linux 系统中广泛使用的文本编辑器,它是 Vi 编辑器的升级版。Vim 不仅功能强大,而且可高度定制化,是许多程序员和系统管理员的首选工具。以下是 Vim 在 Linux 系统中的安装、配置和使用过程的详细讲解。

附注:如果对Linux常用命令不熟悉的小伙伴可以先移步以下文章:【Linux】Linux常用命令及示例

安装 Vim

大多数Linux发行版都预装了Vim,如果没有预装,可以通过包管理器进行安装。

使用 apt 包管理器(适用于 Debian 和 Ubuntu)
sudo apt update
sudo apt install vim
使用 yum 包管理器(适用于 CentOS 和 RHEL)
sudo yum install vim
使用 dnf 包管理器(适用于 Fedora)
sudo dnf install vim

Vim 的基本使用

启动 Vim

在命令行中输入 vim 后跟文件名来启动 Vim 编辑器。如果文件存在,Vim 将打开该文件;如果文件不存在,Vim 将创建一个新文件。(效果等同于 touch filename.txt)

vim filename.txt

Vim 的三种模式

Vim 有三种基本模式:

  • 普通模式(Normal mode:启动 Vim 后默认进入普通模式,可以执行各种命令,如移动光标、删除文本等。
  • 插入模式(Insert mode:在普通模式下按 i 键进入插入模式,可以开始输入文本。
  • 命令行模式(Command-line mode:在普通模式下按 : 键进入命令行模式,可以执行保存、退出等命令。

基本操作

  • 进入插入模式:按 i
  • 退出插入模式:按 Esc
  • 保存文件:在命令行模式下输入 :w(write)
  • 退出 Vim:在命令行模式下输入 :q(quit)
  • 保存并退出:在命令行模式下输入 :wq:x
  • 撤销更改:在普通模式下按 u
  • 重做更改:在普通模式下按 Ctrl + r

Vim 配置

Vim 的配置通常在用户的主目录下的 .vimrc 文件中进行。如果没有这个文件,可以手动创建一个。

touch ~/.vimrc

接下来,可以在 .vimrc 文件中设置各种选项和插件。以下是一些基本的配置示例:

" 设置语法高亮
syntax on
" 显示行号
set number
" 设置缩进为4个空格
set tabstop=4
set shiftwidth=4
set expandtab
" 搜索时忽略大小写
set ignorecase
" 搜索时高亮显示匹配结果
set hlsearch

保存 .vimrc 文件后,重新打开 Vim 或在 Vim 中执行 :source ~/.vimrc 命令来使配置生效。

Vim 插件

Vim 支持各种插件来扩展其功能。最流行的插件管理器是 Vundle。以下是使用 Vundle 安装插件的基本步骤:

  1. 安装 Vundle:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  1. .vimrc 文件中配置 Vundle 和要安装的插件:
Plugin 'scrooloose/nerdtree'  " NERDTree 插件,用于浏览文件系统
Plugin 'vim-airline/vim-airline'  " Airline 插件,用于增强状态栏
Plugin 'vim-airline/vim-airline-themes'  " Airline 主题插件
  1. 安装插件:在 Vim 中运行以下命令来安装 .vimrc 中列出的所有插件:
:PluginInstall
  1. 更新插件:要更新插件,可以使用以下命令:
:PluginUpdate
  1. 清理未使用的插件:如果你删除了 .vimrc 中的某些插件条目,可以使用以下命令来清理这些不再使用的插件:
:PluginClean
  1. 查看插件状态:你可以使用以下命令来查看每个插件的安装状态:
:PluginList

Vim 插件示例

以下是一些流行的 Vim 插件及其在 .vimrc 中的配置示例:

NERDTree(文件浏览器)
" NERDTree 插件配置
map <C-n> :NERDTreeToggle<CR>

上述配置会在 Vim 中创建一个快捷键 <C-n> 来打开和关闭 NERDTree。

Airline(状态栏增强)
" Airline 插件配置
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'

上述配置启用了 Airline 的标签行功能,并自定义了一些分隔符的样式。

Syntastic(语法检查)
" Syntastic 插件配置
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

上述配置会使得 Syntastic 在打开文件时自动检查语法错误,并在保存文件时关闭自动检查。

以上就是对Vim常用的一些配置和操作,希望对大家有所帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文翻译:Large Language Models for Education: A Survey

目录 大型语言模型在教育领域的应用&#xff1a;一项综述摘要1 引言2. 教育中的LLM特征2.1. LLMs的特征2.2 教育的特征2.2.1 教育发展过程 低进入门槛。2.2.2. 对教师的影响2.2.3 教育挑战 2.3 LLMEdu的特征2.3.1 "LLMs 教育"的具体体现2.3.2 "LLMs 教育"…

linux——线程

线程概念 什么是线程&#xff1f; 在一个程序里的一个执行流叫做线程。一切进程至少有一个线程线程在进程内部运行&#xff0c;本质是在进程地址空间内运行在Linux系统中&#xff0c;在CPU眼中&#xff0c;看到的PCB都要比传统的进程更加轻量化 我们都知道在每一个进程都有属…

Ubuntu 22.04.4 LTS (linux) Auditd 安全审计rm命令 记录操作

1 audit增加rm 规则 #sudo vim /etc/audit/rules.d/audit.rules -w /bin/rm -p x -k delfile #重新启动服务 sudo systemctl restart auditd #查看规则 sudo auditctl -l -w /bin/rm -p x -k delfile 2 测试规则 touch test.txt rm test.tx 3 查看日志 sudo ausear…

Apache-Flink未授权访问高危漏洞修复

漏洞等级 高危漏洞!!! 一、漏洞描述 攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。 二、修复建议 根据业务/系统具体情况,结合如下建议做出具体选择: 配…

无人机之遥控器分类篇

一、传统遥控器 传统无人机遥控器一般包括开关键、遥控天线等基础装置。但是会随着无人机具体的应用和功能而开发不同的按键。它的信号稳定性远超对比其他遥控&#xff0c;而且遥控距离也更远&#xff08;一般遥控范围在100米或以上&#xff09;传统遥控器对于初学者来说比较难…

在uniapp中如何使用地图

1&#xff0c;技术选择 最好是使用webview html形式加载&#xff0c;避免打包app时的地图加载问题 2&#xff0c;webview使用 使用webview必须按照官方文档,官网地址&#xff1a;https://uniapp.dcloud.net.cn/component/web-view.html <template><view><!…

KNN分类算法与鸢尾花分类任务

鸢尾花分类任务 1. 鸢尾花分类步骤1.1 分析问题&#xff0c;搞定输入和输出1.2 每个类别各采集50朵花1.3 选择一种算法&#xff0c;完成输入到输出的映射1.4 第四步&#xff1a;部署&#xff0c;集成 2. KNN算法原理2.1 基本概念2.2 核心理念2.3 训练2.4 推理流程 3. 使用 skle…

elasticsearch 查询超10000的解决方案

前言 默认情况下&#xff0c;Elasticsearch集群中每个分片的搜索结果数量限制为10000。这是为了避免潜在的性能问题。 但是我们 在实际工作过程中时常会遇到 需要深度分页&#xff0c;以及查询批量数据更新的情况 问题&#xff1a;当请求form size >10000 时&#xff0c…

【FreeRTOS】IAR的FreeRTOSConfig.h中在添加头文件的问题

1、今天在\FreeRTOSConfig.h中添加个头文件&#xff0c;总是在头文件的函数定义处报错&#xff1a; Error[40]: Bad instruction 2、百度了半天也没有找到问题 3、原来是这个原因&#xff1a; IAR的Freertos中需加上一个portasm.s的驱动文件&#xff0c;而该文件需要调…

印尼Facebook直播网络需要达到什么要求?

在全球化浪潮的推动下&#xff0c;海外直播正受到企业、个人和机构的广泛关注和青睐。无论是用于营销、推广还是互动&#xff0c;海外直播为各种组织提供了更多机会和可能性。本文将探讨在进行印尼Facebook直播前&#xff0c;需要满足哪些网络条件以确保直播的质量和用户体验。…

南通网站制作基本步骤有哪些

南通网站制作是一个非常重要的工作&#xff0c;它可以帮助企业展示产品、服务和品牌形象&#xff0c;吸引更多的客户和创造更多的商机。网站制作的基本步骤包括需求分析、规划设计、页面制作、网站测试和上线等。 首先是需求分析。在南通网站制作的初期阶段&#xff0c;需要和客…

批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现

本次文章更新内容&#xff0c;图片以及扫描的PDF也可以支持批量提取指定区域内容了&#xff0c;主要是通过截图指定区域&#xff0c;然后使用OCR来识别该区域的文字来实现的&#xff0c;所以精度可能会有点不够&#xff0c;但是如果是数字的话&#xff0c;问题不大&#xff1b;…

一周年——相遇知音

——献给ZINCFFO 有梦便追&#xff0c;何惧&#xff1f; “杂乱无章”的代码片在昏暗的灯光下显得让人心生些许倦意。“我为什么天天都要练习呢&#xff1f;”无奈地合上笔记本电脑&#xff0c;当时多么想把电脑䣹&#xff08;fāi&#xff09;在地上&#xff0c;那就仿佛放下…

OpenGL笔记五之VBO与VAO

OpenGL笔记五之VBO与VAO 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记五之VBO与VAO1.VBO2.VAO3.VBO与VAO对比 1.VBO 代码 void prepareVBO() {//1 创建一个vbo *******还没有真正分配显存*********GLuint vbo 0;GL_CALL(glGenBuffers(1, &vbo))…

使用uni-app和Golang开发影音类小程序

在数字化时代&#xff0c;影音内容已成为人们日常生活中不可或缺的一部分。个人开发者如何快速构建一个功能丰富、性能优越的影音类小程序&#xff1f;本文将介绍如何使用uni-app前端框架和Golang后端语言来实现这一目标。 项目概述 本项目旨在开发一个个人影音类小程序&#…

微分方程建模

微分方程建模是数学建模的重要方法&#xff0c;因为许多实际问题的数学描述将导致求解微分方程的定解问题。在高教杯数学建模竞赛中每年都会有一道微分方程建模问题&#xff0c;大体上可以按以 下几步&#xff1a; 1. 根据实际要求确定要研究的量(自变量、未知函数、必要的参数…

云盘挂载 开机自动模拟 cmd- alist server

云盘挂载 开机自动模拟 cmd- alist server 打开Kimi智能助手, 网址:Kimi.ai - 帮你看更大的世界 (moonshot.cn) 问他: 帮我写一个vbs命令:在D:\sky目录下, 然后cmd, 进入命令行后, 输入 alist server 然后回车 这里 这个目录, 换成自己的 alist.exe所在目录 下面是我完善的示…

GitHub连接超时问题 Recv failure: Connection was reset

用手机热点WIF拉取git项目的时候&#xff0c;遇到Recv failure: Connection was reset问题。 解决办法 一、手动开启本地代理 二、在终端&#xff08;cmd&#xff09;输入命令 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy https:…

大模型-基于大模型的数据标注

法来自于这篇论文&#xff1a;Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine。 一.背景 假设&#xff0c;存在一批标注好的数据D_labeled&#xff0c;其包含m个标注样本(x, y)。 目标是&#xff0c;基于D_labeled&#xff…