IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Linux之vim编辑器的使用 -> 正文阅读

[开发工具]Linux之vim编辑器的使用

  • vim(vimsual)是Linux/Unix系列OS中通用的全屏编辑器。

vim 简介

vim的模式

  1. vim分为3中模式:普通(命令)模式,编辑模式和视觉模式。在命令模式下,所键入的字符系统均会按照命令来处理,如:q代表退出,而编辑状态则是用来编辑文本内容的。当你进入vim时,会首先进入命令模式。
  2. 左下角有INSERT字样就是代表当前为编辑模式,有VISUAL的字样就是视觉模式,否则就是命令模式。
  3. 从命令模式切换到编辑模式,有如下一些常用命令:
  • a 从光标后面开始添加文本(表示新增append)
  • A 从光标所在行的末尾开始添加文本
  • i 从光标所在位置的前面开始插入文本(i表示插入insert)
  • I 从光标所在行的开始处位置插入文本

?

4.按下ESC按键,可以从编辑模式切换到命令模式。

vim内常用的命令操作

删除与修改

x 删除光标处的字符

dd 删除光标所在的整行

3dd 删除光标所在行以及下面的两行(一共删除3行)

D或d$ 删除光标到行尾的文本,常用于删除注释语句(等价于d$)

d^ 删除光标到行首的文本

dw 删除一个字

d3w 删除三个字

yy 复制光标所在的整行

[n]yy 从光标所在开始往下复制n行,[n]表示一个整数

p 将复制的文本粘贴到光标处

u 撤销上次的操作

光标移动

^ 光标移动到行首

$ 光标移动到行尾

ctrl+d 向下翻半页(down)

ctrl+f 向下翻一页(forward)

ctrl+u 向上翻半页(up)

ctrl+b 向上翻一页(backward)

gg? ? ? ? 光标定位到文档头部

G? ? ? ? 光标定位到文档尾部

H? ? ? ? ?光标定位到当前页首(head)

L? ? ? ? 光标定位到当前页的最后一行的行首(lastline)

w? ? ? ? 光标往后移一个字(word)

b? ? ? ? 光标往前移一个字(block)

[n]+? ? ? ? 光标向后移动n行,[n]表示一个整数,例如10+

[n]-? ? ? ? 光标向前移动n行,[n]表示一个整数,例如10-

[n]G? ? ? ? 光标定位到第n行行首,[n]表示一个整数 ,例如20G

查找与替换

/[str]? ? ? ? 查找字符串str,[str]表示要查找的字符串

回车后会高亮显示所有找到的字符串,接着输入n移动到下一个找到的字符串,输入N移动到上一个找到的字符串。

:s/[src]/[dst]/[i忽略大小写][g处理本行中所有的匹配项]? ? ? ? 用字符dst替换字符src

例如:s/hello/world/ig? ? ? ? 将一行中的world全部替换为hello

:x,y s/[src]/[dst]/ig? ? ? ? 在x-y行中找

例如:3,6 s/hello/world? ? ? ? 在3-6行里面,找到第一个hello替换为world

:%s/[src]/[dst]/g? ? ? ? 将文档中所有src字符串替换为dst字符串

:%s/^ //g? ? ? ? 将文档每一行的行首的空格去掉

:%s/^\t//g? ? ? ? 将文档每一行的行首的制表符去掉

思考:

1.如何使用替换命令注释所有块内代码?

2.如何使用替换命令转换实现制表符和4个空格之间的转换?

可视模式

v? ? ? ? 进入可视模式

ctrl+v? ? ? ? 进入竖向选择模式

进入可视模式后,可以使用光标移动指令来移动光标,并且会选中区域。

批量注释代码,具体步骤如下:

首先按下ctrl+v,竖选选中要注释的行

输入I(注意是大写的I,表示在选中区域的前方),然后输入//

再按下ESC按键,就会看到所选中的行被注释了。

文档保存及退出

:q? ? ? ? 在未修改文档的情况下退出

:q!? ? ? ? 放弃文档的修改,强制退出

:w? ? ? ? 写入文档

:wq? ? ? ? 写入文档并退出

:x? ? ? ? 功能和:wq一样,区别在于

:wq?? 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。

:x??? 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

其他操作

:help? ? ? ? 查看该命令的帮助提示(并不常用,当不小心按到F1时,可以通过:q进行退出)

:%!xxd? ? ? ? 十六进制模式

:%!xxd -r? ? ? ? 返回文本模式,注意中间有一个空格?

注意,如果在vim编辑状态时不小心按了ctrl+s,vim会处于僵死状态,可以按下ctrl+q恢复。

光标定位

执行vim +3 main.c? ? ? ? 表示定位到main.c的第3行

执行vim +/printf main.c? ? ? ? 表示定位到第一个printf处

多窗口

:new 2.c? ? ? ? 再打开一个vim窗口,是横向的

:vnew 2.c? ? ? ? 再打开一个vim窗口,是纵向的

也可以通过:split,vsplit,sp,vsp

ctrl+w,w(连续按两次w)进行两个窗口之间的切换

多标签

:tabnew 文件名 再打开一个vim标签

gt? ? ? ? 切换到下个标签

gT? ? ? ? 切换到上个标签

代码格式对齐

使用 = 可以进行代码对齐

gg=G? ? ? ? 对齐全文件

gg=10gg? ? ? ? 对齐第1行到第10行

在可视模式选中代码块之后,再按下=也能对齐代码块。

总结

基本上,vim命令是保持“操作”、“参数”、“对象”的基本结构。

操作包括了g(跳转),d(删除),c(change),y(yank拷贝)等等

参数包括了i(之前),a(后面),t(to),数字等等

对象包括了w(单词),s(句子),b(块),)(句子),} (块)等等

例如,修改括号内的内容:ct)

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:48:17  更:2022-02-28 15:49:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:32:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码