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

【Linux系统 01】Vim工具

目录

一、Vim概述

1. 文件打开方式

2. 模式切换

二、命令模式

1. 移动与跳转

2. 复制与粘贴

3. 剪切与撤销

三、编辑模式

1. 插入

2. 替换

四、末行模式

1. 保存与退出

2. 查找与替换

3. 分屏显示

4. 命令执行


一、Vim概述

1. 文件打开方式

  1. vim 文件路径:尽量用Tab补全文件名,若文件不存在则新建

  2. vim +行数 文件路径:打开文件时,光标移动到指定行

  3. vim +/关键字 文件路径:打开文件时,关键字高亮显示

2. 模式切换

  1. 命令模式 -> 编辑模式:a/A、i/I、o/O、r/R

  2. 命令模式 -> 末行模式:英文的冒号(Shift ;)

  3. 编辑模式 -> 命令模式:Esc

  4. 末行模式 -> 命令模式:Esc

  5. 编辑模式和末行模式相互转换:通过命令模式中转

二、命令模式

1. 移动与跳转

指令作用
h、←左移
l、→右移
k、↑上移
j、↓下移
^行首
$行尾
gg文件首行
G文件末行
nG文件第n行
w、W下一单词

2. 复制与粘贴

指令作用
yy复制一行
nyy复制n行
y^复制光标处到行首
y$复制光标处到行尾
yw复制一个单词
ynw复制n个单词
yG复制到文件尾
y1G复制到文件首
p粘贴到下一行
P粘贴到上一行

3. 剪切与撤销

指令作用
x剪切一个字符
nx剪切n个字符
X剪切光标前一个字符
dd剪切一行
ndd剪切n行
d^剪切到行首
d$剪切到行尾
dG剪切到文件尾
d1G剪切到文件首
dw剪切一个单词
u撤销上一次操作
U撤销一行内的操作

三、编辑模式

1. 插入

指令作用
a光标后插入
A行末插入
i光标前插入
I行首插入
o下一行插入
O上一行插入

2. 替换

指令作用
r替换一个字符
R进入替换模式
Ctrl r撤销的恢复

在编辑模式下,底行会提示当期是“Insert模式”还是“Replace模式”。

四、末行模式

1. 保存与退出

指令作用
:w保存
:q退出
:!强制执行
:wq保存并退出
:q!强行退出,不保存新修改
:e 文件名在原始窗口中打开新文件,旧文件保存
:e!放弃所有更改,重新编辑
:r 文件名在光标下一行插入文件内容

2. 查找与替换

指令作用
:set nu显示行号
:数字n将光标移动到第n行
:/关键字从文件头开始查找关键字,按n找下一个
:?关键字从文件末开始查找关键字,按n找下一个
:s/str1/str2/p当前行str1替换成str2
:%s/str1/str2/p所有行str1替换成str2

3. 分屏显示

指令作用
:vs 文件名分屏显示
:qall退出所有文件,不保存
:wqall保存并退出所有文件
:ctrl ww切换分屏

4. 命令执行

指令作用
:!命令执行一条命令
:↑查看上条命令
:↓查看下条命令

在不同的Linux系统中,末行模式执行命令的格式不一致,比如 :!cmd 命令1:!command 命令2

相关文章:

  • 为什么高防CDN可以防御DDOS攻击?
  • 亚信安全助力宁夏首个人工智能数据中心建成 铺设绿色算力安全底座
  • 算法学习——LeetCode力扣链表篇1
  • 第八届:世界3D渲染挑战赛《无尽阶梯》正式开启
  • 2024.02.05
  • 亚马逊新店铺视频怎么上传?视频验证失败怎么办?——站斧浏览器
  • EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
  • XGB-3: 模型IO
  • 2024/2/5总结
  • 《深入浅出Go语言》大纲
  • AI专题:海外科技巨头指引,AI主线逻辑依旧坚挺
  • PHP客服系统-vue客服聊天系统
  • 02.05
  • 在线JSON转SQL工具
  • Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用
  • [iOS]Core Data浅析一 -- 启用Core Data
  • Cumulo 的 ClojureScript 模块已经成型
  • DataBase in Android
  • golang 发送GET和POST示例
  • Markdown 语法简单说明
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue中实现单选
  • 翻译--Thinking in React
  • 记录一下第一次使用npm
  • 看域名解析域名安全对SEO的影响
  • 微信公众号开发小记——5.python微信红包
  • 想写好前端,先练好内功
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 组复制官方翻译九、Group Replication Technical Details
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #android不同版本废弃api,新api。
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (2)STL算法之元素计数
  • (a /b)*c的值
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • **PHP二维数组遍历时同时赋值
  • .net Stream篇(六)
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [20170705]diff比较执行结果的内容.txt
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [JS入门到进阶] 7条关于 async await 的使用口诀,新学 async await?背10遍,以后要考!快收藏
  • [MT8766][Android12] 增加应用安装白名单或者黑名单