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

【linux vim使用说明】

基本概念

提示:本文是网络资源整理

  • 模式: vim 有多种模式,每种模式都有不同的功能。
    • 普通模式 (Normal Mode): 默认模式,用于导航和执行命令。
    • 插入模式 (Insert Mode): 用于文本输入。可以通过按 i 进入。
    • 可视模式 (Visual Mode): 用于选择文本。可以通过按 v 进入。
    • 命令模式 (Command-Line Mode): 用于执行命令。可以通过按 : 进入。

启动和退出

  • 启动 vim: 在终端中输入 vim filename。
  • 退出 vim:
    • 保存并退出: :wq 或 :x
    • 仅保存: :w
    • 仅退出(不保存更改): :q!

基本操作

普通模式

  • 移动光标:

    • 左移: h
    • 右移: l
    • 上移: k
    • 下移: j
    • 到行首: 0
    • 到行尾: $
    • 跳到文件开头: gg
    • 跳到文件末尾: G
  • 文本操作:

    • 删除当前字符: x
    • 删除当前行: dd
    • 删除到行尾: d$
    • 复制当前行: yy
    • 粘贴: p
    • 撤销: u
    • 恢复: Ctrl+r
  • 查找和替换:

    • 查找文本: /pat 然后按 Enter
    • 查找下一个匹配: n
    • 查找上一个匹配: N
    • 替换当前行第一个匹配的文本: 😒/old/new/
    • 替换当前行所有匹配的文本: 😒/old/new/g
    • 替换整个文件所有匹配的文本: :%s/old/new/g

插入模式

  • 进入插入模式:

    • 在光标前插入: i
    • 在光标后插入: a
    • 在当前行前插入新行: O
    • 在当前行后插入新行: o
  • 退出插入模式: 按 Esc


可视模式

  • 选择文本:

    • 字符选择: v
    • 行选择: V
    • 块选择: Ctrl+v
  • 操作选择的文本:

    • 复制选择的文本: y
    • 删除选择的文本: d
    • 粘贴: p

  • 命令模式
    • 保存文件: :w
    • 退出 vim: :q
    • 保存并退出: :wq 或 :x
    • 撤销更改: :undo
    • 恢复更改: :redo

高级功能

窗口和标签

  • 分割窗口:

    • 横向分割: :split filename
    • 纵向分割: :vsplit filename
  • 在窗口之间切换: Ctrl+w 然后使用方向键

  • 关闭当前窗口: :q


宏和自动化

录制宏:

1、开始录制:

  • 按 q 进入录制模式,然后按一个寄存器键(如 q)。这个寄存器键会用来存储录制的宏。

  • 示例: 按 q 然后按 a 开始录制到寄存器 a 中。
    2、执行操作:

  • 执行你希望录制的操作。例如,移动光标、删除文本、插入文本等。
    3、停止录制:

-按 q 停止录制宏。此时,所有在录制期间执行的操作都会存储在你选择的寄存器中。

执行宏

1、执行宏:

  • 要执行录制的宏,按 @ 然后按寄存器键。
  • 示例: 按 @a 执行存储在寄存器 a 中的宏。
常见问题及解决方法

1、宏没有效果:

  • 确保你在正确的模式下运行宏。通常,宏在普通模式下执行。

  • 检查宏是否录制正确。可以通过执行 :registers 查看寄存器的内容,确认录制的宏是否存在。
    2、宏录制错误:

  • 如果录制的宏不如预期工作,可能是因为在录制过程中操作的不一致。尝试重新录制并确保操作的步骤一致。
    3、宏在不同上下文中执行:

  • 有些宏可能依赖于特定的光标位置或上下文。在不同的上下文中运行宏可能会产生不同的效果。

示例

假设你有一个文本文件,每一行都是一个需要删除的项目,并且你想要批量删除这些行的开头部分。

1、录制宏:

  • 按 qa 开始录制到寄存器 a。

  • 移动光标到行首: 0

  • 删除到第一个空格: d

  • 移动到下一行: j

  • 停止录制: 按 q
    2、执行宏:

  • 在文件中移动光标到你想开始的行,然后按 @a 执行宏。

  • 如果你想在多行上重复宏,可以按 n@a,其中 n 是重复的次数。


插件和扩展

vim 支持插件,通过插件可以增强编辑功能。一些常用插件管理工具包括:

  • Vundle: https://github.com/VundleVim/Vundle.vim
  • Pathogen: https://github.com/tpope/vim-pathogen
  • vim-plug: https://github.com/junegunn/vim-plug

安装插件:

1、将插件 URL 添加到 ~/.vimrc 文件中。
2、运行 :PluginInstall(对于 Vundle)或 :PlugInstall(对于 vim-plug)。


示例配置

在 ~/.vimrc 文件中,你可以添加一些自定义配置来增强 vim 的使用体验:

" 设置行号
set number" 高亮当前行
set cursorline" 自动缩进
set autoindent
set smartindent" 启用语法高亮
syntax on" 设置制表符宽度
set tabstop=4
set shiftwidth=4
set expandtab

参考文献

Vim 官方文档
Vim 用户手册

http://www.lryc.cn/news/404189.html

相关文章:

  • cocos2d-x安装和项目
  • 因果推断 | 双重机器学习(DML)算法原理和实例应用
  • Flutter 开源库学习
  • 自主巡航,目标射击
  • MySQL中EXPLAIN关键字详解
  • 如何理解ref toRef和toRefs
  • 【linux】kernel-trace
  • 【Golang 面试基础题】每日 5 题(一)
  • ETCD介绍以及Go语言中使用ETCD详解
  • 03-用户画像+Elasticsearch
  • 初学Mybatis之搭建项目环境
  • JMeter使用小功能-(持续更新)
  • 科研绘图系列:R语言火山图(volcano plot)
  • docker firewalld 防火墙设置
  • 《问题004:报错-JS问题-unknown: Invalid shorthand property initializer.》
  • 什么是 MLPerf?
  • 【SpringBoot】第3章 SpringBoot的系统配置
  • ELK日志分析系统部署文档
  • ue5笔记
  • TCP重传机制详解
  • 如何使用javascript将商品添加到购物车?
  • 【MySQL】:想学好数据库,不知道这些还想咋学
  • 1.关于linux的命令
  • 【人工智能】机器学习 -- 决策树(乳腺肿瘤数)
  • 【proteus经典实战】LCD滚动显示汉字
  • 数据结构复习1
  • 订单管理系统需求规范
  • swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面
  • 深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
  • elementUI在手机端使用遇到的问题总结