首页 > 其他分享 >vim 简易上手笔记

vim 简易上手笔记

时间:2024-03-20 20:44:24浏览次数:16  
标签:字符 set 移动 笔记 vim 简易 模式 文本 光标

vim的三种模式

1.命令模式

当您启动 Vim 时,您会进入命令模式。在此模式下,您可以执行各种操作,例如移动光标、删除、复制和粘贴。
常用命令:
i :切换到输入模式,开始输入文本。
x :删除当前光标所在处的字符。
: :切换到底线命令模式,在最底一行输入命令。
dd :剪切当前行。
yy :复制当前行。
:w :保存文件。
:q :退出 Vim 编辑器。

2.输入模式

在命令模式下按下 i 进入输入模式。在此模式中,您可以自由输入文本。
使用 Esc 键返回到命令模式。

3.扩展命令模式:

在命令模式下按下 : 进入底线命令模式。在此模式中,您可以输入单个或多个字符的命令。
常用命令:
w:保存文件。
q:退出 Vim 编辑器。
wq:保存文件并退出。
q!:强制退出 Vim 编辑器,不保存修改。
x: 写入并退出
X:加密
r file: 将其他文件读到当前文件中
——(5,10r file.txt) 将特定的字段读进来

w: 将当前文件写入另一个文件
!'命令':在当前文件使用命令
r!: 使用命令并读进来


地址定界:

”#“ 几行
“#,#“ #行到#结尾行
”#,+#“#行加到#行 (3,+2)3到5行
”.“ 当前行
.,$-1 当前行到倒数第二行
"%" 全文
"d" 删除 (3,5d)
"y" 复制粘贴 (3,7y) p粘到光标下方 P上方
”r“ 读 (3r)

/pattern/ 查找
/pat1/,/pat2/ 从pat1匹配到pat2
“#”,/pat/从指定行到pat2
/pat/, ”$“ 从pat到最后

查找:

s/查找内容/替换内容/修饰符

修饰符:

 i 忽略大小写
 g 全局
 gc 全局,每次替换询问

vim特性

配置文件:

/etc/vimrc 全局
~/.vimrc 个人

行号

set nu
set nonu

忽略字符大小写

set ic
set noic

自动缩进

set ai
set noai

复制保留格式

set paste
set nopaste

现实换行符和$显示

set list
set nolist

高亮搜索

set hlsearch
set nohlsearch

语法高亮

 syntax on
 syntax off

文件格式

 set fileformat=dos 启用windows
 set fileformat=unix 启用unix
 set ff=dos|unix

tab用空格代替

set et
set noet

tab指定空格个数

set ts=#

设置缩进宽度

“>>” 右缩进
”<<“ 左缩进
set shiftwidth=# 设置缩进字符

设置文本宽度

set textwidth=# 从左向右
set warpmargin=# 相反

设置光标所在行标识线

set cul
set nocul

加密

set key=passwd
set key=

帮助

help option-list
set or:set all

vim打开文件常用选项:

	+# 打开文件,光标处于#行,+默认行尾
	+#/PATTERN  光标处于PATTERN匹配的行首
	-b file 二进制打开
	-d file1 file2 比较多个文件
	-m file 只读打开
	-e file  ex模式

命令模式指令

光标跳转

1. 字符间跳转
向上移动	k	将光标向上移动一行

向下移动	j	将光标向下移动一行

向左移动	h	将光标向左移动一个字符

向右移动	l	将光标向右移动一个字符
2. 单词间跳转
b	光标后退到前一个单词的开头
w	光标前进到下一个单词的开头
e	当前或下一个单词词尾
3.行间跳转
行间跳转	0	移动到当前行的行首
$	移动到当前行的行尾
gg	移动到文件的开头
G	移动到文件的结尾
4.句间移动
) 下一句 (带shift)
( 上一句 (带shift)
5.翻页
Ctrl + f	将光标移动到下一页的开头
Ctrl + b	将光标移动到上一页的开头
行首行尾跳转	0	将光标移动到当前行的开头
$	将光标移动到当前行的结尾
6.段落间移动
下一段落开头	}	将光标移动到下一个段落的开头
上一段落开头	{	将光标移动到上一个段落的开头
7.翻屏操作
Ctrl + d	向下滚动半屏
Ctrl + u	向上滚动半屏
Ctrl + f	向下滚动一页
Ctrl + b	向上滚动一页

字符编辑

替换单个字符
rx	将光标所在位置的字符替换为 x
删除单个字符
x	删除光标所在位置的字符
X	删除光标前一个字符
dw	向后删除单词
db	向前删除单词
d$	删除至行尾
改变单个字符
rx	替换光标所在位置的字符为 x
cw	改变当前单词
c$	删除至行尾并进入插入模式
复制粘贴
yy	复制当前行的字符
p	在光标后粘贴复制的字符
P	在光标前粘贴复制的字符
大小写切换	~	切换光标处字符的大小写
撤销操作
u	撤销上一次操作
Ctrl + r	重做上一次撤销的操作
高级用法
0 先到行头
y 先从这里开始
$ 拷贝到本行最后一个字符
	100izz [ese] (先在命令模式下输入不进入扩展命令输入100后进入插入模式写入zz然后使用ese进入命令模式)

可视化模式

进入可视化模式
v	进入字符级别的可视化模式
V	进入行级别的可视化模式
Ctrl + v	进入块级别的可视化模式
选择文本
移动光标	使用上下左右箭头键选择文本
w	逐词选择文本
W	逐词(以空格为分隔符)选择文本
b	逐词向前选择文本
B	逐词向前(以空格为分隔符)选择文本
e	逐词向后选择文本
E	逐词向后(以空格为分隔符)选择文本
复制选中的文本
y	复制选中的文本
剪切选中的文本
d	剪切选中的文本
粘贴文本
p	在光标后粘贴文本
P	在光标前粘贴文本
撤销操作
u	撤销上一次操作
重做操作
Ctrl + r	重做上一次撤销的操作

多文本模式

水平分割窗口	:split	在水平方向上分割窗口
垂直分割窗口	:vsplit	在垂直方向上分割窗口
切换窗口焦点	Ctrl + w	切换窗口焦点到下一个窗口
关闭当前窗口	:q	关闭当前窗口
关闭其他窗口	:only	关闭除当前窗口外的其他窗口
水平调整窗口尺寸	Ctrl + w +/-	增加或减少当前窗口的高度
垂直调整窗口尺寸	Ctrl + w >/<	增加或减少当前窗口的宽度
同步滚动	:set scrollbind	开启同步滚动
关闭同步滚动	:set noscrollbind	关闭同步滚动
切换布局	Ctrl + w r	在水平和垂直布局之间切换
打开新标签页	:tabedit	在新标签页中打开文件
在新标签页中打开新文件	:tabnew	在新标签页中打开新文件
切换标签页	gt	切换到下一个标签页
关闭当前标签页	:tabclose	关闭当前标签页
关闭其他标签页	:tabonly	关闭除当前标签页外的所有标签页

标签:字符,set,移动,笔记,vim,简易,模式,文本,光标
From: https://www.cnblogs.com/civetcat/p/18086039

相关文章

  • docker engine学习笔记01-导入镜像
    dockerengine学习笔记01-导入镜像Linuxdocker一、查看当前docker服务状态使用systemctlstatusdockerdocker没有启动二、启动docker服务使用systemctlstartdocker命令启动,再使用systemctlstatusdocker命令查看状态启动成功三、查看所有的镜像使用docker......
  • (day 13)JavaScript学习笔记(对象1)
    概述        这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习对象,主要是创建对象、对象属性、省略key、遍历对象属性、删......
  • Vue学习笔记54--动画效果+过度效果
    动画效果示例一:Test.vue——主要代码文件<template><div><button@click="isShow=!isShow">显示.隐藏</button><!--方式一class=comeorgo--><!--<h2v-show="isShow"class="come">你......
  • Springboot笔记-05
    1.Springboot的热部署spring为开发者提供了一个名为spring-boot-devtools的模块来使SpringBoot应用支持热部署,提高开发者的开发效率,无需手动重启SpringBoot应用。在pom文件加入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • 【嵌入式学习笔记】---- OLED屏幕工作原理
    1驱动芯片SSD1603简介1.1SSD1603芯片图SSD1603是一款点阵显示屏控制器,可嵌入在屏幕中,用于执行接收数据、显示存储、扫描刷新等任务驱动接口:128个SEG引脚和64个COM引脚,对应\(128\times64\)像素点阵显示屏内置显示存储器(GDDRAM):\(128\times64Bit(或128\times64Byte)SRAM\)......
  • Java学习笔记——第二十一天
    网络编程概述网络编程是可以让设备中的程序与网络上其他设备中的程序实现数据交互的编程技术(实现网络通信的)。Java提供了哪些网络编程的包java.net.*包下提供了网络编程的解决方案。基本的通信架构基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Brow......
  • 做题笔记 IIII
    做题笔记II做题笔记III发现做题笔记屡次停更的根本原因是做的无聊题太多,不想更笔记,拖的时间长了笔记就更新不过来了。从这篇笔记开始只记录精彩巧妙的题。\(1\sim25\)\(\color{blue}(1)\)CF1270GSubsetwithZeroSum\(^*2700\);构造;图论;基环树给定长度为\(n\;......
  • spring boot企业级开发教程学习笔记——第二章
    记录笔记。给亲友看的笔记,干劲十足(希望她看得懂,因为我不会教人)一.重要前提再次强调:springboot是为了优化spring的冗重的xml文件配置,spring的注解会更加丰富,但是springboot的思想还是跟着spring走。spring的重要思想是:说到容器,就必须要讲到一个东西Bean,按......
  • 软考备考复习笔记day2(校验码crc和海明码检错纠错)
    奇偶校验奇偶校验(ParityCodes)是通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验)。但该编码只能检错,但不能纠错。奇偶校验:码距为2。码距越大越容易纠错和检错仅检测出代码中奇数位数(奇数个0或1发生错误),不能发现偶数位数出错。奇数+偶数=奇数......
  • 深入理解Java虚拟机读书笔记
    1.双亲委派模型的兼容性优化    双亲委派模型在jdk1.2才开始,在以前是通过覆盖loadClass()方法来自定义类加载器,但是不做兼容,由于多态性,那么实际上加载时是直接用ClassLoader子类的loadClass()方法,ClassLoader的loadClass()方法不会被调用,所以为了兼容,添加了findClass(),这样自定义的类......