Vim入门教程vimtutor1.7总结

news/2024/7/21 14:37:32 标签: vim, 编辑器, linux

vimtutor命令可以打开教程文档

原文特别提示 ⬇⬇⬇

特别提示:切记您要在使用中学习,而不是在记忆中学习

Vim模式

  • 正常模式(Normal Mode):默认模式,可以使用基础命令进行操作
  • 命令模式(Command Mode)::起手,可以使用比正常模式更加复杂的命令进行操作
  • 插入模式(Insert Mode):主要用于编写文档
  • 可视模式(Visual Mode):模拟鼠标选中内容
  • 替换模式(Replace Mode):用于替换字符

默认规则

  • Crtl组合键无需区分大小写
  • <key>表示某个按键
  • 所有的:命令都需要以<Enter>结束
  • 未特别说明的操作均在正常模式下执行
  • operator [number] motion操作符 [数字] 移动命令表示对numbermotion所扫过的区域进行operator操作,number可选,例如d4wc2e

Lesson 1

vim file_name:编辑文件
hjkl:分别用于向左、向下、向上、向右移动光标,方向键hjkl具有相同功能,3j表示光标向下移动3行
:q!:放弃所有修改并强制退出编辑器
x:用于将光标所在位置字符删除,3x表示删除光标位置及其之后的共3个字符
i:切换为插入模式
A:用于向该行末尾追加内容,会自动转为编辑模式并将光标置于光标所在行末尾
:wq:用于保存并退出编辑器
<Esc>:将切换为正常模式,并撤销一个不想输入或部分完整的命令
数字 + 方向键或hjkl:将光标向某个方向移动n次

Lesson 2

w:从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
e:从当前光标当前位置直到单词末尾,包括最后一个字符
0:从当前光标当前位置移动到行首
$:从当前光标当前位置直到当前行末

2w:光标向后移动到第二个单词首字符
3e:光标向后移动到第三个单词末尾
4$:光标向后移动到第四行行尾

dw:将光标所在位置的单词删除
d2w:删除两个单词
d$:将光标所在位置及该位置至所在行末尾的所有字符删除
de:将光标所在位置及该位置至所在单词末尾的所有字符删除
d0:将光标所在位置及该位置至所在行首字符的所有字符删除

dd:删除整行
2dd:删除两行

U:撤销上次对某一行的修改(不包括整行删除、整行插入),U会撤销U本身,U只能撤销最新一次修改
u:撤销上一次编辑命令,包括U但不包括uCtrl r
Ctrl r:重做上一次命令,包括U但不包括uCtrl r

Lesson 3

粘贴
p:将最后一次删除的内容粘贴至光标之后,若为d$等非完整行内容,以字符为单位直接粘贴在光标之后,若为dd等完整行内容,以行为单位向下粘贴在新的行

替换
rc:c为任意字符,r会替换光标所在位置字符,c为指定的替换后的内容

修改
cw:删除光标至单词末尾字符,并切换为插入模式
c$:删除光标至行末尾字符
c4l:删除光标及其右边紧邻的共计4个字符,并切换为插入模式

Lesson 4

光标移动
gg:光标跳转至第一行
G:光标跳转至最后一行
5G:光标跳转至第5行

文件状态
Ctrl G:在最下方显示文件状态信息以及当前光标所在位置

查找
/str:自上而下查找字符串,str为要搜索的任意字符串
/str\c:自上而下查找字符串,str为要搜索的任意字符串,查找时忽略大小写
?str:自下而上查找字符串,str为要搜索的任意字符串
n:查找下一个满足条件的字符串
N:查找上一个满足条件的字符串
Ctrl O:返回到上一个查找位置
Ctrl I:返回下一个查找位置
%:配对括号查找,对光标所在位置的()[]{}使用该命令可以将光标跳到与之配对括号的的位置,可以用于在程序调试时查找不配对括号

替换
:s/old/new:将光标所在行的第一个old字符串替换为new
:s/old/new/g:将光标所在行所有的old字符串替换为new
:n1,n2/old/new/g:将[n1, n2]间的所有的old字符串替换为new
%s/old/new/g:将整个文件中所有的old字符串替换为new
:%s/old/new/gc:将整个文件中的old字符串替换为new,且每次替换前要确认(confirm)是否进行替换

Lesson 5

执行外部命令
:!command:在VIM内执行外部命令需要以:!为开头,command为任意外部命令,包括带命令行参数的命令,支持空命令:!

保存
:w filename:保存为filename文件。filename为文件名,若省略文件名则保存文件到当前
v motion :w FILENAME:部分保存,使用v切换为可视模式,以光标所在位置为起始位置,使用光标移动选择要保存的部分内容,直到下次使用:会触发:'<,'>,继续输入w filename可以保存为filename文件

可视模式
v:进入可视模式,移动光标可以选中内容,可以对选中的高亮内容进行操作,如d可以删除选中内容,c可以删除选中内容并切换为插入模式

提取与合并
:r filename:将filename文件的内容以行为单位粘贴至光标下方
:r !command:将command命令的结果以行为单位粘贴至光标下方,如:r !ls

Lesson 6

插入
o:在光标下方新开一行,并将光标移动至新开行行首,切换模式为插入模式
O:在光标上方新开一行,并将光标移动至新开行行首,切换模式为插入模式
i:保持光标不动,切换至插入模式
a:将光标向后移动一个字符,并切换至插入模式
A:将光标移动至行尾,并切换至插入模式
注:使用<Esc>退出插入模式时光标会在本行向左移动一个字符,若已在第一个字符则不会移动

替换
R:切换至替换模式,替换模式与插入模式类似,区别在于插入模式中每个输入的字符都会替换光标原本所在位置的字符

复制
y:将内容以字符为单位进行复制,使用p可以粘贴到光标位置之后,例如yw,或者切换至可视模式复制高亮内容

设置
:set ic:set ignorecase:ignore case,设置查找或者替换忽略大小写
:set noic:not ingore case,设置查找或者替换不忽略大小写

:set hls:set hlsearch:高亮显示所有的匹配短语
:set is:set incsearch:增量搜索
注:在选项前加no可以关闭设置

Lesson 7

帮助
<HELP><F1>:help:使用在线帮助系统
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
:help vimrc-intro

补全功能
首先确保VIm不是在以兼容模式运行:set nocp,在命令模式下输入部分命令:command,例如部分:!ls /root:!dirset number

<TAB>:自动选取一个补全命令
Ctrl D:列出补全备选向

Vim启动脚本
使用vimrc文件自定义VIm配置,下面是Vim风格的文件编辑方式:

  1. 开始编辑 vimrc 文件
:edit ~/.vimrc          这是 Unix 系统所使用的命令
:edit $VIM/_vimrc       这是 MS-Windows 系统所使用的命令
  1. 将示例文件复制过来

vimrc_example.vim通常位于/usr/share/vim/vimXXX文件夹下

:r $VIMRUNTIME/vimrc_example.vim
  1. 保存文件
:write

http://www.niftyadmin.cn/n/4934048.html

相关文章

【STM32】FreeRTOS消息队列和信号量学习

一、消息队列&#xff08;queue&#xff09; 队列是一种用于实现任务与任务之间&#xff0c;任务与中断之间消息交流的机制。 注意&#xff1a;1.数据的操作是FIFO模式。 2.队列需要明确数据的大小和队列的长度。 3.写和读都会出现堵塞。 实验&#xff1a;创建一个消息队列…

数据结构:完全二叉树的性质

完全二叉树的性质&#xff1a; 具有 n n n个结点的完全二叉树的深度为 [ l o g 2 n ] 1 ( [ x ] 表示不大于 x 的最大整数 ) [log_2n]1([x]表示不大于x的最大整数) [log2​n]1([x]表示不大于x的最大整数) 对于任意一个结点 &#xff08; 1 < i < n &#xff09; &…

大语言模型之三 InstructGPT训练过程

大语言模型 GPT历史文章中简介的大语言模型的的发展史&#xff0c;并且简要介绍了大语言模型的训练过程&#xff0c;本篇文章详细阐述训练的细节和相关的算法。 2020年后全球互联网大厂、AI创业公司研发了不少AI超大模型&#xff08;百亿甚至千亿参数&#xff09;&#xff0c;…

OpenCV实例(八)车牌字符识别技术(一)模式识别

车牌字符识别技术&#xff08;一&#xff09;模式识别 1.模式识别流程2. 模式识别方式 影响并导致汽车牌照内字符出现缺损、污染、模糊等情况的常见因素有照相机的性能、采集车辆图像时光照的差异、汽车牌照的清洁度等。为了提高汽车牌照字符识别的准确率&#xff0c;本节将把英…

Python|OpenCV-基本使用和图像处理(1)

前言 本文是该专栏的第1篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 OpenCV是基于开源许可的跨平台计算机视觉库,起初OpenCV是由Intel公司开发的,直到后面由非营利组织进行维护。提到OpenCV,就不得不说它提供了大量的图像和视频处理函数,使得计算机视觉的研…

面试热题(数组中的第K个最大元素)

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 输入: [3,2,1,5,6,4] 和 k 2 输出: 5提到数组中最大元素&#xff0c;我们往往想到就是先给数组…

后端常使用的中间件知识点--持续更新

类型难度mysqlmysql中SQL优化&#xff1a;多角度分析包学包会&#xff0c;sql优化全过程&#xff0c;刨根分析redis多角度剖析redis数据结构及底层实现原理、应用场景MQ简单大体说明RabbitMQ的使用&#xff08;简单版&#xff09;mybatis使用JDBC的批量插入百万数据要多少秒一遍…

使用sqlplus连接oracle,提示ORA-01034和ORA-27101

具体内容如下 PL/SQL Developer 处 登录时 终端处 登录时 ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Process ID: 0 Session ID: 0 Serial number: 0 解决方法是执行以下命令 sqlplus /nolog conn / as sysdba startup …