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 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vim个人学习(一部分) -> 正文阅读

[开发工具]vim个人学习(一部分)

一、终端

  1. ctrl+a移动到开头,ctrl+e移动到结尾,ctrl+b前移一字符,ctrl+f后移一字符
  2. ls查看当前目录下的文件及文件夹
  3. cd进入某个目录
  4. mkdir创建文件夹
  5. rm删除文件或文件夹等
  6. vim在linux等服务器上使用会打开一个前置页面,可以进入帮助文档等界面,也可以开始编辑
    • 如果直接vim编辑的话,最后没有办法保存以及退出,因为没有文件名字;可以用:w加一个名字
    • 如果是vim+名字的话就时编辑文件,后续问题遇见再记

二、四种模式(部分知识点)

  1. 正常模式(Normal-mode)
  2. 插入模式(Insert-mode)
  3. 命令模式(Command-mode)
  4. 可视模式(Visual-mode)

切换模式:如果esc不方便,可以改键,把ctrl+[改成esc的功能

1. 正常模式

1.1 查看操作

  1. 查看文档使用:h是向左,j是向下,k是向上,l是向右
  2. 按下gi回到最后一次编辑的位置
  3. w/W移动到下一个word/WORD开头;e/E下一个word/WORD尾部;b/B回到上一个word/WORD开头;word指的是以非空白符分割的单词,WORD以空白符(" ")分割的单词
  4. 使用f+字符,搜索该行字符,并到其位置;其中为下一个位置为上一个位置(当前所在字符后面一个);t+字符,跳转到想要的字符的前一个字符
  5. 0移动到行首的第一个字符,^移动到第一个非空白字符;$移动到行尾,g_移动到行尾非空白字符
  6. gg/G移动到文件开头或者结尾,使用ctrl+o快速返回,回到光标上个位置;H/M/L跳转到屏幕的开头,中间,结尾;ctrl+u,ctrl+f上下翻页;zz把屏幕置为中间

1.2 更改操作

  1. d+h/j/k/l删除字符;u可以撤销更改;y复制一整行,p粘贴
  2. 使用x可以快速删除一个字符;daw删除单词以及周围的空格,diw删除单词但不删除空格,dw默认是dawdd删除整行,dt+某字符表示删除光标到某字符之间的内容;d0/$配合删除
  3. c就是配合文本对象,快速修改,类似d;可以配合数字,删除或修改多个
  4. r+字符替换一个字符,R可以不断替换后面的字符(输入多少替换多少),s删除并进入插入模式

1.3 复制粘贴

  1. 复制粘贴yp,剪贴dp

  2. 使用v选中要复制的,然后复制粘贴

  3. 配合文本对象,比如yiw复制一个单词,yy复制一行

2. 插入模式

2.1 打开方式

  1. i在光标前打开,a在光标之后打开,o在光标下面一行行首打开,s删除光标所在位置的字符后打开
  2. I在光标所在行的最前面打开,A在光标所在行的最后打开,O在光标所在行的上面一行打开,S删除光标所在行然后在行首打开

2.2 更改操作

  1. ctrl+h删除上一个字符,ctrl+w删除上一个单词,ctrl+u删除当前行(终端下也可以)

2.3 复制粘贴

  1. vimrc中设置了autoindent(自动缩进),粘贴代码会缩进错乱(可以使用:set paste:set nopaste来解决)(也可以在normal模式下粘贴,相对简单)

3. 命令模式

  1. :w保存;:q退出;:wqw和q的和:保存及退出
  2. :set nu给编辑文本的每一行加序号
  3. :% s/[文本]/[文本]/g其中:%表示整个文件(数字,数字就是几行到几行),s是替换,把前文本(如果只想替换该单词,而不是包括该单词的单词,需要正则表达式)替换为后文本,g是全局(c是确认,可以确认或者拒绝修改;n报告匹配的次数而不替换,可以用来查询匹配次数)
  4. /[文本]可以检索全文中有无
  5. :x若当文件被修改过,直接保存退出;若没有修改过,直接退出
  6. :syntax on临时设置代码高亮
  7. 使用/或者进行前向或者反向搜索(大概就是光标前后);搜索之后使用:set hls,可以高亮,:set incsearch边搜索边高亮;使用n/N跳转到下一个或者上一个匹配;使用*或者#进行当前单词的前向和后向匹配(光标所在位置)

4. 可视模式

  1. v在当前光标处打开,V当前光标所在行全选中打开,可以配合h、j、k、l来选中文本
  2. d是删除选中文本,u是撤销更改,y是复制选中文本,p是粘贴
  3. ctrl+v块状选择,可以和方向键←↓↑→配合

三、其他

1. buffer缓冲区

可以粗俗的理解为打开了多个文件

  1. 使用:ls列举当前缓冲区,使用:b n跳转到第n个缓冲区

  2. :bpre 上一个 :bnext 下一个:bfirst 第一个 :blast 最后一个

  3. 在文本内:e 文件名打开另一个文件;然后把这个文件加入缓冲区;然后就可以使用上述操作跳转

2. window窗口

  1. <ctrl+w>+s水平分割;<ctrl+w>+v垂直分割; :vs竖分屏;:sp横分屏

  2. <ctrl+w>+w是窗口间循环切换;也可以和h/j/k/l配合切换

  3. 同一文件的修改是同步的

  4. :h window-resize查看文档,其中的操作可以重排窗口

3. tab标签页

类似于浏览器标签页一样,然后每一页都是同一种类型的操作,方便观看,但是一般不用,太多较麻烦

  1. :tabe[dit] filename在新标签页打开文件,gt是正常模式下的切换标签页

  2. [number]<command>[text object]
    number表示次数,command是命令,d(delete),c(changer),y(yank)
    text object是要操作的文本对象,比如单词w,句子s,段落p
    例子:daw(around周围的,包括空格的单词)diw(inner,不包括空格的单词)

4. vim寄存器

主要是用来复制粘贴的

  1. x+p可以调换俩字符(x可以快速删除)
  2. “a就是自定义寄存器a(a-z),然后把内容存到a中;:reg a可以查看a中存的内容;然后用“a+p粘贴;然后“”表示无名寄存器,缺省使用
  3. 专用寄存器:“0复制成功后会复制到这个寄存器和无名寄存器中
  4. 系统剪贴板“+然后就可以在vim以外使用了【:set clipboard=unnamed后可以直接复制粘贴(p)到系统剪贴板(:echo has('clipboard')可以查看是否有这个,返回1就是有)】
  5. “%粘贴当前文件名,”.粘贴上次插入的文本;e!重新加载
  开发工具 最新文章
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-03-15 22:47:55  更:2022-03-15 22:48:27 
 
开发: 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:55:40-

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