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

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 来安装插件。

相关推荐
程序员yt1 小时前
双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 & FreeRTOS 要补吗?
linux·运维·单片机
安於宿命5 小时前
【Linux】进程间通信——进程池
linux·c++
新兴ICT项目支撑6 小时前
天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
linux·运维·服务器·910b·天翼云·deepseek r1
Spike()8 小时前
HaProxy源码安装(Rocky8)
linux·负载均衡
网硕互联的小客服8 小时前
如何提高网站在百度中的权重?
linux·运维·服务器·windows·安全
守望时空339 小时前
Linux内核升级指南
linux·操作系统
Aphelios38010 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(上)
java·linux·编辑器·vim
chde2Wang10 小时前
yum下载报错Could not resolve host: mirrorlist.centos.org; Unknown error
linux·运维·centos
zyx没烦恼11 小时前
Linux 进程控制(进程创建,进程等待)
linux·运维·服务器
linux开发之路11 小时前
C++Linux进阶项目分析-仿写Redis之Qedis
linux·c++·redis·多线程·后端开发