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 :替换当前行的所有 old 为 new
  • :%s/old/new/g :替换整个文件的所有 old 为 new
  • :%s/old/new/gc :替换整个文件的所有 old 为 new,并在每次替换前询问确认

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。一些常用配置示例:

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

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

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

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

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

相关推荐
yunwei3719 小时前
eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
linux·后端·性能优化
小雪崩19 小时前
嵌入式学习 day65:Linux驱动进阶——pinctrl 子系统和 platform 驱动框架
linux·学习·驱动
wixzjsh19 小时前
嵌入式Linux系统启动与内核驱动开发全解
linux·运维·驱动开发
晴天的雨.99220 小时前
【Linux】基础开发工具---软件包管理器
linux·运维·服务器
xiaoqiMikko20 小时前
Linux 实战(三):服务起不来、定时任务不执行 —— CentOS 7 / Rocky 9 / Ubuntu 24.04 实测差异
linux·centos
Hello_Pyhx20 小时前
Ventoy:Linux制盘与排障
linux·运维·服务器
Jason_zhao_MR21 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式
microxiaoxiao21 小时前
MobaXterm vs Aeroshell
linux·运维·ssh
东城居士21 小时前
理解设备树下的platform驱动编写
linux·嵌入式系统
小义_21 小时前
Linux 补充
linux·服务器