. 重复前一个操作
#. 重复前一个操作#次
100iwang [ESC] 粘贴“wang”100次
Shift+3
高亮显示 相当于#键
y 复制、d 删除、gU 变大写、gu 变小写
例如: 0y$ 命令
0 → 先到行头
y → 从这里开始拷贝
$ → 拷贝到本行最后一个字符
di" 光标在”“之间,则删除”“之间的内容
yi( 光标在()之间,则复制()之间的内容
vi[ 光标在[]之间,则选中[]之间的内容
dtx 删除字符直到遇见光标之后的第一个 x 字符
ytx 复制字符直到遇见光标之后的第一个 x 字符
============================================================================
具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结尾行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数
2,+3 表示2到5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文, 相当于1,$
/pattern/ 匹配pattern的行
/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
#,/pat/
/pat/,$
使用方式:后跟一个编辑命令
dy
w file: 将范围内的行另存至指定文件中
r file:在指定位置插入指定文件中的所有内容
使用“&”引用前面查找时查找到的整个内容
/ 表示搜索
可以使用 #或+ 作为分隔符,此时中间出现的 / 不会作为分隔符
这个意思是你把/sbin/nolgin 替换为 /bin/bash
#是分隔符 g是全文替换
/关键字 n往下匹配; N往上匹配(在命名模式下)
/^name #查找以name开始的行
/name$ #查找以name结束的行
/^name #查找^name字符串
s表示本行
%s表示所有行
修饰符:
i 忽略大小写
g 全局替换,默认情况下,每一行只替换第一次出现
gc 全局替换,每次替换前询问
:s/root/ROOT
替换当前行所有的root
:7s/shutdown/SHUTDOWN/g
只替换第7行的内容
:n,$s/name/title/
#替换第 n 行开始到最后一行中每一行 的第一个 name 为 title
-
:
-
%s /root/ROOT
全文搜索,替换每一行匹配到的第一个关键字 -
%s /root/ROOT/g
全文搜索,替换每一行所匹配所有的关键字
n,$s/name/title/g
#替换第 n 行开始到最后一行中每一 行所有 name 为 title
:%s /root/ROOT/gc
交互式替换
:%s /\/sbin\/nologin /\/bin\/bash/
\转移符
把后面的字符转义普通的字符
这个是把/sbin/nologin转换成/bin/bash
:s#name/#title/#
替换当前行第一个 name/ 为 title/
:%s+/oradata/apras/+/user01/apras1+ (+ 作为替换符号): /oradata/apras/替换成/user01/apras1/
=========================================================================
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间
共享
寄存器名称a,b,…,z,格式:“寄存器 放在数字和命令之间
如:3"tyy 表示复制3行到t寄存器中
"tp 表示将t寄存器内容粘贴
未指定,将使用无命名寄存器
10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。
当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不
同会话间共享
==============================================================================
vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O: 垂直分割
在窗口间切换:Ctrl+w, Arrow
Ctrl+w,s:split, 水平分割
Ctrl+w,v:vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall 退出
Ctrl+w ,方向键 想那个窗口跳转(也可以按两次ctrl+w可以实现窗口跳转)
==============================================================================
v键进入可视化模式
按键Ctrl+v(可视块“一个字符”) 或v(可执行),
Shift+v(可视行“整整一行”)
然后按下“上下左右方向”键选中需要赋值的块区,
,最后按下p加粘贴
退出可是模式Esc
按键Ctrl+v(可视块“一个字符”)
安向下的键(选中所要注释的行)
然后在行首输入I(大i) 输入内容
最后按esc键就ok了
“注释”同上2只不过在选中后按d键
=============================================================================
当前vim进程有效
(1) 行号
显示:set number,简写 set nu
取消显示:set nonumber, 简写 set nonu
(2) 忽略字符的大小写
启用:set ignorecase,简写 set ic
不忽略:set noic
(3) 自动缩进
启用:set autoindent,简写 set ai
禁用:set noai
(4) 复制保留格式
启用:set paste
禁用:set nopaste
(5) 显示Tab和换行符 ^I 和$显示
启用:set list
禁用:set nolist
(6) 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
(7) 语法高亮
启用:syntax on
禁用:syntax off
(8) 文件格式
启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写 set ff=dos|unix
(9) 设置文本宽度
set textwidth=65 (vim only)
set wrapmargin=15
(10) 设置光标所在行的标识线
启用:set cursorline,简写 set cul
禁用:set nocursorline
(11)设置tab缩进字符
默认为4个字符
set ts=4 设置tab缩进为4个字符
==========================================================================
:files
%a表示active正在打开的文件,
#表示上一个打开的文件
切换文件方式
- 需要指定切换文件名称则可以输入
:open 文件名
- 切换上一个文件和下一个文件(以打开vim时输入的为准)
:bn 切换到下一个back next
:bp 切换到上一个back prev
1.在文件打开时在末行模式下输入的配置(临时配制)
2.个人配置文件(在自己的家目录下面有一个.vimrc)–不一定存在(可以自己创建)
3.全局配置文件(自带的,在/etc/vimrc)
案例:创建一个简单的c语言小程序
如何控制着色:(临时的操作)
显示:输入 :syntax on syntax语法
关闭显示:输入: syntax off
当在编辑文件时需要计算一些东西,所以就得使用计算器
首先进入编辑模式
按下按键Ctrl +r(会出现一个”)然后输入=号------->光标会变到最后一行然后输入计算的内容----->最后回车
vim –b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制
:%!xxd
插入模式下,编辑二进制文件
扩展命令模式下,利用xxd命令转换回二进制
:%!xxd -r
异常退出(没有正常的wq或者断点)
会出现一个 .文件名.swp
的交换文件
则只需要将交换文件删除掉即可
如果打开多个窗口以最后一个保存文件的时间为准
O(pen for Read-Only) :打开或只读文件。
E(dit) :用正常方式打开要编辑的文件,并不会载入暂存文件的内容,这很容易出现两个用户相互改变对方的文件问题
R(ecover):加载暂存文件的内容(A终端正在编辑,并且没有保存,然后在新打开的终端中vim进入时点R
照样可以看到A终端正在编辑的内容)
D(elete):如果你确定暂存文件是没有用的,则可以删除
Q(uit):不进行任何操作,回到命令行
A(bort) :忽略这个编辑行为,和Q类似
创建一些属于我们自己自定义的命令
例如:windows下面cls清屏操作
在linux下可以自己创造一个这种命令
别名机制依靠一个别名映射文件
在当前用户家目录下有 .bashrc
在.bashrc 下面创建一个新的命令
设置完新创造的 需要重新登陆账号
%s@^[[:space:]]*@@
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
完结
Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
完结
Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。
[外链图片转存中…(img-nNnFK0OA-1712942425775)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!