VIM简要介绍

安装

大多数 Linux 发行版和 macOS 都预装了 VIM。如果没有,你可以通过包管理器安装:

  • Ubuntu/Debian : sudo apt-get install vim
  • Fedora : sudo dnf install vim
  • macOS : brew install vim(使用 Homebrew)
  • Windows : 可以从 VIM 官网下载安装包,或者使用包管理工具如 Chocolatey (choco install vim)

启动VIM

在终端中输入 vim,然后回车。你也可以指定要编辑的文件,例如:vim filename.

基本模式

VIM 有多个工作模式,常用的有以下几种:

  1. 普通模式 (Normal Mode): 默认模式,用于导航和文本操作。
  2. 插入模式 (Insert Mode) : 按 i 进入,进行文本插入。
  3. 可视模式 (Visual Mode) : 用于选择文本。按 v 进入字符选择,V 进入行选择,Ctrl+v 进入块选择。
  4. 命令模式 (Command Mode) : 按 : 进入,用于执行底线命令。

基本命令

普通模式导航
  • h:左移光标
  • j:下移光标
  • k:上移光标
  • l:右移光标
  • gg:跳到文件首行
  • G:跳到文件尾行
  • w:跳到下一个单词的开头
  • b:跳到前一个单词的开头
  • 0:跳到行首
  • $:跳到行尾
插入文本
  • i:在光标前插入
  • a:在光标后插入
  • o:在当前行下插入新行
  • O:在当前行上插入新行
编辑操作
  • x:删除光标所在字符
  • dd:删除整行
  • yy:复制当前行
  • p:粘贴
  • u:撤销
  • Ctrl+r:重做
文件操作
  • :w:保存文件
  • :q:退出 VIM
  • :wqZZ:保存并退出
  • :q!:强制退出(不保存)
  • :e filename:打开文件
  • :set nu:显示行号
  • :set nonu:隐藏行号
搜索与替换
  • /pattern:向前搜索 pattern
  • ?pattern:向后搜索 pattern
  • n:跳到下一个匹配项
  • N:跳到上一个匹配项
  • :%s/old/new/g:替换整个文件中的 oldnew
  • :s/old/new/g:替换当前行中的 oldnew

高级功能

分割窗口
  • :split:sp:水平分割窗口
  • :vsplit:vsp:垂直分割窗口
  • Ctrl+w w:切换窗口
  • Ctrl+^:在两个最近的文件之间切换
标签页
  • :tabnew:新建标签页
  • :tabnext:tabn:下一个标签页
  • :tabprevious:tabp:上一个标签页
  • :tabclose:关闭当前标签页
配置

VIM 的配置文件通常位于 ~/.vimrc,你可以在这个文件中添加自定义设置,例如:

vim 复制代码
set number        " 显示行号
syntax on         " 启用语法高亮
set tabstop=4     " 设置 Tab 宽度为 4
set expandtab     " 将 Tab 转换为空格
set shiftwidth=4  " 设置自动缩进的宽度

插件管理

VIM 有丰富的插件生态,你可以使用插件管理器如 Vundle、Pathogen 或 vim-plug 来安装和管理插件。例如,使用 vim-plug:

  1. 安装 vim-plug:

    sh 复制代码
    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  2. 配置插件:

    ~/.vimrc 中添加:

    vim 复制代码
    call plug#begin('~/.vim/plugged')
    Plug 'preservim/nerdtree'
    call plug#end()
  3. 安装插件:

    打开 VIM,输入 :PlugInstall

学习资源

  • VIM 自带教程:在终端中输入 vimtutor
  • 官方文档::help
  • 在线资源和社区:VIM 官网、VIM Wiki、Stack Overflow等
相关推荐
zyhomepage5 分钟前
科技的成就(六十三)
linux·开发语言·人工智能·科技·算法·游戏·内容运营
夏天匆匆2过28 分钟前
linux性能分析常用工具和方法
linux·运维·服务器
暗恋 懒羊羊29 分钟前
Linux 线程同步
linux·ubuntu
OH五星上将1 小时前
【移植】一种快速移植OpenHarmony Linux内核的方法
linux·运维·驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙内核
翁乐安1 小时前
linux 系统磁盘空间查看与清理
linux·运维·服务器
小小不董1 小时前
《Linux从小白到高手》理论篇(八):Linux的进程管理详解
linux·运维·服务器·数据库·dba
简佐义的博客2 小时前
生物信息常用编辑器:轻量/强大/可定制/跨平台支持的编辑器之神 - vim
linux·编辑器·vim
QuiteCoder2 小时前
【linux】gdb
linux·服务器
小小不董2 小时前
《Linux从小白到高手》理论篇(九):Linux的资源监控管理
linux·运维·服务器·数据库·dba
无极程序员2 小时前
Vscode、小皮面板安装
java·ide·vscode·后端·编辑器·php