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

Vim入门教程

Vim是一个高度可配置的文本编辑器,用于创建和修改各种类型的文本文件。以下是一些基本的Vim使用示例,展示如何在Vim中进行编辑和操作。

1. 打开和保存文件

  • 打开一个名为example.txt的文件:

    vim example.txt

  • 打开多个文件,使用大括号包围文件列表:

    vim file1.txt file2.txt

2. Vim的模式

  • 普通模式(Normal Mode):Vim启动时默认的模式,可以移动光标,复制、粘贴、删除文本等。
  • 插入模式(Insert Mode):编辑文本的模式。按i进入插入模式,按Esc返回普通模式。
  • 命令行模式(Command Mode):输入命令,如保存文件或退出Vim。按:进入命令行模式。

3. 基本编辑命令

  • 进入插入模式并编辑文本:

    i # 进入插入模式 Hello, Vim! # 输入文本 Esc # 返回普通模式

  • 删除一个字符:x
  • 删除一行:dd
  • 复制一行:yy
  • 粘贴文本:p
  • 撤销:u
  • 重做:Ctrl + r

4. 移动光标

  • hjkl在文本中左、下、上、右移动光标。
  • G移动到文件末尾,按gg移动到文件开头。

5. 查找和替换

  • 查找一个单词:/word,然后按nN跳转到下一个或上一个匹配项。
  • 替换一个单词::s/old-word/new-word/g,其中g表示全局替换。

6. 保存和退出

  • 保存文件::w
  • 保存所有打开的文件::wqa
  • 退出Vim::q
  • 保存并退出::wq

7. 设置和自定义

  • 设置行号显示::set number
  • 切换到水平分割窗口::split 或简写 :sp
  • 切换到垂直分割窗口::vsplit 或简写 :vsp

8. 高级编辑技巧

  • 使用可视模式选择文本块:按v进入可视模式,移动光标选择文本,然后执行复制或删除。
  • 使用宏录制一系列操作:按q<letter>开始录制,执行操作后按q结束。使用@<letter>执行宏。

9. Vim脚本

  • Vim脚本文件通常以.vim为后缀,例如.vimrc是Vim的配置文件。
  • .vimrc中添加以下行以启用语法高亮:

    syntax on

10. 插件管理

  • 使用Vim插件管理器(如Vundle或Pathogen)来安装和管理插件。

这些只是Vim的一些基本操作和示例。Vim的功能非常强大,可以通过阅读其文档(输入:help在Vim中或查看:help vim_tutorial)和配置来进一步学习。

相关文章:

  • 9、PHP 实现调整数组顺序使奇数位于偶数前面
  • 【CT】LeetCode手撕—300. 最长递增子序列
  • 手机在网状态-手机在网状态查询-手机在网站状态接口
  • wsl2平台鸿蒙全仓docker编译环境快速创建方法
  • Spring自定义标签体系和应用
  • 嵌入式软件stm32面试
  • 如何减少sql出现问题
  • MacOS设备远程登录配置结合内网穿透实现异地ssh远程连接
  • k8s及etcd的每日自动备份及故障时的还原脚本
  • windows环境下,怎么查看本机的IP、MAC地址和端口占用情况
  • day64 图论 图论理论基础 深搜 广搜 98. 所有可达路径
  • Java学习 - MySQL视图的练习 实例
  • R语言——数据与运算
  • gitlab仓库中用git bash生成不是默认路径的ssh秘钥
  • TS-RadiMation测试软件如何在序列测试中发挥作用?
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • js
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • NSTimer学习笔记
  • Python学习笔记 字符串拼接
  • Python学习之路13-记分
  • 订阅Forge Viewer所有的事件
  • 服务器之间,相同帐号,实现免密钥登录
  • 聊聊hikari连接池的leakDetectionThreshold
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 如何解决微信端直接跳WAP端
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 优秀架构师必须掌握的架构思维
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 第二十章:异步和文件I/O.(二十三)
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #pragma once与条件编译
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (13)DroneCAN 适配器节点(一)
  • (8)STL算法之替换
  • (9)STL算法之逆转旋转
  • (BFS)hdoj2377-Bus Pass
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (含答案)C++笔试题你可以答对多少?
  • (三) diretfbrc详解
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET开源纪元:穿越封闭的迷雾,拥抱开放的星辰
  • @SpringBootApplication 注解
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [Angular] 笔记 6:ngStyle
  • [C puzzle book] types