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

Linux Vim教程

Linux Vim 教程

Vim(Vi IMproved)是一个强大的文本编辑器,广泛用于编程和系统管理。本文将带你全面了解 Vim 的基础使用、常用命令、高级功能等。

1. 安装 Vim

在大多数 Linux 发行版中,Vim 已经预装。如果没有,可以通过以下命令安装:

  • Debian/Ubuntu:

    sudo apt update
    sudo apt install vim
    
  • CentOS/RHEL:

    sudo yum install vim
    
  • Fedora:

    sudo dnf install vim
    
  • Arch Linux:

    sudo pacman -S vim
    

2. 启动 Vim

在终端中输入以下命令启动 Vim:

vim 文件名

如果文件不存在,Vim 会创建一个新文件。

3. Vim 界面基本介绍

Vim 有几个不同的模式:

3.1 规范模式

Vim 启动后默认进入规范模式,这是编辑文本的主要模式。

3.2 插入模式

在规范模式下,按 i 进入插入模式,你可以输入文本。按 Esc 返回到规范模式。

3.3 命令模式

在规范模式下,按 : 进入命令模式,输入命令并按 Enter 执行。

4. Vim 基本命令

4.1 移动光标

命令说明
h左移
j下移
k上移
l右移
w跳到下一个单词开头
b跳到上一个单词开头
0行首
$行尾
G跳到文件末尾
gg跳到文件开头

4.2 编辑文本

  • 插入文本

    • i - 在光标前插入
    • I - 在行首插入
    • a - 在光标后插入
    • A - 在行尾插入
  • 删除文本

    • x - 删除光标下的字符
    • dd - 删除整行
    • d + 移动命令(如 dw)- 删除字符到单词前
  • 复制和粘贴

    • yy - 复制当前行
    • y + 移动命令(如 yw)- 复制字符到单词前
    • p - 在光标后粘贴
    • P - 在光标前粘贴

4.3 保存与退出

  • :w - 保存文件
  • :q - 退出 Vim
  • :wq - 保存并退出
  • :q! - 强制退出不保存

5. 查找与替换

5.1 查找

  • /关键字 - 向下查找
  • ?关键字 - 向上查找
  • n - 查找下一个
  • N - 查找上一个

5.2 替换

  • :s/旧词/新词/ - 替换当前行的第一个旧词
  • :s/旧词/新词/g - 替换当前行的所有旧词
  • :%s/旧词/新词/g - 替换全文件的所有旧词

6. 多文件编辑与窗口分割

6.1 打开多个文件

vim 文件1 文件2

使用 :n 切换到下一个文件,:prev 切换到上一个文件。

6.2 窗口分割

  • :split:sp - 垂直分割窗口
  • :vsplit:vsp - 水平分割窗口
  • Ctrl + w + 方向键 - 在窗口间切换

7. 高级功能

7.1 宏

录制一组命令并重放:

  • q[字母] - 开始录制宏
  • 输入命令
  • q - 结束录制
  • @[字母] - 播放宏

7.2 书签

添加和跳转书签:

  • m[a-z] - 设置书签
  • \'[a-z] - 跳转到书签

7.3 配置 Vim

编辑 Vim 配置文件:~/.vimrc

常见配置示例:

set number          " 显示行号
set autoindent      " 自动缩进
set expandtab       " 使用空格替代 Tab
set shiftwidth=4    " 每次缩进 4 个空格
syntax on           " 启用语法高亮

8. 常用插件管理

使用 Vundle 或 Pathogen 插件管理器来扩展 Vim 功能。以 Vundle 为例:

  1. 克隆 Vundle:

    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    
  2. ~/.vimrc 中添加插件:

    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'VundleVim/Vundle.vim'
    Plugin '某个插件'
    call vundle#end()
    
  3. 启动 Vim,运行 :PluginInstall 来安装插件。

9. 参考文档

  • 官方文档:在 Vim 中输入 :help
  • 在线教程和视频,YouTube 上有许多优秀的 Vim 教学视频。

10. 总结

Vim 是一个功能强大的文本编辑器,适合各类开发和系统管理任务。通过不断地使用和实践,可以掌握更多的高级功能,提高工作效率。建议你多看一些 Vim 的教程和练习,以便更好的使用 Vim!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 探索WebKit之巅:开启现代网页应用的高效与兼容之旅
  • 强化场站网约车管理,共筑安全便捷出行新生态
  • 【C++标准模版库】list的介绍及使用
  • JVM内存的其他相关解释
  • 如何实现ElementUI表单项label的文字提示?
  • 快速体验LLaMA-Factory 私有化部署和高效微调Llama3模型FAQ
  • 【论文笔记】Matching Anything by Segmenting Anything
  • STM32 | ADC+RS485(第十天)
  • 如何在 Next.js 中实现电子邮件验证?
  • 手把手教你如何在宝塔上添加可道云登录页面的ICP备案信息,别跟权威开玩笑。
  • html+css 实现hover边框彩色流动
  • GD32 MCU硬件I2C不可靠不如软件I2C?
  • Linux之文件系统
  • C#中的TCP和UDP
  • LeetCode每日一题_3143.正方形中的最多点数
  • 10个最佳ES6特性 ES7与ES8的特性
  • ES2017异步函数现已正式可用
  • ES6 学习笔记(一)let,const和解构赋值
  • input实现文字超出省略号功能
  • Java多线程(4):使用线程池执行定时任务
  • Vue.js源码(2):初探List Rendering
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 大型网站性能监测、分析与优化常见问题QA
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于游标的分页接口实现
  • 计算机常识 - 收藏集 - 掘金
  • 那些被忽略的 JavaScript 数组方法细节
  • 软件开发学习的5大技巧,你知道吗?
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 网页视频流m3u8/ts视频下载
  • 小李飞刀:SQL题目刷起来!
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 怎么把视频里的音乐提取出来
  • 带你开发类似Pokemon Go的AR游戏
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 如何在招聘中考核.NET架构师
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # SpringBoot 如何让指定的Bean先加载
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #NOIP 2014# day.1 T2 联合权值
  • (14)Hive调优——合并小文件
  • (20)docke容器
  • (3)llvm ir转换过程
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (轉貼) UML中文FAQ (OO) (UML)
  • **PHP分步表单提交思路(分页表单提交)
  • .NET 分布式技术比较