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

工作中常用Vim的命令

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】


目录

0. ctags -R

1.认识 Vim的几种工作模式

2.高频使用命令

2.1 修改文件

2.2 关于行号

2.3 删除多行,删除部分

2.4 复制粘贴

2.5 光标移动

2.6 撤销命令

2.7 翻页命令

2.8 查找和跳转

2.9 替换文本

2.10 退出

Vim 命令大全

总结


Vim 对于做Linux 嵌入式相关的工作,Vim 应该都比较熟悉,本章节将总结一些使用频率较高的一些相关操作,一些少用的这里就不再做介绍,说得太多,也记不住,以下将以实际情景进行介绍,基本可以完成相关基础操作。

0. ctags -R

ctags -R 这个确实不是vim命令,但是为什么第一个就要介绍它,因为在Linux 中,如果使用Vim进行浏览代码跳转都是非常有用,所以一般会在代码的根目录下输入:

ctags -R

1.认识 Vim的几种工作模式

提到Vim 可能还不知道有几种工作模式,根据网上分类有多种方式,有分3类,4类,6类,7类等等,这里考虑常用的方式分类为4种模式:

vim file.c开始进入的模式叫做‌Normal 模式

当处于Normal模式下,输入i,a,o 可以进入Insert 模式,也就是我们经常编辑的文件模式,退出Insert 模式直接按下Esc返回到Normal模式

当处于Normal 模式下,输入v或者V进入Visual 模式可以进行选择文本,进行一些剪切,复制等操作,按下Esc可以返回Normal 模式

当属于Normal 模式下,输入:可以进入Command 模式,命令以回车的方式又返回到Normal 模式

2.高频使用命令

2.1 修改文件

# vim 打开文件
vim file.c
# 输入i 就可以正常的操作,添加,删除等操作,通过上下左右进行移动光标;

2.2 关于行号

# 显示行号
:set nu
# 跳转到xxx行号
:xxx
# 不要显示行号
:set no nu

2.3 删除多行,删除部分

# 1. 非编辑模式下 
# 删除当前行,按下dd
​
# 删除多行,光标所在开始数,行数和d结合
# 删除4行,按下:4d
​
​
# 2. 编辑模式下:
# 删除范围
 

2.4 复制粘贴

# 1. 采用行号为单位的复制
​
# yy 复制当前行
# p 在当前行下粘贴
# np 粘贴n次
​
# nyy 复制n行
​
# 2. Visual 模式下复制粘贴
​
# 按v进入可视模式,(大V是行可视化,小v是字符可视化,Ctrl+v 是块可视化)
# 按下ctrl , 通过上下左右进行选择区域,或者j,k,h,l选择范围
# 移动文件尾部G ,文件头部gg
​
# 按下p 粘贴

2.5 光标移动

# 1. 方向性的有 ikhl
​
# 2. 移动到文件头 gg, 移动到尾部 G
​
# 3. 移动到行首

2.6 撤销命令

# 小写u 撤销
# 大写U 撤销对整行的操作
# Ctrl+r  即撤销的撤销

2.7 翻页命令

# Ctrl+f 向下翻一页
# Ctrl+b 向上翻一页
​
# 当然你使用PgUp PgDn 也行。

2.8 查找和跳转

# 查找
# /abc abc为你要查找的字符串
# /^abc  以abc为行首的行
# /abc$  以abc为行尾的行

# n 往后查找
# N 往前查找

# 跳转行号
# :n n为行号

2.9 替换文本

# 当前文本中的admin 全部替换成 hywelstar
# :1,$s/admin/hywelstar/g 

2.10 退出

# :wq 保存并退出
# :q! 不保存并强制退出 
# :w file  保存到file 文件去
# 按下ZZ 直接退出

Vim 命令大全

这张图应该都见过,比较全面

总结

本章节主要对Vim在工作中常用的命令进行整理,只需要掌握以上10个重要的,问题不大,再结合ctags 应该会更方面。如果不想使用Vim, 当然可以使用常用的代码编辑工具eclipse, vscode , Source insight 等工具,但有时候在服务器上这种无界面画或者又没有samba, nfs 这种服务,采用Vim 看看。

推荐阅读:

vim mode tips


http://www.kler.cn/a/461033.html

相关文章:

  • 【数据仓库金典面试题】—— 包含详细解答
  • leetcode hot100_part08_二叉树(完)
  • QT---------自定义插件和库
  • Zynq PS端外设之GPIO
  • Scrapy和Selenium结合使用完整步骤
  • Nginx 配置文件详解(带示例)
  • MiFlash 线刷工具下载合集
  • 查看 GitHub 仓库的创建时间
  • Excel for Finance 06 `STOCKHISTORY` 函数
  • Vue.js前端框架教程15:Vue父子组件之间的通信ref、emits
  • HarmonyOS NEXT应用开发之工具安装
  • 初次使用Oracle存储过程,定时任务--记录
  • 产品经理2025年展望
  • 创新引领未来,科技照亮梦想
  • Spring Boot缓存
  • 【MySQL】第一弹----库的操作及数据类型
  • 网络安全问题解答
  • 尚硅谷Vue3入门到实战 —— 02 编写 App 组件
  • axios拦截器底层实现原理
  • 基于SpringBoot+Vue的旅游推荐系统
  • [pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)
  • Doris安装部署
  • 实现单例模式的五种方式
  • jQuery学习笔记1
  • 无人机任务载荷系统之电子对抗技术!
  • 使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术