Linux--vim

一、vim的基础介绍

vim是一个老式的文字处理工具,但是功能很齐全,不仅是文本处理工具,还是一个程序编辑工具,包含了很多额外的功能

为什么Linux使用vim?

①所有类Unix系统都内置vi,而vim相当于是vi的升级版

②很多软件的编辑界面都会调用vi,比如crontab、edquota

③vim具有程序编辑能力,可以用颜色表示语法

vim常用的有3~5种模式,分别为:命令模式、插入模式、底行模式、视图模式、替换模式
各个模式之间的切换键

注意:

如果不清楚当前处于什么模式,则无脑esc直至退回命令模式

退出vim编译一般是先保存后退出

vim中操作,不要使用鼠标和滚轮

二、vim指令集

vim中的绝大多数指令都是在命令模式下进行,为了便于vim操作设计了很多快捷指令

|-----------|-------------------------|
| 按键操作 | 功能说明 |
| yy/nyy | 复制当前行,或包括当前行在内的n行 |
| dd/ndd | 剪切当前行,或包括当前行在内的n行 |
| p/np | 粘贴一行,或n行相同的内容在当前光标所在处 |
| u | 撤销上一步操作 |
| ctrl r | 对撤销操作进行撤销(即撤销u操作) |
| shift g | 将光标定位到文档的最结尾 |
| n shift g | 将光标定位到文档的第n行 |
| shift 4 | 将光标定位到当前行的结尾 |
| shift 6 | 将光标定位到文档的最开始 |
| shift ~ | 快速对文本内容进行大小写切换,与Caps键不同 |
| n r | 替换光标当前所在位置的字符 |
| nx | 行内删除,从左向右删 |
| n shift x | 行内删除,从右向左删 |
[### vim命令模式常用操作]

注意:

u和ctrl+r可以相互撤回

shift ~是对文本直接进行大小写替换,而不是切换输入法的大小写

|-----------------|----------------|
| 按键操作 | 功能说明 |
| set nu/set nonu | 显示行号/不显示行号 |
| %s/被替换内容/替换内容/g | 将文件内容中的被替换内容替换 |
| /key | 搜索并高亮key内容 |
| !command | 强制执行command命令 |
| vs file | 新生成一个file文件 |
[### 底行模式常用操作]

注意:

ctrl w w用于光标在多个页面之间切换

替换操作会导致所有的内容都被替换,需要谨慎使用

三、vim的配置

vim配置可以手动也可以自动。一般情况下不推荐自动配置vim

vim在启动的时候,会自动在当前用户的目录下,寻找配置文件。如果没有就是默认

一个用户对应一个vim配置,并不会影响其他用户

可以手动创建一个vimsrc文件,这个文件就是vim自动寻找的配置文件

复制代码
##常用配置

set ai                    自动缩进,与上一行保持一致的自动空格
set ic                    在查询模型与匹配模式下忽略大小写
set number                左侧显示行号
set showmatch             显示括号配对,并高亮显示相匹配的括号
set showmode              文本输入模型下,加亮显示模式指示器
set showcmd               在状态栏显示所执行的指令,未完成的指令片段
set warn                  长行显示自动折行
set cindent               以C/C++模式缩进
set ruler                 打开状态栏标尺
set scrolloff=6           设置光标离窗口上下6行时窗口自动滚动
set tabstop=4             设置Tab长度为4
set wrap                  自动换行显示
syntax enable
syntax on                 自动语法高亮

一般不推荐手动配置。而是使用他人已经配置完成的自动配置

相关推荐
星恒随风8 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
唐墨12312 小时前
linux kernel 比较数据大小的宏定义
linux·算法
程序开发阿元12 小时前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh
分布式存储与RustFS15 小时前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天15 小时前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star16 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-16 小时前
Linux Day33——定时任务+lvm
linux·运维
墨痕诉清风16 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
byte轻骑兵16 小时前
实战 4:BlueZ 源码中添加自定义设备过滤规则
linux·物联网·bluez·电脑蓝牙·嵌入式蓝牙
润滑卫士17 小时前
液压系统工作粘度窗口等级选型:泵允许粘度范围与油温-粘度匹配计算
运维