Linux -Vim

博客主页:【夜泉_ly

本文专栏:【Linux

欢迎点赞👍收藏⭐关注❤️

文章目录

  • [📚 前言](#📚 前言)
  • [⚙️ 基本模式](#⚙️ 基本模式)
  • [📝 命令模式常见操作](#📝 命令模式常见操作)
  • [📄 底行模式常见操作](#📄 底行模式常见操作)
  • [🛠️ 自定义 Vim 配置](#🛠️ 自定义 Vim 配置)
  • [✨ 补充点](#✨ 补充点)

📚 前言

本文主要内容:

Vim是一个文本编辑器,

比nano的功能多了亿点,但也比nano麻烦亿点。

首先,Vim的模式特别多,常见的就有三种:命令模式、插入模式、底行模式。

其次,Vim的相关指令也特别多,常见的有几十条。

本文将挑选一些有代表性的内容,以方便初学者快速入门。

⚙️ 基本模式

首先,来看看刚刚说的三个常见模式:

  • 命令模式(默认模式):用于输入命令,不直接编辑文本。
  • 插入模式:用于输入和编辑文本。
  • 底行模式:用于输入更复杂的命令,例如保存、退出、搜索等。

下面通过一段具体的操作,

简单的演示一下三种模式:

创建和打开文件

先创建一个 .c 文件,然后 vim test.c

打开后就是这样的:

此时,你处于命令模式,也叫默认模式。

在这一模式下,所有的输入都会被视为命令,而非文本输入。

所以现在你输 Hello 之类的并没有什么用,不会在文件中显示。

切换到插入模式

输入 i 进入插入模式:

接下来可以输入代码:

保存并退出

想要保存并退出,有很多方法,这里先讲一个:

首先,需要从 插入模式 回退到 命令模式:按键盘左上角的 Esc

此时,屏幕左下角的 -- INSERT -- 不见了:

然后,需要从 命令模式 进入 底行模式:按 Shift : (其实就是敲冒号)

最后,在底行模式输入 wq ,这代表你要保存退出:

具体而言:

  • w 是保存。
  • q 是退出。
  • wq 则是同时保存并退出。

退回命令模式

如果进入了底行模式,想要退回命令模式,怎么办?

还是按键盘左上角的 Esc

注意事项

切换模式时,

需避免直接在插入模式与底行模式之间切换。

需要切换时,请先 Esc ,即回到命令模式。

📝 命令模式常见操作

  • 光标定位

    箭头所指的就是光标目前的位置

    • gg 定位光标到整个文本的开始位置
    • shift g 定位光标到文本的末尾
    • n shift g 定位光标到第 n
  • 复制与粘贴

    • (n)y y 复制光标所在行(以及之后的 n-1 行)
    • (n)p 粘贴(n 行)到光标所在行的下一行
    • y y p 复制并粘贴一行
    • y y n p 复制并粘贴 n
    • n1 y y n2 p 复制 n1 行并粘贴 n2
  • 撤销与重做

    • u 撤销
    • Ctrl R 撤销撤销
  • 剪切与删除

    • (n)dd 剪切、删除光标所在行(及后续的 n-1 行)
  • 行内导航

    • shift $ 定位光标到行末
    • shift ^ 定位光标到行首
    • w/b 光标按照单词进行行内 / 跨行移动
    • h 左, j 下, k 上, l
  • 替换与删除字符

    • shift ~快速大小写转换
    • (n)r 替换
    • shift r 进入替换模式, Exc 退出
    • (n)x 删除光标之后的(n个)字符
  • 搜索

    • /内容 在文件中搜索指定内容
    • n 跳转到下一个匹配项
    • N 跳转到上一个匹配项

📄 底行模式常见操作

  • :%s/旧内容/新内容/g 全局替换文件中的内容

  • :w 保存文件

  • :q 退出 Vim

  • :wq:x 保存并退出

  • :w! 强制保存

  • :q! 强制退出

  • :wq! 强制保存并退出

  • :set nu 显示行号

  • :set nonu 去掉行号

  • :! 后可以跟指令,

    可以实现不退出Vim就运行外部的指令,比如 pwd

🛠️ 自定义 Vim 配置

在家目录下,

通过自定义 .vimrc 文件,

可以设置 Vim 的默认行为和外观。

touch .vimrc
vim .vimrc

打开后输入 set nuset number

再次使用Vim时就会默认带上行号。

示例 .vimrc 文件

下面是我到处CV的,参考价值不大:

syntax on              " 启用语法高亮
set number             " 显示行号
set autoindent         " 自动缩进
set ignorecase         " 搜索时忽略大小写
set tabstop=4          " 设置 Tab 宽度为4个空格
set shiftwidth=4       " 设置缩进宽度为4个空格
set hlsearch           " 高亮搜索结果
set mouse=a            " 启用鼠标支持
set incsearch          " 增强搜索体验
set confirm            " 提示保存更改
set ruler              " 显示光标位置
set background=dark    " 设置背景为暗色
filetype plugin on     " 启用文件类型插件
set matchtime=5        " 设置匹配括号的时间
set encoding=utf-8     " 设置编码为UTF-8
set langmenu=zh_CN.UTF-8 " 设置语言菜单为中文
set autowrite          " 自动写入
set autoread           " 自动读取文件变化

✨ 补充点

  • 多文件编辑

    vim code1.c code2.c
    

    或在 Vim 中打开 code1.c 后,

    通过底行模式使用 :vs code2.c

    Ctrl ww 切换光标所在文件

  • 批量注释(修改):

    命令模式 Ctrl V

    h \ j \ k \ l选区

    Shift I 切换模式:

    双斜杠注释:

    最后按 Esc

  • 取消注释(批量删除):

    选区后按D:



希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!

本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!

相关推荐
看星星的派大星1 小时前
rk3588 android12 root
linux
飘飘燃雪1 小时前
Linux Modbus协议详解,代码示例
linux·运维·服务器·modbus
蜗牛hb1 小时前
Kali基础知识
linux·运维·服务器
恩爸编程2 小时前
深入浅出 Linux 操作系统
linux·运维·服务器·linux系统介绍·linux操作系统介绍·linux操作系统是什么·linux操作是什么
马船长2 小时前
RCE-PLUS (学习记录)
java·linux·前端
激进的猴哥2 小时前
day20-yum精讲
linux·运维·服务器
忆源2 小时前
Linux基础--1.1 什么是 Linux 操作系统
linux·运维·服务器
dessler3 小时前
Docker-Dockerfile案例(一)
linux·运维·docker
plmm烟酒僧3 小时前
香橙派5Plus启动报错bug: spinlock bad magic on cpu#6, systemd-udevd/443
linux·bug·rk3588·kernel·香橙派·orangepi5plus
LKID体3 小时前
pathlib:面向对象的文件系统路径
linux·网络·windows