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

Vim 使用全攻略:从入门到精通

Vim 使用全攻略:从入门到精通

1. Vim 基础操作

1.1 模式切换

Vim 有多种模式,最常用的是:

  • 普通模式(Normal Mode):默认模式,用于导航和命令操作(按 Esc 返回)。
  • 插入模式(Insert Mode):输入文本(按 i、a、o 进入)。
  • 可视模式(Visual Mode):选择文本(按 v、V、Ctrl+v)。
  • 命令行模式(Command Mode):执行命令(按 : 进入)。
1.2 光标移动
基本移动
按键功能
h j k l左、下、上、右
w / b跳到下/上一个单词
0 / ^行首(0 是绝对行首,^ 是第一个非空白字符)
$行尾
gg文件开头
G文件末尾
Ctrl+d / Ctrl+u向下/向上翻半页
快速跳转
命令功能
:10跳转到第 10 行
/{keyword}搜索 keyword(n 下一个,N 上一个)
%在匹配的括号间跳转(如 (), {})
1.3 文本编辑
复制、粘贴、删除
命令功能
yy复制当前行
dd删除当前行
p / P粘贴到光标后/前
x删除当前字符
u撤销
Ctrl+重做
高级编辑
命令功能
ci"修改 “” 内的内容
di(删除 () 内的内容
>> / <<缩进/取消缩进
J合并当前行和下一行

2. 高效编辑技巧

2.1 多文件操作
命令功能
:e {file}打开新文件
:sp {file}水平分割窗口
:vsp {file}垂直分割窗口
Ctrl+w h/j/k/l切换窗口
:q / :qa关闭当前/所有窗口
2.2 宏录制
  1. 按 q + 寄存器(如 q + a)开始录制。
  2. 执行操作(如 iHelloj)。
  3. 按 q 停止录制。
  4. 按 @a 执行宏。
2.3 查找替换
命令功能
:%s/old/new/g全局替换 old 为 new
:%s/old/new/gc替换时确认
:10,20s/old/new/g替换 10-20 行的内容

3. Vim 配置(.vimrc)

3.1 基本配置
set number          " 显示行号
set relativenumber  " 相对行号
set tabstop=4       " Tab 宽度
set expandtab       " Tab 转空格
set hlsearch        " 高亮搜索
set ignorecase      " 忽略大小写
syntax on           " 语法高亮
3.2 快捷键映射
nnoremap <C-s> :w<CR>    " Ctrl+S 保存
nnoremap <C-q> :q<CR>    " Ctrl+Q 退出
inoremap jj <Esc>        " 按 jj 退出插入模式

4. 插件管理(Vim-Plug)

4.1 安装 Vim-Plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
4.2 常用插件
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'           " 文件浏览器
Plug 'vim-airline/vim-airline'      " 状态栏美化
Plug 'tpope/vim-commentary'         " 快速注释
Plug 'neoclide/coc.nvim', {'branch': 'release'}  " 代码补全
call plug#end()

安装插件::PlugInstall

更新插件::PlugUpdate

5. 进阶技巧

5.1 分屏操作
命令功能
:split水平分屏
:vsplit垂直分屏
Ctrl+w =等宽分屏
Ctrl+w r交换窗口
5.2 终端模式
:terminal   " 打开终端
Ctrl+w N   " 返回普通模式
5.3 自定义命令
command! W :w   " 输入 `:W` 保存文件

6. 学习资源

  • 交互式教程: vimtutor(终端输入)
  • 在线练习: OpenVim
  • 推荐书籍:《Practical Vim》

相关文章:

  • 蓝牙测试中 PRBS9 数据包类型
  • Docker Swarm 集群
  • 信息安全管理与评估2019年国赛正式卷以及十套国赛卷答案截图
  • 机器学习的一百个概念(12)学习率
  • VisionTransformer 有效涨点改进:添加Star_Block模块 (2024改进方法)
  • 【01】Arduino编程基础知识
  • 音视频学习(三十三):GOP详解
  • mac安装python
  • 五、adb常用命令
  • 基于web的民宿信息系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 中间件--ClickHouse-2--OLAP和OLTP
  • c++:构造函数(Constructor)与析构函数(Destructor)
  • 基于 LSTM 的多特征序列预测-SHAP可视化!
  • 利用 Python 进行股票数据可视化分析
  • 做防水两步走,一步选材料一步定施工
  • 2.微服务拆分流程
  • 如果想在 bean 创建出来之前和销毁之前做一些自定义操作可以怎么来实现呢?
  • 6.2 GitHub API接口设计实战:突破限流+智能缓存实现10K+仓库同步
  • Nature重磅:后晶体管时代光子芯片革新AI计算!光子处理器运行《吃豆人》性能比肩电子,能效提升超500倍
  • 如何查看自己抖音的IP属地?详细教程+常见问题解答
  • 湖北外贸网站建设价格/如何注册网站
  • 想给学校社团做网站/百度一下首页登录入口
  • 石家庄品牌网站建设/小红书推广方式
  • Wordpress+仿站+工具/seo关键词优化软件
  • 东营可以做网站的公司在哪/线上拓客渠道有哪些
  • 做公众号首图的设计网站/seo去哪学