vim基本操作及常用命令

目录

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

[二、插入模式(Insert Mode)](#二、插入模式(Insert Mode))

[三、命令模式(Command 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文件示例

cs 复制代码
" 显示行号
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 退出
相关推荐
又过一个秋1 分钟前
【sylar-webserver】重构日志系统
linux·c++·算法·重构
JhonKI24 分钟前
【Linux网络】构建UDP服务器与字典翻译系统
linux·服务器·网络·tcp/ip·udp
伤不起bb1 小时前
系统安全及应用
linux·运维·网络·安全·系统安全
啊吧怪不啊吧1 小时前
Linux常见指令介绍中(入门级)
linux·运维·服务器
鹏大师运维1 小时前
用银河麒麟 LiveCD 快速查看原系统 IP 和打印机配置
linux·ip地址·国产化·国产操作系统·打印机·统信uos·livecd
楠奕2 小时前
neo4j-community-3.5.5-unix.tar.gz安装
linux·服务器·数据库
子燕若水2 小时前
在 UE5 编辑器中,由于游戏设置 -> EV100 设置,点击播放前后的光照不同。如何保持点击播放前后的光照一致?
游戏·ue5·编辑器
Rudon滨海渔村2 小时前
Linux通用一键换源脚本.sh - ubuntu、centos全自动更换国内源 - LinuxMirrors神器
linux·运维·ubuntu·centos·换源
小琪琪:)2 小时前
【Linux】vim配置----超详细
linux·运维·vim
江沉晚呤时3 小时前
在 Linux 上部署 .NET Core 应用并配置为开机自动启动
linux·服务器·mysql