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

Vim 常用指令

Vim 是一款功能强大且高度可定制的文本编辑器。其高效的编辑方式使其成为许多程序员和系统管理员的首选。

1. Vim 的基本模式

Vim 具有以下几种基本模式:

  • 正常模式(Normal mode):用于浏览和编辑文本(按 ESC 进入)
  • 插入模式(Insert mode):用于插入文本(按 i 进入)
  • 命令模式(Command mode):用于输入命令(按 : 进入)
  • 可视模式(Visual mode):用于选择文本(按 v 进入)

2. 基本操作命令

移动光标
  • h:向左移动
  • j:向下移动
  • k:向上移动
  • l:向右移动
  • w:移动到下一个单词的开头
  • b:移动到上一个单词的开头
  • 0:移动到行首
  • $:移动到行尾
进入插入模式
  • i:在光标前插入
  • I:在行首插入
  • a:在光标后插入
  • A:在行尾插入
  • o:在当前行下方插入新行
  • O:在当前行上方插入新行
退出插入模式
  • ESC:返回正常模式

3. 文本编辑命令

删除文本
  • x:删除光标处的字符
  • dd:删除当前行
  • dw:删除光标后的一个单词
  • d$:删除光标到行尾的所有内容
复制和粘贴
  • yy:复制当前行
  • yw:复制一个单词
  • y$:复制光标到行尾的内容
  • p:在光标后粘贴
撤销和重做
  • u:撤销
  • Ctrl + r:重做

4. 搜索与替换

搜索
  • /text:搜索模式 text,按 n 跳到下一个匹配,按 N 跳到上一个匹配
  • ?text:向上搜索模式 text,按 n 跳到上一个匹配,按 N 跳到下一个匹配
替换
  • :s/old/new/g:替换当前行的所有 oldnew
  • :%s/old/new/g:替换整个文件的所有 oldnew
  • :%s/old/new/gc:替换整个文件的所有 oldnew,并在每次替换前询问确认

5. 可视模式

进入可视模式
  • v:进入字符可视模式
  • V:进入行可视模式
  • Ctrl + v:进入块可视模式
可视模式操作
  • d:删除选中的文本
  • y:复制选中的文本
  • >:增加缩进
  • <:减少缩进

6. 文件操作

打开和保存文件
  • :e filename:打开文件 filename
  • :w:保存文件
  • :w filename:另存为文件 filename
  • :q:退出 Vim
  • :wq:保存并退出
  • :q!:不保存强制退出
分屏操作
  • :split :sp:水平分屏
  • :vsplit:vsp:垂直分屏
  • Ctrl + w, w:在分屏之间切换
  • Ctrl + w, q:关闭当前分屏

7. Vim 配置和插件

配置 Vim

Vim 的配置文件是 ~/.vimrc。一些常用配置示例:

set number              " 显示行号
syntax on               " 启用语法高亮
set tabstop=4           " 制表符宽度为4
set shiftwidth=4        " 自动缩进宽度为4
set expandtab           " 将制表符转换为空格
set autoindent          " 自动缩进
set smartindent         " 智能缩进
安装插件

可以使用插件管理器(如 Vim-Plug)来管理 Vim 插件。

~/.vimrc 中添加以下内容来安装 Vim-Plug:

call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'          " 文件浏览器插件
Plug 'junegunn/fzf.vim'            " 模糊搜索插件
Plug 'tpope/vim-fugitive'          " Git 集成插件
call plug#end()

然后在 Vim 中运行 :PlugInstall 来安装插件。

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

相关文章:

  • PySide6实现pdf转化为word和长图片
  • 嵌入式硬件VS软件,到底哪个更难?
  • Spring boot集成log4j及日志配置详解,实战,ELK使用教程。
  • element 树组件 tree 横向纵向滚动条
  • matlab 任意二维图像转点云
  • 编程机器人的参数表怎么看
  • 上位机图像处理和嵌入式模块部署(h750 mcu串口命令处理)
  • 西王食品2023营收下滑、净利润大幅减亏遭问询,近三年业绩承压
  • 视频媒介VS文字媒介
  • 虚拟化 之一 详解 jailhouse 架构及原理、软硬件要求、源码文件、基本组件
  • 汇凯金业:黄金期货交易时间规则
  • LogicFlow 学习笔记——4. LogicFlow 基础 边 Edge
  • QPS、TPS、并发量、PV、UV
  • 深中通道通车在即,苏州金龙新V系穿梭巴士引领大湾区交通发展新篇章
  • 集成学习 #数据挖掘 #Python
  • IDEA 中设置 jdk 的版本
  • AI日报|Luma推出AI视频模型,又一Sora级选手登场?SD3 Medium发布,图中文效果改善明显
  • 嵌入式系统复习(一)
  • 一次搞定:Java中数组拷贝VS数组克隆
  • Java多线程编程与并发处理
  • C++ 35 之 对象模型基础
  • PHP超级全局变量:功能、应用及最佳实践
  • python在windows创建的文件,换成linux系统格式
  • 最新区块链论文速读--CCF A会议 ICSE 2024 共13篇 附pdf下载 (2/2)
  • C++ 34 之 单例模式
  • SAP BW:传输转换源系统-源系统映射关系
  • React+TS前台项目实战(九)-- 全局常用组件弹窗Dialog封装
  • 利用视觉分析技术提升水面漂浮物、水面垃圾检测效率
  • NFT 智能合约实战-快速开始(1)NFT发展历史 | NFT合约标准(ERC-721、ERC-1155和ERC-998)介绍
  • Linux知识整理说明