Vim全面教程

Vim全面教程

目录

  1. Vim简介
  2. Vim安装
  3. Vim的基本操作
  4. Vim基本编辑
  5. Vim高级编辑
  6. Vim配置
  7. Vim常用插件
  8. Vim技巧和快捷键
  9. Vim资源
  10. 总结

Vim简介

Vim(Vi Improved)是一个高度可定制的文本编辑器,旨在提高编程效率。Vim是从Unix系统的Vi编辑器演变而来的,不仅保留了Vi的简洁和高效,还增加了许多增强功能。

Vim安装

在大多数Linux发行版上,可以通过包管理器安装Vim:

bash 复制代码
# Ubuntu/Debian
sudo apt update
sudo apt install vim

# CentOS/RHEL
sudo yum install vim

# Fedora
sudo dnf install vim

# macOS
brew install vim

Vim的基本操作

启动和退出Vim

  • 启动Vim:

    bash 复制代码
    vim filename
  • 退出Vim:

    • 保存并退出:

      vim 复制代码
      :wq
    • 直接退出:

      vim 复制代码
      :q
    • 强制退出(不保存):

      vim 复制代码
      :q!

Vim的模式

Vim有多种模式,每种模式用于不同的操作:

  1. 普通模式(Normal Mode): 默认模式,用于导航和操作文本。
  2. 插入模式(Insert Mode): 用于输入文本。
  3. 可视模式(Visual Mode): 用于选择文本。
  4. 命令行模式(Command Line Mode): 用于输入命令。

切换模式的常用快捷键:

  • 普通模式 :按 Esc
  • 插入模式 :按 i, I, a, A, o, O
  • 可视模式 :按 v, V, Ctrl-v
  • 命令行模式 :按 :/, ?

Vim基本编辑

插入文本

在普通模式下,使用以下命令进入插入模式:

  • i:在光标前插入
  • I:在行首插入
  • a:在光标后插入
  • A:在行尾插入
  • o:在光标下方新建一行并插入
  • O:在光标上方新建一行并插入

删除文本

在普通模式下,使用以下命令删除文本:

  • x:删除光标所在字符
  • dd:删除整行
  • dw:删除从光标到单词结尾
  • d$:删除从光标到行尾
  • d0:删除从光标到行首

复制、粘贴和剪切

在普通模式下,使用以下命令复制、粘贴和剪切文本:

  • yy:复制当前行
  • yw:复制从光标到单词结尾
  • y$:复制从光标到行尾
  • p:在光标后粘贴
  • P:在光标前粘贴
  • dd:剪切当前行

撤销和重做

  • u:撤销操作
  • Ctrl-r:重做操作

Vim高级编辑

搜索和替换

  • /pattern:向前搜索模式
  • ?pattern:向后搜索模式
  • n:下一个匹配
  • N:上一个匹配
  • 😒/old/new:在当前行替换第一个匹配
  • 😒/old/new/g:在当前行替换所有匹配
  • :%s/old/new/g:在整个文件中替换所有匹配
  • :%s/old/new/gc:在整个文件中替换所有匹配,并确认每次替换

窗口分割和标签页

  • :split 或 :sp:水平分割窗口
  • :vsplit 或 :vsp:垂直分割窗口
  • Ctrl-w w:在分割窗口之间切换
  • :tabnew filename:在新标签页中打开文件
  • :tabn:下一个标签页
  • :tabp:上一个标签页

宏和自动命令

  • 录制宏

    1. q 进入录制模式。
    2. 按一个字母键(如 a)指定宏的存储位置。
    3. 进行一系列操作。
    4. q 结束录制。
  • 播放宏

    • @a 播放宏 a

文本对象和可视模式

  • 可视模式

    • v 进入字符可视模式。
    • V 进入行可视模式。
    • Ctrl-v 进入块可视模式。
  • 操作文本对象

    • ciw:更改单词
    • diw:删除单词
    • caw:更改一个单词及空白
    • yaw:复制一个单词及空白

Vim配置

配置文件

Vim的配置文件位于~/.vimrc。可以在该文件中添加自定义配置,如快捷键映射、配色方案等。

示例~/.vimrc配置:

vim 复制代码
syntax on
set number
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set background=dark
colorscheme desert

插件管理

使用插件管理器可以轻松管理Vim插件。常用的插件管理器有VundlePathogen

使用Vundle安装插件

  1. 安装Vundle:

    bash 复制代码
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  2. 配置~/.vimrc

    vim 复制代码
    set nocompatible
    filetype off
    
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'scrooloose/nerdtree'
    call vundle#end()
    
    filetype plugin indent on
  3. 安装插件:
    打开Vim,执行:PluginInstall

Vim常用插件

NERDTree

文件系统浏览器,可以在Vim中浏览和管理文件。

安装:

vim 复制代码
Plugin 'preservim/nerdtree'

使用:

  • 打开NERDTree::NERDTreeToggle
  • 导航文件:使用上下箭头选择文件,按Enter打开。

CtrlP

文件模糊查找器,快速打开文件。

安装:

vim 复制代码
Plugin 'ctrlpvim/ctrlp.vim'

使用:

  • 启动CtrlP:按 Ctrl-p
  • 输入文件名的一部分进行搜索。

Airline

状态栏插件,提供美观且信息丰富的状态栏。

安装:

vim 复制代码
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

配置:

vim 复制代码
let g:airline#extensions#tabline#enabled = 1

YouCompleteMe

代码补全引擎,支持多种编程语言。

安装:

bash 复制代码
sudo apt install build-essential cmake python3-dev
cd ~/.vim/bundle/
git clone https://github.com/Valloric/YouCompleteMe.git
cd YouCompleteMe
git submodule update --init --recursive
python3 install.py --all

使用:

  • 自动补全:在插入模式下输入代码,即可看到补全提示。

Vim技巧和快捷键

高效导航

  • 跳转到行首和行尾 :按 0 跳转到行首,按 $ 跳转到行尾。
  • 跳转到文件开头和结尾 :按 gg 跳转到文件开头,按 G 跳转到文件结尾。
  • 跳转到指定行 :按 :line_number 跳转到指定行,如 :10 跳转到第10行。
  • 跳转到匹配括号 :按 %

代码折叠

  • 创建折叠 :选择文本后按 zf
  • 打开折叠 :按 zo
  • 关闭折叠 :按 zc
  • 删除折叠 :按 zd

多光标编辑

Vim原生不支持多光标编辑,但可以通过插件实现,如vim-multiple-cursors

安装:

vim 复制代码
Plugin 'terryma/vim-multiple-cursors'

使用:

  • 进入多光标模式:按 Ctrl-n 选择第一个匹配,按 Ctrl-x 跳过当前匹配,按 Ctrl-p 取消选择上一个匹配。
  • 退出多光标模式:按 Esc

Vim资源

总结

Vim是一款强大的文本编辑器,通过其灵活的配置和丰富的插件生态系统,可以极大地提高编辑效率。本教程涵盖了Vim的基本操作、高级编辑技巧、配置管理和常用插件,希望能帮助您全面掌握Vim的使用方法。通过不断练习和探索,您将发现Vim的无限可能性和强大之处。

相关推荐
饮啦冰美式6 分钟前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu
wowocpp6 分钟前
ubuntu 22.04 server 安装 和 初始化 LTS
linux·运维·ubuntu
Huaqiwill7 分钟前
Ubuntun搭建并行计算环境
linux·云计算
wclass-zhengge10 分钟前
Netty篇(入门编程)
java·linux·服务器
Lign1731412 分钟前
ubuntu unrar解压 中文文件名异常问题解决
linux·运维·ubuntu
vip4511 小时前
Linux 经典面试八股文
linux
大霞上仙1 小时前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
孤客网络科技工作室2 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
颇有几分姿色3 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
AndyFrank3 小时前
mac crontab 不能使用问题简记
linux·运维·macos