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

vim基本操作及常用命令

目录

一、1. 普通模式(Normal Mode)

二、插入模式(Insert Mode)

三、命令模式(Command Mode)

四、模式切换

五、多文件编辑

六、多窗口编辑

七、配置文件


一、1. 普通模式(Normal Mode)

  • 进入方式:启动Vim时默认进入普通模式,或者在其他模式下按Esc键返回。
  • 功能
    • 用于移动光标、删除文本、复制粘贴等操作。
    • 不能直接输入文本。
  • 常用命令
    • hjkl:分别向左、下、上、右移动光标。
    • dd:删除当前行。
    • yy:复制当前行。
    • p:粘贴剪贴板内容。
    • u:撤销操作。
    • Ctrl + r:重做操作。
    • :w:保存文件。
    • :q:退出Vim
    • :wq:保存并退出。
    • :q!   不保存强制退出

    二、插入模式(Insert Mode)

  • 进入方式:在普通模式下按iao等键进入插入模式。
  • 功能
    • 用于输入和编辑文本。
    • 可以直接输入字符。
  • 常用命令
    • i:在当前光标位置进入插入模式。
    • a:在当前光标后进入插入模式。
    • o:在当前行下方插入新行并进入插入模式。
    • I:在当前行首进入插入模式。
    • A:在当前行尾进入插入模式。
    • O:在当前行上方插入新行并进入插入模式。

    三、命令模式(Command Mode)

  • 进入方式:在普通模式下按:(冒号)进入命令模式。
  • 功能
    • 用于执行保存、退出、搜索、替换等高级操作。
  • 常用命令
    • :w:保存文件。
    • :q:退出Vim
    • :wq:保存并退出。
    • :q!:强制退出,不保存修改。
    • :set nu:显示行号。
    • :set nonu:隐藏行号。
    • :/keyword:搜索关键词。
    • :s/old/new:替换当前行的第一个匹配项。
    • :%s/old/new/gc:替换全文中的所有匹配项,含确认选项。

               g表示global, 一行内所有都会被替换, ccomfirm, 要去确认替换

    • 全字匹配, /\<word\>         常用

    • 全文格式化: gg=G

    四、模式切换

  • 普通模式 → 插入模式:按iao等键。
  • 插入模式 → 普通模式:按Esc键。
  • 普通模式 → 命令模式:按:键。
  • 命令模式 → 普通模式:按Esc键。

五、多文件编辑

vim file1 file2 file3打开

会显示第一个文件, 之后使用:n:N切换

:n下一个文件, :N上一个文件

六、多窗口编辑

  1. 先用vim file1打开第一个文件,

  2. 再用:sp file2 或者:vs file2打开第二个文件

    1. :sp [filename] side panel纵向新窗口打开文件

    2. :vs [filename]横向新窗口打开文件

  3. 使用ctrl+w在多个窗口之间切换

  4. 使用ctrl+w+q关闭当前窗口

  5. 只有最后一个窗口关闭时才会询问保存问题

七、配置文件

linux的配置文件机制:

同一个软件有不同的配置文件 一般/etc里有一套全局配置, ~有一套用户配置

加载的时候. 先加载全局, 再加载用户配置, 越后加载的优先级越高

  • 在vim中输入底线命令::set number可以临时显示行号     简写set nu

  • ~/.vimrc中添加一行set number 可以永久显示行号

简单的.vimrc文件示例

" 显示行号
set number

" 启用鼠标支持
set mouse=a

" 设置补全菜单的最大高度
set pumheight=10

" 显示光标位置信息
set ruler

" 启用语法高亮
syntax on

" 设置缩进
set tabstop=4
set shiftwidth=4
set expandtab

" 启用自动缩进
set autoindent

" 搜索时忽略大小写
set ignorecase

" 搜索时高亮匹配项
set hlsearch

" 设置配色方案
colorscheme desert

" 定义快捷键
nnoremap <C-s> :w<CR>  " Ctrl+S 保存文件
nnoremap <C-q> :q<CR>  " Ctrl+Q 退出

相关文章:

  • 【PLL】分频器:其他拓扑
  • Linux 进程管理
  • 大白话html语义化标签优势与应用场景
  • git如何解除远程仓库 改变远程仓库地址
  • Elasticsearch为索引设置自动时间戳,ES自动时间戳
  • 杂项知识笔记搜集
  • 【由技及道】量子跃迁部署术:docker+jenkins+Harbor+SSH的十一维交付矩阵【人工智障AI2077的开发日志011】
  • Java算法语法学习 美丽子集的数目 - 力扣 Map接口
  • 2025软件测试面试八股文(含答案+文档)
  • 传输协议优化的博弈三角
  • Nginx 跨域配置详细讲解
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之功能优化,基础加载状态,Table8基础加载状态
  • 【并发编程】聊聊定时任务ScheduledThreadPool的实现原理和源码解析
  • java字符串
  • 【Linux】线程同步与互斥
  • 如何在PHP爬虫中处理异常情况的详细指南
  • unsigned类型与signed类型的区别介绍
  • NAS和网盘可以同步吗?
  • requestAnimationFrame 和定时器的含义,使用场景及区别
  • Unity AI 技术浅析(二)
  • 地产设计网站/最新国际新闻
  • 郑州网站建设公司哪家专业/网站之家
  • 静态网站怎么做优化/网页制作教程视频
  • 宝鸡手机版网站建设/企业网站开发制作
  • 武汉便宜网站建设/百度云网盘
  • 华人代购网站开发/seo网站优化技术